Почему мои отмеченные метрики исчезают/сбрасываются через 10 минут и могу ли я это предотвратить?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Почему мои отмеченные метрики исчезают/сбрасываются через 10 минут и могу ли я это предотвратить?

Сообщение Гость »

Я использую System.Diagnostic.Counter в .NET7 в библиотеке для подсчета событий с помощью нескольких разных тегов.

Код: Выделить всё

// Meter creation
private static Meter meter = new Meter("my_library");

// Counter creation
private static Counter myCounter= meter.CreateCounter("my_metric_counter", description: "My counter");

Код: Выделить всё

// When event A happens
myCounter.Add(1,
KeyValuePair.Create("tag_key", "A");

Код: Выделить всё

// When event B happens
myCounter.Add(1,
KeyValuePair.Create("tag_key", "B");
Приложение, включающее библиотеку, использует Prometheus.NET для запуска сервера метрик.

Код: Выделить всё

applicationBuilder.UseMetricServer();
При такой настройке Prometheus может успешно очистить приложение и получить мои метрики, которые выглядят следующим образом...

Код: Выделить всё

my_library_my_metric_counter{tag_key="tag value A"} 10
my_library_my_metric_counter{tag_key="tag value B"} 20
Моя проблема возникает, если определенный тег в счетчике не обновляется в библиотеке в течение примерно 10 минут. Допустим, «значение тега B» не учитывается более 10 минут. После этого очистка метрик возвращается только...

Код: Выделить всё

my_library_my_metric_counter{tag_key="tag value A"} 100
Это происходит, даже если Prometheus постоянно очищает конечную точку метрики с интервалом в 30 секунд.
Если «значение тега B» учитывается еще раз после через эти 10 минут метрики снова появляются в Prometheus (и при ручной очистке конечной точки /metrics приложения). Однако значение метрики будет сброшено до 1.

Код: Выделить всё

my_library_my_metric_counter{tag_key="tag value A"} 200
my_library_my_metric_counter{tag_key="tag value B"} 1
Я не уверен, является ли это поведением .NET System.Diagnostic.Counter или поведением сервера метрик Prometheus.NET. В любом случае я ищу способ сохранить эти метрики и не сбрасывать их после 10 минут бездействия.
Я также добавлю, что в коде моей библиотеки также есть несколько Экземпляры System.Diagnostic.Metrics.ObservableGauge. Интересно, что метрики этих датчиков, хотя и редко обновляются, у меня НЕ исчезают после 10 минут отсутствия обновления (возможно, потому, что очистка по сути является обновлением?). Можно было бы предложить использовать ObservableGauge вместо Counter; но мне еще предстоит найти способ связать теги с ObservableGauge.

Источник: https://stackoverflow.com/questions/768 ... -can-i-pre
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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