@grafana/scenes 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +15 -8
- package/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js.map +1 -1
- package/dist/esm/querying/layers/annotations/standardAnnotationQuery.js.map +1 -1
- package/dist/index.d.ts +21 -2
- package/dist/index.js +15 -8
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# v1.5.1 (Wed Sep 20 2023)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- AnnotationsDataLayer: Provide inheritance extension points [#347](https://github.com/grafana/scenes/pull/347) ([@dprokop](https://github.com/dprokop))
|
|
6
|
+
|
|
7
|
+
#### Authors: 1
|
|
8
|
+
|
|
9
|
+
- Dominik Prokop ([@dprokop](https://github.com/dprokop))
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
1
13
|
# v1.5.0 (Wed Sep 20 2023)
|
|
2
14
|
|
|
3
15
|
#### 🚀 Enhancement
|
|
@@ -55,16 +55,10 @@ class AnnotationsDataLayer extends SceneDataLayerBase {
|
|
|
55
55
|
this.querySub.unsubscribe();
|
|
56
56
|
}
|
|
57
57
|
try {
|
|
58
|
-
const ds = await
|
|
58
|
+
const ds = await this.resolveDataSource(query);
|
|
59
59
|
const queryExecution = executeAnnotationQuery(ds, timeRange, query).pipe(
|
|
60
60
|
map((events) => {
|
|
61
|
-
const
|
|
62
|
-
const stateUpdate = __spreadProps(__spreadValues({}, emptyPanelData), { state: events.state });
|
|
63
|
-
const df = arrayToDataFrame(processedEvents);
|
|
64
|
-
df.meta = __spreadProps(__spreadValues({}, df.meta), {
|
|
65
|
-
dataTopic: DataTopic.Annotations
|
|
66
|
-
});
|
|
67
|
-
stateUpdate.annotations = [df];
|
|
61
|
+
const stateUpdate = this.processEvents(query, events);
|
|
68
62
|
return stateUpdate;
|
|
69
63
|
})
|
|
70
64
|
);
|
|
@@ -86,6 +80,19 @@ class AnnotationsDataLayer extends SceneDataLayerBase {
|
|
|
86
80
|
console.error("AnnotationsDataLayer error", e);
|
|
87
81
|
}
|
|
88
82
|
}
|
|
83
|
+
async resolveDataSource(query) {
|
|
84
|
+
return await getDataSource(query.datasource || void 0, {});
|
|
85
|
+
}
|
|
86
|
+
processEvents(query, events) {
|
|
87
|
+
const processedEvents = postProcessQueryResult(query, events.events || []);
|
|
88
|
+
const stateUpdate = __spreadProps(__spreadValues({}, emptyPanelData), { state: events.state });
|
|
89
|
+
const df = arrayToDataFrame(processedEvents);
|
|
90
|
+
df.meta = __spreadProps(__spreadValues({}, df.meta), {
|
|
91
|
+
dataTopic: DataTopic.Annotations
|
|
92
|
+
});
|
|
93
|
+
stateUpdate.annotations = [df];
|
|
94
|
+
return stateUpdate;
|
|
95
|
+
}
|
|
89
96
|
}
|
|
90
97
|
|
|
91
98
|
export { AnnotationsDataLayer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsDataLayer.js","sources":["../../../../../src/querying/layers/annotations/AnnotationsDataLayer.ts"],"sourcesContent":["import { arrayToDataFrame, DataTopic, AnnotationQuery } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport { map, Unsubscribable } from 'rxjs';\nimport { emptyPanelData } from '../../../core/SceneDataNode';\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport { SceneDataLayerProvider, SceneTimeRangeLike, SceneDataLayerProviderState } from '../../../core/types';\nimport { getDataSource } from '../../../utils/getDataSource';\nimport { getMessageFromError } from '../../../utils/getMessageFromError';\nimport { SceneDataLayerBase } from '../SceneDataLayerBase';\nimport { executeAnnotationQuery } from './standardAnnotationQuery';\nimport { postProcessQueryResult } from './utils';\n\ninterface AnnotationsDataLayerState extends SceneDataLayerProviderState {\n query: AnnotationQuery;\n}\n\nexport class AnnotationsDataLayer\n extends SceneDataLayerBase<AnnotationsDataLayerState>\n implements SceneDataLayerProvider\n{\n private _timeRangeSub: Unsubscribable | undefined;\n public topic = DataTopic.Annotations;\n\n public constructor(initialState: AnnotationsDataLayerState) {\n super({\n isEnabled: true,\n ...initialState,\n });\n }\n\n public onEnable(): void {\n const timeRange = sceneGraph.getTimeRange(this);\n\n this._timeRangeSub = timeRange.subscribeToState(() => {\n this.runWithTimeRange(timeRange);\n });\n }\n\n public onDisable(): void {\n this._timeRangeSub?.unsubscribe();\n }\n\n public runLayer() {\n const timeRange = sceneGraph.getTimeRange(this);\n this.runWithTimeRange(timeRange);\n }\n\n private async runWithTimeRange(timeRange: SceneTimeRangeLike) {\n const { query } = this.state;\n\n if (this.querySub) {\n this.querySub.unsubscribe();\n }\n\n try {\n const ds = await
|
|
1
|
+
{"version":3,"file":"AnnotationsDataLayer.js","sources":["../../../../../src/querying/layers/annotations/AnnotationsDataLayer.ts"],"sourcesContent":["import { arrayToDataFrame, DataTopic, AnnotationQuery } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport { map, Unsubscribable } from 'rxjs';\nimport { emptyPanelData } from '../../../core/SceneDataNode';\nimport { sceneGraph } from '../../../core/sceneGraph';\nimport { SceneDataLayerProvider, SceneTimeRangeLike, SceneDataLayerProviderState } from '../../../core/types';\nimport { getDataSource } from '../../../utils/getDataSource';\nimport { getMessageFromError } from '../../../utils/getMessageFromError';\nimport { SceneDataLayerBase } from '../SceneDataLayerBase';\nimport { AnnotationQueryResults, executeAnnotationQuery } from './standardAnnotationQuery';\nimport { postProcessQueryResult } from './utils';\n\ninterface AnnotationsDataLayerState extends SceneDataLayerProviderState {\n query: AnnotationQuery;\n}\n\nexport class AnnotationsDataLayer\n extends SceneDataLayerBase<AnnotationsDataLayerState>\n implements SceneDataLayerProvider\n{\n private _timeRangeSub: Unsubscribable | undefined;\n public topic = DataTopic.Annotations;\n\n public constructor(initialState: AnnotationsDataLayerState) {\n super({\n isEnabled: true,\n ...initialState,\n });\n }\n\n public onEnable(): void {\n const timeRange = sceneGraph.getTimeRange(this);\n\n this._timeRangeSub = timeRange.subscribeToState(() => {\n this.runWithTimeRange(timeRange);\n });\n }\n\n public onDisable(): void {\n this._timeRangeSub?.unsubscribe();\n }\n\n public runLayer() {\n const timeRange = sceneGraph.getTimeRange(this);\n this.runWithTimeRange(timeRange);\n }\n\n private async runWithTimeRange(timeRange: SceneTimeRangeLike) {\n const { query } = this.state;\n\n if (this.querySub) {\n this.querySub.unsubscribe();\n }\n\n try {\n const ds = await this.resolveDataSource(query);\n\n const queryExecution = executeAnnotationQuery(ds, timeRange, query).pipe(\n map((events) => {\n const stateUpdate = this.processEvents(query, events);\n return stateUpdate;\n })\n );\n\n this.querySub = queryExecution.subscribe((stateUpdate) => {\n this.publishResults(stateUpdate, DataTopic.Annotations);\n });\n } catch (e) {\n this.publishResults(\n {\n ...emptyPanelData,\n state: LoadingState.Error,\n errors: [\n {\n message: getMessageFromError(e),\n },\n ],\n },\n DataTopic.Annotations\n );\n console.error('AnnotationsDataLayer error', e);\n }\n }\n\n protected async resolveDataSource(query: AnnotationQuery) {\n return await getDataSource(query.datasource || undefined, {});\n }\n\n protected processEvents(query: AnnotationQuery, events: AnnotationQueryResults) {\n const processedEvents = postProcessQueryResult(query, events.events || []);\n const stateUpdate = { ...emptyPanelData, state: events.state };\n const df = arrayToDataFrame(processedEvents);\n df.meta = {\n ...df.meta,\n dataTopic: DataTopic.Annotations,\n };\n\n stateUpdate.annotations = [df];\n\n return stateUpdate;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standardAnnotationQuery.js","sources":["../../../../../src/querying/layers/annotations/standardAnnotationQuery.ts"],"sourcesContent":["import { from, Observable, of } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\n\nimport {\n AnnotationEvent,\n AnnotationQuery,\n CoreApp,\n DataQueryRequest,\n DataSourceApi,\n DataTopic,\n PanelModel,\n rangeUtil,\n ScopedVars,\n} from '@grafana/data';\n\nimport { getRunRequest } from '@grafana/runtime';\nimport { shouldUseLegacyRunner, standardAnnotationSupport } from './standardAnnotationsSupport';\nimport { Dashboard, LoadingState } from '@grafana/schema';\nimport { SceneTimeRangeLike } from '../../../core/types';\nlet counter = 100;\nfunction getNextRequestId() {\n return 'AQ' + counter++;\n}\n\nexport interface AnnotationQueryOptions {\n dashboard: Dashboard;\n panel: PanelModel;\n}\n\nexport function executeAnnotationQuery(\n datasource: DataSourceApi,\n timeRange: SceneTimeRangeLike,\n query: AnnotationQuery\n): Observable<
|
|
1
|
+
{"version":3,"file":"standardAnnotationQuery.js","sources":["../../../../../src/querying/layers/annotations/standardAnnotationQuery.ts"],"sourcesContent":["import { from, Observable, of } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\n\nimport {\n AnnotationEvent,\n AnnotationQuery,\n CoreApp,\n DataQueryRequest,\n DataSourceApi,\n DataTopic,\n PanelModel,\n rangeUtil,\n ScopedVars,\n} from '@grafana/data';\n\nimport { getRunRequest } from '@grafana/runtime';\nimport { shouldUseLegacyRunner, standardAnnotationSupport } from './standardAnnotationsSupport';\nimport { Dashboard, LoadingState } from '@grafana/schema';\nimport { SceneTimeRangeLike } from '../../../core/types';\nlet counter = 100;\nfunction getNextRequestId() {\n return 'AQ' + counter++;\n}\n\nexport interface AnnotationQueryOptions {\n dashboard: Dashboard;\n panel: PanelModel;\n}\n\nexport interface AnnotationQueryResults {\n state: LoadingState;\n events: AnnotationEvent[];\n}\n\nexport function executeAnnotationQuery(\n datasource: DataSourceApi,\n timeRange: SceneTimeRangeLike,\n query: AnnotationQuery\n): Observable<AnnotationQueryResults> {\n // Check if we should use the old annotationQuery method\n if (datasource.annotationQuery && shouldUseLegacyRunner(datasource)) {\n console.warn('Using deprecated annotationQuery method, please upgrade your datasource');\n return from(\n datasource.annotationQuery({\n range: timeRange.state.value,\n rangeRaw: timeRange.state.value.raw,\n annotation: query,\n dashboard: {},\n })\n ).pipe(\n map((events) => ({\n state: LoadingState.Done,\n events,\n }))\n );\n }\n\n // Standard API for annotations support. Spread in datasource annotations support overrides\n const processor = {\n ...standardAnnotationSupport,\n ...datasource.annotations,\n };\n\n const annotationWithDefaults = {\n // Default query provided by a data source\n ...processor.getDefaultQuery?.(),\n ...query,\n };\n\n // Data source query migrations\n const annotation = processor.prepareAnnotation!(annotationWithDefaults);\n if (!annotation) {\n return of({\n state: LoadingState.Done,\n events: [],\n });\n }\n\n const processedQuery = processor.prepareQuery!(annotation);\n if (!processedQuery) {\n return of({\n state: LoadingState.Done,\n events: [],\n });\n }\n\n // No more points than pixels\n const maxDataPoints = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n\n // Add interval to annotation queries\n const interval = rangeUtil.calculateInterval(timeRange.state.value, maxDataPoints, datasource.interval);\n\n const scopedVars: ScopedVars = {\n __interval: { text: interval.interval, value: interval.interval },\n __interval_ms: { text: interval.intervalMs.toString(), value: interval.intervalMs },\n __annotation: { text: annotation.name, value: annotation },\n };\n\n const queryRequest: DataQueryRequest = {\n startTime: Date.now(),\n requestId: getNextRequestId(),\n range: timeRange.state.value,\n maxDataPoints,\n scopedVars,\n ...interval,\n app: CoreApp.Dashboard,\n timezone: timeRange.getTimeZone(),\n targets: [\n {\n ...processedQuery,\n refId: 'Anno',\n },\n ],\n // TODO\n //publicDashboardAccessToken: options.dashboard.meta.publicDashboardAccessToken,\n };\n\n const runRequest = getRunRequest();\n\n return runRequest(datasource, queryRequest).pipe(\n mergeMap((panelData) => {\n // Some annotations set the topic already\n const data = panelData?.series.length ? panelData.series : panelData.annotations;\n\n if (!data?.length) {\n return of({\n state: panelData.state,\n events: [],\n });\n }\n\n // Add data topic to each frame\n data.forEach((frame) => {\n // If data topic has not been provided by the data source, make sure it's set correctly\n if (!frame.meta?.dataTopic) {\n frame.meta = { ...(frame.meta || {}), dataTopic: DataTopic.Annotations };\n }\n });\n\n return processor.processEvents!(annotation, data).pipe(\n map((events) => {\n return {\n state: panelData.state,\n events: events || [],\n };\n })\n );\n })\n );\n}\n"],"names":["_a"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as _grafana_data from '@grafana/data';
|
|
2
|
-
import { BusEventWithPayload, PanelData, BusEvent, BusEventType, BusEventHandler, TimeRange, DataQueryRequest, DataTransformContext, DataFrame, DataTopic, PanelPlugin, EventBus, DataQuery, DataSourceApi, ScopedVars, EventFilterOptions, AnnotationQuery, DataTransformerConfig, Registry, RegistryItem, DataSourceRef as DataSourceRef$1, VariableRefresh, VariableSort, PanelMenuItem, FieldConfigSource, AbsoluteTimeRange, InterpolateFunction, IconName as IconName$1, FieldConfig, FieldType, FieldValueMatcherConfig } from '@grafana/data';
|
|
2
|
+
import { BusEventWithPayload, PanelData, BusEvent, BusEventType, BusEventHandler, TimeRange, DataQueryRequest, DataTransformContext, DataFrame, DataTopic, PanelPlugin, EventBus, DataQuery, DataSourceApi, ScopedVars, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, Registry, RegistryItem, DataSourceRef as DataSourceRef$1, VariableRefresh, VariableSort, PanelMenuItem, FieldConfigSource, AbsoluteTimeRange, InterpolateFunction, IconName as IconName$1, FieldConfig, FieldType, FieldValueMatcherConfig } from '@grafana/data';
|
|
3
3
|
import React$1, { CSSProperties, ComponentType } from 'react';
|
|
4
4
|
import * as rxjs from 'rxjs';
|
|
5
5
|
import { Observable, Unsubscribable, MonoTypeOperatorFunction, Subscription, ReplaySubject } from 'rxjs';
|
|
6
|
-
import { VariableType, VariableHide, TimeZone, DashboardCursorSync, DataSourceRef, DataQuery as DataQuery$1, MatcherConfig, TableFieldOptions } from '@grafana/schema';
|
|
6
|
+
import { VariableType, VariableHide, TimeZone, DashboardCursorSync, LoadingState, DataSourceRef, DataQuery as DataQuery$1, MatcherConfig, TableFieldOptions } from '@grafana/schema';
|
|
7
7
|
import { PanelContext, IconName } from '@grafana/ui';
|
|
8
8
|
import ReactGridLayout from 'react-grid-layout';
|
|
9
9
|
import { RouteComponentProps } from 'react-router-dom';
|
|
@@ -595,6 +595,11 @@ declare abstract class SceneDataLayerBase<T extends SceneDataLayerProviderState
|
|
|
595
595
|
private setStateHelper;
|
|
596
596
|
}
|
|
597
597
|
|
|
598
|
+
interface AnnotationQueryResults {
|
|
599
|
+
state: LoadingState;
|
|
600
|
+
events: AnnotationEvent[];
|
|
601
|
+
}
|
|
602
|
+
|
|
598
603
|
interface AnnotationsDataLayerState extends SceneDataLayerProviderState {
|
|
599
604
|
query: AnnotationQuery;
|
|
600
605
|
}
|
|
@@ -606,6 +611,20 @@ declare class AnnotationsDataLayer extends SceneDataLayerBase<AnnotationsDataLay
|
|
|
606
611
|
onDisable(): void;
|
|
607
612
|
runLayer(): void;
|
|
608
613
|
private runWithTimeRange;
|
|
614
|
+
protected resolveDataSource(query: AnnotationQuery): Promise<_grafana_data.DataSourceApi<_grafana_data.DataQuery, _grafana_data.DataSourceJsonData, {}>>;
|
|
615
|
+
protected processEvents(query: AnnotationQuery, events: AnnotationQueryResults): {
|
|
616
|
+
state: LoadingState;
|
|
617
|
+
series: _grafana_data.DataFrame[];
|
|
618
|
+
structureRev?: number | undefined;
|
|
619
|
+
annotations?: _grafana_data.DataFrame[] | undefined;
|
|
620
|
+
alertState?: _grafana_data.AlertStateInfo | undefined;
|
|
621
|
+
request?: _grafana_data.DataQueryRequest<_grafana_data.DataQuery> | undefined;
|
|
622
|
+
timings?: _grafana_data.DataQueryTimings | undefined;
|
|
623
|
+
errors?: _grafana_data.DataQueryError[] | undefined;
|
|
624
|
+
error?: _grafana_data.DataQueryError | undefined;
|
|
625
|
+
timeRange: _grafana_data.TimeRange;
|
|
626
|
+
traceIds?: string[] | undefined;
|
|
627
|
+
};
|
|
609
628
|
}
|
|
610
629
|
|
|
611
630
|
type index_AnnotationsDataLayer = AnnotationsDataLayer;
|
package/dist/index.js
CHANGED
|
@@ -2382,16 +2382,10 @@ class AnnotationsDataLayer extends SceneDataLayerBase {
|
|
|
2382
2382
|
this.querySub.unsubscribe();
|
|
2383
2383
|
}
|
|
2384
2384
|
try {
|
|
2385
|
-
const ds = await
|
|
2385
|
+
const ds = await this.resolveDataSource(query);
|
|
2386
2386
|
const queryExecution = executeAnnotationQuery(ds, timeRange, query).pipe(
|
|
2387
2387
|
rxjs.map((events) => {
|
|
2388
|
-
const
|
|
2389
|
-
const stateUpdate = __spreadProps$g(__spreadValues$p({}, emptyPanelData), { state: events.state });
|
|
2390
|
-
const df = data.arrayToDataFrame(processedEvents);
|
|
2391
|
-
df.meta = __spreadProps$g(__spreadValues$p({}, df.meta), {
|
|
2392
|
-
dataTopic: data.DataTopic.Annotations
|
|
2393
|
-
});
|
|
2394
|
-
stateUpdate.annotations = [df];
|
|
2388
|
+
const stateUpdate = this.processEvents(query, events);
|
|
2395
2389
|
return stateUpdate;
|
|
2396
2390
|
})
|
|
2397
2391
|
);
|
|
@@ -2413,6 +2407,19 @@ class AnnotationsDataLayer extends SceneDataLayerBase {
|
|
|
2413
2407
|
console.error("AnnotationsDataLayer error", e);
|
|
2414
2408
|
}
|
|
2415
2409
|
}
|
|
2410
|
+
async resolveDataSource(query) {
|
|
2411
|
+
return await getDataSource(query.datasource || void 0, {});
|
|
2412
|
+
}
|
|
2413
|
+
processEvents(query, events) {
|
|
2414
|
+
const processedEvents = postProcessQueryResult(query, events.events || []);
|
|
2415
|
+
const stateUpdate = __spreadProps$g(__spreadValues$p({}, emptyPanelData), { state: events.state });
|
|
2416
|
+
const df = data.arrayToDataFrame(processedEvents);
|
|
2417
|
+
df.meta = __spreadProps$g(__spreadValues$p({}, df.meta), {
|
|
2418
|
+
dataTopic: data.DataTopic.Annotations
|
|
2419
|
+
});
|
|
2420
|
+
stateUpdate.annotations = [df];
|
|
2421
|
+
return stateUpdate;
|
|
2422
|
+
}
|
|
2416
2423
|
}
|
|
2417
2424
|
|
|
2418
2425
|
var index = /*#__PURE__*/Object.freeze({
|