Spring Consul Connect 中 Prometheus 的引导执行器指标
Spring boot actuator metrics for Prometheus in Consul Connect
我在启用了 Consul Connect 的 Nomad 集群中有一个 spring 启动应用程序 运行。
network {
mode = "bridge"
}
service {
name = "api"
port = "9966"
connect {
sidecar_service {}
}
}
没有定义端口映射,API 只能通过代理在 consul 服务网格内访问。现在我在同一个集群中有 prometheus 运行。 prometheus 如何发现单个 API 实例并从中提取指标。我使用了以下配置。但是在主机级别没有映射端口,它无法到达单个 API 实例。
- job_name: 'actuator'
metrics_path: /api/actuator/prometheus
consul_sd_configs:
- server: '{{ env "NOMAD_IP_prometheus_ui" }}:8500'
services: ['api']
如何解决这个问题?从没有主机端口映射的服务网格内的 spring 启动应用程序 运行 抓取指标的一般做法是什么?
终于找到了。 Nomad 可以选择在没有 mTLS 身份验证的情况下通过 sidecar 代理公开特定端点。此选项的用例专门用于健康检查或指标。
https://www.nomadproject.io/docs/job-specification/expose#expose-examples
connect
节中的 expose
节有助于实现这一点。
connect {
sidecar_service {
proxy {
expose {
path {
path = "/actuator/prometheus"
protocol = "http"
local_path_port = 9966
listener_port = "metrics"
}
}
}
}
}
我在启用了 Consul Connect 的 Nomad 集群中有一个 spring 启动应用程序 运行。
network {
mode = "bridge"
}
service {
name = "api"
port = "9966"
connect {
sidecar_service {}
}
}
没有定义端口映射,API 只能通过代理在 consul 服务网格内访问。现在我在同一个集群中有 prometheus 运行。 prometheus 如何发现单个 API 实例并从中提取指标。我使用了以下配置。但是在主机级别没有映射端口,它无法到达单个 API 实例。
- job_name: 'actuator'
metrics_path: /api/actuator/prometheus
consul_sd_configs:
- server: '{{ env "NOMAD_IP_prometheus_ui" }}:8500'
services: ['api']
如何解决这个问题?从没有主机端口映射的服务网格内的 spring 启动应用程序 运行 抓取指标的一般做法是什么?
终于找到了。 Nomad 可以选择在没有 mTLS 身份验证的情况下通过 sidecar 代理公开特定端点。此选项的用例专门用于健康检查或指标。
https://www.nomadproject.io/docs/job-specification/expose#expose-examples
connect
节中的 expose
节有助于实现这一点。
connect {
sidecar_service {
proxy {
expose {
path {
path = "/actuator/prometheus"
protocol = "http"
local_path_port = 9966
listener_port = "metrics"
}
}
}
}
}