@grafana/scenes 6.39.2--canary.1264.18315947032.0 → 6.40.0--canary.1265.18325783397.0

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.
Files changed (54) hide show
  1. package/dist/esm/behaviors/LongFrameDetector.js +11 -11
  2. package/dist/esm/behaviors/LongFrameDetector.js.map +1 -1
  3. package/dist/esm/behaviors/PanelProfilingManager.js +65 -0
  4. package/dist/esm/behaviors/PanelProfilingManager.js.map +1 -0
  5. package/dist/esm/behaviors/ScenePerformanceTracker.js +78 -0
  6. package/dist/esm/behaviors/ScenePerformanceTracker.js.map +1 -0
  7. package/dist/esm/behaviors/SceneRenderProfiler.js +88 -132
  8. package/dist/esm/behaviors/SceneRenderProfiler.js.map +1 -1
  9. package/dist/esm/behaviors/VizPanelRenderProfiler.js +328 -0
  10. package/dist/esm/behaviors/VizPanelRenderProfiler.js.map +1 -0
  11. package/dist/esm/behaviors/index.js +3 -0
  12. package/dist/esm/behaviors/index.js.map +1 -1
  13. package/dist/esm/behaviors/interactionConstants.js +14 -0
  14. package/dist/esm/behaviors/interactionConstants.js.map +1 -0
  15. package/dist/esm/components/SceneRefreshPicker.js +1 -1
  16. package/dist/esm/components/SceneRefreshPicker.js.map +1 -1
  17. package/dist/esm/components/VizPanel/VizPanel.js +36 -1
  18. package/dist/esm/components/VizPanel/VizPanel.js.map +1 -1
  19. package/dist/esm/components/VizPanel/VizPanelRenderer.js +20 -2
  20. package/dist/esm/components/VizPanel/VizPanelRenderer.js.map +1 -1
  21. package/dist/esm/core/SceneTimeRange.js +1 -1
  22. package/dist/esm/core/SceneTimeRange.js.map +1 -1
  23. package/dist/esm/index.js +3 -0
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/querying/SceneDataTransformer.js +64 -0
  26. package/dist/esm/querying/SceneDataTransformer.js.map +1 -1
  27. package/dist/esm/querying/SceneQueryRunner.js +11 -6
  28. package/dist/esm/querying/SceneQueryRunner.js.map +1 -1
  29. package/dist/esm/querying/layers/SceneDataLayerControls.js +1 -13
  30. package/dist/esm/querying/layers/SceneDataLayerControls.js.map +1 -1
  31. package/dist/esm/querying/registerQueryWithController.js +39 -2
  32. package/dist/esm/querying/registerQueryWithController.js.map +1 -1
  33. package/dist/esm/utils/findPanelProfiler.js +18 -0
  34. package/dist/esm/utils/findPanelProfiler.js.map +1 -0
  35. package/dist/esm/utils/writePerformanceLog.js +12 -0
  36. package/dist/esm/utils/writePerformanceLog.js.map +1 -0
  37. package/dist/esm/utils/writeSceneLog.js +1 -10
  38. package/dist/esm/utils/writeSceneLog.js.map +1 -1
  39. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +1 -1
  40. package/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js.map +1 -1
  41. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js +1 -1
  42. package/dist/esm/variables/adhoc/AdHocFiltersVariable.js.map +1 -1
  43. package/dist/esm/variables/components/VariableValueSelect.js +1 -1
  44. package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
  45. package/dist/esm/variables/groupby/GroupByVariable.js +1 -1
  46. package/dist/esm/variables/groupby/GroupByVariable.js.map +1 -1
  47. package/dist/esm/variables/variants/MultiValueVariable.js +1 -1
  48. package/dist/esm/variables/variants/MultiValueVariable.js.map +1 -1
  49. package/dist/esm/variables/variants/ScopesVariable.js +1 -1
  50. package/dist/esm/variables/variants/ScopesVariable.js.map +1 -1
  51. package/dist/index.d.ts +369 -85
  52. package/dist/index.js +7436 -6831
  53. package/dist/index.js.map +1 -1
  54. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as _grafana_data from '@grafana/data';
