import { nanoid } from 'nanoid'; import { ReactElement, useState } from 'react'; import AutoSizer from 'react-virtualized-auto-sizer'; import { sceneUtils, VizConfigBuilders } from '@grafana/scenes'; import { SceneContextProvider, useDataTransformer, useQueryRunner, VizGridLayout, VizPanel, } from '@grafana/scenes-react'; import { Page } from 'app/core/components/Page/Page'; import { LogFilter, LogViewFilters } from './LogViewFilters'; import { ExtensionsLogDataSource } from './dataSource'; import { createFilterTransformation } from './filterTransformation'; import { log } from './log'; const DATASOURCE_REF = { uid: nanoid(), type: 'grafana-extensionslog-datasource', }; const logsViz = VizConfigBuilders.logs().setOption('wrapLogMessage', true).build(); sceneUtils.registerRuntimeDataSource({ dataSource: new ExtensionsLogDataSource(DATASOURCE_REF.type, DATASOURCE_REF.uid, log), }); export default function LogViewer(): ReactElement { return ( ); } function LogViewScene(): ReactElement | null { const [filter, setFilter] = useState({}); const data = useQueryRunner({ datasource: DATASOURCE_REF, queries: [{ refId: 'A' }], liveStreaming: true, }); const filteredData = useDataTransformer({ transformations: [createFilterTransformation(filter)], data: data, }); return ( } > {({ height, width }) => ( )} ); }