diff --git a/pkg/query-service/druidQuery/query.go b/pkg/query-service/druidQuery/query.go index bb107e7624..7aabf4cef0 100644 --- a/pkg/query-service/druidQuery/query.go +++ b/pkg/query-service/druidQuery/query.go @@ -45,6 +45,12 @@ func buildFilters(queryParams *model.SpanSearchParams) (*godruid.Filter, error) newFilter := godruid.FilterSelector("Name", queryParams.OperationName) filter = godruid.FilterAnd(filter, newFilter) + } + if len(queryParams.Kind) != 0 { + + newFilter := godruid.FilterSelector("Kind", queryParams.Kind) + filter = godruid.FilterAnd(filter, newFilter) + } // zap.S().Debug("MinDuration: ", queryParams.MinDuration) @@ -75,6 +81,8 @@ func buildFilters(queryParams *model.SpanSearchParams) (*godruid.Filter, error) valuesFilter := godruid.FilterSearch("TagsValues", fmt.Sprintf("%s", item.Value)) keysFilter := godruid.FilterSelector("TagsKeys", fmt.Sprintf("%s", item.Key)) newFilter = godruid.FilterAnd(valuesFilter, keysFilter) + } else if item.Operator == "isnotnull" { + newFilter = godruid.FilterSelector("TagsKeys", fmt.Sprintf("%s", item.Key)) } else { return nil, fmt.Errorf("Tag Operator %s not supported", item.Operator) } @@ -110,6 +118,12 @@ func buildFiltersForSpansAggregates(queryParams *model.SpanSearchAggregatesParam newFilter := godruid.FilterSelector("Name", queryParams.OperationName) filter = godruid.FilterAnd(filter, newFilter) + } + if len(queryParams.Kind) != 0 { + + newFilter := godruid.FilterSelector("Kind", queryParams.Kind) + filter = godruid.FilterAnd(filter, newFilter) + } // zap.S().Debug("MinDuration: ", queryParams.MinDuration) @@ -140,6 +154,8 @@ func buildFiltersForSpansAggregates(queryParams *model.SpanSearchAggregatesParam valuesFilter := godruid.FilterSearch("TagsValues", fmt.Sprintf("%s", item.Value)) keysFilter := godruid.FilterSelector("TagsKeys", fmt.Sprintf("%s", item.Key)) newFilter = godruid.FilterAnd(valuesFilter, keysFilter) + } else if item.Operator == "isnotnull" { + newFilter = godruid.FilterSelector("TagsKeys", fmt.Sprintf("%s", item.Key)) } else { return nil, fmt.Errorf("Tag Operator %s not supported", item.Operator) }