我有一个正在运行的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中实际使用它。以前有人做过吗,怎么做的?
发布于 2019-07-13 04:00:41
我想你可能不想用OpenCensus来做你想做的事情。
OpenCensus是做什么的
OpenCensus将度量推送到例如Stackdriver、Datadog等,但是对于Prometheus --请求响应流是倒置的,度量通常是从呈现Prometheus的公开格式的度量的端点中提取的。
Open普查的Prometheus出口商--以及,对于Java,您引用的示例--创建了一个HTTP服务器,您可以将您的度量标准注入其中(参见这示例,因为原理相同)。
Prometheus --或者其他一些理解Prometheus的度量格式的服务--会定期地刮掉这个端点并吸收这些度量。
Prometheus Pushgateway是怎么做的
您的cron作业将发出必须被推入的度量标准,例如Pushgateway。在这个体系结构中,Pushgateway取代了OpenCensus Prometheus端点。
您所需要的--可能只是添加到cron作业中的curl语句--将生成HTTP请求并将这些请求发送到Pushgateway。请参见:
https://github.com/prometheus/pushgateway#command-line https://github.com/prometheus/pushgateway#api
然后,您将配置一个Prometheus服务器来刮取Pushgateway端点,以摄入您的cron作业度量标准。
哈哈!
https://stackoverflow.com/questions/56995102
复制相似问题