@perses-dev/tempo-plugin 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cjs/index.js +47 -0
  3. package/dist/cjs/model/api-types.js +16 -0
  4. package/dist/cjs/model/index.js +33 -0
  5. package/dist/cjs/model/tempo-client.js +88 -0
  6. package/dist/cjs/model/tempo-selectors.js +46 -0
  7. package/dist/cjs/model/trace-query-model.js +16 -0
  8. package/dist/cjs/plugins/TempoTraceQuery.js +30 -0
  9. package/dist/cjs/plugins/get-trace-data.js +69 -0
  10. package/dist/cjs/plugins/tempo-datasource-types.js +16 -0
  11. package/dist/cjs/plugins/tempo-datasource.js +50 -0
  12. package/dist/cjs/test/index.js +30 -0
  13. package/dist/cjs/test/mock-data.js +887 -0
  14. package/dist/cjs/test/setup-tests.js +17 -0
  15. package/dist/index.d.ts +6 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +21 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/model/api-types.d.ts +72 -0
  20. package/dist/model/api-types.d.ts.map +1 -0
  21. package/dist/model/api-types.js +15 -0
  22. package/dist/model/api-types.js.map +1 -0
  23. package/dist/model/index.js +18 -0
  24. package/dist/model/index.js.map +1 -0
  25. package/dist/model/tempo-client.d.ts +36 -0
  26. package/dist/model/tempo-client.d.ts.map +1 -0
  27. package/dist/model/tempo-client.js +80 -0
  28. package/dist/model/tempo-client.js.map +1 -0
  29. package/dist/model/tempo-selectors.d.ts +21 -0
  30. package/dist/model/tempo-selectors.d.ts.map +1 -0
  31. package/dist/model/tempo-selectors.js +30 -0
  32. package/dist/model/tempo-selectors.js.map +1 -0
  33. package/dist/model/trace-query-model.d.ts +9 -0
  34. package/dist/model/trace-query-model.d.ts.map +1 -0
  35. package/dist/model/trace-query-model.js +15 -0
  36. package/dist/model/trace-query-model.js.map +1 -0
  37. package/dist/plugins/TempoTraceQuery.d.ts +11 -0
  38. package/dist/plugins/TempoTraceQuery.d.ts.map +1 -0
  39. package/dist/plugins/TempoTraceQuery.js +24 -0
  40. package/dist/plugins/TempoTraceQuery.js.map +1 -0
  41. package/dist/plugins/get-trace-data.d.ts +4 -0
  42. package/dist/plugins/get-trace-data.d.ts.map +1 -0
  43. package/dist/plugins/get-trace-data.js +61 -0
  44. package/dist/plugins/get-trace-data.js.map +1 -0
  45. package/dist/plugins/tempo-datasource-types.d.ts +6 -0
  46. package/dist/plugins/tempo-datasource-types.d.ts.map +1 -0
  47. package/dist/plugins/tempo-datasource-types.js +15 -0
  48. package/dist/plugins/tempo-datasource-types.js.map +1 -0
  49. package/dist/plugins/tempo-datasource.d.ts +5 -0
  50. package/dist/plugins/tempo-datasource.d.ts.map +1 -0
  51. package/dist/plugins/tempo-datasource.js +42 -0
  52. package/dist/plugins/tempo-datasource.js.map +1 -0
  53. package/dist/test/index.d.ts +2 -0
  54. package/dist/test/index.d.ts.map +1 -0
  55. package/dist/test/index.js +15 -0
  56. package/dist/test/index.js.map +1 -0
  57. package/dist/test/mock-data.d.ts +5 -0
  58. package/dist/test/mock-data.d.ts.map +1 -0
  59. package/dist/test/mock-data.js +871 -0
  60. package/dist/test/mock-data.js.map +1 -0
  61. package/dist/test/setup-tests.d.ts +2 -0
  62. package/dist/test/setup-tests.d.ts.map +1 -0
  63. package/dist/test/setup-tests.js +15 -0
  64. package/dist/test/setup-tests.js.map +1 -0
  65. package/package.json +43 -0
  66. package/plugin.json +26 -0
