diff --git a/pkg/query-service/app/dashboards/model.go b/pkg/query-service/app/dashboards/model.go index fce24aedb8..a858df6159 100644 --- a/pkg/query-service/app/dashboards/model.go +++ b/pkg/query-service/app/dashboards/model.go @@ -458,6 +458,7 @@ func GetDashboardsInfo(ctx context.Context) (*model.DashboardsInfo, error) { totalDashboardsWithPanelAndName := 0 var dashboardNames []string count := 0 + queriesWithTagAttrs := 0 for _, dashboard := range dashboardsData { if isDashboardWithPanelAndName(dashboard.Data) { totalDashboardsWithPanelAndName = totalDashboardsWithPanelAndName + 1 @@ -477,6 +478,10 @@ func GetDashboardsInfo(ctx context.Context) (*model.DashboardsInfo, error) { count = count + 1 } + if isDashboardWithTagAttrs(dashboard.Data) { + queriesWithTagAttrs += 1 + } + if dashboardInfo.DashboardsWithTraceChQuery > 0 { dashboardsInfo.DashboardNamesWithTraceChQuery = append(dashboardsInfo.DashboardNamesWithTraceChQuery, dashboardName) } @@ -488,6 +493,7 @@ func GetDashboardsInfo(ctx context.Context) (*model.DashboardsInfo, error) { dashboardsInfo.TotalDashboards = len(dashboardsData) dashboardsInfo.TotalDashboardsWithPanelAndName = totalDashboardsWithPanelAndName dashboardsInfo.QueriesWithTSV2 = count + dashboardsInfo.QueriesWithTagAttrs = queriesWithTagAttrs return &dashboardsInfo, nil } @@ -499,6 +505,15 @@ func isDashboardWithTSV2(data map[string]interface{}) bool { return strings.Contains(string(jsonData), "time_series_v2") } +func isDashboardWithTagAttrs(data map[string]interface{}) bool { + jsonData, err := json.Marshal(data) + if err != nil { + return false + } + return strings.Contains(string(jsonData), "span_attributes") || + strings.Contains(string(jsonData), "tag_attributes") +} + func isDashboardWithLogsClickhouseQuery(data map[string]interface{}) bool { jsonData, err := json.Marshal(data) if err != nil { diff --git a/pkg/query-service/model/response.go b/pkg/query-service/model/response.go index c4e743ce92..5058d71534 100644 --- a/pkg/query-service/model/response.go +++ b/pkg/query-service/model/response.go @@ -656,6 +656,7 @@ type DashboardsInfo struct { TracesBasedPanels int `json:"tracesBasedPanels"` DashboardNames []string `json:"dashboardNames"` QueriesWithTSV2 int `json:"queriesWithTSV2"` + QueriesWithTagAttrs int `json:"queriesWithTagAttrs"` DashboardsWithLogsChQuery int `json:"dashboardsWithLogsChQuery"` DashboardsWithTraceChQuery int `json:"dashboardsWithTraceChQuery"` DashboardNamesWithTraceChQuery []string `json:"dashboardNamesWithTraceChQuery"` diff --git a/pkg/query-service/telemetry/telemetry.go b/pkg/query-service/telemetry/telemetry.go index 3361a69331..8f6cc02333 100644 --- a/pkg/query-service/telemetry/telemetry.go +++ b/pkg/query-service/telemetry/telemetry.go @@ -345,6 +345,7 @@ func createTelemetry() { "metricBasedPanels": dashboardsInfo.MetricBasedPanels, "tracesBasedPanels": dashboardsInfo.TracesBasedPanels, "dashboardsWithTSV2": dashboardsInfo.QueriesWithTSV2, + "dashboardsWithTagAttrs": dashboardsInfo.QueriesWithTagAttrs, "dashboardWithLogsChQuery": dashboardsInfo.DashboardsWithLogsChQuery, "dashboardWithTraceChQuery": dashboardsInfo.DashboardsWithTraceChQuery, "dashboardNamesWithTraceChQuery": dashboardsInfo.DashboardNamesWithTraceChQuery,