From ece2988d0d3edf4647d79f156331cec85da29a08 Mon Sep 17 00:00:00 2001 From: Ankit Nayan Date: Mon, 26 Dec 2022 22:11:23 +0530 Subject: [PATCH] feat: added new event for length of filters in logs search page --- .../app/clickhouseReader/reader.go | 22 ++++++++++++++++--- pkg/query-service/app/logs/parser.go | 8 +++---- pkg/query-service/telemetry/telemetry.go | 1 + 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pkg/query-service/app/clickhouseReader/reader.go b/pkg/query-service/app/clickhouseReader/reader.go index ab07dbbd23..d7da4a41e5 100644 --- a/pkg/query-service/app/clickhouseReader/reader.go +++ b/pkg/query-service/app/clickhouseReader/reader.go @@ -45,6 +45,7 @@ import ( am "go.signoz.io/signoz/pkg/query-service/integrations/alertManager" "go.signoz.io/signoz/pkg/query-service/interfaces" "go.signoz.io/signoz/pkg/query-service/model" + "go.signoz.io/signoz/pkg/query-service/telemetry" "go.signoz.io/signoz/pkg/query-service/utils" "go.uber.org/zap" ) @@ -3212,11 +3213,16 @@ func (r *ClickHouseReader) GetLogs(ctx context.Context, params *model.LogsFilter } isPaginatePrev := logs.CheckIfPrevousPaginateAndModifyOrder(params) - filterSql, err := logs.GenerateSQLWhere(fields, params) + filterSql, lenFilters, err := logs.GenerateSQLWhere(fields, params) if err != nil { return nil, &model.ApiError{Err: err, Typ: model.ErrorBadData} } + data := map[string]interface{}{ + "lenFilters": lenFilters, + } + telemetry.GetInstance().SendEvent(telemetry.TELEMETRY_EVENT_LOGS_FILTERS, data) + query := fmt.Sprintf("%s from %s.%s", constants.LogsSQLSelect, r.logsDB, r.logsTable) if filterSql != "" { @@ -3246,10 +3252,15 @@ func (r *ClickHouseReader) TailLogs(ctx context.Context, client *model.LogsTailC return } - filterSql, err := logs.GenerateSQLWhere(fields, &model.LogsFilterParams{ + filterSql, lenFilters, err := logs.GenerateSQLWhere(fields, &model.LogsFilterParams{ Query: client.Filter.Query, }) + data := map[string]interface{}{ + "lenFilters": lenFilters, + } + telemetry.GetInstance().SendEvent(telemetry.TELEMETRY_EVENT_LOGS_FILTERS, data) + if err != nil { client.Error <- err return @@ -3326,13 +3337,18 @@ func (r *ClickHouseReader) AggregateLogs(ctx context.Context, params *model.Logs return nil, apiErr } - filterSql, err := logs.GenerateSQLWhere(fields, &model.LogsFilterParams{ + filterSql, lenFilters, err := logs.GenerateSQLWhere(fields, &model.LogsFilterParams{ Query: params.Query, }) if err != nil { return nil, &model.ApiError{Err: err, Typ: model.ErrorBadData} } + data := map[string]interface{}{ + "lenFilters": lenFilters, + } + telemetry.GetInstance().SendEvent(telemetry.TELEMETRY_EVENT_LOGS_FILTERS, data) + query := "" if params.GroupBy != "" { query = fmt.Sprintf("SELECT toInt64(toUnixTimestamp(toStartOfInterval(toDateTime(timestamp/1000000000), INTERVAL %d minute))*1000000000) as ts_start_interval, toString(%s) as groupBy, "+ diff --git a/pkg/query-service/app/logs/parser.go b/pkg/query-service/app/logs/parser.go index 5e4a195817..5e63abdc34 100644 --- a/pkg/query-service/app/logs/parser.go +++ b/pkg/query-service/app/logs/parser.go @@ -279,20 +279,20 @@ func CheckIfPrevousPaginateAndModifyOrder(params *model.LogsFilterParams) (isPag return } -func GenerateSQLWhere(allFields *model.GetFieldsResponse, params *model.LogsFilterParams) (string, error) { +func GenerateSQLWhere(allFields *model.GetFieldsResponse, params *model.LogsFilterParams) (string, int, error) { var tokens []string var err error var sqlWhere string if params.Query != "" { tokens, err = parseLogQuery(params.Query) if err != nil { - return sqlWhere, err + return sqlWhere, -1, err } } tokens, err = replaceInterestingFields(allFields, tokens) if err != nil { - return sqlWhere, err + return sqlWhere, -1, err } filterTokens := []string{} @@ -342,5 +342,5 @@ func GenerateSQLWhere(allFields *model.GetFieldsResponse, params *model.LogsFilt sqlWhere = strings.Join(tokens, "") - return sqlWhere, nil + return sqlWhere, len(tokens), nil } diff --git a/pkg/query-service/telemetry/telemetry.go b/pkg/query-service/telemetry/telemetry.go index ef94820baa..17f93f6339 100644 --- a/pkg/query-service/telemetry/telemetry.go +++ b/pkg/query-service/telemetry/telemetry.go @@ -32,6 +32,7 @@ const ( TELEMETRY_LICENSE_ACT_FAILED = "License Activation Failed" TELEMETRY_EVENT_ENVIRONMENT = "Environment" TELEMETRY_EVENT_LANGUAGE = "Language" + TELEMETRY_EVENT_LOGS_FILTERS = "Logs Filters" ) const api_key = "4Gmoa4ixJAUHx2BpJxsjwA1bEfnwEeRz"