feat (ui): Add the view check page
Comparmentalizing the view Co-Authored-By: Deniz Kusefoglu <deniz@influxdata.com>pull/16269/head
parent
1d8c05cb25
commit
5427a5ff61
|
@ -9,6 +9,7 @@ import {get} from 'lodash'
|
||||||
import EventViewer from 'src/eventViewer/components/EventViewer'
|
import EventViewer from 'src/eventViewer/components/EventViewer'
|
||||||
import EventTable from 'src/eventViewer/components/EventTable'
|
import EventTable from 'src/eventViewer/components/EventTable'
|
||||||
import CheckHistoryControls from 'src/alerting/components/CheckHistoryControls'
|
import CheckHistoryControls from 'src/alerting/components/CheckHistoryControls'
|
||||||
|
import CheckHistoryVisualization from 'src/alerting/components/CheckHistoryVisualization'
|
||||||
import AlertHistoryQueryParams from 'src/alerting/components/AlertHistoryQueryParams'
|
import AlertHistoryQueryParams from 'src/alerting/components/AlertHistoryQueryParams'
|
||||||
import CheckPlot from 'src/shared/components/CheckPlot'
|
import CheckPlot from 'src/shared/components/CheckPlot'
|
||||||
import EmptyQueryView, {ErrorFormat} from 'src/shared/components/EmptyQueryView'
|
import EmptyQueryView, {ErrorFormat} from 'src/shared/components/EmptyQueryView'
|
||||||
|
@ -26,6 +27,7 @@ import TimeSeries from 'src/shared/components/TimeSeries'
|
||||||
import {createView} from 'src/shared/utils/view'
|
import {createView} from 'src/shared/utils/view'
|
||||||
import {checkResultsLength} from 'src/shared/utils/vis'
|
import {checkResultsLength} from 'src/shared/utils/vis'
|
||||||
import {getTimeRangeVars} from 'src/variables/utils/getTimeRangeVars'
|
import {getTimeRangeVars} from 'src/variables/utils/getTimeRangeVars'
|
||||||
|
import { queries } from 'react-testing-library'
|
||||||
|
|
||||||
interface ResourceIDs {
|
interface ResourceIDs {
|
||||||
checkIDs: {[x: string]: boolean}
|
checkIDs: {[x: string]: boolean}
|
||||||
|
@ -65,8 +67,6 @@ const CheckHistory: FC<Props> = ({
|
||||||
const loadRows = useMemo(() => options => loadStatuses(orgID, options), [
|
const loadRows = useMemo(() => options => loadStatuses(orgID, options), [
|
||||||
orgID,
|
orgID,
|
||||||
])
|
])
|
||||||
const [submitToken, setSubmitToken] = useState(0)
|
|
||||||
const [manualRefresh, setManualRefresh] = useState(0)
|
|
||||||
|
|
||||||
const fields = STATUS_FIELDS
|
const fields = STATUS_FIELDS
|
||||||
return (
|
return (
|
||||||
|
@ -95,52 +95,9 @@ const CheckHistory: FC<Props> = ({
|
||||||
scrollable={false}
|
scrollable={false}
|
||||||
className="alert-history-page--contents"
|
className="alert-history-page--contents"
|
||||||
>
|
>
|
||||||
{/* {<CheckHistoryVisualization .../>} */}
|
<CheckHistoryVisualization check={check} timeZone={timeZone}} />
|
||||||
<TimeSeries
|
|
||||||
submitToken={submitToken}
|
|
||||||
queries={[check.query]}
|
|
||||||
key={manualRefresh}
|
|
||||||
variables={getTimeRangeVars({lower: 'now() - 5m'})}
|
|
||||||
check={check}
|
|
||||||
>
|
|
||||||
{({
|
|
||||||
giraffeResult,
|
|
||||||
loading,
|
|
||||||
errorMessage,
|
|
||||||
isInitialFetch,
|
|
||||||
statuses,
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<EmptyQueryView
|
|
||||||
errorFormat={ErrorFormat.Tooltip}
|
|
||||||
errorMessage={errorMessage}
|
|
||||||
hasResults={checkResultsLength(giraffeResult)}
|
|
||||||
loading={loading}
|
|
||||||
isInitialFetch={isInitialFetch}
|
|
||||||
queries={[check.query]}
|
|
||||||
fallbackNote={null}
|
|
||||||
>
|
|
||||||
<CheckPlot
|
|
||||||
check={check}
|
|
||||||
table={get(giraffeResult, 'table')}
|
|
||||||
fluxGroupKeyUnion={get(
|
|
||||||
giraffeResult,
|
|
||||||
'fluxGroupKeyUnion'
|
|
||||||
)}
|
|
||||||
loading={loading}
|
|
||||||
timeZone={timeZone}
|
|
||||||
viewProperties={properties}
|
|
||||||
statuses={statuses}
|
|
||||||
>
|
|
||||||
{config => <Plot config={config} />}
|
|
||||||
</CheckPlot>
|
|
||||||
{/* {<CheckHistoryStatuses .../>} */}
|
|
||||||
</EmptyQueryView>
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
</TimeSeries>
|
|
||||||
<div className="alert-history">
|
<div className="alert-history">
|
||||||
<EventTable {...props} fields={fields} />
|
{/* <EventTable {...props} fields={fields} /> */}
|
||||||
</div>
|
</div>
|
||||||
</Page.Contents>
|
</Page.Contents>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
// Libraries
|
||||||
|
import React, {FC, createContext, useState, useEffect} from 'react'
|
||||||
|
import {get} from 'lodash'
|
||||||
|
|
||||||
|
// Components
|
||||||
|
import { Plot } from '@influxdata/giraffe'
|
||||||
|
import CheckPlot from 'src/shared/components/CheckPlot'
|
||||||
|
import EmptyQueryView, {ErrorFormat} from 'src/shared/components/EmptyQueryView'
|
||||||
|
|
||||||
|
|
||||||
|
// Types
|
||||||
|
import { Check, TimeZone, CheckViewProperties} from 'src/types'
|
||||||
|
import TimeSeries from 'src/shared/components/TimeSeries'
|
||||||
|
import {createView} from 'src/shared/utils/view'
|
||||||
|
import {checkResultsLength} from 'src/shared/utils/vis'
|
||||||
|
import {getTimeRangeVars} from 'src/variables/utils/getTimeRangeVars'
|
||||||
|
|
||||||
|
interface ResourceIDs {
|
||||||
|
checkIDs: {[x: string]: boolean}
|
||||||
|
endpointIDs: {[x: string]: boolean}
|
||||||
|
ruleIDs: {[x: string]: boolean}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ResourceIDsContext = createContext<ResourceIDs>(null)
|
||||||
|
|
||||||
|
interface OwnProps {
|
||||||
|
check: Check
|
||||||
|
timeZone: TimeZone
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
type Props = OwnProps
|
||||||
|
//TODO maybe update submitToken when we know how
|
||||||
|
|
||||||
|
const CheckHistoryVisualization: FC<Props> = ({
|
||||||
|
check,
|
||||||
|
timeZone
|
||||||
|
}) => {
|
||||||
|
let properties: CheckViewProperties
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const view = createView<CheckViewProperties>(
|
||||||
|
get(check, 'type', 'threshold')
|
||||||
|
)
|
||||||
|
properties = view.properties
|
||||||
|
}, [check])
|
||||||
|
|
||||||
|
const [submitToken, setSubmitToken] = useState(0)
|
||||||
|
const [manualRefresh, setManualRefresh] = useState(0)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<TimeSeries
|
||||||
|
submitToken={submitToken}
|
||||||
|
queries={[check.query]}
|
||||||
|
key={manualRefresh}
|
||||||
|
variables={getTimeRangeVars({lower: 'now() - 5m'})}
|
||||||
|
check={check}
|
||||||
|
>
|
||||||
|
{({giraffeResult, loading, errorMessage, isInitialFetch, statuses}) => {
|
||||||
|
return (
|
||||||
|
<EmptyQueryView
|
||||||
|
errorFormat={ErrorFormat.Tooltip}
|
||||||
|
errorMessage={errorMessage}
|
||||||
|
hasResults={checkResultsLength(giraffeResult)}
|
||||||
|
loading={loading}
|
||||||
|
isInitialFetch={isInitialFetch}
|
||||||
|
queries={[check.query]}
|
||||||
|
fallbackNote={null}
|
||||||
|
>
|
||||||
|
<CheckPlot
|
||||||
|
check={check}
|
||||||
|
table={get(giraffeResult, 'table')}
|
||||||
|
fluxGroupKeyUnion={get(giraffeResult, 'fluxGroupKeyUnion')}
|
||||||
|
loading={loading}
|
||||||
|
timeZone={timeZone}
|
||||||
|
viewProperties={properties}
|
||||||
|
statuses={statuses}
|
||||||
|
>
|
||||||
|
{config => <Plot config={config} />}
|
||||||
|
</CheckPlot>
|
||||||
|
{/* {<CheckHistoryStatuses .../>} */}
|
||||||
|
</EmptyQueryView>
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
</TimeSeries>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default CheckHistoryVisualization
|
Loading…
Reference in New Issue