2025-04-01 10:38:02 +09:00

804 lines
18 KiB
TypeScript

import { FieldType, MutableDataFrame } from '@grafana/data';
export const otlpDataFrameFromResponse = new MutableDataFrame({
meta: {
preferredVisualisationType: 'trace',
custom: {
traceFormat: 'otlp',
},
},
fields: [
{
name: 'traceID',
type: FieldType.string,
config: {},
values: ['60ba2abb44f13eae'],
},
{
name: 'spanID',
type: FieldType.string,
config: {},
values: ['726b5e30102fc0d0'],
},
{
name: 'parentSpanID',
type: FieldType.string,
config: {},
values: ['398f0f21a3db99ae'],
},
{
name: 'operationName',
type: FieldType.string,
config: {},
values: ['HTTP GET - root'],
},
{
name: 'serviceName',
type: FieldType.string,
config: {},
values: ['db'],
},
{
name: 'kind',
type: FieldType.string,
config: {},
values: ['client'],
},
{
name: 'statusCode',
type: FieldType.number,
config: {},
values: [2],
},
{
name: 'statusMessage',
type: FieldType.string,
config: {},
values: ['message'],
},
{
name: 'instrumentationLibraryName',
type: FieldType.string,
config: {},
values: ['libraryName'],
},
{
name: 'instrumentationLibraryVersion',
type: FieldType.string,
config: {},
values: ['libraryVersion'],
},
{
name: 'traceState',
type: FieldType.string,
config: {},
values: ['traceState'],
},
{
name: 'serviceTags',
type: FieldType.other,
config: {},
values: [
[
{
key: 'service.name',
value: 'db',
},
{
key: 'job',
value: 'tns/db',
},
{
key: 'opencensus.exporterversion',
value: 'Jaeger-Go-2.22.1',
},
{
key: 'host.name',
value: '63d16772b4a2',
},
{
key: 'ip',
value: '0.0.0.0',
},
{
key: 'client-uuid',
value: '39fb01637a579639',
},
],
],
},
{
name: 'startTime',
type: FieldType.number,
config: {},
values: [1627471657255.809],
},
{
name: 'duration',
type: FieldType.number,
config: {},
values: [0.459008],
},
{
name: 'logs',
type: FieldType.other,
config: {},
values: [[{ name: 'DNSDone', fields: [{ key: 'addr', value: '172.18.0.6' }] }]],
},
{
name: 'references',
type: FieldType.other,
config: {},
values: [
[
{
spanID: 'spanId',
traceID: 'traceId',
tags: [
{ key: 'key', value: 'Value' },
{ key: 'intValue', value: 4 },
],
},
{
spanID: 'spanId2',
traceID: 'traceId2',
tags: [],
},
],
],
},
{
name: 'tags',
type: FieldType.other,
config: {},
values: [
[
{
key: 'http.status_code',
value: 200,
},
{
key: 'http.method',
value: 'GET',
},
{
key: 'http.url',
value: '/',
},
{
key: 'component',
value: 'net/http',
},
],
],
},
],
length: 1,
});
export const otlpDataFrameToResponse = new MutableDataFrame({
meta: {
preferredVisualisationType: 'trace',
custom: {
traceFormat: 'otlp',
},
},
fields: [
{
name: 'traceID',
type: FieldType.string,
config: {},
values: ['60ba2abb44f13eae'],
state: {
displayName: 'traceID',
},
},
{
name: 'spanID',
type: FieldType.string,
config: {},
values: ['726b5e30102fc0d0'],
state: {
displayName: 'spanID',
},
},
{
name: 'parentSpanID',
type: FieldType.string,
config: {},
values: ['398f0f21a3db99ae'],
state: {
displayName: 'parentSpanID',
},
},
{
name: 'operationName',
type: FieldType.string,
config: {},
values: ['HTTP GET - root'],
state: {
displayName: 'operationName',
},
},
{
name: 'serviceName',
type: FieldType.string,
config: {},
values: ['db'],
state: {
displayName: 'serviceName',
},
},
{
name: 'kind',
type: FieldType.string,
config: {},
values: ['client'],
state: {
displayName: 'kind',
},
},
{
name: 'statusCode',
type: FieldType.number,
config: {},
values: [2],
state: {
displayName: 'statusCode',
},
},
{
name: 'statusMessage',
type: FieldType.string,
config: {},
values: ['message'],
state: {
displayName: 'statusMessage',
},
},
{
name: 'instrumentationLibraryName',
type: FieldType.string,
config: {},
values: ['libraryName'],
state: {
displayName: 'instrumentationLibraryName',
},
},
{
name: 'instrumentationLibraryVersion',
type: FieldType.string,
config: {},
values: ['libraryVersion'],
state: {
displayName: 'instrumentationLibraryVersion',
},
},
{
name: 'traceState',
type: FieldType.string,
config: {},
values: ['traceState'],
state: {
displayName: 'traceState',
},
},
{
name: 'serviceTags',
type: FieldType.other,
config: {},
values: [
[
{
key: 'service.name',
value: 'db',
},
{
key: 'job',
value: 'tns/db',
},
{
key: 'opencensus.exporterversion',
value: 'Jaeger-Go-2.22.1',
},
{
key: 'host.name',
value: '63d16772b4a2',
},
{
key: 'ip',
value: '0.0.0.0',
},
{
key: 'client-uuid',
value: '39fb01637a579639',
},
],
],
state: {
displayName: 'serviceTags',
},
},
{
name: 'startTime',
type: FieldType.number,
config: {},
values: [1627471657255.809],
state: {
displayName: 'startTime',
},
},
{
name: 'duration',
type: FieldType.number,
config: {},
values: [0.459008],
state: {
displayName: 'duration',
},
},
{
name: 'logs',
type: FieldType.other,
config: {},
values: [
[
{
fields: [
{
key: 'addr',
value: '172.18.0.6',
},
],
timestamp: 1627471657255.809,
name: 'DNSDone',
},
],
],
state: {
displayName: 'logs',
},
},
{
name: 'tags',
type: FieldType.other,
config: {},
values: [
[
{
key: 'http.status_code',
value: 200,
},
{
key: 'http.method',
value: 'GET',
},
{
key: 'http.url',
value: '/',
},
{
key: 'component',
value: 'net/http',
},
],
],
state: {
displayName: 'tags',
},
},
{
name: 'references',
type: FieldType.other,
config: {},
labels: undefined,
values: [
[
{
spanID: 'spanId',
traceID: 'traceId',
tags: [
{ key: 'key', value: 'Value' },
{ key: 'intValue', value: 4 },
],
},
{
spanID: 'spanId2',
traceID: 'traceId2',
tags: [],
},
],
],
state: {
displayName: 'references',
},
},
],
length: 1,
});
export const otlpResponse = {
batches: [
{
resource: {
attributes: [
{ key: 'service.name', value: { stringValue: 'db' } },
{ key: 'job', value: { stringValue: 'tns/db' } },
{ key: 'opencensus.exporterversion', value: { stringValue: 'Jaeger-Go-2.22.1' } },
{ key: 'host.name', value: { stringValue: '63d16772b4a2' } },
{ key: 'ip', value: { stringValue: '0.0.0.0' } },
{ key: 'client-uuid', value: { stringValue: '39fb01637a579639' } },
],
},
instrumentationLibrarySpans: [
{
instrumentationLibrary: {
name: 'libraryName',
version: 'libraryVersion',
},
spans: [
{
traceId: '000000000000000060ba2abb44f13eae',
spanId: '726b5e30102fc0d0',
parentSpanId: '398f0f21a3db99ae',
name: 'HTTP GET - root',
kind: 'SPAN_KIND_CLIENT',
status: {
code: 2,
message: 'message',
},
traceState: 'traceState',
startTimeUnixNano: 1627471657255809000,
endTimeUnixNano: 1627471657256268000,
attributes: [
{ key: 'http.status_code', value: { intValue: 200 } },
{ key: 'http.method', value: { stringValue: 'GET' } },
{ key: 'http.url', value: { stringValue: '/' } },
{ key: 'component', value: { stringValue: 'net/http' } },
],
events: [
{
name: 'DNSDone',
attributes: [{ key: 'addr', value: { stringValue: '172.18.0.6' } }],
droppedAttributesCount: 0,
timeUnixNano: 1627471657255809000,
},
],
links: [
{
spanId: 'spanId',
traceId: 'traceId',
attributes: [
{
key: 'key',
value: {
stringValue: 'Value',
},
},
{
key: 'intValue',
value: {
intValue: 4,
},
},
],
},
{
spanId: 'spanId2',
traceId: 'traceId2',
attributes: [],
},
],
},
],
},
],
},
],
};
export const traceQlResponse = {
traces: [
{
traceID: 'b1586c3c8c34d',
rootServiceName: 'lb',
rootTraceName: 'HTTP Client',
startTimeUnixNano: '1643356828724000000',
durationMs: 65,
spanSet: {
spans: [
{
spanID: '162a4adae63b61f1',
startTimeUnixNano: '1666188214303201000',
durationNanos: '545000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'db',
},
},
],
},
{
spanID: '15991be3a92136e6',
startTimeUnixNano: '1666188214300239000',
durationNanos: '6686000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'app',
},
},
],
},
{
spanID: '5e91b69dc224c240',
startTimeUnixNano: '1666188214300647000',
durationNanos: '6043000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'app',
},
},
],
},
{
spanID: '29f218a50b00c306',
startTimeUnixNano: '1666188214297891000',
durationNanos: '8365000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'lb',
},
},
],
},
],
matched: 4,
},
},
{
traceID: '9161e77388f3e',
rootServiceName: 'lb',
rootTraceName: 'HTTP Client',
startTimeUnixNano: '1643342166678000000',
spanSets: [
{
attributes: [
{
key: 'by(resource.service.name)',
value: {
stringValue: 'db',
},
},
],
spans: [
{
spanID: '3b9a5c222d3ddd8f',
startTimeUnixNano: '1666187875397721000',
durationNanos: '877000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'db',
},
},
],
},
],
matched: 1,
},
{
attributes: [
{
key: 'by(resource.service.name)',
value: {
stringValue: 'app',
},
},
],
spans: [
{
spanID: '894d90db6b5807f',
startTimeUnixNano: '1666187875393293000',
durationNanos: '11073000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'app',
},
},
],
},
{
spanID: 'd3284e9c5081aab',
startTimeUnixNano: '1666187875393897000',
durationNanos: '10133000',
attributes: [
{
key: 'service.name',
value: {
stringValue: 'app',
},
},
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
],
},
],
matched: 2,
},
],
},
{
traceID: '480691f7c6f20',
rootServiceName: 'lb',
rootTraceName: 'HTTP Client',
startTimeUnixNano: '1643342166678000000',
durationMs: 44,
spanSet: {
spans: [
{
spanID: '2ab970c9db57d100',
startTimeUnixNano: '1666186467658853000',
durationNanos: '436000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'db',
},
},
],
},
{
spanID: '3a4070e418857cbd',
startTimeUnixNano: '1666186467657066000',
durationNanos: '5503000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'app',
},
},
],
},
{
spanID: '7ddf87d7a3f864c8',
startTimeUnixNano: '1666186467657336000',
durationNanos: '5005000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'app',
},
},
],
},
{
spanID: '241e9f31609056c5',
startTimeUnixNano: '1666186467655299000',
durationNanos: '6413000',
attributes: [
{
key: 'http.method',
value: {
stringValue: 'GET',
},
},
{
key: 'service.name',
value: {
stringValue: 'lb',
},
},
],
},
],
matched: 4,
},
},
],
metrics: {
inspectedBlocks: 5,
totalBlockBytes: '9092129',
},
};
export const badOTLPResponse = {
batches: [
{
resource: {},
instrumentationLibrarySpans: [
{
spans: [
{
traceId: 'AAAAAAAAAABguiq7RPE+rg==',
spanId: 'cmteMBAvwNA=',
parentSpanId: 'OY8PIaPbma4=',
name: 'HTTP GET - root',
kind: 'SPAN_KIND_CLIENT',
startTimeUnixNano: 1627471657255809000,
endTimeUnixNano: 1627471657256268000,
attributes: [
{ key: 'http.status_code', value: { intValue: 200 } },
{ key: 'http.method', value: { stringValue: 'GET' } },
{ key: 'http.url', value: { stringValue: '/' } },
{ key: 'component', value: { stringValue: 'net/http' } },
],
},
],
},
],
},
],
};