Использование 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.

НТН!

Другие вопросы по тегам