@effect/opentelemetry 0.46.4 → 0.46.6

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 (53) hide show
  1. package/Otlp/package.json +6 -0
  2. package/OtlpLogger/package.json +6 -0
  3. package/OtlpMetrics/package.json +6 -0
  4. package/OtlpResource/package.json +6 -0
  5. package/dist/cjs/Otlp.js +38 -0
  6. package/dist/cjs/Otlp.js.map +1 -0
  7. package/dist/cjs/OtlpLogger.js +153 -0
  8. package/dist/cjs/OtlpLogger.js.map +1 -0
  9. package/dist/cjs/OtlpMetrics.js +354 -0
  10. package/dist/cjs/OtlpMetrics.js.map +1 -0
  11. package/dist/cjs/OtlpResource.js +93 -0
  12. package/dist/cjs/OtlpResource.js.map +1 -0
  13. package/dist/cjs/OtlpTracer.js +37 -124
  14. package/dist/cjs/OtlpTracer.js.map +1 -1
  15. package/dist/cjs/index.js +9 -1
  16. package/dist/cjs/internal/otlpExporter.js +81 -0
  17. package/dist/cjs/internal/otlpExporter.js.map +1 -0
  18. package/dist/dts/Otlp.d.ts +29 -0
  19. package/dist/dts/Otlp.d.ts.map +1 -0
  20. package/dist/dts/OtlpLogger.d.ts +39 -0
  21. package/dist/dts/OtlpLogger.d.ts.map +1 -0
  22. package/dist/dts/OtlpMetrics.d.ts +38 -0
  23. package/dist/dts/OtlpMetrics.d.ts.map +1 -0
  24. package/dist/dts/OtlpResource.d.ts +89 -0
  25. package/dist/dts/OtlpResource.d.ts.map +1 -0
  26. package/dist/dts/OtlpTracer.d.ts +6 -3
  27. package/dist/dts/OtlpTracer.d.ts.map +1 -1
  28. package/dist/dts/index.d.ts +17 -0
  29. package/dist/dts/index.d.ts.map +1 -1
  30. package/dist/dts/internal/otlpExporter.d.ts +2 -0
  31. package/dist/dts/internal/otlpExporter.d.ts.map +1 -0
  32. package/dist/esm/Otlp.js +29 -0
  33. package/dist/esm/Otlp.js.map +1 -0
  34. package/dist/esm/OtlpLogger.js +144 -0
  35. package/dist/esm/OtlpLogger.js.map +1 -0
  36. package/dist/esm/OtlpMetrics.js +345 -0
  37. package/dist/esm/OtlpMetrics.js.map +1 -0
  38. package/dist/esm/OtlpResource.js +81 -0
  39. package/dist/esm/OtlpResource.js.map +1 -0
  40. package/dist/esm/OtlpTracer.js +34 -120
  41. package/dist/esm/OtlpTracer.js.map +1 -1
  42. package/dist/esm/index.js +17 -0
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/internal/otlpExporter.js +73 -0
  45. package/dist/esm/internal/otlpExporter.js.map +1 -0
  46. package/package.json +35 -3
  47. package/src/Otlp.ts +56 -0
  48. package/src/OtlpLogger.ts +243 -0
  49. package/src/OtlpMetrics.ts +568 -0
  50. package/src/OtlpResource.ts +168 -0
  51. package/src/OtlpTracer.ts +47 -178
  52. package/src/index.ts +21 -0
  53. package/src/internal/otlpExporter.ts +114 -0
