Я прохожу через этот учебник на моем Ma c, пытаясь отправить метрики счетчиков из моего Java кода в Prometheus через StatsD-Exporter.
На моем локальном хосте Я запускаю два контейнера Docker, один - Prometheus, другой - StatsD-exporter. Пытаюсь сделать как можно больше разрешений, это мой statsd_mapping.yaml:
mappings:
- match: "*.*.*.*"
name: "${1}_name"
labels:
label1: "$2"
label2: "$3"
label3: "$4"
Итак, чтобы отправить некоторые данные в statsd-exporter, я несколько раз использую эту команду оболочки:
echo -n 'blah.step_4.reason.new_entities:1|c' | nc -u -w0 localhost 9125
Затем я просматриваю http://localhost:9102/metrics
и вижу там свои метри c:
# HELP blah_name Metric autogenerated by statsd_exporter.
# TYPE blah_name counter
blah_name{label1="step_4",label2="reason",label3="new_entities"} 5
Мои метри c были получены 5 раз, как ожидалось.
Затем я использую Java NonBlockingStatsDClient, отправляя тот же метри c, и я ожидаю увидеть метри c, как и раньше.
Это мой Java код:
private static final StatsDClient statsd = new NonBlockingStatsDClient(
"",
"127.0.0.1",
9125
);
public static void main(String[] args) {
statsd.incrementCounter("blah1.step_4.reason.new_entities");
}
Выполнение приведенного выше кода дает случайные результаты.
- Иногда я просто не могу найти свои метри c
- В большинстве случаев я могу найти новые метри c, отправленные с Java но он застрял на счетчике 1. Это означает, что даже если я отправлю один и тот же метри c 10 раз, он все равно будет отображать 1. Затем, взяв такое же имя метри c и отправив его в statsd из оболочки - и счетчик увеличивается.
Что я пропустил?
Спасибо!