prometheus.exporter.blackbox
prometheus.exporter.blackbox
组件嵌入 blackbox_exporter
。 blackbox_exporter
允许您收集黑盒指标(探测)并将它们作为 Prometheus 指标公开。
使用方法
prometheus.exporter.blackbox "LABEL" {
target {
name = "example"
address = "EXAMPLE_ADDRESS"
}
}
或
prometheus.exporter.blackbox "LABEL" {
targets = TARGET_LIST
}
参数
以下参数可用于配置导出器的行为。省略的字段将采用其默认值。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
config_file | 字符串 | blackbox_exporter 配置文件路径。 | 否 | |
config | string 或 secret | blackbox_exporter 配置作为内联字符串。 | 否 | |
probe_timeout_offset | 持续时间 | 在探测目标时从超时时间中减去的秒数偏移量。 | "0.5s" | 否 |
targets | list(map(string)) | 黑盒目标。 | 否 |
必须指定 config_file
或 config
。config_file
参数指向一个定义要使用哪些 blackbox_exporter
模块的 YAML 文件。config
参数必须是一个定义要使用哪些 blackbox_exporter
模块的 YAML 文档字符串。config
通常通过使用其他组件的导出项来加载。例如,
local.file.LABEL.content
remote.http.LABEL.content
remote.s3.LABEL.content
您不能在同一个配置文件中使用 targets
参数和 target 块。当黑盒目标无法作为目标块传递而由其他组件提供时,必须使用 targets
参数。
您可以将以下标签设置为目标
name
:要探测的目标名称(必需)。address
:要探测的目标地址(必需)。module
:用于探测的黑盒模块。
组件将任何额外的标签传递给导出的目标。
有关生成配置文件的更多信息,请参阅 blackbox_exporter
。
块
以下块在 prometheus.exporter.blackbox
的定义中支持,用于配置收集器特定的选项
层次结构 | 名称 | 描述 | 必需 |
---|---|---|---|
target | target | 配置黑盒目标。 | 否 |
target 块
target
块定义了单个黑盒目标。可以多次指定 target
块以定义多个目标。name
属性是必需的,并将用于目标的 job
标签。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
name | 字符串 | 要探测的目标名称。 | 是 | |
address | 字符串 | 要探测的目标地址。 | 是 | |
module | 字符串 | 用于探测的黑盒模块。 | "" | 否 |
labels | map(string) | 要添加到目标的标签。 | 否 |
在 labels
参数中指定的标签不会覆盖由 blackbox_exporter
设置的标签。
导出字段
以下字段被导出,并且可以被其他组件引用。
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 可用于收集导出器指标的目标。 |
例如,targets
可以传递给 discovery.relabel
组件以重写目标的标签集,或者传递给收集公开指标的 prometheus.scrape
组件。
导出的目标使用由 run 命令 指定的配置的 内存流量 地址。
组件健康
prometheus.exporter.blackbox
仅在提供无效配置时报告为不健康。在这些情况下,导出字段保留其最后健康值。
调试信息
prometheus.exporter.blackbox
不公开任何组件特定的调试信息。
调试指标
prometheus.exporter.blackbox
不公开任何组件特定的调试指标。
示例
使用黑盒导出器配置文件收集指标
此示例使用 prometheus.scrape
组件 从 prometheus.exporter.blackbox
收集指标。它向由 grafana
目标发出的指标添加了额外的标签 env="dev"
。example
目标没有添加任何标签。
使用 config_file
参数来定义要使用哪个 blackbox_exporter
模块。您可以使用blackbox 示例配置文件。
prometheus.exporter.blackbox "example" {
config_file = "blackbox_modules.yml"
target {
name = "example"
address = "https://example.com"
module = "http_2xx"
}
target {
name = "grafana"
address = "https://grafana.org.cn"
module = "http_2xx"
labels = {
"env" = "dev",
}
}
}
// Configure a prometheus.scrape component to collect blackbox metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.blackbox.example.targets
forward_to = [prometheus.remote_write.demo.receiver]
}
prometheus.remote_write "demo" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
替换以下内容
PROMETHEUS_REMOTE_WRITE_URL
:将指标发送到兼容 Prometheus remote_write 服务的 URL。USERNAME
:用于认证remote_write
API 的用户名。PASSWORD
:用于认证remote_write
API 的密码。
使用嵌入式配置收集指标
本例使用嵌入式配置
prometheus.exporter.blackbox "example" {
config = "{ modules: { http_2xx: { prober: http, timeout: 5s } } }"
target {
name = "example"
address = "https://example.com"
module = "http_2xx"
}
target {
name = "grafana"
address = "https://grafana.org.cn"
module = "http_2xx"
labels = {
"env" = "dev",
}
}
}
// Configure a prometheus.scrape component to collect blackbox metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.blackbox.example.targets
forward_to = [prometheus.remote_write.demo.receiver]
}
prometheus.remote_write "demo" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
从动态目标集中收集指标
此示例与上述示例相同,但黑盒目标是通过 discovery.file
组件发现的,并发送到 prometheus.exporter.blackbox
discovery.file "example" {
files = ["targets.yml"]
}
prometheus.exporter.blackbox "example" {
config = "{ modules: { http_2xx: { prober: http, timeout: 5s } } }"
targets = discovery.file.example.targets
}
prometheus.scrape "example" {
targets = prometheus.exporter.blackbox.example.targets
forward_to = [prometheus.remote_write.example.receiver]
}
prometheus.remote_write "example" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
此示例中的 YAML 文件如下所示
- targets:
- localhost:9009
labels:
name: t1
module: http_2xx
other_label: example
- targets:
- localhost:9009
labels:
name: t2
module: http_2xx
替换以下内容
PROMETHEUS_REMOTE_WRITE_URL
:将指标发送到兼容 Prometheus remote_write 服务的 URL。USERNAME
:用于认证remote_write
API 的用户名。PASSWORD
:用于认证remote_write
API 的密码。
兼容组件
prometheus.exporter.blackbox
有以下可以由以下组件消费的导出
- 消费 目标 的组件
注意
连接某些组件可能不合适,或者组件可能需要进一步配置才能正确连接。有关更多详细信息,请参阅链接的文档。