remove lodash

This commit is contained in:
Fine 2025-03-06 16:01:49 +08:00
parent 79ec865ee7
commit 483c39926e

View File

@ -22,7 +22,6 @@ limitations under the License. -->
<script lang="ts" setup> <script lang="ts" setup>
import { ref, watch, onBeforeUnmount, onMounted } from "vue"; import { ref, watch, onBeforeUnmount, onMounted } from "vue";
import type { PropType } from "vue"; import type { PropType } from "vue";
import _ from "lodash";
import * as d3 from "d3"; import * as d3 from "d3";
import ListGraph from "../../utils/d3-trace-list"; import ListGraph from "../../utils/d3-trace-list";
import TreeGraph from "../../utils/d3-trace-tree"; import TreeGraph from "../../utils/d3-trace-tree";
@ -120,15 +119,19 @@ limitations under the License. -->
const item = props.data.find( const item = props.data.find(
(i: Span) => i.traceId === span.traceId && i.segmentId === span.segmentId && i.spanId === span.spanId - 1, (i: Span) => i.traceId === span.traceId && i.segmentId === span.segmentId && i.spanId === span.spanId - 1,
); );
const fixSpanKeyContent = { const content = fixSpans.find(
traceId: span.traceId, (i: Span) =>
segmentId: span.segmentId, i.traceId === span.traceId &&
spanId: span.spanId - 1, i.segmentId === span.segmentId &&
parentSpanId: span.spanId - 2, i.spanId === span.spanId - 1 &&
}; i.parentSpanId === span.spanId - 2,
if (!item && !_.find(fixSpans, fixSpanKeyContent)) { );
if (!item && !content) {
fixSpans.push({ fixSpans.push({
...fixSpanKeyContent, traceId: span.traceId,
segmentId: span.segmentId,
spanId: span.spanId - 1,
parentSpanId: span.spanId - 2,
refs: [], refs: [],
endpointName: `VNode: ${span.segmentId}`, endpointName: `VNode: ${span.segmentId}`,
serviceCode: "VirtualNode", serviceCode: "VirtualNode",
@ -161,22 +164,26 @@ limitations under the License. -->
if (!exit) { if (!exit) {
const ref = span.refs[0]; const ref = span.refs[0];
// create a known broken node. // create a known broken node.
const i = ref.parentSpanId; const parentSpanId = ref.parentSpanId > -1 ? 0 : -1;
const fixSpanKeyContent = { const content = fixSpans.find(
traceId: ref.traceId, (i: Span) =>
segmentId: ref.parentSegmentId, i.traceId === ref.traceId &&
spanId: i, i.segmentId === ref.parentSegmentId &&
parentSpanId: i > -1 ? 0 : -1, i.spanId === ref.parentSpanId &&
}; i.parentSpanId === parentSpanId,
if (!_.find(fixSpans, fixSpanKeyContent)) { );
if (!content) {
fixSpans.push({ fixSpans.push({
...fixSpanKeyContent, traceId: ref.traceId,
segmentId: ref.parentSegmentId,
spanId: ref.parentSpanId,
parentSpanId,
refs: [], refs: [],
endpointName: `VNode: ${ref.parentSegmentId}`, endpointName: `VNode: ${ref.parentSegmentId}`,
serviceCode: "VirtualNode", serviceCode: "VirtualNode",
type: `[Broken] ${ref.type}`, type: `[Broken] ${ref.type}`,
peer: "", peer: "",
component: `VirtualNode: #${i}`, component: `VirtualNode: #${ref.parentSpanId}`,
isError: true, isError: true,
isBroken: true, isBroken: true,
layer: "Broken", layer: "Broken",
@ -187,16 +194,20 @@ limitations under the License. -->
}); });
} }
// if root broken node is not exist, create a root broken node. // if root broken node is not exist, create a root broken node.
if (fixSpanKeyContent.parentSpanId > -1) { if (parentSpanId > -1) {
const fixRootSpanKeyContent = { const content = fixSpans.find(
traceId: ref.traceId, (i: Span) =>
segmentId: ref.parentSegmentId, i.traceId === ref.traceId &&
spanId: 0, i.segmentId === ref.parentSegmentId &&
parentSpanId: -1, i.spanId === 0 &&
}; i.parentSpanId === -1,
if (!_.find(fixSpans, fixRootSpanKeyContent)) { );
if (!content) {
fixSpans.push({ fixSpans.push({
...fixRootSpanKeyContent, traceId: ref.traceId,
segmentId: ref.parentSegmentId,
spanId: 0,
parentSpanId: -1,
refs: [], refs: [],
endpointName: `VNode: ${ref.parentSegmentId}`, endpointName: `VNode: ${ref.parentSegmentId}`,
serviceCode: "VirtualNode", serviceCode: "VirtualNode",
@ -241,14 +252,12 @@ limitations under the License. -->
} }
} }
if (s.isBroken) { if (s.isBroken) {
const children = _.filter(props.data, (span: Span) => { const children = props.data.filter((span: Span) =>
return _.find(span.refs, { span.refs.find(
traceId: s.traceId, (d) => d.traceId === s.traceId && d.parentSegmentId === s.segmentId && d.parentSpanId === s.spanId,
parentSegmentId: s.segmentId, ),
parentSpanId: s.spanId, );
}); if (children.length) {
});
if (children.length > 0) {
s.children.push(...children); s.children.push(...children);
} }
} }