Size: a a a

Церковь метрик

2021 February 05

YK

Yura Korevikov in Церковь метрик
Добрый день. Только въезжаю в тему мониторинга, настроил себе графана + прометей и поставил wmi. Сейчас разбираюсь со сбором апп метрик.
У меня есть джава-апп, которое крутится в веб-сервере(томкат).  Получается мне нужно добавить REST-эндпоинт ../metrics по которому прометей будет стучаться, чтобы забрать метрики?
Или это неправильный подход?
источник

AP

Alexey Palazhchenko in Церковь метрик
Yura Korevikov
Добрый день. Только въезжаю в тему мониторинга, настроил себе графана + прометей и поставил wmi. Сейчас разбираюсь со сбором апп метрик.
У меня есть джава-апп, которое крутится в веб-сервере(томкат).  Получается мне нужно добавить REST-эндпоинт ../metrics по которому прометей будет стучаться, чтобы забрать метрики?
Или это неправильный подход?
Это правильных подход
источник

AS

Aleksey Shirokikh in Церковь метрик
Yura Korevikov
Добрый день. Только въезжаю в тему мониторинга, настроил себе графана + прометей и поставил wmi. Сейчас разбираюсь со сбором апп метрик.
У меня есть джава-апп, которое крутится в веб-сервере(томкат).  Получается мне нужно добавить REST-эндпоинт ../metrics по которому прометей будет стучаться, чтобы забрать метрики?
Или это неправильный подход?
быть может вам подойдет jmx_exporter для начала
источник

AS

Aleksey Shirokikh in Церковь метрик
но в целом да. если софт пишите вы — добавляйте в своё приложение реакцию на /metrics
источник

AP

Alexey Palazhchenko in Церковь метрик
источник

YK

Yura Korevikov in Церковь метрик
Коллеги предлагаю вариант - писать метрики логгером в какой-нибудь лог-файл. И написать отдельный микро-сервис, которые будет читать этот лог, преобразовывать в формат нужный прометею и отдавать по эндпоинту ../metrics(чтото наподобие loki) - имеет ли это решение смысл?
источник

AS

Aleksey Shirokikh in Церковь метрик
Yura Korevikov
Коллеги предлагаю вариант - писать метрики логгером в какой-нибудь лог-файл. И написать отдельный микро-сервис, которые будет читать этот лог, преобразовывать в формат нужный прометею и отдавать по эндпоинту ../metrics(чтото наподобие loki) - имеет ли это решение смысл?
это костыль
источник

AN

Artem Navoiev in Церковь метрик
Yura Korevikov
Коллеги предлагаю вариант - писать метрики логгером в какой-нибудь лог-файл. И написать отдельный микро-сервис, которые будет читать этот лог, преобразовывать в формат нужный прометею и отдавать по эндпоинту ../metrics(чтото наподобие loki) - имеет ли это решение смысл?
mtail?
источник

AS

Aleksey Shirokikh in Церковь метрик
есть готовая библиотека для встройки в продукт
источник

AS

Aleksey Shirokikh in Церковь метрик
она простая как 3 копейки и не требовательная к ресурсам
источник

PG

Pavel Gassan in Церковь метрик
Yura Korevikov
Коллеги предлагаю вариант - писать метрики логгером в какой-нибудь лог-файл. И написать отдельный микро-сервис, которые будет читать этот лог, преобразовывать в формат нужный прометею и отдавать по эндпоинту ../metrics(чтото наподобие loki) - имеет ли это решение смысл?
это убого и противоречит концепции метрик
источник

SB

Stanislav Buldakov in Церковь метрик
Хранить логи в Прометее так себе идея
источник

YK

Yura Korevikov in Церковь метрик
@freeseacher имеете ввиду агенты для ЯП(прим https://github.com/prometheus/client_java)?
источник

AS

Aleksey Shirokikh in Церковь метрик
да
источник

AS

Aleksey Shirokikh in Церковь метрик
опять же, это вариат когда вы пишите продукт сами
источник

AS

Aleksey Shirokikh in Церковь метрик
если продукт для вас внешний jmx_exporter + blackbox_exporter + логи nginx это не самый худший уровень качества
источник

YK

Yura Korevikov in Церковь метрик
понял, спасибо
источник

AV

Aliaksandr Valialkin in Церковь метрик
Stanislav Buldakov
с моей точки зрения самый простой вариант былобы собрать их всех в один range vector и применить quantile_over_time
В promql эту задачу не решить. А вот в metricsql есть решение:
histogram_quantile(0.95, sum(histogram_over_time(response_duration[5m])) by (vmbucket)) вернет 95-й персентиль для всех значений рядов с именем response_duration за последние 5 минут. См. подробности про metricsql вот тут - https://victoriametrics.github.io/MetricsQL.html
источник

SB

Stanislav Buldakov in Церковь метрик
Aliaksandr Valialkin
В promql эту задачу не решить. А вот в metricsql есть решение:
histogram_quantile(0.95, sum(histogram_over_time(response_duration[5m])) by (vmbucket)) вернет 95-й персентиль для всех значений рядов с именем response_duration за последние 5 минут. См. подробности про metricsql вот тут - https://victoriametrics.github.io/MetricsQL.html
Вот вы прям соблазняете перейти на VM 😁 я уже почти решился
источник

AS

Aleksey Shirokikh in Церковь метрик
Stanislav Buldakov
Вот вы прям соблазняете перейти на VM 😁 я уже почти решился
почти безпроигрышное решение
источник