【问题标题】:Docker Exporter for PrometheusPrometheus 的 Docker 导出器
【发布时间】:2017-08-15 14:25:31
【问题描述】:

我有一个具有不同端点(休息服务)的应用程序,它在 kubernetes pod 的 docker 容器中运行。

这些端点可以通过如下方式到达:

localhost:8080/myapp/status/health

localhost:8080/myapp/status/version

我想将其中一些端点(如运行状况和版本)添加到 prometheus 指标中。我是否需要编写一个导出器或在这个场景中推荐使用哪些导出器?

【问题讨论】:

    标签: docker kubernetes prometheus exporter kubernetes-helm


    【解决方案1】:

    听起来您正在寻找关键词和开始配置 Prometheus 的位置,在 Kubernetes 集群中运行,可以从指标端点抓取数据。

    我建议将 myapp/status/versionmyapp/status/health 两个路径的 job_name 添加到您的 prometheus Configmap scrape_config 部分,并根据 kube-dns 分配使目标成为应用程序名称。实际域名很可能是附加到其所在命名空间的 app_name:<app_name>.<k8s_namespace>.svc.cluster.local> 本地主机通常只在您的直接系统(即笔记本电脑或 pod 本身)上解析,并且它与 127.0.0.1 相关联,kube-dns 通常不会在网络内路由,因为所有 pod 和节点在技术上都有该接口并且有没有办法区分它们。

    您可以通过进入 K8s pod 并对组合发出 nslookup 来验证 FQDN 是否已解析。 FQDN 不会在集群外部解析,因为它是在集群内可路由的——除非您以其他方式构建它。

    HTH,祝你配置好运。

    【讨论】:

      【解决方案2】:

      我认为这里最好的方法是抓取应用程序本身,而不是 Kubernetes 本身的指标。

      您需要使用 Prometheus 客户端库 instrument your application 导出您感兴趣的端点的指标,并配置 Prometheus 以抓取应用程序。

      【讨论】:

      • 为什么需要prometheus客户端?端点在那里并且暴露在外。我不应该直接在 Prometheus 中配置端点吗?
      猜你喜欢
      • 1970-01-01
      • 2019-02-09
      • 2020-02-26
      • 2021-12-25
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 2022-10-22
      相关资源
      最近更新 更多