series.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { PluginMeta, PluginExports } from './plugins';
  2. import { TimeSeries, TimeRange, RawTimeRange } from '@grafana/ui';
  3. export interface DataQueryResponse {
  4. data: TimeSeries[];
  5. }
  6. export interface DataQuery {
  7. refId: string;
  8. [key: string]: any;
  9. }
  10. export interface DataQueryOptions {
  11. timezone: string;
  12. range: TimeRange;
  13. rangeRaw: RawTimeRange;
  14. targets: DataQuery[];
  15. panelId: number;
  16. dashboardId: number;
  17. cacheTimeout?: string;
  18. interval: string;
  19. intervalMs: number;
  20. maxDataPoints: number;
  21. scopedVars: object;
  22. }
  23. export interface DataSourceApi {
  24. name: string;
  25. meta: PluginMeta;
  26. pluginExports: PluginExports;
  27. /**
  28. * min interval range
  29. */
  30. interval?: string;
  31. /**
  32. * Imports queries from a different datasource
  33. */
  34. importQueries?(queries: DataQuery[], originMeta: PluginMeta): Promise<DataQuery[]>;
  35. /**
  36. * Initializes a datasource after instantiation
  37. */
  38. init?: () => void;
  39. /**
  40. * Main metrics / data query action
  41. */
  42. query(options: DataQueryOptions): Promise<DataQueryResponse>;
  43. /**
  44. * Test & verify datasource settings & connection details
  45. */
  46. testDatasource(): Promise<any>;
  47. }