Prometheus/Grafana: увеличение () шипы во время развертывания Kubernetes с мультиподными счетчиками (динамические метки)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Prometheus/Grafana: увеличение () шипы во время развертывания Kubernetes с мультиподными счетчиками (динамические метки)

Сообщение Anonymous »

контекст

[*] Служба Java в Kubernetes , несколько стручков. В диапазоне времени.
[*] Счетчики увеличены непосредственно в код , когда возникают определенные деловые события. Метки)

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

@Component
public class ExampleMetrics {

private static final String METRIC_SUCCESS = "app_successful_operations";
private static final String TAG_CATEGORY = "category";
private static final String TAG_REGION = "region";

private final MeterRegistry registry;

public ExampleMetrics(MeterRegistry registry) {
this.registry = registry;
}

public void incrementSuccess(String category, String region) {
registry.counter(METRIC_SUCCESS,
TAG_CATEGORY, category,
TAG_REGION, region
).increment();
}
}
Необработанная метрика имеет дополнительные динамические этикетки автоматически добавляются с помощью Micrometer/prometheus client (например, экземпляр , Service , Pod , App_version ).
Инициировать, в grafana prehane у нас были запросы:
PrettyPrint-Override ">

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

sum by (category, region) (
increase(app_successful_operations{category=~"$category", region=~"$region"}[$__rate_interval])
)
Проблема: если новый временной ряд появляется на полпути через диапазон (например, потому что капсул перезагружен и экземпляр label изменяется), эта серия игнорируется увеличением () , поэтому общие данные недооценены.
, поэтому запросы Grafana увидят стабильные серии: < /p>

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

- record: app_successful_operations_normalized_total
expr: |
sum by (category, region) (
app_successful_operations
)
< /code>
Grafana затем использует: < /p>
sum(increase(app_successful_operations_normalized_total{category=~"$category", region=~"$region"}[$__rate_interval]))
< /code>
Это решило проблему с подключением - новые серии Pod больше не вызывают потери данных. Время перезагрузки стручков.
Пример: счетчик может временно прыгать на миллионы, а затем нормализовать. Затем увеличивайте () < /code> интерпретирует сброс как огромный прыжок. < /P>

  Вопрос < /strong> < /h3>
Есть ли prometheus safe-safe to: < /p>

 агрегировать   letrative volat>, так что в новейле (сильных volat> volat volat> volat volat> volat volat> volat grablats < / />
. Не вызывайте отсутствующих данных в увеличении () 
),
[*], но также избегайте всплесков развертываний [/b], когда счетчик сбрасывает? (например, [5m] ), но это исправляет временное окно, и графана не может выбрать произвольные диапазоны.
Использование rate () вместо увеличения () , но это все еще страдает, если счетчик начинается с средним уровнем. Решает обе проблемы.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ulti-pod-c
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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