Prometheus配置详解

时间:2025-05-13 07:37:24

参考:/Coffin_monkey/article/details/90572867

Prometheus可以在运行时重新加载其配置。
如果新配置格式不正确,则不会应用更改。 通过向Prometheus进程发送SIGHUP或向/-/reload端点发送HTTP POST请求(启用–-lifecycle标志时)来触发配置重新加载。 这也将重新加载任何已配置的规则文件。

全局配置指定在所有其他配置上下文中有效的参数。 它们还可用作其他配置节的默认值。

global:
  # 默认情况下抓取目标的频率.
  [ scrape_interval: <duration> | default = 1m ]

  # 抓取超时时间.
  [ scrape_timeout: <duration> | default = 10s ]

  # 评估规则的频率.
  [ evaluation_interval: <duration> | default = 1m ]

  # 与外部系统通信时添加到任何时间序列或警报的标签
  #(联合,远程存储,Alertma# nager).
  external_labels:
    [ <labelname>: <labelvalue> ... ]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

一:<scrape_config>
<scrape_config>部分指定一组描述如何刮除它们的目标和参数。 在一般情况下,一个scrape配置指定单个作业。 在高级配置中,这可能会改变。

目标可以通过<static_configs>参数静态配置,也可以使用其中一种支持的服务发现机制动态发现。

此外,<relabel_configs>允许在抓取之前对任何目标及其标签进行高级修改。

其中<job_name>在所有scrape配置中必须是唯一的。

二:<kubernetes_sd_config>

Kubernetes SD配置允许从Kubernetes的RESTAPI中检索scrape目标,并始终与群集状态保持同步。

可以配置以下role类型之一来发现目标:

  1. node
  2. service
  3. pod
  4. endpoints
  5. ingress

action的行为:

  • replace:默认行为,不配置action的话就采用这种行为,它会根据regex来去匹配source_labels标签上的值,并将并将匹配到的值写入target_label中
  • labelmap:它会根据regex去匹配标签名称,并将匹配到的内容作为新标签的名称,其值作为新标签的值
  • keep:仅收集匹配到regex的源标签,而会丢弃没有匹配到的所有标签,用于选择
  • drop:丢弃匹配到regex的源标签,而会收集没有匹配到的所有标签,用于排除
  • labeldrop:使用regex匹配标签,符合regex规则的标签将从target实例中移除,其实也就是不收集不保存
  • labelkeep:使用regex匹配标签,仅收集符合regex规则的标签,不符合的不收集