LogsPanel.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React from 'react';
  2. import { PanelProps, LogRows, CustomScrollbar } from '@grafana/ui';
  3. import { Options } from './types';
  4. import { LogsDedupStrategy } from '@grafana/data';
  5. import { dataFrameToLogsModel } from 'app/core/logs_model';
  6. import { sortLogsResult } from 'app/core/utils/explore';
  7. interface LogsPanelProps extends PanelProps<Options> {}
  8. export const LogsPanel: React.FunctionComponent<LogsPanelProps> = ({
  9. data,
  10. timeZone,
  11. options: { showTime, sortOrder },
  12. width,
  13. }) => {
  14. if (!data) {
  15. return (
  16. <div className="panel-empty">
  17. <p>No data found in response</p>
  18. </div>
  19. );
  20. }
  21. const newResults = data ? dataFrameToLogsModel(data.series, data.request.intervalMs) : null;
  22. const sortedNewResults = sortLogsResult(newResults, sortOrder);
  23. return (
  24. <CustomScrollbar autoHide>
  25. <LogRows
  26. data={sortedNewResults}
  27. dedupStrategy={LogsDedupStrategy.none}
  28. highlighterExpressions={[]}
  29. showTime={showTime}
  30. showLabels={false}
  31. timeZone={timeZone}
  32. />
  33. </CustomScrollbar>
  34. );
  35. };