2
- import { BusEventWithPayload, EventBus, BusEvent, BusEventType, BusEventHandler, PanelMenuItem, FieldConfigSource, PanelPlugin, AbsoluteTimeRange, PanelData, InterpolateFunction, PanelModel, TimeRange, DataTransformContext, DataFrame, DataQueryRequest, DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions, IconName, PageLayoutType, UrlQueryMap, DataQuery as DataQuery$1, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, GetTagResponse, MetricFindValue, SelectableValue, VariableRefresh as VariableRefresh$1, VariableSort, DrilldownsApplicability, Scope, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, TimeOption, FieldConfig, FieldType, FieldValueMatcherConfig, ScopedVar, RawTimeRange } from '@grafana/data';
2
+ import { BusEventWithPayload, EventBus, BusEvent, BusEventType, BusEventHandler, PanelMenuItem, DataQueryRequest, FieldConfigSource, PanelPlugin, AbsoluteTimeRange, PanelData, InterpolateFunction, PanelModel, TimeRange, DataTransformContext, DataFrame, DataSourceGetTagKeysOptions, DataSourceGetTagValuesOptions, IconName, PageLayoutType, UrlQueryMap, DataQuery as DataQuery$1, DataSourceApi, Registry, RegistryItem, ScopedVars, AdHocVariableFilter, GetTagResponse, MetricFindValue, SelectableValue, VariableRefresh as VariableRefresh$1, VariableSort, DrilldownsApplicability, Scope, EventFilterOptions, AnnotationEvent, AnnotationQuery, DataTransformerConfig, TimeOption, FieldConfig, FieldType, FieldValueMatcherConfig, ScopedVar, RawTimeRange } from '@grafana/data';
3
+ import * as _grafana_schema from '@grafana/schema';
4
+ import { VariableType, VariableHide, LoadingState, TimeZone, DataQuery, DataTopic, DataSourceRef, VariableRefresh, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
3
5
  import * as React$1 from 'react';
4
6
  import React__default, { ComponentType, CSSProperties, PointerEvent, ForwardRefExoticComponent } from 'react';
5
7
  import * as rxjs from 'rxjs';
6
8
  import { Observable, Subscription, Unsubscribable, MonoTypeOperatorFunction, ReplaySubject } from 'rxjs';
7
- import * as _grafana_schema from '@grafana/schema';
8
- import { VariableType, VariableHide, TimeZone, DataQuery, DataTopic, DataSourceRef, VariableRefresh, LoadingState, DashboardCursorSync, MatcherConfig, TableFieldOptions } from '@grafana/schema';
9
9
  import { PanelContext, WeekStart, IconName as IconName$1 } from '@grafana/ui';
10
10
  import { LocationService, VariableInterpolation, ScopesContextValue } from '@grafana/runtime';
11
11
  import { Location } from 'history';
@@ -315,6 +315,118 @@ declare class VariableDependencyConfig<TState extends SceneObjectState> implemen
315
315
  private handleTimeMacros;
316
316
  }
317
317
 
