@opentelemetry/exporter-trace-otlp-http 0.28.0 → 0.29.2

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 (56) hide show
  1. package/README.md +44 -12
  2. package/build/esm/index.d.ts +0 -2
  3. package/build/esm/index.js +0 -3
  4. package/build/esm/index.js.map +1 -1
  5. package/build/esm/platform/browser/OTLPTraceExporter.d.ts +4 -5
  6. package/build/esm/platform/browser/OTLPTraceExporter.js +7 -7
  7. package/build/esm/platform/browser/OTLPTraceExporter.js.map +1 -1
  8. package/build/esm/platform/node/OTLPTraceExporter.d.ts +3 -3
  9. package/build/esm/platform/node/OTLPTraceExporter.js +7 -7
  10. package/build/esm/platform/node/OTLPTraceExporter.js.map +1 -1
  11. package/build/esm/version.d.ts +1 -1
  12. package/build/esm/version.js +1 -1
  13. package/build/esm/version.js.map +1 -1
  14. package/build/esnext/index.d.ts +0 -2
  15. package/build/esnext/index.js +0 -2
  16. package/build/esnext/index.js.map +1 -1
  17. package/build/esnext/platform/browser/OTLPTraceExporter.d.ts +4 -5
  18. package/build/esnext/platform/browser/OTLPTraceExporter.js +7 -7
  19. package/build/esnext/platform/browser/OTLPTraceExporter.js.map +1 -1
  20. package/build/esnext/platform/node/OTLPTraceExporter.d.ts +3 -3
  21. package/build/esnext/platform/node/OTLPTraceExporter.js +7 -7
  22. package/build/esnext/platform/node/OTLPTraceExporter.js.map +1 -1
  23. package/build/esnext/version.d.ts +1 -1
  24. package/build/esnext/version.js +1 -1
  25. package/build/esnext/version.js.map +1 -1
  26. package/build/src/index.d.ts +0 -2
  27. package/build/src/index.js +0 -5
  28. package/build/src/index.js.map +1 -1
  29. package/build/src/platform/browser/OTLPTraceExporter.d.ts +4 -5
  30. package/build/src/platform/browser/OTLPTraceExporter.js +7 -7
  31. package/build/src/platform/browser/OTLPTraceExporter.js.map +1 -1
  32. package/build/src/platform/node/OTLPTraceExporter.d.ts +3 -3
  33. package/build/src/platform/node/OTLPTraceExporter.js +6 -6
  34. package/build/src/platform/node/OTLPTraceExporter.js.map +1 -1
  35. package/build/src/version.d.ts +1 -1
  36. package/build/src/version.js +1 -1
  37. package/build/src/version.js.map +1 -1
  38. package/package.json +8 -7
  39. package/build/esm/transform.d.ts +0 -80
  40. package/build/esm/transform.js +0 -287
  41. package/build/esm/transform.js.map +0 -1
  42. package/build/esm/types.d.ts +0 -209
  43. package/build/esm/types.js +0 -146
  44. package/build/esm/types.js.map +0 -1
  45. package/build/esnext/transform.d.ts +0 -80
  46. package/build/esnext/transform.js +0 -266
  47. package/build/esnext/transform.js.map +0 -1
  48. package/build/esnext/types.d.ts +0 -209
  49. package/build/esnext/types.js +0 -145
  50. package/build/esnext/types.js.map +0 -1
  51. package/build/src/transform.d.ts +0 -80
  52. package/build/src/transform.js +0 -282
  53. package/build/src/transform.js.map +0 -1
  54. package/build/src/types.d.ts +0 -209
  55. package/build/src/types.js +0 -148
  56. package/build/src/types.js.map +0 -1
