diff --git a/pkg/query-service/druidQuery/query.go b/pkg/query-service/druidQuery/query.go index 88ebafe83d..bb107e7624 100644 --- a/pkg/query-service/druidQuery/query.go +++ b/pkg/query-service/druidQuery/query.go @@ -79,6 +79,13 @@ func buildFilters(queryParams *model.SpanSearchParams) (*godruid.Filter, error) return nil, fmt.Errorf("Tag Operator %s not supported", item.Operator) } + if item.Key == "error" && item.Value == "true" { + statusCodeFilter := godruid.FilterBound("StatusCode", "500", "600", false, true, "numeric") + filterError := godruid.FilterOr(statusCodeFilter, newFilter) + filter = godruid.FilterAnd(filter, filterError) + continue + } + filter = godruid.FilterAnd(filter, newFilter) } @@ -137,6 +144,13 @@ func buildFiltersForSpansAggregates(queryParams *model.SpanSearchAggregatesParam return nil, fmt.Errorf("Tag Operator %s not supported", item.Operator) } + if item.Key == "error" && item.Value == "true" { + statusCodeFilter := godruid.FilterBound("StatusCode", "500", "600", false, true, "numeric") + filterError := godruid.FilterOr(statusCodeFilter, newFilter) + filter = godruid.FilterAnd(filter, filterError) + continue + } + filter = godruid.FilterAnd(filter, newFilter) }