我在web服务中使用Prometheus Java simpleclient来跟踪有多少事件导致了这种或那种状态。
我可以在日志中检查计数器是否正在被调用,是否在内部递增,但是似乎很多时候数据都没有到达/metricsendpoint。
例如,就在刚才,在每隔几分钟为同一状态递增计数器3次之后,日志将打印出“当前值= 0,新值= 1”三次。前两次在/metricsendpoint上没有显示任何数据,在第三次递增后,它最终显示值1,这意味着我丢失了前两个事件的记录。
除了一些名称更改之外,我的代码如下。
private static final Counter myCounter = Counter.build()
.name("myMetric")
.help("My metric")
.labelNames("status").register();
...
private static void incrementCounter(String status) {
Counter.Child counter = myCounter.labels(status);
Logger.info("Before Incrementing counter for status= " + status + ". Current value=" + counter.get());
counter.inc();
Logger.info("After Incrementing counter for status= " + status + ". New value=" + counter.get());
}
我不明白为什么普罗米修斯似乎无法始终如一地跟踪这些计数器。有没有人能够看到什么问题或更好的方法来记录这些计数器指标?
我能猜到的唯一原因是并发增量计数器
调用。“简单收集器#标签
”方法不是线程安全的(尽管子
字段具有并发映射
类型),因此可以在每次呼叫时获取不同的 io.
至于通过http获取指标-每次调用/metrics
endpoint都会导致io.prometheus.client。Counter#collect
方法调用,它只检索一个子对象的值。
我建议您使用自己的并发映射来存储计数器:
private static final ConcurrentMap<String, Counter.Child> counters = new ConcurrentHashMap<>();
// ...
private static void incrementCounter(String status) {
Counter.Child counter = counters.computeIfAbsent(status, myCounter::labels) ;
// ...
}
我将我的GKE API服务器升级到1.6,并正在将节点升级到1.6,但遇到了一个障碍... 我有一个prometheus服务器(版本1.5.2),运行在一个由Kubernetes部署管理的pod中,其中两个节点运行版本1.5.4Kubelet,一个新节点运行版本1.6。 但普罗米修斯仍然得到401。 更新:就像乔丹所说的kubernetes认证问题。在这里看到新的、更集中的问题;https://s
我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希
null 使用默认配置和轻微的定制。 我可以访问prometheus、grafana和alertmanager,查询度量标准并查看精美的图表。 但是prometheus-adapter在启动时不断抱怨它不能访问/发现度量: 在我的设置中,对于prometheus-adapter的正确值是什么?
我使用Spring-Boot2.0.0并尝试公开/acturet/prometheusendpoint。我启用了所有web管理endpoint,但只有prometheusendpoint未公开。有什么帮助吗?
我有一个启用了监视和日志记录的GKE集群(1.15)。到目前为止,我们一直使用metrics-server对StackDriver进行度量监控。对于其他自定义度量标准,我们使用了自定义度量标准适配器,该适配器使用Prometheus-to-SD将度量标准刮取并导出到stackdriver。 我想开始看看prometheus是否能给我们提供其他功能,比如HPA的聚合度量。 在GCP marketpl
我想监控值设置为每秒普罗米修斯计的次数。不幸的是,我不能添加另一个计数器,应该使用量规。我尝试使用更改函数,但要么我不明白它的目的,要么它根本不做这项工作。将测量仪图与具有时间范围的变化()输出进行比较没有显示任何相关性。 在我看来,使用count_over_并未提供该指标,原因与changes()相同。 有没有一种正确的方法来计算将值设置为每秒普罗米修斯计的次数? 假设我们有: prom_仪表=