diff --git a/public/app/plugins/datasource/tempo/QueryEditor/QueryField.tsx b/public/app/plugins/datasource/tempo/QueryEditor/QueryField.tsx index 6c43346b531..fe226fcb6ff 100644 --- a/public/app/plugins/datasource/tempo/QueryEditor/QueryField.tsx +++ b/public/app/plugins/datasource/tempo/QueryEditor/QueryField.tsx @@ -3,7 +3,7 @@ import React from 'react'; import useAsync from 'react-use/lib/useAsync'; import { QueryEditorProps, SelectableValue } from '@grafana/data'; -import { config } from '@grafana/runtime'; +import { config, reportInteraction } from '@grafana/runtime'; import { Badge, FileDropzone, @@ -67,7 +67,7 @@ class TempoQueryFieldComponent extends React.PureComponent { }; render() { - const { query, onChange, datasource } = this.props; + const { query, onChange, datasource, app } = this.props; const logsDatasourceUid = datasource.getLokiSearchDS(); @@ -104,6 +104,13 @@ class TempoQueryFieldComponent extends React.PureComponent { options={queryTypeOptions} value={query.queryType} onChange={(v) => { + reportInteraction('grafana_traces_query_type_changed', { + datasourceType: 'tempo', + app: app ?? '', + newQueryType: v, + previousQueryType: query.queryType ?? '', + }); + this.onClearResults(); onChange({ diff --git a/public/app/plugins/datasource/tempo/datasource.test.ts b/public/app/plugins/datasource/tempo/datasource.test.ts index 36d5d2c8531..e692163b64a 100644 --- a/public/app/plugins/datasource/tempo/datasource.test.ts +++ b/public/app/plugins/datasource/tempo/datasource.test.ts @@ -16,6 +16,13 @@ import { BackendDataSourceResponse, FetchResponse, setBackendSrv, setDataSourceS import { DEFAULT_LIMIT, TempoJsonData, TempoDatasource, TempoQuery } from './datasource'; import mockJson from './mockJsonResponse.json'; +jest.mock('@grafana/runtime', () => { + return { + ...jest.requireActual('@grafana/runtime'), + reportInteraction: jest.fn(), + }; +}); + describe('Tempo data source', () => { // Mock the console error so that running the test suite doesnt throw the error const origError = console.error; diff --git a/public/app/plugins/datasource/tempo/datasource.ts b/public/app/plugins/datasource/tempo/datasource.ts index 87057f9e079..2ee50f259bf 100644 --- a/public/app/plugins/datasource/tempo/datasource.ts +++ b/public/app/plugins/datasource/tempo/datasource.ts @@ -18,6 +18,7 @@ import { BackendSrvRequest, DataSourceWithBackend, getBackendSrv, + reportInteraction, TemplateSrv, getTemplateSrv, } from '@grafana/runtime'; @@ -159,6 +160,15 @@ export class TempoDatasource extends DataSourceWithBackend 0) { + reportInteraction('grafana_traces_traceID_queried', { + datasourceType: 'tempo', + app: options.app ?? '', + query: targets.traceId[0].query ?? '', + }); + subQueries.push(this.handleTraceIdQuery(options, targets.traceId)); }