有没有办法让kubernetes服务名称自动设置为Prometheus作业名称?

时间:2017-12-21 19:43:36

标签: kubernetes prometheus

如何自动将我的Kubernetes服务名称设置为Prometheus作业名称?我的意思是说有没有办法让K8中创建的新服务自动成为Prometheus配置中的目标?在Kubernetes中,我想将我的应用程序部署为一组服务。

对于每项服务,可以关联多个pod。

MApping可以像:

  • Kubernetes对Prometheus Jobs的服务
  • K8s Pods to Prometheus Job
  • 中的实例

但是我真的不知道这对普罗米修斯的一些配置变化是否可行。如果我在任何地方都错了,请纠正我。

如果无法做到这一点,我是否需要每次在部署之前在Prometheus配置文件中编写明确的Prometheus作业。

1 个答案:

答案 0 :(得分:0)

您通常需要每个pod的指标,就像使用常规节点而不是容器/ pod一样。

使用documentation,您将获得自动在群集上运行的每个pod的目标。这是重要的部分

<h3>Fade in effect</h3>

<div id="fade_1" class="firstDiv opacityZero">hi</div>

<div class="container">
  <span id="fade_2" class="secondDiv opacityZero">hi</span>
</div>

<h3 style="margin:20px 0 0;">Fade out effect</h3>

<div id="fade_3" class="firstDiv opacityOne">hi</div>

<div class="container">
  <span id="fade_4" class="secondDiv opacityOne">hi</span>
</div>

正如上面的评论中所解释的那样,这是配置的,因此包含# 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 # pod's declared ports (default is a port-free target if none are declared). - 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 设置为true的pod将被Prometheus抓取,成为目标。然后,Pod将需要具有以Prometheus格式公开指标的指标端点。您可以使用prometheus.io/scrapeprometheus.io/path来配置Prometheus在您的广告连播中查找指标的位置。