diff options
| author | monster <[email protected]> | 2022-03-24 20:22:00 +0300 | 
|---|---|---|
| committer | monster <[email protected]> | 2022-03-24 20:22:00 +0300 | 
| commit | 9af817fd1c586794f68b118236da5b42a74f66e4 (patch) | |
| tree | 2a67d6a26306cf5f57403a0a09cf66c9b6fe5f5c /library/cpp/monlib | |
| parent | d7b7178997d5f37bd21b7eae2f8432ce869cb40e (diff) | |
add name_label page parameter for prometheus format KIKIMR-14564
ref:460fd827b07d7a0cd719c88e6381600b19cdce73
Diffstat (limited to 'library/cpp/monlib')
| -rw-r--r-- | library/cpp/monlib/dynamic_counters/encode.cpp | 6 | ||||
| -rw-r--r-- | library/cpp/monlib/dynamic_counters/encode.h | 1 | ||||
| -rw-r--r-- | library/cpp/monlib/dynamic_counters/page.cpp | 12 | 
3 files changed, 16 insertions, 3 deletions
| diff --git a/library/cpp/monlib/dynamic_counters/encode.cpp b/library/cpp/monlib/dynamic_counters/encode.cpp index ffa48d276e8..26328a44eea 100644 --- a/library/cpp/monlib/dynamic_counters/encode.cpp +++ b/library/cpp/monlib/dynamic_counters/encode.cpp @@ -95,7 +95,9 @@ namespace NMonitoring {      } -    THolder<ICountableConsumer> CreateEncoder(IOutputStream* out, EFormat format, TCountableBase::EVisibility vis) { +    THolder<ICountableConsumer> CreateEncoder(IOutputStream* out, EFormat format, +        TStringBuf nameLabel, TCountableBase::EVisibility vis) +    {          switch (format) {              case EFormat::JSON:                  return MakeHolder<TConsumer>(NMonitoring::EncoderJson(out), vis); @@ -106,7 +108,7 @@ namespace NMonitoring {                      NMonitoring::ECompression::ZSTD), vis);              case EFormat::PROMETHEUS:                  return MakeHolder<TConsumer>(NMonitoring::EncoderPrometheus( -                    out), vis); +                    out, nameLabel), vis);              default:                  ythrow yexception() << "unsupported metric encoding format: " << format;                  break; diff --git a/library/cpp/monlib/dynamic_counters/encode.h b/library/cpp/monlib/dynamic_counters/encode.h index c79964d7cb7..bc39fc0029d 100644 --- a/library/cpp/monlib/dynamic_counters/encode.h +++ b/library/cpp/monlib/dynamic_counters/encode.h @@ -10,6 +10,7 @@ namespace NMonitoring {      THolder<ICountableConsumer> CreateEncoder(          IOutputStream* out,          EFormat format, +        TStringBuf nameLabel = "sensor",          TCountableBase::EVisibility visibility = TCountableBase::EVisibility::Public      ); diff --git a/library/cpp/monlib/dynamic_counters/page.cpp b/library/cpp/monlib/dynamic_counters/page.cpp index 5124a47bb33..b116adfdef8 100644 --- a/library/cpp/monlib/dynamic_counters/page.cpp +++ b/library/cpp/monlib/dynamic_counters/page.cpp @@ -31,6 +31,7 @@ void TDynamicCountersPage::Output(NMonitoring::IMonHttpRequest& request) {          OutputCallback();      } +    TString nameLabel("sensor");      TCountableBase::EVisibility visibility{          TCountableBase::EVisibility::Public      }; @@ -46,6 +47,15 @@ void TDynamicCountersPage::Output(NMonitoring::IMonHttpRequest& request) {          parts.pop_back();      } +    if (!parts.empty() && parts.back().StartsWith(TStringBuf("name_label="))) { +        TVector<TString> labels; +        StringSplitter(parts.back()).Split('=').SkipEmpty().Collect(&labels); +        if (labels.size() == 2U) { +            nameLabel = labels.back(); +        } +        parts.pop_back(); +   } +      if (!parts.empty() && parts.back() == TStringBuf("private")) {          visibility = TCountableBase::EVisibility::Private;          parts.pop_back(); @@ -90,7 +100,7 @@ void TDynamicCountersPage::Output(NMonitoring::IMonHttpRequest& request) {          ythrow yexception() << "unsupported metric encoding format: " << *format;      } -    auto encoder = CreateEncoder(&out, *format, visibility); +    auto encoder = CreateEncoder(&out, *format, nameLabel, visibility);      counters->Accept(TString(), TString(), *encoder);      out.Flush();  } | 
