Я немного запутался в том, как метрики из приложения представлены в Grafana из Graphite.
Я использую Dropwizard на стороне клиента, который отправляет метрики в Graphite.
Мой случай - мониторинг размера запроса, поэтому метрика - ".request..size". Я использую MetricRegistry # histogram # update для записи значений
Dropwizard (который также используется внутри Micrometer) отправляет метрики в классе GraphiteReporter, а вот код, который сообщает значения гистограммы:
private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
final Snapshot snapshot = histogram.getSnapshot();
sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);
sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);
sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);
sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);
sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);
sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);
sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);
sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);
sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);
sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);
sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);
}
Полагаю, идея в том, что вместо отправки 1'000'000 чисел в массиве он объединяет все вызовы в ~ 10 значений, которые дают хорошую статистическую информацию.
Но в результате в Grafana я вижу следующие метрики:
<node>.request.<endpoint>.size.count
<node>.request.<endpoint>.size.max
<node>.request.<endpoint>.size.mean
...
<node>.request.<endpoint>.size.p999
и мне это кажется странным. Я думал, что все эти 'count', 'max' и процентили рассчитываются с помощью функций Graphite и что Graphite должен каким-то образом деагрегировать значения.
Также я очень растерялся, когда пытаюсь получить средние числа для всех узлов или всех конечных точек -> какую метрику c мне следует использовать -> .request. .size.avg + некоторую функцию агрегирования?
Поэтому мне интересно, должно ли это быть нравится? Может быть, это нехватка конфигурации Graphite (или просто мое отсутствие навыков Grafana). Потому что я думаю, что должен доверять тому, что Dropwizard & Micrometer (и, следовательно, Spring) отправили данные.