DataSourceWithBackend: Add queryGroupId to find correlated/related queries (#64587)

* add `correlationId` to queries

* trace correlation id in backend

* add correlation id to loki's span

* add correlation id to query chunks

* fix test

* fix DataSourceWithBackend test

* change to `queryGroupId`

* remove empty line

* fix test in `DataSourceWithBackend`
This commit is contained in:
Sven Grossmann
2023-03-17 15:48:13 +01:00
committed by GitHub
parent 6f83a45e1b
commit 7261c6f7cd
8 changed files with 24 additions and 3 deletions

View File

@ -18,6 +18,7 @@ func TestTracingHeaderMiddleware(t *testing.T) {
req.Header[`X-Datasource-Uid`] = []string{}
req.Header[`X-Grafana-Org-Id`] = []string{}
req.Header[`X-Panel-Id`] = []string{}
req.Header[`X-Query-Group-Id`] = []string{}
pluginCtx := backend.PluginContext{
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
@ -111,6 +112,7 @@ func TestTracingHeaderMiddleware(t *testing.T) {
req.Header[`X-Datasource-Uid`] = []string{"aIyC_OcVz"}
req.Header[`X-Grafana-Org-Id`] = []string{"1"}
req.Header[`X-Panel-Id`] = []string{"2"}
req.Header[`X-Query-Group-Id`] = []string{"d26e337d-cb53-481a-9212-0112537b3c1a"}
pluginCtx := backend.PluginContext{
DataSourceInstanceSettings: &backend.DataSourceInstanceSettings{},
@ -131,11 +133,12 @@ func TestTracingHeaderMiddleware(t *testing.T) {
})
require.NoError(t, err)
require.Len(t, cdt.QueryDataReq.GetHTTPHeaders(), 4)
require.Len(t, cdt.QueryDataReq.GetHTTPHeaders(), 5)
require.Equal(t, `lN53lOcVk`, cdt.QueryDataReq.GetHTTPHeader(`X-Dashboard-Uid`))
require.Equal(t, `aIyC_OcVz`, cdt.QueryDataReq.GetHTTPHeader(`X-Datasource-Uid`))
require.Equal(t, `1`, cdt.QueryDataReq.GetHTTPHeader(`X-Grafana-Org-Id`))
require.Equal(t, `2`, cdt.QueryDataReq.GetHTTPHeader(`X-Panel-Id`))
require.Equal(t, `d26e337d-cb53-481a-9212-0112537b3c1a`, cdt.QueryDataReq.GetHTTPHeader(`X-Query-Group-Id`))
})
t.Run("tracing headers are set for health check", func(t *testing.T) {
@ -153,11 +156,12 @@ func TestTracingHeaderMiddleware(t *testing.T) {
})
require.NoError(t, err)
require.Len(t, cdt.CheckHealthReq.GetHTTPHeaders(), 4)
require.Len(t, cdt.CheckHealthReq.GetHTTPHeaders(), 5)
require.Equal(t, `lN53lOcVk`, cdt.CheckHealthReq.GetHTTPHeader(`X-Dashboard-Uid`))
require.Equal(t, `aIyC_OcVz`, cdt.CheckHealthReq.GetHTTPHeader(`X-Datasource-Uid`))
require.Equal(t, `1`, cdt.CheckHealthReq.GetHTTPHeader(`X-Grafana-Org-Id`))
require.Equal(t, `2`, cdt.CheckHealthReq.GetHTTPHeader(`X-Panel-Id`))
require.Equal(t, `d26e337d-cb53-481a-9212-0112537b3c1a`, cdt.CheckHealthReq.GetHTTPHeader(`X-Query-Group-Id`))
})
})
}