mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-10 02:39:02 +08:00
Merge branch 'develop' of github.com:SigNoz/signoz into pranshuchittora/fix/trace-detail/events-error-handling
This commit is contained in:
commit
16cf829ec3
@ -1,36 +1,26 @@
|
|||||||
import React, { useState, useMemo } from 'react';
|
import { INTERVAL_UNITS } from 'container/TraceDetail/utils';
|
||||||
import { isEqual } from 'lodash-es';
|
|
||||||
import styles from './style.module.css';
|
|
||||||
import { useMeasure } from 'react-use';
|
|
||||||
import { toFixed } from 'utils/toFixed';
|
|
||||||
import {
|
|
||||||
INTERVAL_UNITS,
|
|
||||||
resolveTimeFromInterval,
|
|
||||||
} from 'container/TraceDetail/utils';
|
|
||||||
import useThemeMode from 'hooks/useThemeMode';
|
import useThemeMode from 'hooks/useThemeMode';
|
||||||
|
import React, { useEffect, useMemo, useState } from 'react';
|
||||||
|
import { useMeasure } from 'react-use';
|
||||||
|
|
||||||
|
import styles from './style.module.css';
|
||||||
import { Interval } from './types';
|
import { Interval } from './types';
|
||||||
import { getIntervalSpread, getIntervals } from './utils';
|
import { getIntervals, getIntervalSpread } from './utils';
|
||||||
interface TimelineProps {
|
|
||||||
traceMetaData: object;
|
const Timeline_Height = 22;
|
||||||
globalTraceMetadata: object;
|
const Timeline_H_Spacing = 0;
|
||||||
intervalUnit: object;
|
|
||||||
setIntervalUnit: Function;
|
|
||||||
}
|
|
||||||
const Timeline = ({
|
const Timeline = ({
|
||||||
traceMetaData,
|
traceMetaData,
|
||||||
globalTraceMetadata,
|
globalTraceMetadata,
|
||||||
intervalUnit,
|
|
||||||
setIntervalUnit,
|
setIntervalUnit,
|
||||||
}: TimelineProps) => {
|
}: TimelineProps) => {
|
||||||
const [ref, { width }] = useMeasure<HTMLDivElement>();
|
const [ref, { width }] = useMeasure<HTMLDivElement>();
|
||||||
const { isDarkMode } = useThemeMode();
|
const { isDarkMode } = useThemeMode();
|
||||||
|
|
||||||
const Timeline_Height = 22;
|
|
||||||
const Timeline_H_Spacing = 0;
|
|
||||||
|
|
||||||
const [intervals, setIntervals] = useState<Interval[] | null>(null);
|
const [intervals, setIntervals] = useState<Interval[] | null>(null);
|
||||||
|
|
||||||
useMemo(() => {
|
useEffect(() => {
|
||||||
const {
|
const {
|
||||||
baseInterval,
|
baseInterval,
|
||||||
baseSpread,
|
baseSpread,
|
||||||
@ -41,16 +31,15 @@ const Timeline = ({
|
|||||||
});
|
});
|
||||||
|
|
||||||
let intervalUnit = INTERVAL_UNITS[0];
|
let intervalUnit = INTERVAL_UNITS[0];
|
||||||
for (const idx in INTERVAL_UNITS) {
|
for (let idx = 0; idx < INTERVAL_UNITS.length; idx++) {
|
||||||
const standard_interval = INTERVAL_UNITS[idx];
|
const standard_interval = INTERVAL_UNITS[idx];
|
||||||
if (baseSpread * standard_interval.multiplier < 1) {
|
if (baseSpread * standard_interval.multiplier < 1) {
|
||||||
intervalUnit = INTERVAL_UNITS[idx - 1];
|
if (idx > 1) intervalUnit = INTERVAL_UNITS[idx - 1];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debugger;
|
intervalUnit = intervalUnit || INTERVAL_UNITS[0];
|
||||||
intervalUnit = intervalUnit || INTERVAL_UNITS[0]
|
|
||||||
setIntervals(
|
setIntervals(
|
||||||
getIntervals({
|
getIntervals({
|
||||||
baseInterval,
|
baseInterval,
|
||||||
@ -60,7 +49,7 @@ const Timeline = ({
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
setIntervalUnit(intervalUnit);
|
setIntervalUnit(intervalUnit);
|
||||||
}, [traceMetaData, globalTraceMetadata]);
|
}, [traceMetaData, globalTraceMetadata, setIntervalUnit]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div ref={ref} style={{ flex: 1, overflow: 'inherit' }}>
|
<div ref={ref} style={{ flex: 1, overflow: 'inherit' }}>
|
||||||
@ -81,9 +70,10 @@ const Timeline = ({
|
|||||||
{intervals &&
|
{intervals &&
|
||||||
intervals.map((interval, index) => (
|
intervals.map((interval, index) => (
|
||||||
<g
|
<g
|
||||||
transform={`translate(${Timeline_H_Spacing +
|
transform={`translate(${
|
||||||
|
Timeline_H_Spacing +
|
||||||
(interval.percentage * (width - 2 * Timeline_H_Spacing)) / 100
|
(interval.percentage * (width - 2 * Timeline_H_Spacing)) / 100
|
||||||
},0)`}
|
},0)`}
|
||||||
className={styles['timeline-tick']}
|
className={styles['timeline-tick']}
|
||||||
key={interval.label + interval.percentage + index}
|
key={interval.label + interval.percentage + index}
|
||||||
>
|
>
|
||||||
@ -103,4 +93,11 @@ const Timeline = ({
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
interface TimelineProps {
|
||||||
|
traceMetaData: object;
|
||||||
|
globalTraceMetadata: object;
|
||||||
|
intervalUnit: object;
|
||||||
|
setIntervalUnit: Function;
|
||||||
|
}
|
||||||
|
|
||||||
export default Timeline;
|
export default Timeline;
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
import { isEqual } from 'lodash-es';
|
|
||||||
import { toFixed } from 'utils/toFixed';
|
|
||||||
import {
|
import {
|
||||||
INTERVAL_UNITS,
|
INTERVAL_UNITS,
|
||||||
resolveTimeFromInterval,
|
resolveTimeFromInterval,
|
||||||
} from 'container/TraceDetail/utils';
|
} from 'container/TraceDetail/utils';
|
||||||
|
import { isEqual } from 'lodash-es';
|
||||||
|
import { toFixed } from 'utils/toFixed';
|
||||||
|
|
||||||
|
import { Interval } from './types';
|
||||||
|
|
||||||
export const getIntervalSpread = ({
|
export const getIntervalSpread = ({
|
||||||
localTraceMetaData,
|
localTraceMetaData,
|
||||||
@ -24,7 +26,7 @@ export const getIntervalSpread = ({
|
|||||||
|
|
||||||
const MIN_INTERVALS = 5;
|
const MIN_INTERVALS = 5;
|
||||||
const baseSpread = localSpread;
|
const baseSpread = localSpread;
|
||||||
let intervalSpread = (baseSpread / MIN_INTERVALS) * 1.0;
|
const intervalSpread = (baseSpread / MIN_INTERVALS) * 1.0;
|
||||||
const integerPartString = intervalSpread.toString().split('.')[0];
|
const integerPartString = intervalSpread.toString().split('.')[0];
|
||||||
const integerPartLength = integerPartString.length;
|
const integerPartLength = integerPartString.length;
|
||||||
const intervalSpreadNormalized =
|
const intervalSpreadNormalized =
|
||||||
@ -46,7 +48,6 @@ export const getIntervals = ({
|
|||||||
intervalSpreadNormalized,
|
intervalSpreadNormalized,
|
||||||
intervalUnit,
|
intervalUnit,
|
||||||
}) => {
|
}) => {
|
||||||
debugger
|
|
||||||
const intervals: Interval[] = [
|
const intervals: Interval[] = [
|
||||||
{
|
{
|
||||||
label: `${toFixed(resolveTimeFromInterval(baseInterval, intervalUnit), 2)}${
|
label: `${toFixed(resolveTimeFromInterval(baseInterval, intervalUnit), 2)}${
|
||||||
@ -69,7 +70,6 @@ export const getIntervals = ({
|
|||||||
tempBaseSpread -= intervalSpreadNormalized;
|
tempBaseSpread -= intervalSpreadNormalized;
|
||||||
}
|
}
|
||||||
elapsedIntervals = interval_time;
|
elapsedIntervals = interval_time;
|
||||||
debugger;
|
|
||||||
const interval: Interval = {
|
const interval: Interval = {
|
||||||
label: `${toFixed(
|
label: `${toFixed(
|
||||||
resolveTimeFromInterval(interval_time + baseInterval, intervalUnit),
|
resolveTimeFromInterval(interval_time + baseInterval, intervalUnit),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user