Обеспечение появления метрик .NET в конечной точке Prometheus /metricsC#

Место общения программистов C#
Anonymous
Обеспечение появления метрик .NET в конечной точке Prometheus /metrics

Сообщение Anonymous »

При использовании Prometheus Exporter для метрик OpenTelemetry в .NET 8 конечная точка HTTP GET /metrics отображает только метрики, которые были записаны (т. е. записаны хотя бы один раз) и для которых был создан экземпляр связанного экземпляра Meter. путем внедрения зависимостей (т. е. служба со счетчиком должна быть создана в приложении).
Это создает проблемы при создании информационных панелей для показателей, которые нечасто записываются, такие как счетчики исключений или метрики, привязанные к ненормальным путям выполнения — они просто не появляются в конечной точке /metrics, пока не будут использованы.
Частичное решение:
Для Counter и UpDownCounter я нашел частичное решение, которое включает вызов .Add(0) или .Add(0, tags) при создании метрики. Это регистрирует его без искажения данных, что позволяет ему появиться в конечной точке /metrics.
Однако этот подход не работает для показателей гистограммы. Вызов .Record(0) при создании записывает нулевое значение, что, как я понимаю, исказит данные, заполнив самый нижний сегмент гистограммы.
Вопросы:
  • Есть ли способ легко получить все зарегистрированные метрики для измерителя?
  • Как инициализировать гистограмму метрика, чтобы она отображалась в конечной точке /metrics без записи фактических данных и влияния на распределение гистограммы? Или, если мы выполним .Record(0), есть ли способ сбросить данные?
  • Для Counter и UpDownCounter, имеет ли взлом .Add(0) какие-либо побочные эффекты?


Подробнее здесь: https://stackoverflow.com/questions/791 ... s-endpoint

Вернуться в «C#»