Ответ экспортера Blackbox в виде метри c - PullRequest
1 голос
/ 09 февраля 2020

Я пытаюсь получить значение, встроенное в веб-страницу, в prometheus с помощью экспортера черного ящика, но в нынешнем виде похоже, что зонд http черного ящика не поддерживает очистку источника веб-страницы, что понятно. Мой вариант использования заключается в том, что веб-страница может иметь 3 состояния: режим ожидания, выборка из внешнего источника, выполнено (это встроено в источник страницы). Я решил использовать код ответа http, чтобы сделать это и сделать что-то вроде

200 = done,
202 = fetching,
400 = standby

, а затем использовать probe_http_status_code для предупреждения, например. Однако мне не очень нравится это решение, потому что коды состояния будут иметь смысл только для черного ящика, и это будет болезненно для любого другого варианта использования. Есть ли умный способ получить часть ответа (например, значения заголовков) в прометей?

1 Ответ

0 голосов
/ 11 февраля 2020

Экспортер «черного ящика» действительно предназначен для мониторинга «черного ящика» в его более узком смысле: мониторинг системы извне, рассматривая ее как черный ящик, с точки зрения пользователя. Если вам нужно только проверить состояние done, вы можете использовать fail_if_body_not_matches_regexp проверку http_probe.

Попытка перевести состояние в состояние, уже наступающее на мониторинг белого ящика: состояние имеет смысл только если у вас есть модель системы. Это объясняет, почему экспортер черного ящика не является подходящим инструментом, если вам действительно нужны три состояния.

Для быстрого взлома, чтобы получить состояние, мой любимый запасной вариант - использовать exporter_exporter , который может запускать скрипт и анализировать стандартный вывод как open-metri c контент. С умным использованием curl, вы можете извлечь все, что вам нужно. Это не самое эффективное использование вашего процессора, но оно остается относительно дешевым.

В противном случае невозможно развернуть собственного экспортера или интегрировать метрики Prometheus в свое программное обеспечение.

...