@@ -1,266 +0,0 @@
1
- /*
2
- * Copyright The OpenTelemetry Authors
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import * as core from '@opentelemetry/core';
17
- import { OTLP_SPAN_KIND_MAPPING, opentelemetryProto, } from './types';
18
- const MAX_INTEGER_VALUE = 2147483647;
19
- const MIN_INTEGER_VALUE = -2147483648;
20
- /**
21
- * Converts attributes to KeyValue array
22
- * @param attributes
23
- */
24
- export function toCollectorAttributes(attributes) {
25
- return Object.keys(attributes).map(key => {
26
- return toCollectorAttributeKeyValue(key, attributes[key]);
27
- });
28
- }
29
- /**
30
- * Converts array of unknown value to ArrayValue
31
- * @param values
32
- */
33
- export function toCollectorArrayValue(values) {
34
- return {
35
- values: values.map(value => toCollectorAnyValue(value)),
36
- };
37
- }
38
- /**
39
- * Converts attributes to KeyValueList
40
- * @param attributes
41
- */
42
- export function toCollectorKeyValueList(attributes) {
43
- return {
44
- values: toCollectorAttributes(attributes),
45
- };
46
- }
47
- /**
48
- * Converts key and unknown value to KeyValue
49
- * @param value event value
50
- */
51
- export function toCollectorAttributeKeyValue(key, value) {
52
- const anyValue = toCollectorAnyValue(value);
53
- return {
54
- key,
55
- value: anyValue,
56
- };
57
- }
58
- /**
59
- * Converts unknown value to AnyValue
60
- * @param value
61
- */
62
- export function toCollectorAnyValue(value) {
63
- const anyValue = {};
64
- if (typeof value === 'string') {
65
- anyValue.stringValue = value;
66
- }
67
- else if (typeof value === 'boolean') {
68
- anyValue.boolValue = value;
69
- }
70
- else if (typeof value === 'number' &&
71
- value <= MAX_INTEGER_VALUE &&
72
- value >= MIN_INTEGER_VALUE &&
73
- Number.isInteger(value)) {
74
- anyValue.intValue = value;
75
- }
76
- else if (typeof value === 'number') {
77
- anyValue.doubleValue = value;
78
- }
79
- else if (Array.isArray(value)) {
80
- anyValue.arrayValue = toCollectorArrayValue(value);
81
- }
82
- else if (value) {
83
- anyValue.kvlistValue = toCollectorKeyValueList(value);
84
- }
85
- return anyValue;
86
- }
87
- /**
88
- *
89
- * Converts events
90
- * @param events array of events
91
- */
92
- export function toCollectorEvents(timedEvents) {
93
- return timedEvents.map(timedEvent => {
94
- const timeUnixNano = core.hrTimeToNanoseconds(timedEvent.time);
95
- const name = timedEvent.name;
96
- const attributes = toCollectorAttributes(timedEvent.attributes || {});
97
- const droppedAttributesCount = 0;
98
- const protoEvent = {
99
- timeUnixNano,
100
- name,
101
- attributes,
102
- droppedAttributesCount,
103
- };
104
- return protoEvent;
105
- });
106
- }
107
- /**
108
- * Converts links
109
- * @param span
110
- * @param useHex - if ids should be kept as hex without converting to base64
111
- */
112
- function toCollectorLinks(span, useHex) {
113
- return span.links.map((link) => {
114
- const protoLink = {
115
- traceId: useHex
116
- ? link.context.traceId
117
- : core.hexToBase64(link.context.traceId),
118
- spanId: useHex
119
- ? link.context.spanId
120
- : core.hexToBase64(link.context.spanId),
121
- attributes: toCollectorAttributes(link.attributes || {}),
122
- droppedAttributesCount: 0,
123
- };
124
- return protoLink;
125
- });
126
- }
127
- /**
128
- * Converts span
129
- * @param span
130
- * @param useHex - if ids should be kept as hex without converting to base64
131
- */
132
- export function toCollectorSpan(span, useHex) {
133
- return {
134
- traceId: useHex
135
- ? span.spanContext().traceId
136
- : core.hexToBase64(span.spanContext().traceId),
137
- spanId: useHex
138
- ? span.spanContext().spanId
139
- : core.hexToBase64(span.spanContext().spanId),
140
- parentSpanId: span.parentSpanId
141
- ? useHex
142
- ? span.parentSpanId
143
- : core.hexToBase64(span.parentSpanId)
144
- : undefined,
145
- traceState: toCollectorTraceState(span.spanContext().traceState),
146
- name: span.name,
147
- kind: toCollectorKind(span.kind),
148
- startTimeUnixNano: core.hrTimeToNanoseconds(span.startTime),
149
- endTimeUnixNano: core.hrTimeToNanoseconds(span.endTime),
150
- attributes: toCollectorAttributes(span.attributes),
151
- droppedAttributesCount: 0,
152
- events: toCollectorEvents(span.events),
153
- droppedEventsCount: 0,
154
- status: toCollectorStatus(span.status),
155
- links: toCollectorLinks(span, useHex),
156
- droppedLinksCount: 0,
157
- };
158
- }
159
- /**
160
- * Converts status
161
- * @param status
162
- */
163
- export function toCollectorStatus(status) {
164
- const spanStatus = {
165
- code: status.code,
166
- };
167
- if (typeof status.message !== 'undefined') {
168
- spanStatus.message = status.message;
169
- }
170
- return spanStatus;
171
- }
172
- /**
173
- * Converts resource
174
- * @param resource
175
- * @param additionalAttributes
176
- */
177
- export function toCollectorResource(resource, additionalAttributes = {}) {
178
- const attr = Object.assign({}, additionalAttributes, resource ? resource.attributes : {});
179
- const resourceProto = {
180
- attributes: toCollectorAttributes(attr),
181
- droppedAttributesCount: 0,
182
- };
183
- return resourceProto;
184
- }
185
- /**
186
- * Converts span kind
187
- * @param kind
188
- */
189
- export function toCollectorKind(kind) {
190
- const collectorKind = OTLP_SPAN_KIND_MAPPING[kind];
191
- return typeof collectorKind === 'number'
192
- ? collectorKind
193
- : opentelemetryProto.trace.v1.Span.SpanKind.SPAN_KIND_UNSPECIFIED;
194
- }
195
- /**
196
- * Converts traceState
197
- * @param traceState
198
- */
199
- export function toCollectorTraceState(traceState) {
200
- if (!traceState)
201
- return undefined;
202
- return traceState.serialize();
203
- }
204
- /**
205
- * Prepares trace service request to be sent to collector
206
- * @param spans spans
207
- * @param collectorExporterBase
208
- * @param useHex - if ids should be kept as hex without converting to base64
209
- */
210
- export function toOTLPExportTraceServiceRequest(spans, collectorTraceExporterBase, useHex) {
211
- const groupedSpans = groupSpansByResourceAndLibrary(spans);
212
- const additionalAttributes = Object.assign({}, collectorTraceExporterBase.attributes);
213
- return {
214
- resourceSpans: toCollectorResourceSpans(groupedSpans, additionalAttributes, useHex),
215
- };
216
- }
217
- /**
218
- * Takes an array of spans and groups them by resource and instrumentation
219
- * library
220
- * @param spans spans
221
- */
222
- export function groupSpansByResourceAndLibrary(spans) {
223
- return spans.reduce((spanMap, span) => {
224
- //group by resource
225
- let resourceSpans = spanMap.get(span.resource);
226
- if (!resourceSpans) {
227
- resourceSpans = new Map();
228
- spanMap.set(span.resource, resourceSpans);
229
- }
230
- //group by instrumentation library
231
- let libSpans = resourceSpans.get(span.instrumentationLibrary);
232
- if (!libSpans) {
233
- libSpans = new Array();
234
- resourceSpans.set(span.instrumentationLibrary, libSpans);
235
- }
236
- libSpans.push(span);
237
- return spanMap;
238
- }, new Map());
239
- }
240
- /**
241
- * Convert to InstrumentationLibrarySpans
242
- * @param instrumentationLibrary
243
- * @param spans
244
- * @param useHex - if ids should be kept as hex without converting to base64
245
- */
246
- function toCollectorInstrumentationLibrarySpans(instrumentationLibrary, spans, useHex) {
247
- return {
248
- spans: spans.map(span => toCollectorSpan(span, useHex)),
249
- instrumentationLibrary,
250
- };
251
- }
252
- /**
253
- * Returns a list of resource spans which will be exported to the collector
254
- * @param groupedSpans
255
- * @param baseAttributes
256
- * @param useHex - if ids should be kept as hex without converting to base64
257
- */
258
- function toCollectorResourceSpans(groupedSpans, baseAttributes, useHex) {
259
- return Array.from(groupedSpans, ([resource, libSpans]) => {
260
- return {
261
- resource: toCollectorResource(resource, baseAttributes),
262
- instrumentationLibrarySpans: Array.from(libSpans, ([instrumentationLibrary, spans]) => toCollectorInstrumentationLibrarySpans(instrumentationLibrary, spans, useHex)),
263
- };
264
- });
265
- }
266
- //# sourceMappingURL=transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n SpanAttributes,\n Link,\n SpanKind,\n SpanStatus,\n TraceState,\n} from '@opentelemetry/api';\nimport * as core from '@opentelemetry/core';\nimport { Resource } from '@opentelemetry/resources';\nimport { ReadableSpan, TimedEvent } from '@opentelemetry/sdk-trace-base';\nimport {\n OTLP_SPAN_KIND_MAPPING,\n opentelemetryProto,\n} from './types';\nimport { OTLPExporterBase, OTLPExporterConfigBase } from '@opentelemetry/otlp-exporter-base';\n\nconst MAX_INTEGER_VALUE = 2147483647;\nconst MIN_INTEGER_VALUE = -2147483648;\n\n/**\n * Converts attributes to KeyValue array\n * @param attributes\n */\nexport function toCollectorAttributes(\n attributes: SpanAttributes\n): opentelemetryProto.common.v1.KeyValue[] {\n return Object.keys(attributes).map(key => {\n return toCollectorAttributeKeyValue(key, attributes[key]);\n });\n}\n\n/**\n * Converts array of unknown value to ArrayValue\n * @param values\n */\nexport function toCollectorArrayValue(\n values: unknown[]\n): opentelemetryProto.common.v1.ArrayValue {\n return {\n values: values.map(value => toCollectorAnyValue(value)),\n };\n}\n\n/**\n * Converts attributes to KeyValueList\n * @param attributes\n */\nexport function toCollectorKeyValueList(\n attributes: SpanAttributes\n): opentelemetryProto.common.v1.KeyValueList {\n return {\n values: toCollectorAttributes(attributes),\n };\n}\n\n/**\n * Converts key and unknown value to KeyValue\n * @param value event value\n */\nexport function toCollectorAttributeKeyValue(\n key: string,\n value: unknown\n): opentelemetryProto.common.v1.KeyValue {\n const anyValue = toCollectorAnyValue(value);\n return {\n key,\n value: anyValue,\n };\n}\n\n/**\n * Converts unknown value to AnyValue\n * @param value\n */\nexport function toCollectorAnyValue(\n value: unknown\n): opentelemetryProto.common.v1.AnyValue {\n const anyValue: opentelemetryProto.common.v1.AnyValue = {};\n if (typeof value === 'string') {\n anyValue.stringValue = value;\n } else if (typeof value === 'boolean') {\n anyValue.boolValue = value;\n } else if (\n typeof value === 'number' &&\n value <= MAX_INTEGER_VALUE &&\n value >= MIN_INTEGER_VALUE &&\n Number.isInteger(value)\n ) {\n anyValue.intValue = value;\n } else if (typeof value === 'number') {\n anyValue.doubleValue = value;\n } else if (Array.isArray(value)) {\n anyValue.arrayValue = toCollectorArrayValue(value);\n } else if (value) {\n anyValue.kvlistValue = toCollectorKeyValueList(value as SpanAttributes);\n }\n return anyValue;\n}\n\n/**\n *\n * Converts events\n * @param events array of events\n */\nexport function toCollectorEvents(\n timedEvents: TimedEvent[]\n): opentelemetryProto.trace.v1.Span.Event[] {\n return timedEvents.map(timedEvent => {\n const timeUnixNano = core.hrTimeToNanoseconds(timedEvent.time);\n const name = timedEvent.name;\n const attributes = toCollectorAttributes(timedEvent.attributes || {});\n const droppedAttributesCount = 0;\n\n const protoEvent: opentelemetryProto.trace.v1.Span.Event = {\n timeUnixNano,\n name,\n attributes,\n droppedAttributesCount,\n };\n\n return protoEvent;\n });\n}\n\n/**\n * Converts links\n * @param span\n * @param useHex - if ids should be kept as hex without converting to base64\n */\nfunction toCollectorLinks(\n span: ReadableSpan,\n useHex?: boolean\n): opentelemetryProto.trace.v1.Span.Link[] {\n return span.links.map((link: Link) => {\n const protoLink: opentelemetryProto.trace.v1.Span.Link = {\n traceId: useHex\n ? link.context.traceId\n : core.hexToBase64(link.context.traceId),\n spanId: useHex\n ? link.context.spanId\n : core.hexToBase64(link.context.spanId),\n attributes: toCollectorAttributes(link.attributes || {}),\n droppedAttributesCount: 0,\n };\n return protoLink;\n });\n}\n\n/**\n * Converts span\n * @param span\n * @param useHex - if ids should be kept as hex without converting to base64\n */\nexport function toCollectorSpan(\n span: ReadableSpan,\n useHex?: boolean\n): opentelemetryProto.trace.v1.Span {\n return {\n traceId: useHex\n ? span.spanContext().traceId\n : core.hexToBase64(span.spanContext().traceId),\n spanId: useHex\n ? span.spanContext().spanId\n : core.hexToBase64(span.spanContext().spanId),\n parentSpanId: span.parentSpanId\n ? useHex\n ? span.parentSpanId\n : core.hexToBase64(span.parentSpanId)\n : undefined,\n traceState: toCollectorTraceState(span.spanContext().traceState),\n name: span.name,\n kind: toCollectorKind(span.kind),\n startTimeUnixNano: core.hrTimeToNanoseconds(span.startTime),\n endTimeUnixNano: core.hrTimeToNanoseconds(span.endTime),\n attributes: toCollectorAttributes(span.attributes),\n droppedAttributesCount: 0,\n events: toCollectorEvents(span.events),\n droppedEventsCount: 0,\n status: toCollectorStatus(span.status),\n links: toCollectorLinks(span, useHex),\n droppedLinksCount: 0,\n };\n}\n\n/**\n * Converts status\n * @param status\n */\nexport function toCollectorStatus(\n status: SpanStatus\n): opentelemetryProto.trace.v1.SpanStatus {\n const spanStatus: opentelemetryProto.trace.v1.SpanStatus = {\n code: status.code,\n };\n if (typeof status.message !== 'undefined') {\n spanStatus.message = status.message;\n }\n return spanStatus;\n}\n\n/**\n * Converts resource\n * @param resource\n * @param additionalAttributes\n */\nexport function toCollectorResource(\n resource?: Resource,\n additionalAttributes: { [key: string]: unknown } = {}\n): opentelemetryProto.resource.v1.Resource {\n const attr = Object.assign(\n {},\n additionalAttributes,\n resource ? resource.attributes : {}\n );\n const resourceProto: opentelemetryProto.resource.v1.Resource = {\n attributes: toCollectorAttributes(attr),\n droppedAttributesCount: 0,\n };\n\n return resourceProto;\n}\n\n/**\n * Converts span kind\n * @param kind\n */\nexport function toCollectorKind(\n kind: SpanKind\n): opentelemetryProto.trace.v1.Span.SpanKind {\n const collectorKind = OTLP_SPAN_KIND_MAPPING[kind];\n return typeof collectorKind === 'number'\n ? collectorKind\n : opentelemetryProto.trace.v1.Span.SpanKind.SPAN_KIND_UNSPECIFIED;\n}\n\n/**\n * Converts traceState\n * @param traceState\n */\nexport function toCollectorTraceState(\n traceState?: TraceState\n): opentelemetryProto.trace.v1.Span.TraceState | undefined {\n if (!traceState) return undefined;\n return traceState.serialize();\n}\n\n/**\n * Prepares trace service request to be sent to collector\n * @param spans spans\n * @param collectorExporterBase\n * @param useHex - if ids should be kept as hex without converting to base64\n */\nexport function toOTLPExportTraceServiceRequest<\n T extends OTLPExporterConfigBase\n>(\n spans: ReadableSpan[],\n collectorTraceExporterBase: OTLPExporterBase<\n T,\n ReadableSpan,\n opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest\n >,\n useHex?: boolean\n): opentelemetryProto.collector.trace.v1.ExportTraceServiceRequest {\n const groupedSpans: Map<\n Resource,\n Map<core.InstrumentationLibrary, ReadableSpan[]>\n > = groupSpansByResourceAndLibrary(spans);\n\n const additionalAttributes = Object.assign(\n {},\n collectorTraceExporterBase.attributes\n );\n\n return {\n resourceSpans: toCollectorResourceSpans(\n groupedSpans,\n additionalAttributes,\n useHex\n ),\n };\n}\n\n/**\n * Takes an array of spans and groups them by resource and instrumentation\n * library\n * @param spans spans\n */\nexport function groupSpansByResourceAndLibrary(\n spans: ReadableSpan[]\n): Map<Resource, Map<core.InstrumentationLibrary, ReadableSpan[]>> {\n return spans.reduce((spanMap, span) => {\n //group by resource\n let resourceSpans = spanMap.get(span.resource);\n if (!resourceSpans) {\n resourceSpans = new Map<core.InstrumentationLibrary, ReadableSpan[]>();\n spanMap.set(span.resource, resourceSpans);\n }\n //group by instrumentation library\n let libSpans = resourceSpans.get(span.instrumentationLibrary);\n if (!libSpans) {\n libSpans = new Array<ReadableSpan>();\n resourceSpans.set(span.instrumentationLibrary, libSpans);\n }\n libSpans.push(span);\n return spanMap;\n }, new Map<Resource, Map<core.InstrumentationLibrary, ReadableSpan[]>>());\n}\n\n/**\n * Convert to InstrumentationLibrarySpans\n * @param instrumentationLibrary\n * @param spans\n * @param useHex - if ids should be kept as hex without converting to base64\n */\nfunction toCollectorInstrumentationLibrarySpans(\n instrumentationLibrary: core.InstrumentationLibrary,\n spans: ReadableSpan[],\n useHex?: boolean\n): opentelemetryProto.trace.v1.InstrumentationLibrarySpans {\n return {\n spans: spans.map(span => toCollectorSpan(span, useHex)),\n instrumentationLibrary,\n };\n}\n\n/**\n * Returns a list of resource spans which will be exported to the collector\n * @param groupedSpans\n * @param baseAttributes\n * @param useHex - if ids should be kept as hex without converting to base64\n */\nfunction toCollectorResourceSpans(\n groupedSpans: Map<Resource, Map<core.InstrumentationLibrary, ReadableSpan[]>>,\n baseAttributes: SpanAttributes,\n useHex?: boolean\n): opentelemetryProto.trace.v1.ResourceSpans[] {\n return Array.from(groupedSpans, ([resource, libSpans]) => {\n return {\n resource: toCollectorResource(resource, baseAttributes),\n instrumentationLibrarySpans: Array.from(\n libSpans,\n ([instrumentationLibrary, spans]) =>\n toCollectorInstrumentationLibrarySpans(\n instrumentationLibrary,\n spans,\n useHex\n )\n ),\n };\n });\n}\n"]}
@@ -1,209 +0,0 @@
1
- import { SpanStatusCode } from '@opentelemetry/api';
2
- export declare namespace opentelemetryProto {
3
- namespace collector {
4
- namespace trace.v1 {
5
- interface TraceService {
6
- service: opentelemetryProto.collector.trace.v1.TraceService;
7
- }
8
- interface ExportTraceServiceRequest {
9
- resourceSpans: opentelemetryProto.trace.v1.ResourceSpans[];
10
- }
11
- }
12
- namespace metrics.v1 {
13
- interface ExportMetricsServiceRequest {
14
- resourceMetrics: opentelemetryProto.metrics.v1.ResourceMetrics[];
15
- }
16
- }
17
- }
18
- namespace resource.v1 {
19
- interface Resource {
20
- attributes: opentelemetryProto.common.v1.KeyValue[];
21
- droppedAttributesCount: number;
22
- }
23
- }
24
- namespace metrics.v1 {
25
- interface Metric {
26
- name: string;
27
- description: string;
28
- unit: string;
29
- intGauge?: opentelemetryProto.metrics.v1.Gauge;
30
- doubleGauge?: opentelemetryProto.metrics.v1.Gauge;
31
- intSum?: opentelemetryProto.metrics.v1.Sum;
32
- doubleSum?: opentelemetryProto.metrics.v1.Sum;
33
- intHistogram?: opentelemetryProto.metrics.v1.Histogram;
34
- doubleHistogram?: opentelemetryProto.metrics.v1.Histogram;
35
- }
36
- interface Gauge {
37
- dataPoints: opentelemetryProto.metrics.v1.DataPoint[];
38
- }
39
- interface Sum {
40
- dataPoints: opentelemetryProto.metrics.v1.DataPoint[];
41
- aggregationTemporality: opentelemetryProto.metrics.v1.AggregationTemporality;
42
- isMonotonic: boolean;
43
- }
44
- interface Histogram {
45
- dataPoints: opentelemetryProto.metrics.v1.HistogramDataPoint[];
46
- aggregationTemporality: opentelemetryProto.metrics.v1.AggregationTemporality;
47
- }
48
- interface DataPoint {
49
- labels: opentelemetryProto.common.v1.StringKeyValue[];
50
- startTimeUnixNano: number;
51
- timeUnixNano: number;
52
- value: number;
53
- exemplars?: opentelemetryProto.metrics.v1.Exemplar[];
54
- }
55
- interface Exemplar {
56
- filteredLabels: opentelemetryProto.common.v1.StringKeyValue[];
57
- timeUnixNano: number;
58
- value: number;
59
- spanId: Uint8Array;
60
- traceId: Uint8Array;
61
- }
62
- interface HistogramDataPoint {
63
- labels: opentelemetryProto.common.v1.StringKeyValue[];
64
- startTimeUnixNano: number;
65
- timeUnixNano: number;
66
- count: number;
67
- sum: number;
68
- bucketCounts?: number[];
69
- explicitBounds?: number[];
70
- exemplars?: opentelemetryProto.metrics.v1.Exemplar[][];
71
- }
72
- interface InstrumentationLibraryMetrics {
73
- instrumentationLibrary?: opentelemetryProto.common.v1.InstrumentationLibrary;
74
- metrics: opentelemetryProto.metrics.v1.Metric[];
75
- }
76
- interface ResourceMetrics {
77
- resource?: opentelemetryProto.resource.v1.Resource;
78
- instrumentationLibraryMetrics: opentelemetryProto.metrics.v1.InstrumentationLibraryMetrics[];
79
- }
80
- enum AggregationTemporality {
81
- AGGREGATION_TEMPORALITY_UNSPECIFIED = 0,
82
- AGGREGATION_TEMPORALITY_DELTA = 1,
83
- AGGREGATION_TEMPORALITY_CUMULATIVE = 2
84
- }
85
- }
86
- namespace trace.v1 {
87
- namespace ConstantSampler {
88
- enum ConstantDecision {
89
- ALWAYS_OFF = 0,
90
- ALWAYS_ON = 1,
91
- ALWAYS_PARENT = 2
92
- }
93
- }
94
- namespace Span {
95
- interface Event {
96
- timeUnixNano: number;
97
- name: string;
98
- attributes?: opentelemetryProto.common.v1.KeyValue[];
99
- droppedAttributesCount: number;
100
- }
101
- interface Link {
102
- traceId: string;
103
- spanId: string;
104
- traceState?: opentelemetryProto.trace.v1.Span.TraceState;
105
- attributes?: opentelemetryProto.common.v1.KeyValue[];
106
- droppedAttributesCount: number;
107
- }
108
- enum SpanKind {
109
- SPAN_KIND_UNSPECIFIED = 0,
110
- SPAN_KIND_INTERNAL = 1,
111
- SPAN_KIND_SERVER = 2,
112
- SPAN_KIND_CLIENT = 3,
113
- SPAN_KIND_PRODUCER = 4,
114
- SPAN_KIND_CONSUMER = 5
115
- }
116
- type TraceState = string | undefined;
117
- }
118
- interface ConstantSampler {
119
- decision?: opentelemetryProto.trace.v1.ConstantSampler.ConstantDecision;
120
- }
121
- interface InstrumentationLibrarySpans {
122
- instrumentationLibrary?: opentelemetryProto.common.v1.InstrumentationLibrary;
123
- spans: opentelemetryProto.trace.v1.Span[];
124
- }
125
- interface ProbabilitySampler {
126
- samplingProbability?: number | null;
127
- }
128
- interface RateLimitingSampler {
129
- qps?: number | null;
130
- }
131
- interface ResourceSpans {
132
- resource?: opentelemetryProto.resource.v1.Resource;
133
- instrumentationLibrarySpans: opentelemetryProto.trace.v1.InstrumentationLibrarySpans[];
134
- }
135
- interface Span {
136
- traceId: string;
137
- spanId: string;
138
- traceState: opentelemetryProto.trace.v1.Span.TraceState;
139
- parentSpanId?: string;
140
- name?: string;
141
- kind?: opentelemetryProto.trace.v1.Span.SpanKind;
142
- startTimeUnixNano?: number;
143
- endTimeUnixNano?: number;
144
- attributes?: opentelemetryProto.common.v1.KeyValue[];
145
- droppedAttributesCount: number;
146
- events?: opentelemetryProto.trace.v1.Span.Event[];
147
- droppedEventsCount: number;
148
- links?: opentelemetryProto.trace.v1.Span.Link[];
149
- droppedLinksCount: number;
150
- status?: SpanStatus;
151
- }
152
- interface SpanStatus {
153
- /** The status code of this message. */
154
- code: SpanStatusCode;
155
- /** A developer-facing error message. */
156
- message?: string;
157
- }
158
- interface TraceConfig {
159
- constantSampler?: ConstantSampler | null;
160
- probabilitySampler?: ProbabilitySampler | null;
161
- rateLimitingSampler?: RateLimitingSampler | null;
162
- }
163
- }
164
- namespace common.v1 {
165
- interface KeyValue {
166
- key: string;
167
- value: AnyValue;
168
- }
169
- type ArrayValue = {
170
- values: AnyValue[];
171
- };
172
- interface KeyValueList {
173
- values: KeyValue[];
174
- }
175
- type AnyValue = {
176
- stringValue?: string;
177
- boolValue?: boolean;
178
- intValue?: number;
179
- doubleValue?: number;
180
- arrayValue?: ArrayValue;
181
- kvlistValue?: KeyValueList;
182
- };
183
- interface InstrumentationLibrary {
184
- name: string;
185
- version?: string;
186
- }
187
- interface StringKeyValue {
188
- key: string;
189
- value: string;
190
- }
191
- enum ValueType {
192
- STRING = 0,
193
- INT = 1,
194
- DOUBLE = 2,
195
- BOOL = 3
196
- }
197
- }
198
- }
199
- /**
200
- * Mapping between api SpanKind and proto SpanKind
201
- */
202
- export declare const OTLP_SPAN_KIND_MAPPING: {
203
- 0: opentelemetryProto.trace.v1.Span.SpanKind;
204
- 1: opentelemetryProto.trace.v1.Span.SpanKind;
205
- 2: opentelemetryProto.trace.v1.Span.SpanKind;
206
- 3: opentelemetryProto.trace.v1.Span.SpanKind;
207
- 4: opentelemetryProto.trace.v1.Span.SpanKind;
208
- };
209
- //# sourceMappingURL=types.d.ts.map
@@ -1,145 +0,0 @@
1
- /*
2
- * Copyright The OpenTelemetry Authors
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { SpanKind } from '@opentelemetry/api';
17
- /* eslint-disable @typescript-eslint/no-namespace */
18
- /* eslint-disable @typescript-eslint/no-unused-vars */
19
- export var opentelemetryProto;
20
- (function (opentelemetryProto) {
21
- let metrics;
22
- (function (metrics) {
23
- let v1;
24
- (function (v1) {
25
- let AggregationTemporality;
26
- (function (AggregationTemporality) {
27
- // UNSPECIFIED is the default AggregationTemporality, it MUST not be used.
28
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_UNSPECIFIED"] = 0] = "AGGREGATION_TEMPORALITY_UNSPECIFIED";
29
- // DELTA is an AggregationTemporality for a metric aggregator which reports
30
- // changes since last report time. Successive metrics contain aggregation of
31
- // values from continuous and non-overlapping intervals.
32
- //
33
- // The values for a DELTA metric are based only on the time interval
34
- // associated with one measurement cycle. There is no dependency on
35
- // previous measurements like is the case for CUMULATIVE metrics.
36
- //
37
- // For example, consider a system measuring the number of requests that
38
- // it receives and reports the sum of these requests every second as a
39
- // DELTA metric:
40
- //
41
- // 1. The system starts receiving at time=t_0.
42
- // 2. A request is received, the system measures 1 request.
43
- // 3. A request is received, the system measures 1 request.
44
- // 4. A request is received, the system measures 1 request.
45
- // 5. The 1 second collection cycle ends. A metric is exported for the
46
- // number of requests received over the interval of time t_0 to
47
- // t_0+1 with a value of 3.
48
- // 6. A request is received, the system measures 1 request.
49
- // 7. A request is received, the system measures 1 request.
50
- // 8. The 1 second collection cycle ends. A metric is exported for the
51
- // number of requests received over the interval of time t_0+1 to
52
- // t_0+2 with a value of 2.
53
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_DELTA"] = 1] = "AGGREGATION_TEMPORALITY_DELTA";
54
- // CUMULATIVE is an AggregationTemporality for a metric aggregator which
55
- // reports changes since a fixed start time. This means that current values
56
- // of a CUMULATIVE metric depend on all previous measurements since the
57
- // start time. Because of this, the sender is required to retain this state
58
- // in some form. If this state is lost or invalidated, the CUMULATIVE metric
59
- // values MUST be reset and a new fixed start time following the last
60
- // reported measurement time sent MUST be used.
61
- //
62
- // For example, consider a system measuring the number of requests that
63
- // it receives and reports the sum of these requests every second as a
64
- // CUMULATIVE metric:
65
- //
66
- // 1. The system starts receiving at time=t_0.
67
- // 2. A request is received, the system measures 1 request.
68
- // 3. A request is received, the system measures 1 request.
69
- // 4. A request is received, the system measures 1 request.
70
- // 5. The 1 second collection cycle ends. A metric is exported for the
71
- // number of requests received over the interval of time t_0 to
72
- // t_0+1 with a value of 3.
73
- // 6. A request is received, the system measures 1 request.
74
- // 7. A request is received, the system measures 1 request.
75
- // 8. The 1 second collection cycle ends. A metric is exported for the
76
- // number of requests received over the interval of time t_0 to
77
- // t_0+2 with a value of 5.
78
- // 9. The system experiences a fault and loses state.
79
- // 10. The system recovers and resumes receiving at time=t_1.
80
- // 11. A request is received, the system measures 1 request.
81
- // 12. The 1 second collection cycle ends. A metric is exported for the
82
- // number of requests received over the interval of time t_1 to
83
- // t_0+1 with a value of 1.
84
- //
85
- // Note: Even though, when reporting changes since last report time, using
86
- // CUMULATIVE is valid, it is not recommended. This may cause problems for
87
- // systems that do not use start_time to determine when the aggregation
88
- // value was reset (e.g. Prometheus).
89
- AggregationTemporality[AggregationTemporality["AGGREGATION_TEMPORALITY_CUMULATIVE"] = 2] = "AGGREGATION_TEMPORALITY_CUMULATIVE";
90
- })(AggregationTemporality = v1.AggregationTemporality || (v1.AggregationTemporality = {}));
91
- })(v1 = metrics.v1 || (metrics.v1 = {}));
92
- })(metrics = opentelemetryProto.metrics || (opentelemetryProto.metrics = {}));
93
- let trace;
94
- (function (trace) {
95
- let v1;
96
- (function (v1) {
97
- let ConstantSampler;
98
- (function (ConstantSampler) {
99
- let ConstantDecision;
100
- (function (ConstantDecision) {
101
- ConstantDecision[ConstantDecision["ALWAYS_OFF"] = 0] = "ALWAYS_OFF";
102
- ConstantDecision[ConstantDecision["ALWAYS_ON"] = 1] = "ALWAYS_ON";
103
- ConstantDecision[ConstantDecision["ALWAYS_PARENT"] = 2] = "ALWAYS_PARENT";
104
- })(ConstantDecision = ConstantSampler.ConstantDecision || (ConstantSampler.ConstantDecision = {}));
105
- })(ConstantSampler = v1.ConstantSampler || (v1.ConstantSampler = {}));
106
- let Span;
107
- (function (Span) {
108
- // eslint-disable-next-line @typescript-eslint/no-shadow
109
- let SpanKind;
110
- (function (SpanKind) {
111
- SpanKind[SpanKind["SPAN_KIND_UNSPECIFIED"] = 0] = "SPAN_KIND_UNSPECIFIED";
112
- SpanKind[SpanKind["SPAN_KIND_INTERNAL"] = 1] = "SPAN_KIND_INTERNAL";
113
- SpanKind[SpanKind["SPAN_KIND_SERVER"] = 2] = "SPAN_KIND_SERVER";
114
- SpanKind[SpanKind["SPAN_KIND_CLIENT"] = 3] = "SPAN_KIND_CLIENT";
115
- SpanKind[SpanKind["SPAN_KIND_PRODUCER"] = 4] = "SPAN_KIND_PRODUCER";
116
- SpanKind[SpanKind["SPAN_KIND_CONSUMER"] = 5] = "SPAN_KIND_CONSUMER";
117
- })(SpanKind = Span.SpanKind || (Span.SpanKind = {}));
118
- })(Span = v1.Span || (v1.Span = {}));
119
- })(v1 = trace.v1 || (trace.v1 = {}));
120
- })(trace = opentelemetryProto.trace || (opentelemetryProto.trace = {}));
121
- let common;
122
- (function (common) {
123
- let v1;
124
- (function (v1) {
125
- let ValueType;
126
- (function (ValueType) {
127
- ValueType[ValueType["STRING"] = 0] = "STRING";
128
- ValueType[ValueType["INT"] = 1] = "INT";
129
- ValueType[ValueType["DOUBLE"] = 2] = "DOUBLE";
130
- ValueType[ValueType["BOOL"] = 3] = "BOOL";
131
- })(ValueType = v1.ValueType || (v1.ValueType = {}));
132
- })(v1 = common.v1 || (common.v1 = {}));
133
- })(common = opentelemetryProto.common || (opentelemetryProto.common = {}));
134
- })(opentelemetryProto || (opentelemetryProto = {}));
135
- /**
136
- * Mapping between api SpanKind and proto SpanKind
137
- */
138
- export const OTLP_SPAN_KIND_MAPPING = {
139
- [SpanKind.INTERNAL]: opentelemetryProto.trace.v1.Span.SpanKind.SPAN_KIND_INTERNAL,
140
- [SpanKind.SERVER]: opentelemetryProto.trace.v1.Span.SpanKind.SPAN_KIND_SERVER,
141
- [SpanKind.CLIENT]: opentelemetryProto.trace.v1.Span.SpanKind.SPAN_KIND_CLIENT,
142
- [SpanKind.PRODUCER]: opentelemetryProto.trace.v1.Span.SpanKind.SPAN_KIND_PRODUCER,
143
- [SpanKind.CONSUMER]: opentelemetryProto.trace.v1.Span.SpanKind.SPAN_KIND_CONSUMER,
144
- };
145
- //# sourceMappingURL=types.js.map