1

我们已经在我们的 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']

任何建议或示例都会非常棒。

非常感谢提前,

巴特

4

1 回答 1

0

同时我发现了一个例子......问题已结束。

# 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
于 2017-06-13T18:28:36.297 回答