我们有一个 Prometheus 在我们的集群中运行,我们能够使用 grafana 来查看我们的集群/pods 指标,现在我想添加一些自定义指标,有没有办法做到这一点?如果是这样,我应该如何将代码连接到 Prometheus,我的意思是如果我使用 Prometheus API 编写 golang 程序,并将其作为 docker 部署到 k8s,那么程序现在知道与 Prometheus 连接了吗?
例如该程序将数据暴露给/metrics 端点,但我还应该做什么才能使舞会能够读取这些数据?
https://gist.github.com/sysdig-blog/3640f39a7bb1172f986d0e2080c64a75#file-prometheus-metrics-golang-go
最佳答案
您可能希望 Prometheus 发现要自动抓取的目标,如果是这样,您应该在 Prometheus 中配置 K8s service discovery 以从集群中发现 pod、节点和服务(也许您已经这样做了,因为您已经在监控 k8s 指标)。
为了让你的 go 应用程序受到监控,你可以例如向 pod 或服务添加注释,以启用从该目标中抓取并定义指标可用的位置(路径、端口)。但是,这取决于您的抓取配置和重新标记。可以找到很好的例子 here
如果您使用的是 Prometheus Operator,则需要改为定义 servicemonitor 资源。
关于go - Prometheus 添加自定义指标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58529231/