@@ -0,0 +1,887 @@
1
+ // Copyright 2023 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ MOCK_ENRICHED_TRACE_QUERY_RESPONSE: function() {
25
+ return MOCK_ENRICHED_TRACE_QUERY_RESPONSE;
26
+ },
27
+ MOCK_TRACE_DATA: function() {
28
+ return MOCK_TRACE_DATA;
29
+ }
30
+ });
31
+ const MOCK_ENRICHED_TRACE_QUERY_RESPONSE = {
32
+ query: 'duration > 900ms',
33
+ traces: [
34
+ {
35
+ summary: {
36
+ traceID: '74e7bfe26759d264297a93dfb0c8b06d',
37
+ rootServiceName: 'shop-backend',
38
+ rootTraceName: 'article-to-cart',
39
+ startTimeUnixNano: '1699916836928525000',
40
+ durationMs: 1096,
41
+ spanSets: [
42
+ {
43
+ spans: [
44
+ {
45
+ spanID: '0c6b860f6e224789',
46
+ startTimeUnixNano: '1699916836928525000',
47
+ durationNanos: '1096680907'
48
+ }
49
+ ],
50
+ matched: 1
51
+ }
52
+ ]
53
+ },
54
+ traceDetails: {
55
+ batches: [
56
+ {
57
+ resource: {
58
+ attributes: [
59
+ {
60
+ key: 'k6',
61
+ value: {
62
+ stringValue: 'true'
63
+ }
64
+ },
65
+ {
66
+ key: 'service.name',
67
+ value: {
68
+ stringValue: 'shop-backend'
69
+ }
70
+ }
71
+ ]
72
+ },
73
+ scopeSpans: [
74
+ {
75
+ scope: {
76
+ name: 'k6'
77
+ },
78
+ spans: [
79
+ {
80
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
81
+ spanId: 'DGuGD24iR4k=',
82
+ name: 'article-to-cart',
83
+ kind: 'SPAN_KIND_SERVER',
84
+ startTimeUnixNano: '1699916836928525000',
85
+ endTimeUnixNano: '1699916838025205907',
86
+ attributes: [
87
+ {
88
+ key: 'net.transport',
89
+ value: {
90
+ stringValue: 'ip_tcp'
91
+ }
92
+ },
93
+ {
94
+ key: 'net.sock.family',
95
+ value: {
96
+ stringValue: 'inet'
97
+ }
98
+ },
99
+ {
100
+ key: 'net.sock.host.addr',
101
+ value: {
102
+ stringValue: '192.168.173.158'
103
+ }
104
+ },
105
+ {
106
+ key: 'net.host.name',
107
+ value: {
108
+ stringValue: 'shop-backend.local'
109
+ }
110
+ },
111
+ {
112
+ key: 'net.host.port',
113
+ value: {
114
+ intValue: '8978'
115
+ }
116
+ },
117
+ {
118
+ key: 'http.flavor',
119
+ value: {
120
+ stringValue: '1.1'
121
+ }
122
+ },
123
+ {
124
+ key: 'http.scheme',
125
+ value: {
126
+ stringValue: 'https'
127
+ }
128
+ },
129
+ {
130
+ key: 'http.target',
131
+ value: {
132
+ stringValue: '/article-to-cart'
133
+ }
134
+ },
135
+ {
136
+ key: 'http.response_content_length',
137
+ value: {
138
+ intValue: '805912'
139
+ }
140
+ },
141
+ {
142
+ key: 'http.method',
143
+ value: {
144
+ stringValue: 'DELETE'
145
+ }
146
+ },
147
+ {
148
+ key: 'http.url',
149
+ value: {
150
+ stringValue: 'https://shop-backend.local:8978/article-to-cart'
151
+ }
152
+ },
153
+ {
154
+ key: 'http.status_code',
155
+ value: {
156
+ intValue: '204'
157
+ }
158
+ }
159
+ ],
160
+ status: {}
161
+ },
162
+ {
163
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
164
+ spanId: '7lmlnBwmIgg=',
165
+ parentSpanId: 'DGuGD24iR4k=',
166
+ name: 'authenticate',
167
+ kind: 'SPAN_KIND_CLIENT',
168
+ startTimeUnixNano: '1699916837006096365',
169
+ endTimeUnixNano: '1699916837118459172',
170
+ attributes: [
171
+ {
172
+ key: 'net.transport',
173
+ value: {
174
+ stringValue: 'ip_tcp'
175
+ }
176
+ },
177
+ {
178
+ key: 'net.sock.family',
179
+ value: {
180
+ stringValue: 'inet'
181
+ }
182
+ },
183
+ {
184
+ key: 'net.peer.port',
185
+ value: {
186
+ intValue: '8317'
187
+ }
188
+ },
189
+ {
190
+ key: 'http.flavor',
191
+ value: {
192
+ stringValue: '1.1'
193
+ }
194
+ },
195
+ {
196
+ key: 'net.sock.peer.addr',
197
+ value: {
198
+ stringValue: '192.168.17.171'
199
+ }
200
+ },
201
+ {
202
+ key: 'net.peer.name',
203
+ value: {
204
+ stringValue: 'auth-service.local'
205
+ }
206
+ },
207
+ {
208
+ key: 'http.response_content_length',
209
+ value: {
210
+ intValue: '722194'
211
+ }
212
+ },
213
+ {
214
+ key: 'http.method',
215
+ value: {
216
+ stringValue: 'PUT'
217
+ }
218
+ },
219
+ {
220
+ key: 'http.url',
221
+ value: {
222
+ stringValue: 'https://auth-service.local:8489/authenticate'
223
+ }
224
+ },
225
+ {
226
+ key: 'http.status_code',
227
+ value: {
228
+ intValue: '204'
229
+ }
230
+ }
231
+ ],
232
+ status: {}
233
+ },
234
+ {
235
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
236
+ spanId: 'oEoYzmxhmE8=',
237
+ parentSpanId: 'DGuGD24iR4k=',
238
+ name: 'get-article',
239
+ kind: 'SPAN_KIND_CLIENT',
240
+ startTimeUnixNano: '1699916837010142058',
241
+ endTimeUnixNano: '1699916837606440936',
242
+ attributes: [
243
+ {
244
+ key: 'net.transport',
245
+ value: {
246
+ stringValue: 'ip_tcp'
247
+ }
248
+ },
249
+ {
250
+ key: 'net.sock.family',
251
+ value: {
252
+ stringValue: 'inet'
253
+ }
254
+ },
255
+ {
256
+ key: 'net.peer.port',
257
+ value: {
258
+ intValue: '8384'
259
+ }
260
+ },
261
+ {
262
+ key: 'http.flavor',
263
+ value: {
264
+ stringValue: '1.1'
265
+ }
266
+ },
267
+ {
268
+ key: 'net.sock.peer.addr',
269
+ value: {
270
+ stringValue: '192.168.234.29'
271
+ }
272
+ },
273
+ {
274
+ key: 'net.peer.name',
275
+ value: {
276
+ stringValue: 'article-service.local'
277
+ }
278
+ },
279
+ {
280
+ key: 'http.response_content_length',
281
+ value: {
282
+ intValue: '601099'
283
+ }
284
+ },
285
+ {
286
+ key: 'http.method',
287
+ value: {
288
+ stringValue: 'PATCH'
289
+ }
290
+ },
291
+ {
292
+ key: 'http.url',
293
+ value: {
294
+ stringValue: 'https://article-service.local:8800/get-article'
295
+ }
296
+ },
297
+ {
298
+ key: 'http.status_code',
299
+ value: {
300
+ intValue: '204'
301
+ }
302
+ }
303
+ ],
304
+ status: {}
305
+ },
306
+ {
307
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
308
+ spanId: '0EwFKq12nDc=',
309
+ parentSpanId: 'DGuGD24iR4k=',
310
+ name: 'place-articles',
311
+ kind: 'SPAN_KIND_CLIENT',
312
+ startTimeUnixNano: '1699916837032400018',
313
+ endTimeUnixNano: '1699916837731389390',
314
+ attributes: [
315
+ {
316
+ key: 'net.transport',
317
+ value: {
318
+ stringValue: 'ip_tcp'
319
+ }
320
+ },
321
+ {
322
+ key: 'net.sock.family',
323
+ value: {
324
+ stringValue: 'inet'
325
+ }
326
+ },
327
+ {
328
+ key: 'net.peer.port',
329
+ value: {
330
+ intValue: '8286'
331
+ }
332
+ },
333
+ {
334
+ key: 'http.flavor',
335
+ value: {
336
+ stringValue: '1.1'
337
+ }
338
+ },
339
+ {
340
+ key: 'net.sock.peer.addr',
341
+ value: {
342
+ stringValue: '192.168.27.161'
343
+ }
344
+ },
345
+ {
346
+ key: 'net.peer.name',
347
+ value: {
348
+ stringValue: 'cart-service.local'
349
+ }
350
+ },
351
+ {
352
+ key: 'http.response_content_length',
353
+ value: {
354
+ intValue: '175827'
355
+ }
356
+ },
357
+ {
358
+ key: 'http.method',
359
+ value: {
360
+ stringValue: 'GET'
361
+ }
362
+ },
363
+ {
364
+ key: 'http.url',
365
+ value: {
366
+ stringValue: 'https://cart-service.local:8592/place-articles'
367
+ }
368
+ },
369
+ {
370
+ key: 'http.status_code',
371
+ value: {
372
+ intValue: '201'
373
+ }
374
+ }
375
+ ],
376
+ status: {}
377
+ }
378
+ ]
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ resource: {
384
+ attributes: [
385
+ {
386
+ key: 'k6',
387
+ value: {
388
+ stringValue: 'true'
389
+ }
390
+ },
391
+ {
392
+ key: 'service.name',
393
+ value: {
394
+ stringValue: 'auth-service'
395
+ }
396
+ }
397
+ ]
398
+ },
399
+ scopeSpans: [
400
+ {
401
+ scope: {
402
+ name: 'k6'
403
+ },
404
+ spans: [
405
+ {
406
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
407
+ spanId: 'whoMr/ckps4=',
408
+ parentSpanId: '7lmlnBwmIgg=',
409
+ name: 'authenticate',
410
+ kind: 'SPAN_KIND_SERVER',
411
+ startTimeUnixNano: '1699916837012281235',
412
+ endTimeUnixNano: '1699916837093651916',
413
+ attributes: [
414
+ {
415
+ key: 'net.transport',
416
+ value: {
417
+ stringValue: 'ip_tcp'
418
+ }
419
+ },
420
+ {
421
+ key: 'net.sock.family',
422
+ value: {
423
+ stringValue: 'inet'
424
+ }
425
+ },
426
+ {
427
+ key: 'net.sock.host.addr',
428
+ value: {
429
+ stringValue: '192.168.17.171'
430
+ }
431
+ },
432
+ {
433
+ key: 'net.host.name',
434
+ value: {
435
+ stringValue: 'auth-service.local'
436
+ }
437
+ },
438
+ {
439
+ key: 'net.host.port',
440
+ value: {
441
+ intValue: '8489'
442
+ }
443
+ },
444
+ {
445
+ key: 'http.flavor',
446
+ value: {
447
+ stringValue: '1.1'
448
+ }
449
+ },
450
+ {
451
+ key: 'http.scheme',
452
+ value: {
453
+ stringValue: 'https'
454
+ }
455
+ },
456
+ {
457
+ key: 'http.target',
458
+ value: {
459
+ stringValue: '/authenticate'
460
+ }
461
+ },
462
+ {
463
+ key: 'http.response_content_length',
464
+ value: {
465
+ intValue: '722194'
466
+ }
467
+ },
468
+ {
469
+ key: 'http.request_content_length',
470
+ value: {
471
+ intValue: '23247'
472
+ }
473
+ },
474
+ {
475
+ key: 'http.method',
476
+ value: {
477
+ stringValue: 'PUT'
478
+ }
479
+ },
480
+ {
481
+ key: 'http.url',
482
+ value: {
483
+ stringValue: 'https://auth-service.local:8489/authenticate'
484
+ }
485
+ },
486
+ {
487
+ key: 'http.status_code',
488
+ value: {
489
+ intValue: '204'
490
+ }
491
+ }
492
+ ],
493
+ status: {}
494
+ }
495
+ ]
496
+ }
497
+ ]
498
+ },
499
+ {
500
+ resource: {
501
+ attributes: [
502
+ {
503
+ key: 'k6',
504
+ value: {
505
+ stringValue: 'true'
506
+ }
507
+ },
508
+ {
509
+ key: 'service.name',
510
+ value: {
511
+ stringValue: 'article-service'
512
+ }
513
+ }
514
+ ]
515
+ },
516
+ scopeSpans: [
517
+ {
518
+ scope: {
519
+ name: 'k6'
520
+ },
521
+ spans: [
522
+ {
523
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
524
+ spanId: '8laO4qPxfNw=',
525
+ parentSpanId: 'oEoYzmxhmE8=',
526
+ name: 'get-article',
527
+ kind: 'SPAN_KIND_SERVER',
528
+ startTimeUnixNano: '1699916837059186218',
529
+ endTimeUnixNano: '1699916837485309645',
530
+ attributes: [
531
+ {
532
+ key: 'net.transport',
533
+ value: {
534
+ stringValue: 'ip_tcp'
535
+ }
536
+ },
537
+ {
538
+ key: 'net.sock.family',
539
+ value: {
540
+ stringValue: 'inet'
541
+ }
542
+ },
543
+ {
544
+ key: 'net.sock.host.addr',
545
+ value: {
546
+ stringValue: '192.168.234.29'
547
+ }
548
+ },
549
+ {
550
+ key: 'net.host.name',
551
+ value: {
552
+ stringValue: 'article-service.local'
553
+ }
554
+ },
555
+ {
556
+ key: 'net.host.port',
557
+ value: {
558
+ intValue: '8800'
559
+ }
560
+ },
561
+ {
562
+ key: 'http.flavor',
563
+ value: {
564
+ stringValue: '1.1'
565
+ }
566
+ },
567
+ {
568
+ key: 'http.scheme',
569
+ value: {
570
+ stringValue: 'https'
571
+ }
572
+ },
573
+ {
574
+ key: 'http.target',
575
+ value: {
576
+ stringValue: '/get-article'
577
+ }
578
+ },
579
+ {
580
+ key: 'http.response_content_length',
581
+ value: {
582
+ intValue: '601099'
583
+ }
584
+ },
585
+ {
586
+ key: 'http.request_content_length',
587
+ value: {
588
+ intValue: '28316'
589
+ }
590
+ },
591
+ {
592
+ key: 'http.method',
593
+ value: {
594
+ stringValue: 'PATCH'
595
+ }
596
+ },
597
+ {
598
+ key: 'http.url',
599
+ value: {
600
+ stringValue: 'https://article-service.local:8800/get-article'
601
+ }
602
+ },
603
+ {
604
+ key: 'http.status_code',
605
+ value: {
606
+ intValue: '204'
607
+ }
608
+ }
609
+ ],
610
+ status: {}
611
+ },
612
+ {
613
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
614
+ spanId: 'A797BwdTH70=',
615
+ parentSpanId: '8laO4qPxfNw=',
616
+ name: 'select-articles',
617
+ kind: 'SPAN_KIND_CLIENT',
618
+ startTimeUnixNano: '1699916837094286408',
619
+ endTimeUnixNano: '1699916837381223992',
620
+ attributes: [
621
+ {
622
+ key: 'net.transport',
623
+ value: {
624
+ stringValue: 'ip_tcp'
625
+ }
626
+ },
627
+ {
628
+ key: 'net.sock.family',
629
+ value: {
630
+ stringValue: 'inet'
631
+ }
632
+ },
633
+ {
634
+ key: 'net.peer.port',
635
+ value: {
636
+ intValue: '8625'
637
+ }
638
+ },
639
+ {
640
+ key: 'net.sock.peer.addr',
641
+ value: {
642
+ stringValue: '192.168.110.19'
643
+ }
644
+ },
645
+ {
646
+ key: 'net.peer.name',
647
+ value: {
648
+ stringValue: 'postgres.local'
649
+ }
650
+ }
651
+ ],
652
+ status: {}
653
+ }
654
+ ]
655
+ }
656
+ ]
657
+ },
658
+ {
659
+ resource: {
660
+ attributes: [
661
+ {
662
+ key: 'k6',
663
+ value: {
664
+ stringValue: 'true'
665
+ }
666
+ },
667
+ {
668
+ key: 'service.name',
669
+ value: {
670
+ stringValue: 'cart-service'
671
+ }
672
+ }
673
+ ]
674
+ },
675
+ scopeSpans: [
676
+ {
677
+ scope: {
678
+ name: 'k6'
679
+ },
680
+ spans: [
681
+ {
682
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
683
+ spanId: 'JmXqG1XneLo=',
684
+ parentSpanId: '0EwFKq12nDc=',
685
+ name: 'place-articles',
686
+ kind: 'SPAN_KIND_SERVER',
687
+ startTimeUnixNano: '1699916837087434619',
688
+ endTimeUnixNano: '1699916837508697650',
689
+ attributes: [
690
+ {
691
+ key: 'article.count',
692
+ value: {
693
+ intValue: '1'
694
+ }
695
+ },
696
+ {
697
+ key: 'net.transport',
698
+ value: {
699
+ stringValue: 'ip_tcp'
700
+ }
701
+ },
702
+ {
703
+ key: 'net.sock.family',
704
+ value: {
705
+ stringValue: 'inet'
706
+ }
707
+ },
708
+ {
709
+ key: 'net.sock.host.addr',
710
+ value: {
711
+ stringValue: '192.168.27.161'
712
+ }
713
+ },
714
+ {
715
+ key: 'net.host.name',
716
+ value: {
717
+ stringValue: 'cart-service.local'
718
+ }
719
+ },
720
+ {
721
+ key: 'net.host.port',
722
+ value: {
723
+ intValue: '8592'
724
+ }
725
+ },
726
+ {
727
+ key: 'http.flavor',
728
+ value: {
729
+ stringValue: '1.1'
730
+ }
731
+ },
732
+ {
733
+ key: 'http.scheme',
734
+ value: {
735
+ stringValue: 'https'
736
+ }
737
+ },
738
+ {
739
+ key: 'http.target',
740
+ value: {
741
+ stringValue: '/place-articles'
742
+ }
743
+ },
744
+ {
745
+ key: 'http.response_content_length',
746
+ value: {
747
+ intValue: '175827'
748
+ }
749
+ },
750
+ {
751
+ key: 'http.method',
752
+ value: {
753
+ stringValue: 'GET'
754
+ }
755
+ },
756
+ {
757
+ key: 'http.url',
758
+ value: {
759
+ stringValue: 'https://cart-service.local:8592/place-articles'
760
+ }
761
+ },
762
+ {
763
+ key: 'http.status_code',
764
+ value: {
765
+ intValue: '201'
766
+ }
767
+ }
768
+ ],
769
+ status: {}
770
+ },
771
+ {
772
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
773
+ spanId: 'peUi5+rBEYs=',
774
+ parentSpanId: 'JmXqG1XneLo=',
775
+ name: 'persist-cart',
776
+ kind: 'SPAN_KIND_INTERNAL',
777
+ startTimeUnixNano: '1699916837110379314',
778
+ endTimeUnixNano: '1699916837488202163',
779
+ status: {}
780
+ }
781
+ ]
782
+ }
783
+ ]
784
+ },
785
+ {
786
+ resource: {
787
+ attributes: [
788
+ {
789
+ key: 'k6',
790
+ value: {
791
+ stringValue: 'true'
792
+ }
793
+ },
794
+ {
795
+ key: 'service.name',
796
+ value: {
797
+ stringValue: 'postgres'
798
+ }
799
+ }
800
+ ]
801
+ },
802
+ scopeSpans: [
803
+ {
804
+ scope: {
805
+ name: 'k6'
806
+ },
807
+ spans: [
808
+ {
809
+ traceId: 'dOe/4mdZ0mQpepPfsMiwbQ==',
810
+ spanId: 'N3suWDPcNRY=',
811
+ parentSpanId: 'A797BwdTH70=',
812
+ name: 'query-articles',
813
+ kind: 'SPAN_KIND_SERVER',
814
+ startTimeUnixNano: '1699916837113120083',
815
+ endTimeUnixNano: '1699916837338243639',
816
+ attributes: [
817
+ {
818
+ key: 'k6.8jLWDJgSSF6wVm8',
819
+ value: {
820
+ stringValue: 'y5naYgdk359gW2kf6YrGu5HikcxzA8'
821
+ }
822
+ },
823
+ {
824
+ key: 'k6.D9x9C1GGGu0Hxr0',
825
+ value: {
826
+ stringValue: 'izaIo87Ru8pHzN6FhQqQrYQ2rJr7fW'
827
+ }
828
+ },
829
+ {
830
+ key: 'net.transport',
831
+ value: {
832
+ stringValue: 'ip_tcp'
833
+ }
834
+ },
835
+ {
836
+ key: 'net.sock.family',
837
+ value: {
838
+ stringValue: 'inet'
839
+ }
840
+ },
841
+ {
842
+ key: 'net.sock.host.addr',
843
+ value: {
844
+ stringValue: '192.168.110.19'
845
+ }
846
+ },
847
+ {
848
+ key: 'net.host.name',
849
+ value: {
850
+ stringValue: 'postgres.local'
851
+ }
852
+ },
853
+ {
854
+ key: 'net.host.port',
855
+ value: {
856
+ intValue: '8757'
857
+ }
858
+ }
859
+ ],
860
+ status: {}
861
+ }
862
+ ]
863
+ }
864
+ ]
865
+ }
866
+ ]
867
+ },
868
+ spanCount: 10,
869
+ errorCount: 0
870
+ }
871
+ ]
872
+ };
873
+ const MOCK_TRACE_DATA = {
874
+ traces: [
875
+ {
876
+ startTimeUnixMs: 1699916836928525,
877
+ durationMs: 1096,
878
+ spanCount: 10,
879
+ errorCount: 0,
880
+ traceId: '74e7bfe26759d264297a93dfb0c8b06d',
881
+ name: 'rootServiceName="shop-backend", rootTraceName="shop-backend"'
882
+ }
883
+ ],
884
+ metadata: {
885
+ executedQueryString: 'duration > 900ms'
886
+ }
887
+ };