我有一个具有不同端点(休息服务)的应用程序,它在 kubernetes pod 的 docker 容器中运行。
这些端点是可访问的,例如:
localhost:8080/myapp/status/health
或者
localhost:8080/myapp/status/version
我想将其中一些端点(如运行状况和版本)添加到普罗米修斯指标中。我是否需要编写一个导出器或者在这个场景中推荐使用哪些导出器?
我有一个具有不同端点(休息服务)的应用程序,它在 kubernetes pod 的 docker 容器中运行。
这些端点是可访问的,例如:
localhost:8080/myapp/status/health
或者
localhost:8080/myapp/status/version
我想将其中一些端点(如运行状况和版本)添加到普罗米修斯指标中。我是否需要编写一个导出器或者在这个场景中推荐使用哪些导出器?
听起来您正在寻找关键词和开始配置 Prometheus 的位置,在 Kubernetes 集群中运行,可以从指标端点抓取数据。
我建议将两个路径的 job_name 添加myapp/status/version
到myapp/status/health
您的 prometheus Configmap scrape_config 部分,并根据 kube-dns 分配使目标成为应用程序名称。实际的域名很可能是附加到它所在的命名空间的 app_name:<app_name>.<k8s_namespace>.svc.cluster.local>
Localhost 通常只在您的直接系统(即笔记本电脑或 pod 本身)上解析,并且它与 127.0.0.1 相关联,该 127.0.0.1 通常不会在网络中通过kube-dns,因为所有 pod 和节点在技术上都具有该接口,并且无法区分它们。
您可以通过进入 K8s pod 并对组合发出 nslookup 来验证 FQDN 是否已解析。FQDN 不会在集群外解析,因为它是在集群内可路由的——除非您以其他方式构建它。
HTH 和配置好运。
我认为这里最好的方法是抓取应用程序本身,而不是 Kubernetes 本身的指标。
您需要使用 Prometheus 客户端库来检测您的应用程序,以导出有关您感兴趣的端点的指标,并配置 Prometheus 以抓取应用程序。