⚝
One Hat Cyber Team
⚝
Your IP:
216.73.217.4
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
explore
/
View File Name :
ExploreQueryInspector.tsx
import React, { useEffect, useState } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { CoreApp, LoadingState } from '@grafana/data'; import { reportInteraction } from '@grafana/runtime/src'; import { defaultTimeZone, TimeZone } from '@grafana/schema'; import { TabbedContainer, TabConfig } from '@grafana/ui'; import { requestIdGenerator } from 'app/core/utils/explore'; import { ExploreDrawer } from 'app/features/explore/ExploreDrawer'; import { InspectDataTab } from 'app/features/inspector/InspectDataTab'; import { InspectErrorTab } from 'app/features/inspector/InspectErrorTab'; import { InspectJSONTab } from 'app/features/inspector/InspectJSONTab'; import { InspectStatsTab } from 'app/features/inspector/InspectStatsTab'; import { QueryInspector } from 'app/features/inspector/QueryInspector'; import { mixedRequestId } from 'app/plugins/datasource/mixed/MixedDataSource'; import { StoreState, ExploreItemState } from 'app/types'; import { GetDataOptions } from '../query/state/PanelQueryRunner'; import { runQueries } from './state/query'; interface DispatchProps { width: number; exploreId: string; timeZone: TimeZone; onClose: () => void; isMixed: boolean; } type Props = DispatchProps & ConnectedProps
; export function ExploreQueryInspector(props: Props) { const { width, onClose, queryResponse, timeZone, isMixed, exploreId } = props; const [dataOptions, setDataOptions] = useState
({ withTransforms: false, withFieldConfig: true, }); const dataFrames = queryResponse?.series || []; let errors = queryResponse?.errors; if (!errors?.length && queryResponse?.error) { errors = [queryResponse.error]; } useEffect(() => { reportInteraction('grafana_explore_query_inspector_opened'); }, []); const statsTab: TabConfig = { label: 'Stats', value: 'stats', icon: 'chart-line', content:
, }; const jsonTab: TabConfig = { label: 'JSON', value: 'json', icon: 'brackets-curly', content:
, }; const dataTab: TabConfig = { label: 'Data', value: 'data', icon: 'database', content: (
), }; const queryTab: TabConfig = { label: 'Query', value: 'query', icon: 'info-circle', content: (
props.runQueries({ exploreId })} /> ), }; const tabs = [statsTab, queryTab, jsonTab, dataTab]; if (errors?.length) { const errorTab: TabConfig = { label: 'Error', value: 'error', icon: 'exclamation-triangle', content:
, }; tabs.push(errorTab); } return (
); } function mapStateToProps(state: StoreState, { exploreId }: { exploreId: string }) { const explore = state.explore; const item: ExploreItemState = explore.panes[exploreId]!; const { queryResponse } = item; return { queryResponse, }; } const mapDispatchToProps = { runQueries, }; const connector = connect(mapStateToProps, mapDispatchToProps); export default connector(ExploreQueryInspector);