当前位置: 首页 > 知识库问答 >
问题:

不带Spring的定制普罗米修斯公制

华易安
2023-03-14

我需要为web应用程序提供自定义度量。问题是我不能使用Spring,而是必须使用jax-rsendpoint。要求非常简单。假设您有一个带有键值对的映射,其中键是度量名称,值是一个简单的整数,它是一个计数器。代码如下所示:

public static Map<String, Integer> metrics = Map.of(
    "logged_in_users_today", 123
);

@GET
@Path("/metrics/{metricId}")
public Integer getMetric(@PathParam("metricId") String metricId) {
    int count = metrics.get(metricId);
    return count;
}

共有1个答案

井学
2023-03-14

这的确相当容易。这是代码:

public static double metricValue = 123;

@GET
@Path("/metrics")
public String getMetrics() {
    Writer writer = new StringWriter();
    CollectorRegistry registry = new CollectorRegistry();
    Gauge gauge = Gauge.build().name("logged_in_users").help("Logged in users").register(registry);
    gauge.set(metricValue);
    TextFormat.write004(writer, registry.metricFamilySamples());
    return writer.toString();
}

我一直在纠结于方法MetricFamilySamples的名称,因为我认为它只会输出示例数据

 类似资料:
  • 因为普罗米修斯是一个基于牵引的度量跟踪器。 现在假设我有一个简单的服务,我需要为Prometheus提供度量,现在我用该语言的一个客户机来做,将Prometheus配置为以15秒的频率轮询,这个度量API现在我有一个计数度量,Prometheus服务器在时间实例在时间t看到计数x,在时间t+15看到计数y 现在,由于报废间隔(拉动模型),我不知道计数x到y的增加是否有一个稳定的斜率,或者在t+10

  • 我将我的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对象中我想要的内容,我更希

  • 我应该在values.yaml之外添加一些东西吗?

  • 根据示例,我应该实现自定义的来更新Prometheus中相应的或。如下所示: 其他3个必需元素是:、、。 毕竟,可以通过调用“http://localhost:8080/prometheus”URL来查看收集到的指标。

  • null 使用默认配置和轻微的定制。 我可以访问prometheus、grafana和alertmanager,查询度量标准并查看精美的图表。 但是prometheus-adapter在启动时不断抱怨它不能访问/发现度量: 在我的设置中,对于prometheus-adapter的正确值是什么?