318
+ interface LongFrameEvent {
319
+ duration: number;
320
+ timestamp: number;
321
+ method: 'manual' | 'loaf';
322
+ }
323
+ type LongFrameCallback = (event: LongFrameEvent) => void;
324
+
325
+ interface QueryResultWithState {
326
+ state: LoadingState;
327
+ }
328
+ interface SceneQueryControllerEntry {
329
+ request?: DataQueryRequest;
330
+ type: SceneQueryControllerEntryType;
331
+ origin: SceneObject;
332
+ cancel?: () => void;
333
+ }
334
+ type SceneQueryControllerEntryType = 'data' | 'annotations' | 'variable' | 'alerts' | 'plugin' | string;
335
+
336
+
337
+
338
+ interface SceneComponentInteractionEvent {
339
+ origin: string;
340
+ duration: number;
341
+ networkDuration: number;
342
+ startTs: number;
343
+ endTs: number;
344
+ }
345
+ interface SceneInteractionTrackerState extends SceneObjectState {
346
+ enableInteractionTracking?: boolean;
347
+ onInteractionComplete?(event: SceneComponentInteractionEvent): void;
348
+ }
349
+ interface SceneQueryStateControllerState extends SceneObjectState {
350
+ isRunning: boolean;
351
+ enableProfiling?: boolean;
352
+ }
353
+ interface SceneQueryControllerLike extends SceneObject<SceneQueryStateControllerState> {
354
+ isQueryController: true;
355
+ cancelAll(): void;
356
+ queryStarted(entry: SceneQueryControllerEntry): void;
357
+ queryCompleted(entry: SceneQueryControllerEntry): void;
358
+ startProfile(name: string): void;
359
+ cancelProfile(): void;
360
+ runningQueriesCount(): number;
361
+ }
362
+
363
+ interface QueryProfilerLike {
364
+ onQueryStarted(timestamp: number, entry: SceneQueryControllerEntry, queryId: string): ((endTimestamp: number, error?: any) => void) | null;
365
+ }
366
+ /**
367
+ * Will look for a scene object with a behavior that is a SceneQueryController and register the query with it.
368
+ * Optionally accepts a panel profiler for direct query tracking callbacks.
369
+ */
370
+ declare function registerQueryWithController<T extends QueryResultWithState>(entry: SceneQueryControllerEntry, profiler?: QueryProfilerLike): (queryStream: Observable<T>) => Observable<T>;
371
+
372
+ interface VizPanelRenderProfilerState extends SceneObjectState {
373
+ }
374
+ /**
375
+ * Tracks performance metrics for individual VizPanel instances using observer pattern.
376
+ *
377
+ * Performance events are sent to ScenePerformanceTracker observers, which are consumed
378
+ * by Grafana's ScenePerformanceLogger and DashboardAnalyticsAggregator.
379
+ */
380
+ declare class VizPanelRenderProfiler extends SceneObjectBase<VizPanelRenderProfilerState> implements QueryProfilerLike {
381
+ private _panelKey?;
382
+ private _panelId?;
383
+ private _pluginId?;
384
+ private _pluginVersion?;
385
+ private _isTracking;
386
+ private _loadPluginStartTime?;
387
+ private _applyFieldConfigStartTime?;
388
+ private _activeQueries;
389
+ constructor(state?: Partial<VizPanelRenderProfilerState>);
390
+ private _onActivate;
391
+ private _handlePanelStateChange;
392
+ /**
393
+ * Track query execution with operation ID correlation
394
+ */
395
+ onQueryStarted(timestamp: number, entry: SceneQueryControllerEntry, queryId: string): ((endTimestamp: number, error?: any) => void) | null;
396
+ /**
397
+ * Track plugin loading with operation ID correlation
398
+ */
399
+ onPluginLoadStart(pluginId: string): ((plugin: any, fromCache?: boolean) => void) | null;
400
+ /**
401
+ * Track field config processing with operation ID correlation
402
+ */
403
+ onFieldConfigStart(timestamp: number): ((endTimestamp: number, dataPointsCount?: number, seriesCount?: number) => void) | null;
404
+ /**
405
+ * Get panel info for logging - truncates long titles for readability
406
+ */
407
+ private _getPanelInfo;
408
+ /**
409
+ * Track simple render timing with operation ID correlation
410
+ */
411
+ onSimpleRenderStart(timestamp: number): ((endTimestamp: number, duration: number) => void) | undefined;
412
+ /** Handle plugin changes */
413
+ private _onPluginChange;
414
+ /** Start tracking this panel */
415
+ private _startTracking;
416
+ /** Cleanup when behavior is deactivated */
417
+ private _cleanup;
418
+ /**
419
+ * Track data transformation with operation ID correlation
420
+ */
421
+ onDataTransformStart(timestamp: number, transformationId: string, metrics: {
422
+ transformationCount: number;
423
+ seriesTransformationCount: number;
424
+ annotationTransformationCount: number;
425
+ }): ((endTimestamp: number, duration: number, success: boolean, result?: {
426
+ error?: string;
427
+ }) => void) | null;
428
+ }
429
+
318
430
  interface VizPanelState<TOptions = {}, TFieldConfig = {}> extends SceneObjectState {
319
431
  /**
320
432
  * This is usually a plugin id that references a core plugin or an external plugin. But this can also reference a
@@ -385,6 +497,10 @@ declare class VizPanel<TOptions = {}, TFieldConfig extends {} = {}> extends Scen
385
497
  private _dataWithFieldConfig?;
386
498
  private _structureRev;
387
499
  constructor(state: Partial<VizPanelState<TOptions, TFieldConfig>>);
500
+ /**
501
+ * Get the VizPanelRenderProfiler behavior if attached
502
+ */
503
+ getProfiler(): VizPanelRenderProfiler | undefined;
388
504
  private _onActivate;
389
505
  forceRender(): void;
390
506
  private _loadPlugin;
@@ -1317,65 +1433,6 @@ declare class UserActionEvent extends BusEventWithPayload<UserActionEventPayload
1317
1433
  */
1318
1434
  declare function lookupVariable(name: string, sceneObject: SceneObject): SceneVariable | null;
1319
1435
 
1320
- interface LongFrameEvent {
1321
- duration: number;
1322
- timestamp: number;
1323
- method: 'manual' | 'loaf';
1324
- }
1325
- type LongFrameCallback = (event: LongFrameEvent) => void;
1326
-
1327
- interface QueryResultWithState {
1328
- state: LoadingState;
1329
- }
1330
- interface SceneQueryControllerEntry {
1331
- request?: DataQueryRequest;
1332
- type: SceneQueryControllerEntryType;
1333
- origin: SceneObject;
1334
- cancel?: () => void;
1335
- }
1336
- type SceneQueryControllerEntryType = 'data' | 'annotations' | 'variable' | 'alerts' | 'plugin' | string;
1337
-
1338
-
1339
-
1340
- interface SceneInteractionProfileEvent {
1341
- origin: string;
1342
- duration: number;
1343
- networkDuration: number;
1344
- jsHeapSizeLimit: number;
1345
- usedJSHeapSize: number;
1346
- totalJSHeapSize: number;
1347
- crumbs: string[];
1348
- startTs: number;
1349
- endTs: number;
1350
- longFramesCount: number;
1351
- longFramesTotalTime: number;
1352
- }
1353
- interface SceneComponentInteractionEvent {
1354
- origin: string;
1355
- duration: number;
1356
- networkDuration: number;
1357
- startTs: number;
1358
- endTs: number;
1359
- }
1360
- interface SceneInteractionTrackerState extends SceneObjectState {
1361
- enableInteractionTracking?: boolean;
1362
- onInteractionComplete?(event: SceneComponentInteractionEvent): void;
1363
- }
1364
- interface SceneQueryStateControllerState extends SceneObjectState {
1365
- isRunning: boolean;
1366
- enableProfiling?: boolean;
1367
- onProfileComplete?(event: SceneInteractionProfileEvent): void;
1368
- }
1369
- interface SceneQueryControllerLike extends SceneObject<SceneQueryStateControllerState> {
1370
- isQueryController: true;
1371
- cancelAll(): void;
1372
- queryStarted(entry: SceneQueryControllerEntry): void;
1373
- queryCompleted(entry: SceneQueryControllerEntry): void;
1374
- startProfile(name: string): void;
1375
- cancelProfile(): void;
1376
- runningQueriesCount(): number;
1377
- }
1378
-
1379
1436
  /**
1380
1437
  * Returns the closest query controller undefined if none found
1381
1438
  */
@@ -1555,6 +1612,10 @@ declare class PanelContextEventBus implements EventBus {
1555
1612
  newScopedBus(key: string, filter: EventFilterOptions): EventBus;
1556
1613
  }
1557
1614
 
1615
+ interface PanelProfilingConfig {
1616
+ watchStateKey?: string;
1617
+ }
1618
+
1558
1619
  /**
1559
1620
  * SceneRenderProfiler tracks dashboard interaction performance including:
1560
1621
  * - Total interaction duration
@@ -1574,9 +1635,17 @@ declare class PanelContextEventBus implements EventBus {
1574
1635
  */
1575
1636
  declare class SceneRenderProfiler {
1576
1637
  #private;
1638
+ private metadata;
1639
+ private _panelProfilingManager?;
1577
1640
  private queryController?;
1578
- constructor(queryController?: SceneQueryControllerLike | undefined);
1641
+ constructor(panelProfilingConfig?: PanelProfilingConfig);
1642
+ /** Set generic metadata for observer notifications */
1643
+ setMetadata(metadata: Record<string, unknown>): void;
1579
1644
  setQueryController(queryController: SceneQueryControllerLike): void;
1645
+ /** Attach panel profiling to a scene object */
1646
+ attachPanelProfiling(sceneObject: SceneObject): void;
1647
+ /** Attach profiler to a specific panel */
1648
+ attachProfilerToPanel(panel: VizPanel): void;
1580
1649
  setInteractionCompleteHandler(handler?: (event: SceneComponentInteractionEvent) => void): void;
1581
1650
  private setupVisibilityChangeHandler;
1582
1651
  cleanup(): void;
@@ -1585,14 +1654,9 @@ declare class SceneRenderProfiler {
1585
1654
  stopInteraction(): void;
1586
1655
  getCurrentInteraction(): string | null;
1587
1656
  /**
1588
- * Starts a new profile for performance measurement.
1589
- *
1590
- * @param name - The origin/trigger of the profile (e.g., 'time_range_change', 'variable_value_changed')
1591
- * @param force - Whether this is a "forced" profile (true) or "clean" profile (false)
1592
- * - "forced": Started by canceling an existing profile that was recording trailing frames
1593
- * This happens when a new user interaction occurs before the previous one
1594
- * finished measuring its performance impact
1595
- * - "clean": Started when no profile is currently active
1657
+ * Start new performance profile
1658
+ * @param name - Profile trigger (e.g., 'time_range_change')
1659
+ * @param force - True if canceling existing profile, false if starting clean
1596
1660
  */
1597
1661
  private _startNewProfile;
1598
1662
  private recordProfileTail;
@@ -1641,26 +1705,231 @@ declare class LiveNowTimer extends SceneObjectBase<LiveNowTimerState> {
1641
1705
  get isEnabled(): boolean;
1642
1706
  }
1643
1707
 
1708
+ /**
1709
+ * Centralized performance tracking system using observer pattern.
1710
+ * External systems (like Grafana) implement ScenePerformanceObserver to receive performance events.
1711
+ */
1712
+ declare function generateOperationId(prefix?: string): string;
1713
+ /** Base interface for all performance events */
1714
+ interface BasePerformanceEvent {
1715
+ operationId: string;
1716
+ timestamp: number;
1717
+ duration?: number;
1718
+ error?: string;
1719
+ }
1720
+ interface DashboardInteractionStartData extends BasePerformanceEvent {
1721
+ interactionType: string;
1722
+ metadata?: Record<string, unknown>;
1723
+ }
1724
+ interface DashboardInteractionMilestoneData extends BasePerformanceEvent {
1725
+ interactionType: string;
1726
+ milestone: string;
1727
+ metadata?: Record<string, unknown>;
1728
+ }
1729
+ interface DashboardInteractionCompleteData extends BasePerformanceEvent {
1730
+ interactionType: string;
1731
+ networkDuration?: number;
1732
+ longFramesCount: number;
1733
+ longFramesTotalTime: number;
1734
+ metadata?: Record<string, unknown>;
1735
+ }
1736
+ /** Metadata interface for transform operations */
1737
+ interface TransformMetadata {
1738
+ transformationId: string;
1739
+ transformationCount: number;
1740
+ seriesTransformationCount: number;
1741
+ annotationTransformationCount: number;
1742
+ success?: boolean;
1743
+ error?: string;
1744
+ }
1745
+ /** Metadata interface for query operations */
1746
+ interface QueryMetadata {
1747
+ queryId: string;
1748
+ queryType: string;
1749
+ }
1750
+ /** Metadata interface for render operations */
1751
+ interface RenderMetadata {
1752
+ }
1753
+ /** Metadata interface for plugin load operations */
1754
+ interface PluginLoadMetadata {
1755
+ pluginId: string;
1756
+ fromCache?: boolean;
1757
+ pluginLoadTime?: number;
1758
+ }
1759
+ /** Metadata interface for field config operations */
1760
+ interface FieldConfigMetadata {
1761
+ }
1762
+ /** Base interface for panel performance events */
1763
+ interface BasePanelPerformanceData extends BasePerformanceEvent {
1764
+ panelId: string;
1765
+ panelKey: string;
1766
+ pluginId: string;
1767
+ pluginVersion?: string;
1768
+ panelTitle?: string;
1769
+ }
1770
+ /** Transform operation performance data */
1771
+ interface PanelTransformPerformanceData extends BasePanelPerformanceData {
1772
+ operation: 'transform';
1773
+ metadata: TransformMetadata;
1774
+ }
1775
+ /** Query operation performance data */
1776
+ interface PanelQueryPerformanceData extends BasePanelPerformanceData {
1777
+ operation: 'query';
1778
+ metadata: QueryMetadata;
1779
+ }
1780
+ /** Render operation performance data */
1781
+ interface PanelRenderPerformanceData extends BasePanelPerformanceData {
1782
+ operation: 'render';
1783
+ metadata: RenderMetadata;
1784
+ }
1785
+ /** Plugin load operation performance data */
1786
+ interface PanelPluginLoadPerformanceData extends BasePanelPerformanceData {
1787
+ operation: 'plugin-load';
1788
+ metadata: PluginLoadMetadata;
1789
+ }
1790
+ /** Field config operation performance data */
1791
+ interface PanelFieldConfigPerformanceData extends BasePanelPerformanceData {
1792
+ operation: 'fieldConfig';
1793
+ metadata: FieldConfigMetadata;
1794
+ }
1795
+ /** Discriminated union of all panel performance data types */
1796
+ type PanelPerformanceData = PanelTransformPerformanceData | PanelQueryPerformanceData | PanelRenderPerformanceData | PanelPluginLoadPerformanceData | PanelFieldConfigPerformanceData;
1797
+ /** Non-panel query performance data for dashboard queries (annotations, variables, etc.) */
1798
+ interface QueryPerformanceData extends BasePerformanceEvent {
1799
+ queryId: string;
1800
+ queryType: string;
1801
+ origin: string;
1802
+ }
1803
+ /**
1804
+ * Observer interface for performance monitoring
1805
+ * External systems implement this to receive performance notifications
1806
+ */
1807
+ interface ScenePerformanceObserver {
1808
+ onDashboardInteractionStart?(data: DashboardInteractionStartData): void;
1809
+ onDashboardInteractionMilestone?(data: DashboardInteractionMilestoneData): void;
1810
+ onDashboardInteractionComplete?(data: DashboardInteractionCompleteData): void;
1811
+ onPanelOperationStart?(data: PanelPerformanceData): void;
1812
+ onPanelOperationComplete?(data: PanelPerformanceData): void;
1813
+ onQueryStart?(data: QueryPerformanceData): void;
1814
+ onQueryComplete?(data: QueryPerformanceData): void;
1815
+ }
1816
+ /**
1817
+ * Centralized performance tracker
1818
+ * Manages observers and provides methods for scene objects to report performance events
1819
+ */
1820
+ declare class ScenePerformanceTracker {
1821
+ private static instance;
1822
+ private observers;
1823
+ static getInstance(): ScenePerformanceTracker;
1824
+ /**
1825
+ * Register a performance observer
1826
+ */
1827
+ addObserver(observer: ScenePerformanceObserver): () => void;
1828
+ /**
1829
+ * Remove all observers (for testing)
1830
+ */
1831
+ clearObservers(): void;
1832
+ /**
1833
+ * Get current observer count (for debugging)
1834
+ */
1835
+ getObserverCount(): number;
1836
+ private notifyObservers;
1837
+ notifyDashboardInteractionStart(data: DashboardInteractionStartData): void;
1838
+ notifyDashboardInteractionMilestone(data: DashboardInteractionMilestoneData): void;
1839
+ notifyDashboardInteractionComplete(data: DashboardInteractionCompleteData): void;
1840
+ notifyPanelOperationStart(data: PanelPerformanceData): void;
1841
+ notifyPanelOperationComplete(data: PanelPerformanceData): void;
1842
+ notifyQueryStart(data: QueryPerformanceData): void;
1843
+ notifyQueryComplete(data: QueryPerformanceData): void;
1844
+ }
1845
+ /**
1846
+ * Get the global performance tracker instance
1847
+ */
1848
+ declare function getScenePerformanceTracker(): ScenePerformanceTracker;
1849
+
1850
+ /**
1851
+ * Constants for different types of dashboard interactions tracked by SceneRenderProfiler
1852
+ */
1853
+ declare const REFRESH_INTERACTION = "refresh";
1854
+ declare const TIME_RANGE_CHANGE_INTERACTION = "time_range_change";
1855
+ declare const FILTER_ADDED_INTERACTION = "filter_added";
1856
+ declare const FILTER_REMOVED_INTERACTION = "filter_removed";
1857
+ declare const FILTER_CHANGED_INTERACTION = "filter_changed";
1858
+ declare const FILTER_RESTORED_INTERACTION = "filter_restored";
1859
+ declare const VARIABLE_VALUE_CHANGED_INTERACTION = "variable_value_changed";
1860
+ declare const SCOPES_CHANGED_INTERACTION = "scopes_changed";
1861
+ declare const ADHOC_KEYS_DROPDOWN_INTERACTION = "adhoc_keys_dropdown";
1862
+ declare const ADHOC_VALUES_DROPDOWN_INTERACTION = "adhoc_values_dropdown";
1863
+ declare const GROUPBY_DIMENSIONS_INTERACTION = "groupby_dimensions";
1864
+
1865
+
1866
+
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+
1883
+ declare const index$1_ADHOC_KEYS_DROPDOWN_INTERACTION: typeof ADHOC_KEYS_DROPDOWN_INTERACTION;
1884
+ declare const index$1_ADHOC_VALUES_DROPDOWN_INTERACTION: typeof ADHOC_VALUES_DROPDOWN_INTERACTION;
1644
1885
  type index$1_ActWhenVariableChanged = ActWhenVariableChanged;
1645
1886
  declare const index$1_ActWhenVariableChanged: typeof ActWhenVariableChanged;
1887
+ type index$1_BasePerformanceEvent = BasePerformanceEvent;
1646
1888
  type index$1_CursorSync = CursorSync;
1647
1889
  declare const index$1_CursorSync: typeof CursorSync;
1890
+ type index$1_DashboardInteractionCompleteData = DashboardInteractionCompleteData;
1891
+ type index$1_DashboardInteractionMilestoneData = DashboardInteractionMilestoneData;
1892
+ type index$1_DashboardInteractionStartData = DashboardInteractionStartData;
1893
+ declare const index$1_FILTER_ADDED_INTERACTION: typeof FILTER_ADDED_INTERACTION;
1894
+ declare const index$1_FILTER_CHANGED_INTERACTION: typeof FILTER_CHANGED_INTERACTION;
1895
+ declare const index$1_FILTER_REMOVED_INTERACTION: typeof FILTER_REMOVED_INTERACTION;
1896
+ declare const index$1_FILTER_RESTORED_INTERACTION: typeof FILTER_RESTORED_INTERACTION;
1897
+ type index$1_FieldConfigMetadata = FieldConfigMetadata;
1898
+ declare const index$1_GROUPBY_DIMENSIONS_INTERACTION: typeof GROUPBY_DIMENSIONS_INTERACTION;
1648
1899
  type index$1_LiveNowTimer = LiveNowTimer;
1649
1900
  declare const index$1_LiveNowTimer: typeof LiveNowTimer;
1901
+ type index$1_PanelFieldConfigPerformanceData = PanelFieldConfigPerformanceData;
1902
+ type index$1_PanelPerformanceData = PanelPerformanceData;
1903
+ type index$1_PanelPluginLoadPerformanceData = PanelPluginLoadPerformanceData;
1904
+ type index$1_PanelQueryPerformanceData = PanelQueryPerformanceData;
1905
+ type index$1_PanelRenderPerformanceData = PanelRenderPerformanceData;
1906
+ type index$1_PanelTransformPerformanceData = PanelTransformPerformanceData;
1907
+ type index$1_PluginLoadMetadata = PluginLoadMetadata;
1908
+ type index$1_QueryMetadata = QueryMetadata;
1909
+ type index$1_QueryPerformanceData = QueryPerformanceData;
1910
+ declare const index$1_REFRESH_INTERACTION: typeof REFRESH_INTERACTION;
1911
+ type index$1_RenderMetadata = RenderMetadata;
1912
+ declare const index$1_SCOPES_CHANGED_INTERACTION: typeof SCOPES_CHANGED_INTERACTION;
1650
1913
  type index$1_SceneInteractionTracker = SceneInteractionTracker;
1651
1914
  declare const index$1_SceneInteractionTracker: typeof SceneInteractionTracker;
1915
+ type index$1_ScenePerformanceObserver = ScenePerformanceObserver;
1916
+ type index$1_ScenePerformanceTracker = ScenePerformanceTracker;
1917
+ declare const index$1_ScenePerformanceTracker: typeof ScenePerformanceTracker;
1652
1918
  type index$1_SceneQueryController = SceneQueryController;
1653
1919
  declare const index$1_SceneQueryController: typeof SceneQueryController;
1920
+ declare const index$1_TIME_RANGE_CHANGE_INTERACTION: typeof TIME_RANGE_CHANGE_INTERACTION;
1921
+ type index$1_TransformMetadata = TransformMetadata;
1922
+ declare const index$1_VARIABLE_VALUE_CHANGED_INTERACTION: typeof VARIABLE_VALUE_CHANGED_INTERACTION;
1923
+ type index$1_VizPanelRenderProfiler = VizPanelRenderProfiler;
1924
+ declare const index$1_VizPanelRenderProfiler: typeof VizPanelRenderProfiler;
1925
+ declare const index$1_getScenePerformanceTracker: typeof getScenePerformanceTracker;
1654
1926
  declare namespace index$1 {
1655
- export {
1656
- index$1_ActWhenVariableChanged as ActWhenVariableChanged,
1657
- index$1_CursorSync as CursorSync,
1658
- index$1_LiveNowTimer as LiveNowTimer,
1659
- index$1_SceneInteractionTracker as SceneInteractionTracker,
1660
- index$1_SceneQueryController as SceneQueryController,
1661
- };
1927
+ export { index$1_ADHOC_KEYS_DROPDOWN_INTERACTION as ADHOC_KEYS_DROPDOWN_INTERACTION, index$1_ADHOC_VALUES_DROPDOWN_INTERACTION as ADHOC_VALUES_DROPDOWN_INTERACTION, index$1_ActWhenVariableChanged as ActWhenVariableChanged, index$1_CursorSync as CursorSync, index$1_FILTER_ADDED_INTERACTION as FILTER_ADDED_INTERACTION, index$1_FILTER_CHANGED_INTERACTION as FILTER_CHANGED_INTERACTION, index$1_FILTER_REMOVED_INTERACTION as FILTER_REMOVED_INTERACTION, index$1_FILTER_RESTORED_INTERACTION as FILTER_RESTORED_INTERACTION, index$1_GROUPBY_DIMENSIONS_INTERACTION as GROUPBY_DIMENSIONS_INTERACTION, index$1_LiveNowTimer as LiveNowTimer, index$1_REFRESH_INTERACTION as REFRESH_INTERACTION, index$1_SCOPES_CHANGED_INTERACTION as SCOPES_CHANGED_INTERACTION, index$1_SceneInteractionTracker as SceneInteractionTracker, index$1_ScenePerformanceTracker as ScenePerformanceTracker, index$1_SceneQueryController as SceneQueryController, index$1_TIME_RANGE_CHANGE_INTERACTION as TIME_RANGE_CHANGE_INTERACTION, index$1_VARIABLE_VALUE_CHANGED_INTERACTION as VARIABLE_VALUE_CHANGED_INTERACTION, index$1_VizPanelRenderProfiler as VizPanelRenderProfiler, index$1_getScenePerformanceTracker as getScenePerformanceTracker };
1928
+ export type { index$1_BasePerformanceEvent as BasePerformanceEvent, index$1_DashboardInteractionCompleteData as DashboardInteractionCompleteData, index$1_DashboardInteractionMilestoneData as DashboardInteractionMilestoneData, index$1_DashboardInteractionStartData as DashboardInteractionStartData, index$1_FieldConfigMetadata as FieldConfigMetadata, index$1_PanelFieldConfigPerformanceData as PanelFieldConfigPerformanceData, index$1_PanelPerformanceData as PanelPerformanceData, index$1_PanelPluginLoadPerformanceData as PanelPluginLoadPerformanceData, index$1_PanelQueryPerformanceData as PanelQueryPerformanceData, index$1_PanelRenderPerformanceData as PanelRenderPerformanceData, index$1_PanelTransformPerformanceData as PanelTransformPerformanceData, index$1_PluginLoadMetadata as PluginLoadMetadata, index$1_QueryMetadata as QueryMetadata, index$1_QueryPerformanceData as QueryPerformanceData, index$1_RenderMetadata as RenderMetadata, index$1_ScenePerformanceObserver as ScenePerformanceObserver, index$1_TransformMetadata as TransformMetadata };
1662
1929
  }
1663
1930
 
1931
+ declare function writePerformanceLog(logger: string, message: string, ...rest: unknown[]): void;
1932
+
1664
1933
  /**
1665
1934
  * Base class for data layer. Handles common implementation including enabling/disabling layer and publishing results.
1666
1935
  */
@@ -1986,6 +2255,10 @@ declare class SceneDataTransformer extends SceneObjectBase<SceneDataTransformerS
1986
2255
  setContainerWidth(width: number): void;
1987
2256
  isDataReadyToDisplay(): boolean;
1988
2257
  reprocessTransformations(): void;
2258
+ /**
2259
+ * S3.1: Calculate transformation complexity metrics
2260
+ */
2261
+ private _calculateTransformationMetrics;
1989
2262
  cancelQuery(): void;
1990
2263
  getResultsStream(): ReplaySubject<SceneDataProviderResult>;
1991
2264
  clone(withState?: Partial<SceneDataTransformerState>): this;
@@ -1996,11 +2269,6 @@ declare class SceneDataTransformer extends SceneObjectBase<SceneDataTransformerS
1996
2269
  private _interpolateVariablesInTransformationConfigs;
1997
2270
  }
1998
2271
 
1999
- /**
2000
- * Will look for a scene object with a behavior that is a SceneQueryController and register the query with it.
2001
- */
2002
- declare function registerQueryWithController<T extends QueryResultWithState>(entry: SceneQueryControllerEntry): (queryStream: Observable<T>) => Observable<T>;
2003
-
2004
2272
  interface VariableValueSelectorsState extends SceneObjectState {
2005
2273
  layout?: ControlsLayout;
2006
2274
  }
@@ -3171,6 +3439,22 @@ declare const loadResources: ResourceLoader;
3171
3439
 
3172
3440
 
3173
3441
 
3442
+
3443
+
3444
+
3445
+
3446
+
3447
+
3448
+
3449
+
3450
+
3451
+
3452
+
3453
+
3454
+
3455
+
3456
+
3457
+
3174
3458
 
3175
3459
 
3176
3460
 
@@ -3205,5 +3489,5 @@ declare const sceneUtils: {
3205
3489
  buildPathIdFor: typeof buildPathIdFor;
3206
3490
  };
3207
3491
 
3208
- export { AdHocFiltersVariable, ConstantVariable, ControlsLabel, CustomVariable, DataProviderProxy, DataSourceVariable, EmbeddedScene, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, GroupByVariable, IntervalVariable, LazyLoader, LocalValueVariable, MultiOrSingleValueSelect, MultiValueVariable, NestedScene, NewSceneObjectAddedEvent, PATH_ID_SEPARATOR, PanelBuilders, PanelOptionsBuilders, QueryVariable, RuntimeDataSource, SafeSerializableSceneObject, SceneApp, SceneAppPage, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataTransformer, SceneDebugger, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneObjectBase, SceneObjectRef, SceneObjectStateChangedEvent, SceneObjectUrlSyncConfig, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRenderProfiler, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariableSet, SceneVariableValueChangedEvent, ScopesVariable, SplitLayout, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UserActionEvent, VariableDependencyConfig, VariableValueControl, VariableValueSelectWrapper, VariableValueSelectors, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, index$1 as behaviors, index as dataLayers, escapeUrlPipeDelimiters, formatRegistry, getExploreURL, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, loadResources, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync };
3209
- export type { AdHocFilterWithLabels, CancelActivationHandler, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariableValue, DataLayerFilter, DataRequestEnricher, DeepPartial, EmbeddedSceneState, ExtraQueryDataProcessor, ExtraQueryDescriptor, ExtraQueryProvider, FiltersRequestEnricher, FormatVariable, InterpolationFormatParameter, MacroVariableConstructor, MultiValueVariableState, QueryRunnerState, SceneActivationHandler, SceneAppDrilldownView, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneComponent, SceneComponentProps, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformerState, SceneDeactivationHandler, SceneFlexItemLike, SceneFlexItemState, SceneGridItemLike, SceneGridItemStateLike, SceneInteractionProfileEvent, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectState, SceneObjectStateChangedPayload, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneRefreshPickerState, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimeRangeLike, SceneTimeRangeState, SceneUrlSyncOptions, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSetState, SceneVariableState, SceneVariables, UrlSyncManagerLike, UseStateHookOptions, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableGetOptionsArgs, VariableValue, VariableValueOption, VariableValueSingle, VizConfig, VizPanelState };
3492
+ export { ADHOC_KEYS_DROPDOWN_INTERACTION, ADHOC_VALUES_DROPDOWN_INTERACTION, AdHocFiltersVariable, ConstantVariable, ControlsLabel, CustomVariable, DataProviderProxy, DataSourceVariable, EmbeddedScene, FILTER_ADDED_INTERACTION, FILTER_CHANGED_INTERACTION, FILTER_REMOVED_INTERACTION, FILTER_RESTORED_INTERACTION, FieldConfigBuilder, FieldConfigBuilders, FieldConfigOverridesBuilder, GROUPBY_DIMENSIONS_INTERACTION, GroupByVariable, IntervalVariable, LazyLoader, LocalValueVariable, MultiOrSingleValueSelect, MultiValueVariable, NestedScene, NewSceneObjectAddedEvent, PATH_ID_SEPARATOR, PanelBuilders, PanelOptionsBuilders, QueryVariable, REFRESH_INTERACTION, RuntimeDataSource, SCOPES_CHANGED_INTERACTION, SafeSerializableSceneObject, SceneApp, SceneAppPage, SceneByFrameRepeater, SceneByVariableRepeater, SceneCSSGridItem, SceneCSSGridLayout, SceneCanvasText, SceneControlsSpacer, SceneDataLayerBase, SceneDataLayerControls, SceneDataLayerSet, SceneDataLayerSetBase, SceneDataNode, SceneDataTransformer, SceneDebugger, SceneFlexItem, SceneFlexLayout, SceneGridItem, SceneGridLayout, SceneGridLayoutDragStartEvent, SceneGridRow, SceneObjectBase, SceneObjectRef, SceneObjectStateChangedEvent, SceneObjectUrlSyncConfig, SceneQueryRunner, SceneReactObject, SceneRefreshPicker, SceneRenderProfiler, SceneTimePicker, SceneTimeRange, SceneTimeRangeCompare, SceneTimeRangeTransformerBase, SceneTimeZoneOverride, SceneToolbarButton, SceneToolbarInput, SceneVariableSet, SceneVariableValueChangedEvent, ScopesVariable, SplitLayout, TIME_RANGE_CHANGE_INTERACTION, TestVariable, TextBoxVariable, UrlSyncContextProvider, UrlSyncManager, UserActionEvent, VARIABLE_VALUE_CHANGED_INTERACTION, VariableDependencyConfig, VariableValueControl, VariableValueSelectWrapper, VariableValueSelectors, VizConfigBuilder, VizConfigBuilders, VizPanel, VizPanelBuilder, VizPanelExploreButton, VizPanelMenu, index$1 as behaviors, index as dataLayers, escapeUrlPipeDelimiters, formatRegistry, generateOperationId, getExploreURL, getScenePerformanceTracker, isCustomVariableValue, isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject, loadResources, registerQueryWithController, registerRuntimeDataSource, sceneGraph, sceneUtils, useSceneApp, useSceneObjectState, useUrlSync, writePerformanceLog };
3493
+ export type { AdHocFilterWithLabels, BasePerformanceEvent, CancelActivationHandler, ControlsLayout, CustomFormatterVariable, CustomTransformOperator, CustomTransformerDefinition, CustomVariableValue, DashboardInteractionCompleteData, DashboardInteractionMilestoneData, DashboardInteractionStartData, DataLayerFilter, DataRequestEnricher, DeepPartial, EmbeddedSceneState, ExtraQueryDataProcessor, ExtraQueryDescriptor, ExtraQueryProvider, FieldConfigMetadata, FiltersRequestEnricher, FormatVariable, InterpolationFormatParameter, MacroVariableConstructor, MultiValueVariableState, PanelFieldConfigPerformanceData, PanelPerformanceData, PanelPluginLoadPerformanceData, PanelQueryPerformanceData, PanelRenderPerformanceData, PanelTransformPerformanceData, PluginLoadMetadata, QueryMetadata, QueryPerformanceData, QueryRunnerState, RenderMetadata, SceneActivationHandler, SceneAppDrilldownView, SceneAppPageLike, SceneAppPageState, SceneAppRoute, SceneComponent, SceneComponentProps, SceneDataLayerProvider, SceneDataLayerProviderState, SceneDataProvider, SceneDataProviderResult, SceneDataQuery, SceneDataState, SceneDataTransformerState, SceneDeactivationHandler, SceneFlexItemLike, SceneFlexItemState, SceneGridItemLike, SceneGridItemStateLike, SceneLayout, SceneLayoutChildOptions, SceneLayoutState, SceneObject, SceneObjectState, SceneObjectStateChangedPayload, SceneObjectUrlSyncHandler, SceneObjectUrlValue, SceneObjectUrlValues, SceneObjectWithUrlSync, ScenePerformanceObserver, SceneQueryControllerEntry, SceneQueryControllerEntryType, SceneQueryControllerLike, SceneRefreshPickerState, SceneRouteMatch, SceneStateChangedHandler, SceneStatelessBehavior, SceneTimeRangeLike, SceneTimeRangeState, SceneUrlSyncOptions, SceneVariable, SceneVariableDependencyConfigLike, SceneVariableSetState, SceneVariableState, SceneVariables, TransformMetadata, UrlSyncManagerLike, UseStateHookOptions, ValidateAndUpdateResult, VariableCustomFormatterFn, VariableGetOptionsArgs, VariableValue, VariableValueOption, VariableValueSingle, VizConfig, VizPanelState };