Merge branch 'develop' of github.com:SigNoz/signoz into pranshuchittora/fix/trace-detail/events-error-handling

This commit is contained in:
Pranshu Chittora 2022-03-11 16:37:15 +05:30
commit 16cf829ec3
No known key found for this signature in database
GPG Key ID: 3A9E57A016CC0626
2 changed files with 30 additions and 33 deletions

View File

@ -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;

View File

@ -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),