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

otelcol.exporter.prometheus

otelcol.exporter.prometheus 从其他 otelcol 组件接受 OTLP 格式的指标,将指标转换为 Prometheus 格式,并将结果指标转发到 prometheus 组件。

注意

otelcol.exporter.prometheus 是一个与 OpenTelemetry Collector 的 prometheus 导出器无关的自定义组件。

指标转换遵循 OpenTelemetry Metrics Data Model 规范。

可以通过指定不同的标签来指定多个 otelcol.exporter.prometheus 组件。

用法

合金
otelcol.exporter.prometheus "LABEL" {
  forward_to = [...]
}

参数

otelcol.exporter.prometheus 支持以下参数

名称类型描述默认值必需
include_target_info布尔型是否包含 target_info 指标。true
include_scope_info布尔型是否包含 otel_scope_info 指标。false
include_scope_labels布尔型是否在所有指标中包含额外的 OTLP 标签。true
add_metric_suffixes布尔型是否将类型和单位后缀添加到指标名称。true
gc_frequency持续时间从内存中清理过时指标的频率。"5m"
forward_to列表(MetricsReceiver)将转换后的 Prometheus 指标转发到何处。
resource_to_telemetry_conversion布尔型是否将 OTel 资源属性转换为 Prometheus 标签。false

默认情况下,OpenTelemetry 资源被转换为 target_info 指标。OpenTelemetry 仪器范围被转换为 otel_scope_info 指标。分别设置 include_scope_infoinclude_target_info 参数为 false,以禁用自定义指标。

include_scope_labelstrue 时,将 otel_scope_nameotel_scope_version 标签添加到每个转换后的指标样本。

include_target_info 为 true 时,OpenTelemetry Collector 资源被转换为 target_info 指标。

注意

OTLP 指标可能有大量资源属性。将 resource_to_telemetry_conversion 设置为 true 将会将所有这些属性转换为 Prometheus 标签,这可能不是您想要的。与其使用 resource_to_telemetry_conversion,大多数用户需要在使用 otelcol.exporter.prometheus 之前使用 otelcol.processor.transform 将 OTLP 资源属性转换为 OTLP 指标数据点属性。有关示例,请参阅 从 OTLP 资源属性创建 Prometheus 标签

以下块可以在 otelcol.exporter.prometheus 的定义内部使用

层次结构描述必需
debug_metricsdebug_metrics配置组件生成的指标以监控其状态。

debug_metrics 块

debug_metrics 块配置组件生成的指标以监控其状态。

以下参数被支持

名称类型描述默认值必需
disable_high_cardinality_metrics布尔型是否禁用某些高基数指标。true
level字符串控制包装收集器发出的指标的详细程度。"detailed"

disable_high_cardinality_metrics 是 Grafana Alloy 在 OpenTelemetry Collector 中的 telemetry.disableHighCardinalityMetrics 功能开关的等价物。它删除可能导致高基数指标的属性。例如,从 HTTP 和 gRPC 连接的指标中删除具有 IP 地址和端口号的属性。

注意

如果已配置,则 disable_high_cardinality_metrics 仅适用于 otelcol.exporter.*otelcol.receiver.* 组件。

level 是 OpenTelemetry Collector 中的 telemetry.metrics.level 功能开关的 Alloy 等价物。可能的值是 "none""basic""normal""detailed"

导出字段

以下字段被导出并可由其他组件引用

名称类型描述
inputotelcol.Consumer其他组件可以使用该值发送遥测数据。

input 接受用于指标的 otelcol.Consumer 数据。其他遥测信号被忽略。

发送到 input 的指标被转换为与 Prometheus 兼容的指标,并转发到 forward_to 参数。

以下指标在转换过程中被丢弃

  • 使用 delta 聚合时间性的指标。

    注意

    Prometheus 原生不支持 delta 指标。如果您的 Alloy 实例消耗 delta OTLP 指标,您可以在使用 otelcol.exporter.prometheus 之前,使用 otelcol.processor.deltatocumulative 将其转换为累积 OTLP 指标。

组件健康

otelcol.exporter.prometheus 仅在提供无效配置时报告为不健康。

调试信息

otelcol.exporter.prometheus 不公开任何特定组件的调试信息。

示例

基本用法

此示例接受 OTLP 上的指标,并使用 prometheus.remote_write 进行转发

合金
otelcol.receiver.otlp "default" {
  grpc {}

  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus "default" {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write "mimir" {
  endpoint {
    url = "http://mimir:9009/api/v1/push"
  }
}

从 OTLP 资源属性创建 Prometheus 标签

此示例使用 otelcol.processor.transformkey1key2 OTLP 资源属性添加额外的 key1key2 OTLP 指标数据点属性。

otelcol.exporter.prometheus 然后将 key1key2 转换为 Prometheus 标签,以及任何其他 OTLP 指标数据点属性。

这避免了需要将 resource_to_telemetry_conversion 设置为 true,这可能会创建太多不必要的指标标签。

合金
otelcol.receiver.otlp "default" {
  grpc {}

  output {
    metrics = [otelcol.processor.transform.default.input]
  }
}

otelcol.processor.transform "default" {
  error_mode = "ignore"

  metric_statements {
    context = "datapoint"

    statements = [
      `set(attributes["key1"], resource.attributes["key1"])`,
      `set(attributes["key2"], resource.attributes["key2"])`,
    ]
  }

  output {
    metrics = [otelcol.exporter.prometheus.default.input]
  }
}

otelcol.exporter.prometheus "default" {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write "mimir" {
  endpoint {
    url = "http://mimir:9009/api/v1/push"
  }
}

兼容组件

otelcol.exporter.prometheus 可以接受以下组件的参数

otelcol.exporter.prometheus 的导出可以被以下组件消耗

注意

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