diff --git a/public/app/plugins/datasource/jaeger/responseTransform.ts b/public/app/plugins/datasource/jaeger/responseTransform.ts index 7b49168e79c..35446e221b8 100644 --- a/public/app/plugins/datasource/jaeger/responseTransform.ts +++ b/public/app/plugins/datasource/jaeger/responseTransform.ts @@ -24,6 +24,7 @@ export function createTraceFrame(data: TraceResponse): DataFrame { { name: 'startTime', type: FieldType.number }, { name: 'duration', type: FieldType.number }, { name: 'logs', type: FieldType.other }, + { name: 'references', type: FieldType.other, values: [] }, { name: 'tags', type: FieldType.other }, { name: 'warnings', type: FieldType.other }, { name: 'stackTraces', type: FieldType.other }, @@ -44,10 +45,12 @@ export function createTraceFrame(data: TraceResponse): DataFrame { } function toSpanRow(span: Span, processes: Record): TraceSpanRow { + const parentSpanID = span.references?.find((r) => r.refType === 'CHILD_OF')?.spanID; + return { spanID: span.spanID, traceID: span.traceID, - parentSpanID: span.references?.find((r) => r.refType === 'CHILD_OF')?.spanID, + parentSpanID: parentSpanID, operationName: span.operationName, // from micro to millis startTime: span.startTime / 1000, @@ -59,6 +62,7 @@ function toSpanRow(span: Span, processes: Record): TraceSp tags: span.tags, warnings: span.warnings ?? undefined, stackTraces: span.stackTraces, + references: span.references?.filter((r) => r.spanID !== parentSpanID) ?? [], // parentSpanID is pushed to references in the transformTraceDataFrame method serviceName: processes[span.processID].serviceName, serviceTags: processes[span.processID].tags, }; diff --git a/public/app/plugins/datasource/jaeger/testResponse.ts b/public/app/plugins/datasource/jaeger/testResponse.ts index a438602c381..497851f4ce2 100644 --- a/public/app/plugins/datasource/jaeger/testResponse.ts +++ b/public/app/plugins/datasource/jaeger/testResponse.ts @@ -76,6 +76,7 @@ export const testResponseDataFrameFields = toVectors([ { name: 'startTime', values: [1605873894680.409, 1605873894680.587] }, { name: 'duration', values: [1049.141, 1.847] }, { name: 'logs', values: [[], []] }, + { name: 'references', values: [[], []] }, { name: 'tags', values: [