@@ -1 +1 @@
1
- {"version":3,"file":"OtlpTracer.js","names":["Headers","HttpBody","HttpClient","HttpClientRequest","Cause","Duration","Effect","FiberSet","Inspectable","Layer","Option","Schedule","Scope","Tracer","make","fnUntraced","options","exporterScope","scope","exportInterval","decode","seconds","maxBatchSize","client","filterStatusOk","pipe","tapError","error","_tag","response","status","void","retryAfter","headers","retryAfterSeconds","parseInt","sleep","retryTransient","schedule","spaced","unsafeFromRecord","merge","fromInput","resourceAttributes","resource","attributes","entriesToAttributes","Object","entries","push","key","value","stringValue","serviceName","serviceVersion","otelResource","droppedAttributesCount","name","spanBuffer","runExport","suspend","length","spans","data","resourceSpans","scopeSpans","asVoid","execute","post","url","body","unsafeJson","catchAllCause","cause","logWarning","annotateLogs","package","module","addFinalizer","zipRight","forever","forkScoped","interruptible","runFork","makeRuntime","addSpan","span","makeOtlpSpan","parent","context","links","startTime","kind","makeSpan","Map","sampled","export","f","_fiber","layer","unwrapScoped","map","setTracer","SpanProto","end","endTime","exit","attribute","set","event","events","addLinks","self","assign","create","isSome","traceId","generateId","spanId","len","chars","result","i","Math","floor","random","timeUnixNano","String","otelStatus","constOtelStatusSuccess","errors","prettyErrors","firstError","code","StatusCode","Error","message","pretty","renderErrorCause","parentSpanId","undefined","SpanKind","startTimeUnixNano","endTimeUnixNano","droppedEventsCount","link","droppedLinksCount","unknownToAttributeValue","intValue","Number","isInteger","doubleValue","boolValue","toStringUnknown","Ok"],"sources":["../../src/OtlpTracer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OtlpTracer.js","names":["Cause","Duration","Effect","Layer","Option","Tracer","Exporter","entriesToAttributes","OtlpResource","make","fnUntraced","options","otelResource","resource","scope","name","serviceName","exporter","label","url","headers","exportInterval","seconds","maxBatchSize","body","spans","data","resourceSpans","scopeSpans","span","parent","context","links","startTime","kind","makeSpan","status","_tag","attributes","Map","sampled","export","push","makeOtlpSpan","f","fiber","currentSpan","undefined","defaultContext","layer","unwrapScoped","map","setTracer","_","SpanProto","end","endTime","exit","attribute","key","value","set","event","events","addLinks","self","Object","assign","create","isSome","traceId","generateId","spanId","len","chars","result","i","Math","floor","random","length","entries","timeUnixNano","String","droppedAttributesCount","otelStatus","constOtelStatusSuccess","errors","prettyErrors","cause","firstError","code","StatusCode","Error","message","pretty","renderErrorCause","parentSpanId","SpanKind","startTimeUnixNano","endTimeUnixNano","droppedEventsCount","link","droppedLinksCount","Ok"],"sources":["../../src/OtlpTracer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -10,6 +10,23 @@ export * as Metrics from "./Metrics.js";
10
10
  * @since 1.0.0
11
11
  */
12
12
  export * as NodeSdk from "./NodeSdk.js";
13
+ /**
14
+ * @since 1.0.0
15
+ */
16
+ export * as Otlp from "./Otlp.js";
17
+ /**
18
+ * @since 1.0.0
19
+ * @category Constructors
20
+ */
21
+ export * as OtlpLogger from "./OtlpLogger.js";
22
+ /**
23
+ * @since 1.0.0
24
+ */
25
+ export * as OtlpMetrics from "./OtlpMetrics.js";
26
+ /**
27
+ * @since 1.0.0
28
+ */
29
+ export * as OtlpResource from "./OtlpResource.js";
13
30
  /**
14
31
  * @since 1.0.0
15
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Logger","Metrics","NodeSdk","OtlpTracer","Resource","Tracer","WebSdk"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Logger","Metrics","NodeSdk","Otlp","OtlpLogger","OtlpMetrics","OtlpResource","OtlpTracer","Resource","Tracer","WebSdk"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;;AAIA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ import * as Headers from "@effect/platform/Headers";
2
+ import * as HttpClient from "@effect/platform/HttpClient";
3
+ import * as HttpClientError from "@effect/platform/HttpClientError";
4
+ import * as HttpClientRequest from "@effect/platform/HttpClientRequest";
5
+ import * as Duration from "effect/Duration";
6
+ import * as Effect from "effect/Effect";
7
+ import * as FiberSet from "effect/FiberSet";
8
+ import * as Num from "effect/Number";
9
+ import * as Option from "effect/Option";
10
+ import * as Schedule from "effect/Schedule";
11
+ import * as Scope from "effect/Scope";
12
+ const policy = /*#__PURE__*/Schedule.forever.pipe(Schedule.passthrough, /*#__PURE__*/Schedule.addDelay(error => {
13
+ if (HttpClientError.isHttpClientError(error) && error._tag === "ResponseError" && error.response.status === 429) {
14
+ const retryAfter = Option.fromNullable(error.response.headers["retry-after"]).pipe(Option.flatMap(Num.parse), Option.getOrElse(() => 5));
15
+ return Duration.seconds(retryAfter);
16
+ }
17
+ return Duration.seconds(1);
18
+ }));
19
+ /** @internal */
20
+ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
21
+ const scope = yield* Effect.scope;
22
+ const exportInterval = Duration.decode(options.exportInterval);
23
+ const client = HttpClient.filterStatusOk(yield* HttpClient.HttpClient).pipe(HttpClient.tapError(error => {
24
+ if (error._tag !== "ResponseError" || error.response.status !== 429) {
25
+ return Effect.void;
26
+ }
27
+ const retryAfter = error.response.headers["retry-after"];
28
+ const retryAfterSeconds = retryAfter ? parseInt(retryAfter, 10) : 5;
29
+ return Effect.sleep(Duration.seconds(retryAfterSeconds));
30
+ }), HttpClient.retryTransient({
31
+ schedule: policy
32
+ }));
33
+ let headers = Headers.unsafeFromRecord({
34
+ "user-agent": `effect-opentelemetry-${options.label}/0.0.0`
35
+ });
36
+ if (options.headers) {
37
+ headers = Headers.merge(Headers.fromInput(options.headers), headers);
38
+ }
39
+ const request = HttpClientRequest.post(options.url, {
40
+ headers
41
+ });
42
+ let buffer = [];
43
+ const runExport = Effect.suspend(() => {
44
+ const items = buffer;
45
+ if (options.maxBatchSize !== "disabled") {
46
+ if (buffer.length === 0) {
47
+ return Effect.void;
48
+ }
49
+ buffer = [];
50
+ }
51
+ return Effect.asVoid(client.execute(HttpClientRequest.bodyUnsafeJson(request, options.body(items))));
52
+ });
53
+ yield* Scope.addFinalizer(scope, Effect.ignore(runExport));
54
+ let disabled = false;
55
+ yield* Effect.sleep(exportInterval).pipe(Effect.zipRight(runExport), Effect.forever, Effect.catchAllCause(cause => {
56
+ disabled = true;
57
+ return Effect.logDebug("Failed to export", cause);
58
+ }), Effect.annotateLogs({
59
+ package: "@effect/opentelemetry",
60
+ module: options.label
61
+ }), Effect.forkIn(scope), Effect.interruptible);
62
+ const runFork = yield* FiberSet.makeRuntime().pipe(Effect.interruptible);
63
+ return {
64
+ push(data) {
65
+ if (disabled) return;
66
+ buffer.push(data);
67
+ if (options.maxBatchSize !== "disabled" && buffer.length >= options.maxBatchSize) {
68
+ runFork(runExport);
69
+ }
70
+ }
71
+ };
72
+ });
73
+ //# sourceMappingURL=otlpExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlpExporter.js","names":["Headers","HttpClient","HttpClientError","HttpClientRequest","Duration","Effect","FiberSet","Num","Option","Schedule","Scope","policy","forever","pipe","passthrough","addDelay","error","isHttpClientError","_tag","response","status","retryAfter","fromNullable","headers","flatMap","parse","getOrElse","seconds","make","fnUntraced","options","scope","exportInterval","decode","client","filterStatusOk","tapError","void","retryAfterSeconds","parseInt","sleep","retryTransient","schedule","unsafeFromRecord","label","merge","fromInput","request","post","url","buffer","runExport","suspend","items","maxBatchSize","length","asVoid","execute","bodyUnsafeJson","body","addFinalizer","ignore","disabled","zipRight","catchAllCause","cause","logDebug","annotateLogs","package","module","forkIn","interruptible","runFork","makeRuntime","push","data"],"sources":["../../../src/internal/otlpExporter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/opentelemetry",
3
- "version": "0.46.4",
3
+ "version": "0.46.6",
4
4
  "description": "OpenTelemetry integration for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -17,8 +17,8 @@
17
17
  "@opentelemetry/sdk-trace-node": "^2.0.0",
18
18
  "@opentelemetry/sdk-trace-web": "^2.0.0",
19
19
  "@opentelemetry/semantic-conventions": "^1.30.0",
20
- "@effect/platform": "^0.80.8",
21
- "effect": "^3.14.8"
20
+ "@effect/platform": "^0.80.10",
21
+ "effect": "^3.14.10"
22
22
  },
