【问题标题】:Application metrics monitoring of Kubernetes PodsKubernetes Pod 的应用程序指标监控
【发布时间】:2017-11-15 15:30:39
【问题描述】:
我们已经在我们的 kubernetes 环境中使用节点导出器来拉取/收集 docker/container 指标。接下来,我们还希望能够收集应用程序指标(在我们的例子中由 spring-actuator 提供,例如http://pod-name:8080/prometheus)。这通常是如何完成的,请记住我们不能将 Kubernetes 服务用作固定的 DNS 名称(它们在服务后面的 Pod 上进行负载平衡)以及 Pod 一直消失和出现的事实,改变它们的名称并因此改变它们的可寻址性?
我们最初的幼稚方法如下(但这还不够,因为它是由服务进行负载平衡的):
- job_name: 'example-service'
scheme: http
metrics_path: '/prometheus'
static_configs:
- targets: ['example-service:8080']
任何建议或示例都会非常棒。
非常感谢,
巴特
【问题讨论】:
标签:
kubernetes
metrics
prometheus
kubernetes-health-check
【解决方案1】:
同时我发现了一个例子...问题已结束。
# Example scrape config for pods
#
# The relabeling allows the actual pod scrape endpoint to be configured via the
# following annotations:
#
# * `prometheus.io/scrape`: Only scrape pods that have a value of `true`
# * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
# * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`.
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name