service_counters.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <util/generic/string.h>
  3. #include <library/cpp/monlib/dynamic_counters/counters.h>
  4. namespace NYql {
  5. namespace NCommon {
  6. struct TServiceCounters {
  7. ::NMonitoring::TDynamicCounterPtr RootCounters; // "counters/counters=yq" - root counters for service metrics
  8. ::NMonitoring::TDynamicCounterPtr PublicCounters; // "counters/counters=public" - root counters for cloud user metrics
  9. ::NMonitoring::TDynamicCounterPtr Counters; // "counters/counters=yq/subsystem=smth" - subsystem part, may match to RootCounters if subsystem name is empty
  10. ::NMonitoring::TDynamicCounters::TCounterPtr UptimeRootCounter; // yq/uptime_seconds
  11. ::NMonitoring::TDynamicCounters::TCounterPtr UptimePublicCounter; // yq_public/query.uptime_seconds
  12. explicit TServiceCounters(
  13. const ::NMonitoring::TDynamicCounterPtr& rootCounters,
  14. const ::NMonitoring::TDynamicCounterPtr& publicCounters,
  15. const TString& subsystemName = "");
  16. explicit TServiceCounters(
  17. const ::NMonitoring::TDynamicCounterPtr& baseCounters,
  18. const TString& subsystemName = "");
  19. explicit TServiceCounters(
  20. const TServiceCounters& serviceCounters,
  21. const TString& subsystemName = "");
  22. TServiceCounters& operator=(const TServiceCounters& serviceCounters) = default;
  23. void InitUptimeCounter();
  24. void SetUptimePublicAndServiceCounter(i64 val) const;
  25. };
  26. } // namespace NCommon
  27. } // namespace NYql