-
Notifications
You must be signed in to change notification settings - Fork 699
Expand file tree
/
Copy pathtraceDiffGraphUtils.ts
More file actions
38 lines (32 loc) · 1.39 KB
/
traceDiffGraphUtils.ts
File metadata and controls
38 lines (32 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (c) 2019-2020 The Jaeger Authors.
// SPDX-License-Identifier: Apache-2.0
import { TVertexKey } from '@jaegertracing/plexus/lib/types';
import _map from 'lodash/map';
import memoizeOne from 'memoize-one';
import convPlexus from '../../../model/trace-dag/convPlexus';
import TraceDag from '../../../model/trace-dag/TraceDag';
import { TDenseSpanMembers, TDiffCounts } from '../../../model/trace-dag/types';
import TDagPlexusVertex from '../../../model/trace-dag/types/TDagPlexusVertex';
import { IOtelTrace } from '../../../types/otel';
import filterSpans from '../../../utils/filter-spans';
function getUiFindVertexKeysFn(
uiFind: string,
vertices: TDagPlexusVertex<TDenseSpanMembers>[]
): Set<TVertexKey> {
if (!uiFind) return new Set<TVertexKey>();
const newVertexKeys: Set<TVertexKey> = new Set();
vertices.forEach(({ key, data: { members } }) => {
if (filterSpans(uiFind, _map(members, 'span'))?.size) {
newVertexKeys.add(key);
}
});
return newVertexKeys;
}
export const getUiFindVertexKeys = memoizeOne(getUiFindVertexKeysFn);
function getEdgesAndVerticesFn(aData: IOtelTrace, bData: IOtelTrace) {
const aTraceDag = TraceDag.newFromTrace(aData);
const bTraceDag = TraceDag.newFromTrace(bData);
const diffDag = TraceDag.diff(aTraceDag, bTraceDag);
return convPlexus<TDiffCounts>(diffDag.nodesMap);
}
export const getEdgesAndVertices = memoizeOne(getEdgesAndVerticesFn);