23
23
  "peerDependenciesMeta": {
24
24
  "@opentelemetry/api": {
@@ -71,6 +71,26 @@
71
71
  "import": "./dist/esm/NodeSdk.js",
72
72
  "default": "./dist/cjs/NodeSdk.js"
73
73
  },
74
+ "./Otlp": {
75
+ "types": "./dist/dts/Otlp.d.ts",
76
+ "import": "./dist/esm/Otlp.js",
77
+ "default": "./dist/cjs/Otlp.js"
78
+ },
79
+ "./OtlpLogger": {
80
+ "types": "./dist/dts/OtlpLogger.d.ts",
81
+ "import": "./dist/esm/OtlpLogger.js",
82
+ "default": "./dist/cjs/OtlpLogger.js"
83
+ },
84
+ "./OtlpMetrics": {
85
+ "types": "./dist/dts/OtlpMetrics.d.ts",
86
+ "import": "./dist/esm/OtlpMetrics.js",
87
+ "default": "./dist/cjs/OtlpMetrics.js"
88
+ },
89
+ "./OtlpResource": {
90
+ "types": "./dist/dts/OtlpResource.d.ts",
91
+ "import": "./dist/esm/OtlpResource.js",
92
+ "default": "./dist/cjs/OtlpResource.js"
93
+ },
74
94
  "./OtlpTracer": {
75
95
  "types": "./dist/dts/OtlpTracer.d.ts",
76
96
  "import": "./dist/esm/OtlpTracer.js",
@@ -103,6 +123,18 @@
103
123
  "NodeSdk": [
104
124
  "./dist/dts/NodeSdk.d.ts"
105
125
  ],
126
+ "Otlp": [
127
+ "./dist/dts/Otlp.d.ts"
128
+ ],
129
+ "OtlpLogger": [
130
+ "./dist/dts/OtlpLogger.d.ts"
131
+ ],
132
+ "OtlpMetrics": [
133
+ "./dist/dts/OtlpMetrics.d.ts"
134
+ ],
135
+ "OtlpResource": [
136
+ "./dist/dts/OtlpResource.d.ts"
137
+ ],
106
138
  "OtlpTracer": [
107
139
  "./dist/dts/OtlpTracer.d.ts"
108
140
  ],
package/src/Otlp.ts ADDED
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Headers from "@effect/platform/Headers"
5
+ import type * as HttpClient from "@effect/platform/HttpClient"
6
+ import type * as Duration from "effect/Duration"
7
+ import * as Layer from "effect/Layer"
8
+ import type * as Logger from "effect/Logger"
9
+ import type * as Tracer from "effect/Tracer"
10
+ import * as OtlpLogger from "./OtlpLogger.js"
11
+ import * as OtlpMetrics from "./OtlpMetrics.js"
12
+ import * as OtlpTracer from "./OtlpTracer.js"
13
+
14
+ /**
15
+ * @since 1.0.0
16
+ * @category Layers
17
+ */
18
+ export const layer = (options: {
19
+ readonly baseUrl: string
20
+ readonly resource: {
21
+ readonly serviceName: string
22
+ readonly serviceVersion?: string | undefined
23
+ readonly attributes?: Record<string, unknown>
24
+ }
25
+ readonly headers?: Headers.Input | undefined
26
+ readonly maxBatchSize?: number | undefined
27
+ readonly replaceLogger?: Logger.Logger<any, any> | undefined
28
+ readonly tracerContext?: (<X>(f: () => X, span: Tracer.AnySpan) => X) | undefined
29
+ readonly loggerExportInterval?: Duration.DurationInput | undefined
30
+ readonly metricsExportInterval?: Duration.DurationInput | undefined
31
+ readonly tracerExportInterval?: Duration.DurationInput | undefined
32
+ }): Layer.Layer<never, never, HttpClient.HttpClient> =>
33
+ Layer.mergeAll(
34
+ OtlpLogger.layer({
35
+ replaceLogger: options.replaceLogger,
36
+ url: `${options.baseUrl}/v1/logs`,
37
+ resource: options.resource,
38
+ headers: options.headers,
39
+ exportInterval: options.loggerExportInterval,
40
+ maxBatchSize: options.maxBatchSize
41
+ }),
42
+ OtlpMetrics.layer({
43
+ url: `${options.baseUrl}/v1/metrics`,
44
+ resource: options.resource,
45
+ headers: options.headers,
46
+ exportInterval: options.metricsExportInterval
47
+ }),
48
+ OtlpTracer.layer({
49
+ url: `${options.baseUrl}/v1/traces`,
50
+ resource: options.resource,
51
+ headers: options.headers,
52
+ exportInterval: options.tracerExportInterval,
53
+ maxBatchSize: options.maxBatchSize,
54
+ context: options.tracerContext
55
+ })
56
+ )
@@ -0,0 +1,243 @@
1
+ import type * as Headers from "@effect/platform/Headers"
2
+ import type * as HttpClient from "@effect/platform/HttpClient"
3
+ import * as Arr from "effect/Array"
4
+ import * as Cause from "effect/Cause"
5
+ import * as Context from "effect/Context"
6
+ import * as Duration from "effect/Duration"
7
+ import * as Effect from "effect/Effect"
8
+ import * as FiberId from "effect/FiberId"
9
+ import * as FiberRef from "effect/FiberRef"
10
+ import * as FiberRefs from "effect/FiberRefs"
11
+ import type * as Layer from "effect/Layer"
12
+ import * as Logger from "effect/Logger"
13
+ import type * as LogLevel from "effect/LogLevel"
14
+ import * as Option from "effect/Option"
15
+ import type * as Scope from "effect/Scope"
16
+ import * as Tracer from "effect/Tracer"
17
+ import * as Exporter from "./internal/otlpExporter.js"
18
+ import type { AnyValue, Fixed64, KeyValue, Resource } from "./OtlpResource.js"
19
+ import * as OtlpResource from "./OtlpResource.js"
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ * @category Constructors
24
+ */
25
+ export const make: (
26
+ options: {
27
+ readonly url: string
28
+ readonly resource: {
29
+ readonly serviceName: string
30
+ readonly serviceVersion?: string | undefined
31
+ readonly attributes?: Record<string, unknown>
32
+ }
33
+ readonly headers?: Headers.Input | undefined
34
+ readonly exportInterval?: Duration.DurationInput | undefined
35
+ readonly maxBatchSize?: number | undefined
36
+ }
37
+ ) => Effect.Effect<
38
+ Logger.Logger<unknown, void>,
39
+ never,
40
+ HttpClient.HttpClient | Scope.Scope
41
+ > = Effect.fnUntraced(function*(options) {
42
+ const otelResource = OtlpResource.make(options.resource)
43
+ const scope: IInstrumentationScope = {
44
+ name: options.resource.serviceName
45
+ }
46
+
47
+ const exporter = yield* Exporter.make({
48
+ label: "OtlpLogger",
49
+ url: options.url,
50
+ headers: options.headers,
51
+ maxBatchSize: options.maxBatchSize ?? 1000,
52
+ exportInterval: options.exportInterval ?? Duration.seconds(1),
53
+ body: (data): IExportLogsServiceRequest => ({
54
+ resourceLogs: [{
55
+ resource: otelResource,
56
+ scopeLogs: [{
57
+ scope,
58
+ logRecords: data
59
+ }]
60
+ }]
61
+ })
62
+ })
63
+
64
+ return Logger.make((options) => {
65
+ exporter.push(makeLogRecord(options))
66
+ })
67
+ })
68
+
69
+ /**
70
+ * @since 1.0.0
71
+ * @category Layers
72
+ */
73
+ export const layer = (options: {
74
+ readonly url: string
75
+ readonly resource: {
76
+ readonly serviceName: string
77
+ readonly serviceVersion?: string | undefined
78
+ readonly attributes?: Record<string, unknown>
79
+ }
80
+ readonly replaceLogger?: Logger.Logger<any, any> | undefined
81
+ readonly headers?: Headers.Input | undefined
82
+ readonly exportInterval?: Duration.DurationInput | undefined
83
+ readonly maxBatchSize?: number | undefined
84
+ }): Layer.Layer<never, never, HttpClient.HttpClient> =>
85
+ options.replaceLogger ? Logger.replaceScoped(options.replaceLogger, make(options)) : Logger.addScoped(make(options))
86
+
87
+ // internal
88
+
89
+ const makeLogRecord = (options: Logger.Logger.Options<unknown>): ILogRecord => {
90
+ const now = options.date.getTime()
91
+ const nanosString = `${now}000000`
92
+
93
+ const attributes = OtlpResource.entriesToAttributes(options.annotations)
94
+ attributes.push({
95
+ key: "fiberId",
96
+ value: { stringValue: FiberId.threadName(options.fiberId) }
97
+ })
98
+ for (const span of options.spans) {
99
+ attributes.push({
100
+ key: `logSpan.${span.label}`,
101
+ value: { stringValue: `${now - span.startTime}ms` }
102
+ })
103
+ }
104
+ if (!Cause.isEmpty(options.cause)) {
105
+ attributes.push({
106
+ key: "log.error",
107
+ value: { stringValue: Cause.pretty(options.cause, { renderErrorCause: true }) }
108
+ })
109
+ }
110
+
111
+ const message = Arr.ensure(options.message)
112
+ const maybeSpan = Context.getOption(
113
+ FiberRefs.getOrDefault(options.context, FiberRef.currentContext),
114
+ Tracer.ParentSpan
115
+ )
116
+
117
+ const logRecord: ILogRecord = {
118
+ severityNumber: logLevelToSeverityNumber(options.logLevel),
119
+ severityText: options.logLevel.label,
120
+ timeUnixNano: nanosString,
121
+ observedTimeUnixNano: nanosString,
122
+ attributes,
123
+ body: OtlpResource.unknownToAttributeValue(message.length === 1 ? message[0] : message),
124
+ droppedAttributesCount: 0
125
+ }
126
+
127
+ if (Option.isSome(maybeSpan)) {
128
+ logRecord.traceId = maybeSpan.value.traceId
129
+ logRecord.spanId = maybeSpan.value.spanId
130
+ }
131
+
132
+ return logRecord
133
+ }
134
+
135
+ /** Properties of an ExportLogsServiceRequest. */
136
+ interface IExportLogsServiceRequest {
137
+ /** ExportLogsServiceRequest resourceLogs */
138
+ resourceLogs?: Array<IResourceLogs>
139
+ }
140
+
141
+ /** Properties of an InstrumentationScope. */
142
+ interface IInstrumentationScope {
143
+ /** InstrumentationScope name */
144
+ name: string
145
+ /** InstrumentationScope version */
146
+ version?: string
147
+ /** InstrumentationScope attributes */
148
+ attributes?: Array<KeyValue>
149
+ /** InstrumentationScope droppedAttributesCount */
150
+ droppedAttributesCount?: number
151
+ }
152
+ /** Properties of a ResourceLogs. */
153
+ interface IResourceLogs {
154
+ /** ResourceLogs resource */
155
+ resource?: Resource
156
+ /** ResourceLogs scopeLogs */
157
+ scopeLogs: Array<IScopeLogs>
158
+ /** ResourceLogs schemaUrl */
159
+ schemaUrl?: string
160
+ }
161
+ /** Properties of an ScopeLogs. */
162
+ interface IScopeLogs {
163
+ /** IScopeLogs scope */
164
+ scope?: IInstrumentationScope
165
+ /** IScopeLogs logRecords */
166
+ logRecords?: Array<ILogRecord>
167
+ /** IScopeLogs schemaUrl */
168
+ schemaUrl?: string | null
169
+ }
170
+ /** Properties of a LogRecord. */
171
+ interface ILogRecord {
172
+ /** LogRecord timeUnixNano */
173
+ timeUnixNano: Fixed64
174
+ /** LogRecord observedTimeUnixNano */
175
+ observedTimeUnixNano: Fixed64
176
+ /** LogRecord severityNumber */
177
+ severityNumber?: ESeverityNumber
178
+ /** LogRecord severityText */
179
+ severityText?: string
180
+ /** LogRecord body */
181
+ body?: AnyValue
182
+ /** LogRecord attributes */
183
+ attributes: Array<KeyValue>
184
+ /** LogRecord droppedAttributesCount */
185
+ droppedAttributesCount: number
186
+ /** LogRecord flags */
187
+ flags?: number
188
+ /** LogRecord traceId */
189
+ traceId?: string | Uint8Array
190
+ /** LogRecord spanId */
191
+ spanId?: string | Uint8Array
192
+ }
193
+
194
+ const logLevelToSeverityNumber = (logLevel: LogLevel.LogLevel): ESeverityNumber => {
195
+ switch (logLevel._tag) {
196
+ case "Trace":
197
+ return ESeverityNumber.SEVERITY_NUMBER_TRACE
198
+ case "Debug":
199
+ return ESeverityNumber.SEVERITY_NUMBER_DEBUG
200
+ case "Info":
201
+ return ESeverityNumber.SEVERITY_NUMBER_INFO
202
+ case "Warning":
203
+ return ESeverityNumber.SEVERITY_NUMBER_WARN
204
+ case "Error":
205
+ return ESeverityNumber.SEVERITY_NUMBER_ERROR
206
+ case "Fatal":
207
+ return ESeverityNumber.SEVERITY_NUMBER_FATAL
208
+ default:
209
+ return ESeverityNumber.SEVERITY_NUMBER_UNSPECIFIED
210
+ }
211
+ }
212
+
213
+ /**
214
+ * Numerical value of the severity, normalized to values described in Log Data Model.
215
+ */
216
+ const enum ESeverityNumber {
217
+ /** Unspecified. Do NOT use as default */
218
+ SEVERITY_NUMBER_UNSPECIFIED = 0,
219
+ SEVERITY_NUMBER_TRACE = 1,
220
+ SEVERITY_NUMBER_TRACE2 = 2,
221
+ SEVERITY_NUMBER_TRACE3 = 3,
222
+ SEVERITY_NUMBER_TRACE4 = 4,
223
+ SEVERITY_NUMBER_DEBUG = 5,
224
+ SEVERITY_NUMBER_DEBUG2 = 6,
225
+ SEVERITY_NUMBER_DEBUG3 = 7,
226
+ SEVERITY_NUMBER_DEBUG4 = 8,
227
+ SEVERITY_NUMBER_INFO = 9,
228
+ SEVERITY_NUMBER_INFO2 = 10,
229
+ SEVERITY_NUMBER_INFO3 = 11,
230
+ SEVERITY_NUMBER_INFO4 = 12,
231
+ SEVERITY_NUMBER_WARN = 13,
232
+ SEVERITY_NUMBER_WARN2 = 14,
233
+ SEVERITY_NUMBER_WARN3 = 15,
234
+ SEVERITY_NUMBER_WARN4 = 16,
235
+ SEVERITY_NUMBER_ERROR = 17,
236
+ SEVERITY_NUMBER_ERROR2 = 18,
237
+ SEVERITY_NUMBER_ERROR3 = 19,
238
+ SEVERITY_NUMBER_ERROR4 = 20,
239
+ SEVERITY_NUMBER_FATAL = 21,
240
+ SEVERITY_NUMBER_FATAL2 = 22,
241
+ SEVERITY_NUMBER_FATAL3 = 23,
242
+ SEVERITY_NUMBER_FATAL4 = 24
243
+ }