OpenTelemetry过滤器语法:是否支持`not in`多值排除规则?
OpenTelemetry Filter Processor 多值排除语法支持
目前使用OpenTelemetry的filter处理器时,通过多个!=逻辑组合来排除指定服务名称,配置示例如下:
processors: filter: error_mode: ignore traces: span: - 'resource.attributes["service.name"] != "test" and resource.attributes["service.name"] != "test2"' logs: log_record: - 'resource.attributes["service.name"] != "test" and resource.attributes["service.name"] != "test2"' metrics: metric: - 'resource.attributes["service.name"] != "test" and resource.attributes["service.name"] != "test2"'
想咨询是否支持类似resource.attributes["service.name"] not in ["test", "test2"]这类更简洁的多值排除过滤器语法。
OpenTelemetry的filter处理器支持in和not in操作符用于多值匹配/排除,你可以直接替换原有多个!=的组合逻辑,简化配置。
修改后的配置示例如下:
processors: filter: error_mode: ignore traces: span: - 'resource.attributes["service.name"] not in ["test", "test2"]' logs: log_record: - 'resource.attributes["service.name"] not in ["test", "test2"]' metrics: metric: - 'resource.attributes["service.name"] not in ["test", "test2"]'
这个语法是OpenTelemetry Collector filter处理器的原生支持特性,逻辑和你期望的完全一致,能一次性排除多个指定服务名称,让配置更简洁易维护。
内容的提问来源于stack exchange,提问作者Truffaldino
相关产品推荐
相关产品推荐

