mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-14 13:51:29 +08:00

* fix: Chart data logic on dashboard reloads * fix: linting issues * fix: added right side loader & css config * fix: loader condition change * fix: linting issues * fix: error state of API * fix: Resolved suggested changes * fix: Error state for API Failed * fix: Default loading state * fix: linting issues * fix: Suggested changes * feat: Added common hook for previous value * chore: usePrevious is made type safety * chore: chart data set is updated * chore: removed eslint rule * fix: commitlint issue on commit Co-authored-by: Vishal Sharma <makeavish786@gmail.com> Co-authored-by: Palash Gupta <palashgdev@gmail.com> Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
89 lines
2.1 KiB
TypeScript
89 lines
2.1 KiB
TypeScript
import RouteTab from 'components/RouteTab';
|
|
import ROUTES from 'constants/routes';
|
|
import React, { memo } from 'react';
|
|
import { generatePath, useParams } from 'react-router-dom';
|
|
import { useLocation } from 'react-use';
|
|
|
|
import { getWidgetQueryBuilder } from './MetricsApplication.factory';
|
|
import ResourceAttributesFilter from './ResourceAttributesFilter';
|
|
import DBCall from './Tabs/DBCall';
|
|
import External from './Tabs/External';
|
|
import Overview from './Tabs/Overview';
|
|
|
|
function OverViewTab(): JSX.Element {
|
|
return <Overview getWidgetQueryBuilder={getWidgetQueryBuilder} />;
|
|
}
|
|
|
|
function DbCallTab(): JSX.Element {
|
|
return <DBCall getWidgetQueryBuilder={getWidgetQueryBuilder} />;
|
|
}
|
|
|
|
function ExternalTab(): JSX.Element {
|
|
return <External getWidgetQueryBuilder={getWidgetQueryBuilder} />;
|
|
}
|
|
|
|
function ServiceMetrics(): JSX.Element {
|
|
const { search } = useLocation();
|
|
const { servicename } = useParams<{ servicename: string }>();
|
|
|
|
const searchParams = new URLSearchParams(search);
|
|
const tab = searchParams.get('tab');
|
|
|
|
const overMetrics = 'Overview Metrics';
|
|
const dbCallMetrics = 'Database Calls';
|
|
const externalMetrics = 'External Calls';
|
|
|
|
const getActiveKey = (): string => {
|
|
switch (tab) {
|
|
case null: {
|
|
return overMetrics;
|
|
}
|
|
case dbCallMetrics: {
|
|
return dbCallMetrics;
|
|
}
|
|
case externalMetrics: {
|
|
return externalMetrics;
|
|
}
|
|
default: {
|
|
return overMetrics;
|
|
}
|
|
}
|
|
};
|
|
|
|
const activeKey = getActiveKey();
|
|
|
|
return (
|
|
<>
|
|
<ResourceAttributesFilter />
|
|
<RouteTab
|
|
routes={[
|
|
{
|
|
Component: OverViewTab,
|
|
name: overMetrics,
|
|
route: `${generatePath(ROUTES.SERVICE_METRICS, {
|
|
servicename,
|
|
})}?tab=${overMetrics}`,
|
|
},
|
|
{
|
|
Component: DbCallTab,
|
|
name: dbCallMetrics,
|
|
route: `${generatePath(ROUTES.SERVICE_METRICS, {
|
|
servicename,
|
|
})}?tab=${dbCallMetrics}`,
|
|
},
|
|
{
|
|
Component: ExternalTab,
|
|
name: externalMetrics,
|
|
route: `${generatePath(ROUTES.SERVICE_METRICS, {
|
|
servicename,
|
|
})}?tab=${externalMetrics}`,
|
|
},
|
|
]}
|
|
activeKey={activeKey}
|
|
/>
|
|
</>
|
|
);
|
|
}
|
|
|
|
export default memo(ServiceMetrics);
|