【问题标题】:Prometheus add custom metricsPrometheus 添加自定义指标
【发布时间】:2020-02-20 01:51:26
【问题描述】:

我们有一个 Prometheus 在我们的集群中运行,我们可以使用 grafana 来查看我们的集群/pods 指标,现在我想添加一些自定义指标,有没有办法做到这一点?如果是这样,我应该如何将代码连接到 Prometheus,我的意思是如果我使用 Prometheus API 编写 golang 程序,并将其作为 docker 部署到 k8s,现在程序是否知道与 Prometheus 连接? 例如该程序将数据暴露给 /metrics 端点,但我还应该做些什么来使舞会能够读取这些数据?

https://gist.github.com/sysdig-blog/3640f39a7bb1172f986d0e2080c64a75#file-prometheus-metrics-golang-go

【问题讨论】:

  • 如果您将自定义指标添加到您的程序中,给它们起您可以识别的名称,然后像在该示例中所做的那样通过 http 处理程序公开它们,这就足够了。您的程序不会将数据推送到 Prometheus,它会从您的 http 指标端点抓取数据,如果您在那里发布指标,它们应该会在下次抓取您的应用程序时显示在 Prometheus 中。
  • @bserdar - 只是为了验证,所以我可以将程序按原样部署到 k8s 并且我可以通过 prom ui 查询它?谢谢!
  • 如果您的 Prometheus 实例正在抓取 pod,是的。您只需查看应用的指标端点即可验证您是否正在发布指标。它是文本,你应该在那里看到你的指标。
  • @bserdar - 好的,我会将我的应用程序部署到 k8s 并检查它,谢谢!
  • 为了让 prometheus 收集(报废)你的 pod,你可能想看看 k8sClusterRoles 在这里看到:supergiant.io/blog/…

标签: go kubernetes prometheus


【解决方案1】:

您可能希望 Prometheus 自动发现要从中抓取的目标,如果是这样,您应该在 Prometheus 中配置 K8s service discovery 以从集群中发现 pod、节点和服务(也许您已经做过类似的事情,因为您已经在监控 k8s指标)。

要监控您的 Go 应用程序,您可以向您的 pod 或您的服务添加注释,以启用从该目标中抓取并定义指标可用的位置(路径、端口)。但是,这取决于您的抓取配置和重新标记。很好的例子可以找到here

如果您使用的是Prometheus Operator,则需要定义一个 servicemonitor 资源。

【讨论】:

    猜你喜欢
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    相关资源
    最近更新 更多