diff --git a/span-processing-config-service-api/src/main/proto/org/hypertrace/span/processing/config/service/v1/span_filter.proto b/span-processing-config-service-api/src/main/proto/org/hypertrace/span/processing/config/service/v1/span_filter.proto index a7cb10df..20f3efe5 100644 --- a/span-processing-config-service-api/src/main/proto/org/hypertrace/span/processing/config/service/v1/span_filter.proto +++ b/span-processing-config-service-api/src/main/proto/org/hypertrace/span/processing/config/service/v1/span_filter.proto @@ -8,6 +8,7 @@ message SpanFilter { oneof span_filter_expression { LogicalSpanFilterExpression logical_span_filter = 1; RelationalSpanFilterExpression relational_span_filter = 2; + UnarySpanFilterExpression unary_span_filter = 3; } } @@ -16,6 +17,14 @@ message LogicalSpanFilterExpression { repeated SpanFilter operands = 2; } +message UnarySpanFilterExpression { + oneof left_operand { + string span_attribute_key = 1; + Field field = 2; + } + UnaryOperator operator = 3; +} + message RelationalSpanFilterExpression { oneof left_operand { string span_attribute_key = 1; @@ -61,3 +70,9 @@ enum RelationalOperator { RELATIONAL_OPERATOR_REGEX_MATCH = 6; RELATIONAL_OPERATOR_IN = 7; } + +enum UnaryOperator { + UNARY_OPERATOR_UNSPECIFIED = 0; + UNARY_OPERATOR_EXISTS = 1; + UNARY_OPERATOR_NOT_EXISTS = 2; +}