View a markdown version of this page

指标管线处理器 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

指标管线处理器

指标管线处理器在摄取期间会转换 OTel 指标数据点。一个指标管线最多可以有 20 个处理器,按定义的顺序依次应用。

处理器使用 OTTL 路径表达式来定位不同范围的属性:

OTTL 路径范围
路径 范围 示例

resource.attributes["key"]

资源级别

resource.attributes["service.name"]

instrumentation_scope.attributes["key"]

范围属性

instrumentation_scope.attributes["library"]

datapoint.attributes["key"]

数据点级别

datapoint.attributes["status_code"]

attributes["key"]

数据点的简称

attributes["environment"]

add_attributes 处理器

添加或覆盖指标数据点的属性。适用于所有时间性类型。

OTTL 等效项:set(attributes["key"], "value")

配置

使用以下参数配置 add_attributes 处理器:

processor: - add_attributes: attributes: - key: resource.attributes["team"] value: "payments" - key: attributes["environment"] value: "production" - key: instrumentation_scope.attributes["version"] value: "1.0" overwrite_if_key_exists: true
参数
attributes(必需)

要添加的属性对象数组。

attributes[].key(必需)

OTTL 属性路径,指定要添加属性的位置。

attributes[].value(必需)

要分配的字符串值。

attributes[].overwrite_if_key_exists(可选)

布尔值。如果为 true,则覆盖现有值。默认值为 false。设置为 true 时,此操作将被视为破坏性操作,并且不适用于累积指标或已出售指标。

delete_attributes 处理器

从指标数据点中移除特定属性。不适用于累积指标或已出售指标。

OTTL 等效项:delete_key(attributes, "key")

配置

使用以下参数配置 delete_attributes 处理器:

processor: - delete_attributes: with_keys: - resource.attributes["obsolete"] - attributes["temp"] - datapoint.attributes["debug"]
参数
with_keys(必需)

要移除的 OTTL 属性路径数组。

rename_attributes 处理器

重命名指标数据点的属性键。不适用于累积指标或已出售指标。

OTTL 等效项:set() + delete_key()

配置

使用以下参数配置 rename_attributes 处理器:

processor: - rename_attributes: attributes: - from_key: resource.attributes["old_key"] to_key: resource.attributes["new_key"] overwrite_if_to_key_exists: true
参数
attributes(必需)

重命名操作数组。

attributes[].from_key(必需)

来源 OTTL 属性路径。

attributes[].to_key(必需)

目标 OTTL 属性路径。

attributes[].overwrite_if_to_key_exists(可选)

布尔值。如果为 true,则当目标键存在时覆盖它。默认值为 false

rename_metrics 处理器

重命名指标名称。不适用于累积指标或已出售指标。

OTTL 等效项:set(name, "new.metric.name") where name == "old.metric.name"

配置

使用以下参数配置 rename_metrics 处理器:

processor: - rename_metrics: metrics: - from: "old.metric.name" to: "new.metric.name"
参数
metrics(必需)

重命名操作数组。

metrics[].from(必需)

当前指标名称。

metrics[].to(必需)

新指标名称。

substitute_attribute_values 处理器

通过查找表映射属性值。不适用于累积指标或已出售指标。

OTTL 等效项:replace_match()

配置

使用以下参数配置 substitute_attribute_values 处理器:

processor: - substitute_attribute_values: attributes: - key: resource.attributes["region"] from: "us-east-1a" to: "us-east-1"
参数
attributes(必需)

替换操作数组。

attributes[].key(必需)

要匹配的 OTTL 属性路径。

attributes[].from(必需)

要匹配的值。

attributes[].to(必需)

替换值。

完整示例

下面的示例在单个管线中使用所有五个处理器:

pipeline: source: cloudwatch_metrics: format: otlp selection_criteria: - match_all: - 'resource.attributes["service.name"] == "my-service"' - 'metric.name == "CPUUtilization"' processor: - add_attributes: attributes: - key: resource.attributes["env"] value: "prod" overwrite_if_key_exists: true - delete_attributes: with_keys: - resource.attributes["internal.trace"] - rename_attributes: attributes: - from_key: resource.attributes["old_key"] to_key: resource.attributes["new_key"] - rename_metrics: metrics: - from: "CPUUtilization" to: "system.cpu.utilization" - substitute_attribute_values: attributes: - key: resource.attributes["environment"] from: "dev" to: "development" sink: - cloudwatch_metrics: {}

处理器兼容性和限制

最大处理器数量

一个指标管线最多可以有 20 个处理器。

破坏性处理器和时间性

破坏性处理器(delete_attributesrename_attributesrename_metricssubstitute_attribute_valuesadd_attributes,其中 overwrite_if_key_exists: true)不适用于累积指标或已出售指标。这些指标会原封不动地传递。

已出售指标保护

破坏性处理器无法修改 instrumentation_scope.name 开头为 cloudwatch.aws/ 的指标。这些指标会原封不动地传递。