diff --git a/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx b/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx index 6b215838207..369c5b82eba 100644 --- a/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx +++ b/public/app/plugins/datasource/loki/querybuilder/components/LokiQueryEditorSelector.tsx @@ -92,15 +92,35 @@ export const LokiQueryEditorSelector = React.memo((props) { + const visualQuery = buildVisualQueryFromString(query.expr || ''); + reportInteraction('grafana_loki_query_patterns_opened', { + version: 'v1', + app: app ?? '', + editorMode: query.editorMode, + preSelectedOperationsCount: visualQuery.query.operations.length, + preSelectedLabelsCount: visualQuery.query.labels.length, + }); + }} placeholder="Query patterns" aria-label={selectors.components.QueryBuilder.queryPatterns} allowCustomValue onChange={({ value }: SelectableValue) => { - const result = buildVisualQueryFromString(query.expr || ''); - result.query.operations = value?.operations!; + const visualQuery = buildVisualQueryFromString(query.expr || ''); + reportInteraction('grafana_loki_query_patterns_selected', { + version: 'v1', + app: app ?? '', + editorMode: query.editorMode, + selectedPattern: value?.name, + preSelectedOperationsCount: visualQuery.query.operations.length, + preSelectedLabelsCount: visualQuery.query.labels.length, + }); + + // Update operations + visualQuery.query.operations = value?.operations!; onChange({ ...query, - expr: lokiQueryModeller.renderQuery(result.query), + expr: lokiQueryModeller.renderQuery(visualQuery.query), }); }} options={lokiQueryModeller.getQueryPatterns().map((x) => ({ label: x.name, value: x }))}