菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow prometheusbreadcrumb arrow prometheus.exporter.blackbox
开源

prometheus.exporter.blackbox

prometheus.exporter.blackbox 组件嵌入 blackbox_exporterblackbox_exporter 允许您收集黑盒指标(探测)并将它们作为 Prometheus 指标公开。

使用方法

alloy
prometheus.exporter.blackbox "LABEL" {
  target {
    name    = "example"
    address = "EXAMPLE_ADDRESS"
  }
}

alloy
prometheus.exporter.blackbox "LABEL" {
  targets = TARGET_LIST
}

参数

以下参数可用于配置导出器的行为。省略的字段将采用其默认值。

名称类型描述默认值必需
config_file字符串blackbox_exporter 配置文件路径。
configstringsecretblackbox_exporter 配置作为内联字符串。
probe_timeout_offset持续时间在探测目标时从超时时间中减去的秒数偏移量。"0.5s"
targetslist(map(string))黑盒目标。

必须指定 config_fileconfigconfig_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 的定义中支持,用于配置收集器特定的选项

层次结构名称描述必需
targettarget配置黑盒目标。

target 块

target 块定义了单个黑盒目标。可以多次指定 target 块以定义多个目标。name 属性是必需的,并将用于目标的 job 标签。

名称类型描述默认值必需
name字符串要探测的目标名称。
address字符串要探测的目标地址。
module字符串用于探测的黑盒模块。""
labelsmap(string)要添加到目标的标签。

labels 参数中指定的标签不会覆盖由 blackbox_exporter 设置的标签。

导出字段

以下字段被导出,并且可以被其他组件引用。

名称类型描述
targetslist(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 示例配置文件

alloy
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 的密码。

使用嵌入式配置收集指标

本例使用嵌入式配置

alloy
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

alloy
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 文件如下所示

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 有以下可以由以下组件消费的导出

注意

连接某些组件可能不合适,或者组件可能需要进一步配置才能正确连接。有关更多详细信息,请参阅链接的文档。