Azure: Fix duplicated trace links (#105698)

* Add trace links to first field

* Review
This commit is contained in:
Andreas Christou 2025-06-26 15:10:19 +02:00 committed by GitHub
parent 5c1b263664
commit 58a47ef1d6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 5 deletions

View File

@ -599,7 +599,7 @@ func addTraceDataLinksToFields(query *AzureLogAnalyticsQuery, azurePortalBaseUrl
DatasourceName: dsInfo.DatasourceName, DatasourceName: dsInfo.DatasourceName,
Query: queryJSONModel, Query: queryJSONModel,
}, },
}) }, MultiField)
queryJSONModel.AzureTraces.Query = &query.TraceParentExploreQuery queryJSONModel.AzureTraces.Query = &query.TraceParentExploreQuery
AddCustomDataLink(*frame, data.DataLink{ AddCustomDataLink(*frame, data.DataLink{
@ -610,7 +610,7 @@ func addTraceDataLinksToFields(query *AzureLogAnalyticsQuery, azurePortalBaseUrl
DatasourceName: dsInfo.DatasourceName, DatasourceName: dsInfo.DatasourceName,
Query: queryJSONModel, Query: queryJSONModel,
}, },
}) }, MultiField)
linkTitle := "Explore Trace in Azure Portal" linkTitle := "Explore Trace in Azure Portal"
AddConfigLinks(*frame, tracesUrl, &linkTitle) AddConfigLinks(*frame, tracesUrl, &linkTitle)
@ -624,7 +624,7 @@ func addTraceDataLinksToFields(query *AzureLogAnalyticsQuery, azurePortalBaseUrl
DatasourceName: dsInfo.DatasourceName, DatasourceName: dsInfo.DatasourceName,
Query: logsJSONModel, Query: logsJSONModel,
}, },
}) }, SingleField)
return nil return nil
} }

View File

@ -16,17 +16,25 @@ import (
"github.com/grafana/grafana/pkg/tsdb/azuremonitor/kinds/dataquery" "github.com/grafana/grafana/pkg/tsdb/azuremonitor/kinds/dataquery"
) )
func AddCustomDataLink(frame data.Frame, dataLink data.DataLink) data.Frame { func AddCustomDataLink(frame data.Frame, dataLink data.DataLink, singleField bool) data.Frame {
for i := range frame.Fields { for i := range frame.Fields {
if frame.Fields[i].Config == nil { if frame.Fields[i].Config == nil {
frame.Fields[i].Config = &data.FieldConfig{} frame.Fields[i].Config = &data.FieldConfig{}
} }
frame.Fields[i].Config.Links = append(frame.Fields[i].Config.Links, dataLink) frame.Fields[i].Config.Links = append(frame.Fields[i].Config.Links, dataLink)
// Queries using the trace viz only need the link added to a single field
if singleField {
break
}
} }
return frame return frame
} }
const SingleField bool = true
const MultiField bool = false
func AddConfigLinks(frame data.Frame, dl string, title *string) data.Frame { func AddConfigLinks(frame data.Frame, dl string, title *string) data.Frame {
linkTitle := "View query in Azure Portal" linkTitle := "View query in Azure Portal"
if title != nil { if title != nil {
@ -39,7 +47,7 @@ func AddConfigLinks(frame data.Frame, dl string, title *string) data.Frame {
URL: dl, URL: dl,
} }
frame = AddCustomDataLink(frame, deepLink) frame = AddCustomDataLink(frame, deepLink, MultiField)
return frame return frame
} }