rian 0.0.5 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,112 +0,0 @@
1
- 'use strict';
2
-
3
- const package_json = require('rian/package.json');
4
-
5
- const SpanStatusCode_UNSET = 0;
6
- const SpanStatusCode_ERROR = 2;
7
- const convert_value_to_anyvalue = (value) => {
8
- let type = typeof value, any_value = {};
9
- if (type === 'string')
10
- any_value.stringValue = value;
11
- else if (type === 'number')
12
- if (Number.isInteger(value))
13
- any_value.intValue = value;
14
- else
15
- any_value.doubleValue = value;
16
- else if (type === 'boolean')
17
- any_value.boolValue = value;
18
- else if (Array.isArray(value))
19
- any_value.arrayValue = {
20
- values: value.map((i) => convert_value_to_anyvalue(i)),
21
- };
22
- else if (value)
23
- any_value.kvlistValue = { values: convert_object_to_kv(value) };
24
- return any_value;
25
- };
26
- const convert_object_to_kv = (input) => {
27
- const value = [];
28
- for (let key of Object.keys(input)) {
29
- value.push({
30
- key,
31
- value: convert_value_to_anyvalue(input[key]),
32
- });
33
- }
34
- return value;
35
- };
36
- // https://github.com/open-telemetry/opentelemetry-proto/blob/b43e9b18b76abf3ee040164b55b9c355217151f3/opentelemetry/proto/trace/v1/trace.proto#L127-L155
37
- const map_kind = (kind) => {
38
- switch (kind) {
39
- default:
40
- case 'INTERNAL': {
41
- return 1;
42
- }
43
- case 'SERVER': {
44
- return 2;
45
- }
46
- case 'CLIENT': {
47
- return 3;
48
- }
49
- case 'PRODUCER': {
50
- return 4;
51
- }
52
- case 'CONSUMER': {
53
- return 5;
54
- }
55
- }
56
- };
57
- const exporter = (request) => (spans, context) => {
58
- const otel_spans = [];
59
- for (let span of spans) {
60
- const { kind, error, ...span_ctx } = span.context;
61
- let status;
62
- if (error) {
63
- status = {
64
- code: SpanStatusCode_ERROR,
65
- };
66
- if ('message' in error) {
67
- status.message = error.message;
68
- }
69
- }
70
- otel_spans.push({
71
- traceId: span.id.trace_id,
72
- spanId: span.id.parent_id,
73
- parentSpanId: span.parent?.parent_id,
74
- name: span.name,
75
- kind: map_kind(kind || 'INTERNAL'),
76
- startTimeUnixNano: span.start * 1000000,
77
- endTimeUnixNano: span.end ? span.end * 1000000 : undefined,
78
- droppedAttributesCount: 0,
79
- droppedEventsCount: 0,
80
- droppedLinksCount: 0,
81
- attributes: convert_object_to_kv(span_ctx),
82
- status: status || { code: SpanStatusCode_UNSET },
83
- events: span.events.map((i) => ({
84
- name: i.name,
85
- attributes: convert_object_to_kv(i.attributes),
86
- droppedAttributesCount: 0,
87
- timeUnixNano: i.timestamp * 1000000,
88
- })),
89
- });
90
- }
91
- return request({
92
- resourceSpans: [
93
- {
94
- resource: {
95
- attributes: convert_object_to_kv(context),
96
- droppedAttributesCount: 0,
97
- },
98
- instrumentationLibrarySpans: [
99
- {
100
- instrumentationLibrary: {
101
- name: package_json.name,
102
- version: package_json.version,
103
- },
104
- spans: otel_spans,
105
- },
106
- ],
107
- },
108
- ],
109
- });
110
- };
111
-
112
- exports.exporter = exporter;
@@ -1,110 +0,0 @@
1
- import { name, version } from 'rian/package.json';
2
-
3
- const SpanStatusCode_UNSET = 0;
4
- const SpanStatusCode_ERROR = 2;
5
- const convert_value_to_anyvalue = (value) => {
6
- let type = typeof value, any_value = {};
7
- if (type === 'string')
8
- any_value.stringValue = value;
9
- else if (type === 'number')
10
- if (Number.isInteger(value))
11
- any_value.intValue = value;
12
- else
13
- any_value.doubleValue = value;
14
- else if (type === 'boolean')
15
- any_value.boolValue = value;
16
- else if (Array.isArray(value))
17
- any_value.arrayValue = {
18
- values: value.map((i) => convert_value_to_anyvalue(i)),
19
- };
20
- else if (value)
21
- any_value.kvlistValue = { values: convert_object_to_kv(value) };
22
- return any_value;
23
- };
24
- const convert_object_to_kv = (input) => {
25
- const value = [];
26
- for (let key of Object.keys(input)) {
27
- value.push({
28
- key,
29
- value: convert_value_to_anyvalue(input[key]),
30
- });
31
- }
32
- return value;
33
- };
34
- // https://github.com/open-telemetry/opentelemetry-proto/blob/b43e9b18b76abf3ee040164b55b9c355217151f3/opentelemetry/proto/trace/v1/trace.proto#L127-L155
35
- const map_kind = (kind) => {
36
- switch (kind) {
37
- default:
38
- case 'INTERNAL': {
39
- return 1;
40
- }
41
- case 'SERVER': {
42
- return 2;
43
- }
44
- case 'CLIENT': {
45
- return 3;
46
- }
47
- case 'PRODUCER': {
48
- return 4;
49
- }
50
- case 'CONSUMER': {
51
- return 5;
52
- }
53
- }
54
- };
55
- const exporter = (request) => (spans, context) => {
56
- const otel_spans = [];
57
- for (let span of spans) {
58
- const { kind, error, ...span_ctx } = span.context;
59
- let status;
60
- if (error) {
61
- status = {
62
- code: SpanStatusCode_ERROR,
63
- };
64
- if ('message' in error) {
65
- status.message = error.message;
66
- }
67
- }
68
- otel_spans.push({
69
- traceId: span.id.trace_id,
70
- spanId: span.id.parent_id,
71
- parentSpanId: span.parent?.parent_id,
72
- name: span.name,
73
- kind: map_kind(kind || 'INTERNAL'),
74
- startTimeUnixNano: span.start * 1000000,
75
- endTimeUnixNano: span.end ? span.end * 1000000 : undefined,
76
- droppedAttributesCount: 0,
77
- droppedEventsCount: 0,
78
- droppedLinksCount: 0,
79
- attributes: convert_object_to_kv(span_ctx),
80
- status: status || { code: SpanStatusCode_UNSET },
81
- events: span.events.map((i) => ({
82
- name: i.name,
83
- attributes: convert_object_to_kv(i.attributes),
84
- droppedAttributesCount: 0,
85
- timeUnixNano: i.timestamp * 1000000,
86
- })),
87
- });
88
- }
89
- return request({
90
- resourceSpans: [
91
- {
92
- resource: {
93
- attributes: convert_object_to_kv(context),
94
- droppedAttributesCount: 0,
95
- },
96
- instrumentationLibrarySpans: [
97
- {
98
- instrumentationLibrary: {
99
- name: name,
100
- version: version,
101
- },
102
- spans: otel_spans,
103
- },
104
- ],
105
- },
106
- ],
107
- });
108
- };
109
-
110
- export { exporter };
@@ -1,5 +0,0 @@
1
- import * as rian from 'rian';
2
-
3
- declare const exporter: (request: (payload: any) => any) => rian.Exporter;
4
-
5
- export { exporter };
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- const flattie = require('flattie');
4
-
5
- const exporter = (request) => (spans, context) => {
6
- const zipkin = [];
7
- for (let span of spans) {
8
- const { kind, error, ...span_ctx } = span.context;
9
- if (error) {
10
- if ('message' in error) {
11
- span_ctx.error = {
12
- name: error.name,
13
- message: error.message,
14
- stack: error.stack,
15
- };
16
- }
17
- else {
18
- span_ctx.error = true;
19
- }
20
- }
21
- zipkin.push({
22
- id: span.id.parent_id,
23
- traceId: span.id.trace_id,
24
- parentId: span.parent ? span.parent.parent_id : undefined,
25
- name: span.name,
26
- kind: kind === 'INTERNAL' ? undefined : kind,
27
- timestamp: span.start * 1000,
28
- duration: span.end ? (span.end - span.start) * 1000 : undefined,
29
- localEndpoint: context.localEndpoint || {
30
- serviceName: span_ctx['service.name'],
31
- },
32
- tags: flattie.flattie({
33
- ...context,
34
- ...span_ctx,
35
- }, '.', true),
36
- annotations: span.events.map((i) => ({
37
- value: `${i.name} :: ${JSON.stringify(i.attributes)}`,
38
- timestamp: i.timestamp * 1000,
39
- })),
40
- });
41
- }
42
- return request(zipkin);
43
- };
44
-
45
- exports.exporter = exporter;
@@ -1,43 +0,0 @@
1
- import { flattie } from 'flattie';
2
-
3
- const exporter = (request) => (spans, context) => {
4
- const zipkin = [];
5
- for (let span of spans) {
6
- const { kind, error, ...span_ctx } = span.context;
7
- if (error) {
8
- if ('message' in error) {
9
- span_ctx.error = {
10
- name: error.name,
11
- message: error.message,
12
- stack: error.stack,
13
- };
14
- }
15
- else {
16
- span_ctx.error = true;
17
- }
18
- }
19
- zipkin.push({
20
- id: span.id.parent_id,
21
- traceId: span.id.trace_id,
22
- parentId: span.parent ? span.parent.parent_id : undefined,
23
- name: span.name,
24
- kind: kind === 'INTERNAL' ? undefined : kind,
25
- timestamp: span.start * 1000,
26
- duration: span.end ? (span.end - span.start) * 1000 : undefined,
27
- localEndpoint: context.localEndpoint || {
28
- serviceName: span_ctx['service.name'],
29
- },
30
- tags: flattie({
31
- ...context,
32
- ...span_ctx,
33
- }, '.', true),
34
- annotations: span.events.map((i) => ({
35
- value: `${i.name} :: ${JSON.stringify(i.attributes)}`,
36
- timestamp: i.timestamp * 1000,
37
- })),
38
- });
39
- }
40
- return request(zipkin);
41
- };
42
-
43
- export { exporter };