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

为Prometheus公开度量终结点的替代方案是什么?

宋伯寅
2023-03-14

我想将Prometheus度量标准公开给一个endpoint。我没有spring启动,所以我需要自己公开度量。

我从以下文件中获取了示例代码:

https://micrometer.io/docs/registry/prometheus#_配置

PrometheusMeterRegistry prometheusRegistry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);

try {
    HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
    server.createContext("/prometheus", httpExchange -> {
        String response = prometheusRegistry.scrape(); (1)
        httpExchange.sendResponseHeaders(200, response.getBytes().length);
        try (OutputStream os = httpExchange.getResponseBody()) {
            os.write(response.getBytes());
        }
    });

    new Thread(server::start).start();
} catch (IOException e) {
    throw new RuntimeException(e);
}

当它工作时,我想避免使用sun包。有没有一种方法可以用netty、okhttp或apache做得既简短又优雅呢?

谢谢.

共有1个答案

葛炜
2023-03-14

您可以使用以下代码:

Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new MetricsServlet()), "/prometheus");

进口中没有sun套餐,只有Jetty和Prometheus Java客户端:

import io.prometheus.client.exporter.MetricsServlet;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
 类似资料:
  • 问题内容: 我们有一个类,其中包含应用程序的配置信息。它曾经是一个单身人士。经过一些体系结构审查后,我们被告知删除单例。我们确实看到了在单元测试中不使用单例的一些好处,因为我们可以一次测试所有不同的配置。 没有单例,我们必须在代码中的所有地方传递实例。变得太乱了,所以我们写了一个单例包装器。现在我们将相同的代码移植到PHP和.NET,我想知道是否有更好的模式可用于配置对象。 问题答案: 在谷歌测试

  • 我用的是Hibernate 3.6,其中有这样一段代码: 现在我将罐子从 3.6 更改为 4.1最终 似乎addScalar方法正在请求类型而不是Hibernate.STRING我找不到任何热的例子来解决这个问题。如果有人知道,请帮我谢谢。

  • 问题内容: 我正在使用Hibernate 3.6,其中有如下代码: 现在我将罐子从3.6更改为4.1 看来addScalar方法要代替Type来代替Hibernate.STRING我找不到任何解决此问题的示例。如果有人认识,请帮助我,谢谢。 问题答案: HHH-5196导致org.hibernate.Hibernate中的类型字段被弃用(并实际上已删除) 现在可以从javadocs的Type中找到

  • 我正在努力翻阅这本生锈的书。在“字符串”一章中,许多示例使用了_string(),我的编译器版本(rustc 1.0.0-dev)给出了以下警告 代码: 我从这个问题中了解到,这是因为API可能会更改,但我想知道如果我想转换字符串片段(str),我应该使用什么来代替它

  • 问题内容: 我正在使用Hibernate 3.6,其中有如下代码: 现在我将jar从3.6更改为4.1 看来addScalar方法要代替Type来代替Hibernate.STRING我找不到任何解决此问题的示例。如果有人认识,请帮助我,谢谢。 问题答案: HHH-5196导致org.hibernate.Hibernate中的类型字段被弃用(并实际上已删除) 现在可以从javadocs的Type中找

  • 问题内容: 我有一个字符串数组,每个字符串包含3个字母。每3个字母(每个元素)对应一个唯一字母。我需要从字符串数组创建一个char数组。 我能想到的唯一方法是遍历字符串数组中的每个元素,并使用一个长的switch语句来确定其关联的单个字符。 还有什么其他方法可以实现? 问题答案: 如果是映射/查找,那么通常地图/词典可以解决您的问题。C#中的此类结构示例: 如果有这样的映射,则只需从映射中查找字母