0

我有一个 CronJob 正在运行,我想将 OpenCensus 集成到其中以导出到 Prometheus。但是,我目前必须在我的工作完成后增加 1 分钟的睡眠时间,以确保 Prometheus 已经刮掉了我的指标。

如果可能的话,我想使用 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 一起使用的示例。以前有人做过吗,怎么做的?

4

1 回答 1

0

我认为您可能 [不想|不能] 将 OpenCensus 用于您想做的事情。

OpenCensus 做什么

OpenCensus 将指标推送到例如 Stackdriver、Datadog 等,但对于 Prometheus 而言,请求-响应流程是倒置的,并且指标通常是从以 Prometheus 的展示格式呈现指标的端点提取的。

OpenCensus 的 Prometheus 导出器(对于 Java,您引用的示例)创建一个 HTTP 服务器,您可以将指标倒入其中(请参见此示例,因为原理相同)。

Prometheus——或其他理解 Prometheus 指标格式的服务——会定期抓取这个端点并摄取指标。

Prometheus Pushgateway 是做什么的

您的 cron 作业将发出必须推送到例如 Prometheus Pushgateway 的指标。在此架构中,Pushgateway取代了 OpenCensus Prometheus Exporter 端点。

你所需要的——可能只是添加到你的 cron 作业中的 curl 语句——就是生成 HTTP 请求并将这些请求发送到 Pushgateway 的东西。看:

https://github.com/prometheus/pushgateway#command-line https://github.com/prometheus/pushgateway#api

然后,您将配置 Prometheus 服务器以抓取 Pushgateway 端点以获取您的 cron 作业指标。

于 2019-07-13T04:00:41.283 回答