prometheus
1import React, { FC, Fragment, useState } from 'react';
2import { Tooltip } from 'reactstrap';
3import 'css.escape';
4import { humanizeDuration } from '../../utils';
5
6export interface TargetScrapeDurationProps {
7duration: number;
8interval: string;
9timeout: string;
10idx: number;
11scrapePool: string;
12}
13
14const TargetScrapeDuration: FC<TargetScrapeDurationProps> = ({ duration, interval, timeout, idx, scrapePool }) => {
15const [scrapeTooltipOpen, setScrapeTooltipOpen] = useState<boolean>(false);
16const id = `scrape-duration-${scrapePool}-${idx}`;
17
18return (
19<>
20<div id={id} className="scrape-duration-container">
21{humanizeDuration(duration * 1000)}
22</div>
23<Tooltip
24isOpen={scrapeTooltipOpen}
25toggle={() => setScrapeTooltipOpen(!scrapeTooltipOpen)}
26target={CSS.escape(id)}
27placement={'right-end'}
28style={{ maxWidth: 'none', textAlign: 'left' }}
29>
30<Fragment>
31<span>Interval: {interval}</span>
32<br />
33</Fragment>
34<Fragment>
35<span>Timeout: {timeout}</span>
36</Fragment>
37</Tooltip>
38</>
39);
40};
41
42export default TargetScrapeDuration;
43