问题描述
我正在尝试使用千分尺将端点暴露给普罗米修斯。我没有使用任何形状或形式的 Spring。
在下面的文章 https://micrometer.io/docs/registry/prometheus 中,他们使用 com.sun.net.httpserver.HttpServer
作为示例。
自写的 HTTPServlet 长什么样子?
我不知道从哪里开始。 谢谢
解决方法
这是否与千分尺有关,还是问题实际上是如何在 Java 中公开 HTTP 端点?
有很多方法可以做到这一点,但由于您专门要求使用 servlet:
- 您需要通过扩展
HttpServlet
创建自己的Servlet
并注册 - 这是一个通用示例:A Simple Servlet Example – (write,deploy,run)
- 基本上,您需要发回您从
prometheusRegistry.scrape()
获得的信息 - 您也可以在 Prometheus 客户端查看
MetricsServlet
(不使用 Micrometer 的PrometheusRegistry
)
另外,让我把它留在这里作为一般性建议:始终确保您的 InputStream
/OutputStream
/Reader
/Writer
/etc.是属性关闭(finally
块或 try-with-resource
,在这种情况下,您将有一个 (Print
)Writer
)。