#api #prometheus #arangodb
Вопрос:
Я пытаюсь создать API для подключения между ArangoDB и Prometheus. У меня есть статистика данных в ArangoDB, например, сколько раз запускалась симуляция, которую я хочу видеть в Prometheus. Поэтому я хотел бы подтвердить следующие вопросы, если это правильно, как я понял:
- Я проверил руководство по началу работы Прометея (https://prometheus.io/docs/prometheus/latest/getting_started/) где мы используем метрики node_exporter в Prometheus. Нам нужно запустить этот node_exporter и указать его на определенном IP-адресе и порту (адрес прослушивания), затем нам нужно настроить цель в конфигурации Prometheus для этих портов, на которых работает node_exporter. Поэтому для моего API мне нужно создать API и приложение в Golang, и этот API/приложение должно быть открыто в определенном HTTP-порту (например, 8001), затем в Prometheus мне нужно добавить целевой порт 8001, чтобы Prometheus мог очистить мой API. Это правильно?
- Мне нужно выяснить формат данных, который понимает Прометей. Мне нужно определить формат данных между моим API (выходящим из API) и Prometheus (входящим в Prometheus). Я нашел из этой документации (https://prometheus.io/docs/instrumenting/exposition_formats/) что это текстовый формат в этой форме:
metric_name [ "{" label_name "=" `"` label_value `"` { "," label_name "=" `"` label_value `"` } [ "," ] "}" ] value [ timestamp ]
Это правильно? Не могли бы вы, пожалуйста, подтвердить мое понимание?
Наконец, было бы здорово, если бы вы могли порекомендовать мне источник, в котором кто-то уже использовал такой API для подключения между ArangoDB и Prometheus. Это действительно помогло бы мне начать работу над этим проектом. Заранее большое вам спасибо.
Ответ №1:
Возможно, вам нужно только найти систему, которая позволяет вам отображать данные на графике. У Прометея есть родственная технология под названием Grafana.
Prometheus-это инструмент, который настроен на периодическую очистку (считывание) измерений с конечных точек (==целей) систем. Эти измерения описывают состояние системы в момент ее очистки. Prometheus записывает эти измерения в базы данных(базы данных) временных рядов и предоставляет выразительный язык запросов, позволяющий находить информацию в данных. Prometheus также включает в себя базовое построение графиков данных этого временного ряда. Часто Прометей сочетается с Графаной.
Ваш вопрос предполагает, что вы хотите не отслеживать состояние базы данных, а скорее отображать (статистические) данные, содержащиеся в таблицах базы данных. Если это так, то «Прометей» может оказаться не тем, что вам нужно.
Чтобы ответить на ваши вопросы, Prometheus требует, чтобы системы публиковали наборы показателей в простом текстовом формате, называемом форматом экспозиции. Любая система, которая генерирует данные в этом формате и может обслуживать показатели на конечной точке HTTP, может быть очищена Prometheus.
Экспортер узлов является одним из примеров такой системы, которая публикует показатели, которые могут быть удалены Prometheus. Он публикует показатели узла (==хоста).
ArangoDB-это еще одна система, которая может публиковать показатели (о своем состоянии; о состоянии системы баз данных) в формате экспозиции Prometheus, см.:
https://www.arangodb.com/2020/03/monitoring-arangodb-prometheus-grafana/
Я подозреваю, что вам нужно решение для построения графика набора данных, которые вы уже сохранили в таблицах ArangoDB. Для этого вы можете подключить систему, подобную Grafana, к своей базе данных, а затем использовать SQL-запросы для отображения данных в форме, которую можно отобразить на графике.
Комментарии:
1. Здравствуйте @DazWilkin большое спасибо за ваш подробный ответ, у меня уже есть Графана, настроенная для подключения к Prometheus, я не знал, что возможно настроить мою Графану для прямого подключения к ArangoDB. Я проверю это.
2. Я нашел эту страницу на ArangoDB, это правильное направление? arangodb.com/projects-and-integrations/bi-connector-arangodb
3. Не за что! Да, именно так. Если я правильно понимаю вашу потребность, это правильный путь.