import React,{useEffect} from 'react'; import { Tabs, Card, Row, Col} from 'antd'; import { connect } from 'react-redux'; import { useParams, RouteComponentProps } from "react-router-dom"; import { withRouter } from "react-router"; import { getServicesMetrics, metricItem, getTopEndpoints, topEndpointListItem, GlobalTime, updateTimeInterval } from '../../actions'; import { StoreState } from '../../reducers' import LatencyLineChart from "./LatencyLineChart" import RequestRateChart from './RequestRateChart' import ErrorRateChart from './ErrorRateChart' import TopEndpointsTable from './TopEndpointsTable'; const { TabPane } = Tabs; interface ServicesMetricsProps extends RouteComponentProps{ serviceMetrics: metricItem[], getServicesMetrics: Function, topEndpointsList: topEndpointListItem[], getTopEndpoints: Function, globalTime: GlobalTime, updateTimeInterval: Function, } const _ServiceMetrics = (props: ServicesMetricsProps) => { const params = useParams<{ servicename?: string; }>(); useEffect( () => { props.getServicesMetrics(params.servicename,props.globalTime); props.getTopEndpoints(params.servicename,props.globalTime); }, [props.globalTime,params.servicename]); const onTracePopupClick = (timestamp:number) => { props.updateTimeInterval('custom',[(timestamp/1000000)-5*60*1000,(timestamp/1000000)])// updateTimeInterval takes second range in ms -- give -5 min to selected time, props.history.push('/traces') } return (
Coming Soon..
{/* */}
{/* */}
); } const mapStateToProps = (state: StoreState): { serviceMetrics: metricItem[], topEndpointsList: topEndpointListItem[],globalTime: GlobalTime} => { return { serviceMetrics : state.serviceMetrics, topEndpointsList: state.topEndpointsList, globalTime:state.globalTime}; }; export const ServiceMetrics = withRouter(connect(mapStateToProps, { getServicesMetrics: getServicesMetrics, getTopEndpoints: getTopEndpoints, updateTimeInterval: updateTimeInterval, })(_ServiceMetrics));