Использование Prometheus PushGateway с OpenCensus Java Client
У меня запущен CronJob, в который я хотел бы интегрировать OpenCensus для экспорта в Prometheus. Однако в настоящее время я должен добавить 1 минуту сна после окончания моей работы, чтобы убедиться, что Прометей соскоблил мои метрики.
Я хотел бы использовать Prometheus PushGateway, чтобы избежать дополнительного сна, если это возможно, но я не могу понять, как подключить его к OpenCensus.
Вот документация для него, которая упоминает это: https://github.com/census-instrumentation/opencensus-java/tree/master/exporters/stats/prometheus - там говорится следующее:
public class MyMainClass {
public static void main(String[] args) {
// Creates a PrometheusStatsCollector and registers it to the default Prometheus registry.
PrometheusStatsCollector.createAndRegister();
// Uses a simple Prometheus HTTPServer to export metrics.
// You can use a Prometheus PushGateway instead, though that's discouraged by Prometheus:
// https://prometheus.io/docs/practices/pushing/#should-i-be-using-the-pushgateway.
io.prometheus.client.exporter.HTTPServer server =
new HTTPServer(/*host*/ "localhost", /*port*/ 9091, /*daemon*/ true);
// Your code here.
// ...
}
}
Однако нет примеров того, как бы я на самом деле использовал это с OpenCensus. Кто-нибудь делал это раньше и как?
1 ответ
Я думаю, что вы, вероятно, [не хотите | не можете] использовать OpenCensus для того, что вы хотите сделать.
Что делает OpenCensus
OpenCensus передает метрики, например, в Stackdriver, Datadog и т. Д., Но для Прометея - поток запрос-ответ инвертируется, и метрики обычно извлекаются из конечной точки, которая отображает метрики в формате экспозиции Прометея.
Экспортер (ы) OpenCensus Prometheus - и, для Java, пример, на который вы ссылаетесь - создает HTTP-сервер, в который вы добавляете свои метрики (см. Этот пример, так как принцип тот же).
Прометей - или какой-либо другой сервис, который понимает метрический формат Прометея - будет периодически очищать эту конечную точку и принимать метрики.
Чем занимается Prometheus Pushgateway
Ваша работа cron будет генерировать метрики, которые нужно вставить, например, в Prometheus Pushgateway. В этой архитектуре Pushgateway заменяет конечную точку OpenCensus Prometheus Exporter.
Все, что вам нужно - возможно, не что иное, как операторы curl, добавленные в ваши задания cron, - это то, что будет генерировать HTTP-запросы и отправлять их на Pushgateway. Видеть:
https://github.com/prometheus/pushgateway https://github.com/prometheus/pushgateway
Затем вы настроите сервер Prometheus для очистки конечной точки Pushgateway для получения метрик ваших заданий cron.
НТН!