如何自动将我的Kubernetes服务名称设置为Prometheus作业名称?我的意思是说有没有办法让K8中创建的新服务自动成为Prometheus配置中的目标?在Kubernetes中,我想将我的应用程序部署为一组服务。
对于每项服务,可以关联多个pod。
MApping可以像:
但是我真的不知道这对普罗米修斯的一些配置变化是否可行。如果我在任何地方都错了,请纠正我。
如果无法做到这一点,我是否需要每次在部署之前在Prometheus配置文件中编写明确的Prometheus作业。
答案 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/scrape
和prometheus.io/path
来配置Prometheus在您的广告连播中查找指标的位置。