mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-10 19:19:00 +08:00
fix: [SIG-542]: handle special characters in servicename (#4649)
* fix: [SIG-542]: handle special characters in servicename * feat: handle . operator in the URL * chore: left files to update
This commit is contained in:
parent
c842e68288
commit
7051831539
@ -30,7 +30,9 @@ import {
|
||||
} from './util';
|
||||
|
||||
function DBCall(): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
const [selectedTimeStamp, setSelectedTimeStamp] = useState<number>(0);
|
||||
const { queries } = useResourceAttribute();
|
||||
|
||||
|
@ -32,7 +32,9 @@ import {
|
||||
function External(): JSX.Element {
|
||||
const [selectedTimeStamp, setSelectedTimeStamp] = useState<number>(0);
|
||||
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
const { queries } = useResourceAttribute();
|
||||
|
||||
const tagFilterItems = useMemo(
|
||||
|
@ -52,7 +52,8 @@ function Application(): JSX.Element {
|
||||
const { maxTime, minTime } = useSelector<AppState, GlobalReducer>(
|
||||
(state) => state.globalTime,
|
||||
);
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
const [selectedTimeStamp, setSelectedTimeStamp] = useState<number>(0);
|
||||
const { search, pathname } = useLocation();
|
||||
const { queries } = useResourceAttribute();
|
||||
|
@ -32,7 +32,8 @@ function ApDexMetrics({
|
||||
topLevelOperationsRoute,
|
||||
handleGraphClick,
|
||||
}: ApDexMetricsProps): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const apDexMetricsWidget = useMemo(
|
||||
() =>
|
||||
|
@ -15,7 +15,9 @@ function ApDexMetricsApplication({
|
||||
thresholdValue,
|
||||
topLevelOperationsRoute,
|
||||
}: ApDexDataSwitcherProps): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const { data, isLoading, error } = useGetMetricMeta(metricMeta, servicename);
|
||||
useErrorNotification(error);
|
||||
|
||||
|
@ -21,7 +21,8 @@ function ApDexTraces({
|
||||
tagFilterItems,
|
||||
thresholdValue,
|
||||
}: ApDexDataSwitcherProps): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const apDexTracesWidget = useMemo(
|
||||
() =>
|
||||
|
@ -15,7 +15,9 @@ function ApDexApplication({
|
||||
topLevelOperationsRoute,
|
||||
tagFilterItems,
|
||||
}: ApDexApplicationProps): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const { data, isLoading, error, isRefetching } = useGetApDexSettings(
|
||||
servicename,
|
||||
);
|
||||
|
@ -30,7 +30,8 @@ function ServiceOverview({
|
||||
topLevelOperationsRoute,
|
||||
topLevelOperationsIsLoading,
|
||||
}: ServiceOverviewProps): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const isSpanMetricEnable = useFeatureFlag(FeatureKeys.USE_SPAN_METRICS)
|
||||
?.active;
|
||||
|
@ -15,7 +15,11 @@ function TopOperation(): JSX.Element {
|
||||
const { maxTime, minTime } = useSelector<AppState, GlobalReducer>(
|
||||
(state) => state.globalTime,
|
||||
);
|
||||
const { servicename } = useParams<{ servicename?: string }>();
|
||||
const { servicename: encodedServiceName } = useParams<{
|
||||
servicename?: string;
|
||||
}>();
|
||||
const servicename = decodeURIComponent(encodedServiceName || '');
|
||||
|
||||
const { queries } = useResourceAttribute();
|
||||
const selectedTags = useMemo(
|
||||
() => (convertRawQueriesToTraceSelectedTags(queries) as Tags[]) || [],
|
||||
|
@ -24,7 +24,8 @@ import ColumnWithLink from './TableRenderer/ColumnWithLink';
|
||||
import { getTableColumnRenderer } from './TableRenderer/TableColumnRenderer';
|
||||
|
||||
function TopOperationMetrics(): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const { notifications } = useNotifications();
|
||||
|
||||
|
@ -26,7 +26,9 @@ function TopOperationsTable({
|
||||
isLoading,
|
||||
}: TopOperationsTableProps): JSX.Element {
|
||||
const searchInput = useRef<InputRef>(null);
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
const { minTime, maxTime } = useSelector<AppState, GlobalReducer>(
|
||||
(state) => state.globalTime,
|
||||
);
|
||||
@ -39,7 +41,8 @@ function TopOperationsTable({
|
||||
const params = useParams<{ servicename: string }>();
|
||||
|
||||
const handleOnClick = (operation: string): void => {
|
||||
const { servicename } = params;
|
||||
const { servicename: encodedServiceName } = params;
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
navigateToTrace({
|
||||
servicename,
|
||||
|
@ -22,7 +22,8 @@ export function QueryTable({
|
||||
...props
|
||||
}: QueryTableProps): JSX.Element {
|
||||
const { isDownloadEnabled = false, fileName = '' } = downloadOption || {};
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
const { loading } = props;
|
||||
const { columns: newColumns, dataSource: newDataSource } = useMemo(() => {
|
||||
if (columns && dataSource) {
|
||||
|
@ -10,7 +10,9 @@ import { Button } from '../styles';
|
||||
import ApDexSettings from './ApDexSettings';
|
||||
|
||||
function ApDexApplication(): JSX.Element {
|
||||
const { servicename } = useParams<IServiceName>();
|
||||
const { servicename: encodedServiceName } = useParams<IServiceName>();
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const {
|
||||
data,
|
||||
isLoading,
|
||||
|
@ -13,7 +13,11 @@ import { MetricsApplicationTab, TAB_KEY_VS_LABEL } from './types';
|
||||
import useMetricsApplicationTabKey from './useMetricsApplicationTabKey';
|
||||
|
||||
function MetricsApplication(): JSX.Element {
|
||||
const { servicename } = useParams<{ servicename: string }>();
|
||||
const { servicename: encodedServiceName } = useParams<{
|
||||
servicename: string;
|
||||
}>();
|
||||
|
||||
const servicename = decodeURIComponent(encodedServiceName);
|
||||
|
||||
const activeKey = useMetricsApplicationTabKey();
|
||||
|
||||
|
@ -67,7 +67,9 @@ const config = {
|
||||
devtool: 'source-map',
|
||||
entry: resolve(__dirname, './src/index.tsx'),
|
||||
devServer: {
|
||||
historyApiFallback: true,
|
||||
historyApiFallback: {
|
||||
disableDotRule: true,
|
||||
},
|
||||
open: true,
|
||||
hot: true,
|
||||
liveReload: true,
|
||||
|
Loading…
x
Reference in New Issue
Block a user