@effect/opentelemetry 0.60.0 → 4.0.0-beta.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.
- package/LICENSE +1 -1
- package/dist/{dts/Logger.d.ts → Logger.d.ts} +19 -13
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +76 -0
- package/dist/Logger.js.map +1 -0
- package/dist/Metrics.d.ts +76 -0
- package/dist/Metrics.d.ts.map +1 -0
- package/dist/Metrics.js +59 -0
- package/dist/Metrics.js.map +1 -0
- package/dist/{dts/NodeSdk.d.ts → NodeSdk.d.ts} +12 -9
- package/dist/NodeSdk.d.ts.map +1 -0
- package/dist/{esm/NodeSdk.js → NodeSdk.js} +23 -14
- package/dist/NodeSdk.js.map +1 -0
- package/dist/{dts/Resource.d.ts → Resource.d.ts} +10 -13
- package/dist/Resource.d.ts.map +1 -0
- package/dist/{esm/Resource.js → Resource.js} +12 -13
- package/dist/Resource.js.map +1 -0
- package/dist/Tracer.d.ts +129 -0
- package/dist/Tracer.d.ts.map +1 -0
- package/dist/Tracer.js +391 -0
- package/dist/Tracer.js.map +1 -0
- package/dist/{dts/WebSdk.d.ts → WebSdk.d.ts} +12 -9
- package/dist/WebSdk.d.ts.map +1 -0
- package/dist/WebSdk.js +41 -0
- package/dist/WebSdk.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{esm/index.js → index.js} +4 -20
- package/dist/index.js.map +1 -0
- package/dist/internal/attributes.d.ts +2 -0
- package/dist/internal/attributes.d.ts.map +1 -0
- package/dist/internal/attributes.js +19 -0
- package/dist/internal/attributes.js.map +1 -0
- package/dist/{dts/internal → internal}/metrics.d.ts.map +1 -1
- package/dist/internal/metrics.js +406 -0
- package/dist/internal/metrics.js.map +1 -0
- package/dist/internal/utilities.d.ts +2 -0
- package/dist/internal/utilities.d.ts.map +1 -0
- package/dist/internal/utilities.js +3 -0
- package/dist/internal/utilities.js.map +1 -0
- package/package.json +70 -118
- package/src/Logger.ts +52 -55
- package/src/Metrics.ts +92 -18
- package/src/NodeSdk.ts +67 -64
- package/src/Resource.ts +16 -24
- package/src/Tracer.ts +469 -78
- package/src/WebSdk.ts +59 -51
- package/src/index.ts +7 -26
- package/src/internal/attributes.ts +21 -0
- package/src/internal/metrics.ts +381 -250
- package/src/internal/utilities.ts +5 -0
- package/Logger/package.json +0 -6
- package/Metrics/package.json +0 -6
- package/NodeSdk/package.json +0 -6
- package/Otlp/package.json +0 -6
- package/OtlpLogger/package.json +0 -6
- package/OtlpMetrics/package.json +0 -6
- package/OtlpResource/package.json +0 -6
- package/OtlpTracer/package.json +0 -6
- package/Resource/package.json +0 -6
- package/Tracer/package.json +0 -6
- package/WebSdk/package.json +0 -6
- package/dist/cjs/Logger.js +0 -85
- package/dist/cjs/Logger.js.map +0 -1
- package/dist/cjs/Metrics.js +0 -24
- package/dist/cjs/Metrics.js.map +0 -1
- package/dist/cjs/NodeSdk.js +0 -53
- package/dist/cjs/NodeSdk.js.map +0 -1
- package/dist/cjs/Otlp.js +0 -46
- package/dist/cjs/Otlp.js.map +0 -1
- package/dist/cjs/OtlpLogger.js +0 -158
- package/dist/cjs/OtlpLogger.js.map +0 -1
- package/dist/cjs/OtlpMetrics.js +0 -354
- package/dist/cjs/OtlpMetrics.js.map +0 -1
- package/dist/cjs/OtlpResource.js +0 -136
- package/dist/cjs/OtlpResource.js.map +0 -1
- package/dist/cjs/OtlpTracer.js +0 -229
- package/dist/cjs/OtlpTracer.js.map +0 -1
- package/dist/cjs/Resource.js +0 -75
- package/dist/cjs/Resource.js.map +0 -1
- package/dist/cjs/Tracer.js +0 -87
- package/dist/cjs/Tracer.js.map +0 -1
- package/dist/cjs/WebSdk.js +0 -42
- package/dist/cjs/WebSdk.js.map +0 -1
- package/dist/cjs/index.js +0 -30
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/metrics.js +0 -288
- package/dist/cjs/internal/metrics.js.map +0 -1
- package/dist/cjs/internal/otlpExporter.js +0 -81
- package/dist/cjs/internal/otlpExporter.js.map +0 -1
- package/dist/cjs/internal/tracer.js +0 -299
- package/dist/cjs/internal/tracer.js.map +0 -1
- package/dist/cjs/internal/utils.js +0 -34
- package/dist/cjs/internal/utils.js.map +0 -1
- package/dist/dts/Logger.d.ts.map +0 -1
- package/dist/dts/Metrics.d.ts +0 -29
- package/dist/dts/Metrics.d.ts.map +0 -1
- package/dist/dts/NodeSdk.d.ts.map +0 -1
- package/dist/dts/Otlp.d.ts +0 -31
- package/dist/dts/Otlp.d.ts.map +0 -1
- package/dist/dts/OtlpLogger.d.ts +0 -46
- package/dist/dts/OtlpLogger.d.ts.map +0 -1
- package/dist/dts/OtlpMetrics.d.ts +0 -40
- package/dist/dts/OtlpMetrics.d.ts.map +0 -1
- package/dist/dts/OtlpResource.d.ts +0 -104
- package/dist/dts/OtlpResource.d.ts.map +0 -1
- package/dist/dts/OtlpTracer.d.ts +0 -49
- package/dist/dts/OtlpTracer.d.ts.map +0 -1
- package/dist/dts/Resource.d.ts.map +0 -1
- package/dist/dts/Tracer.d.ts +0 -143
- package/dist/dts/Tracer.d.ts.map +0 -1
- package/dist/dts/WebSdk.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -45
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/otlpExporter.d.ts +0 -2
- package/dist/dts/internal/otlpExporter.d.ts.map +0 -1
- package/dist/dts/internal/tracer.d.ts +0 -2
- package/dist/dts/internal/tracer.d.ts.map +0 -1
- package/dist/dts/internal/utils.d.ts +0 -2
- package/dist/dts/internal/utils.d.ts.map +0 -1
- package/dist/esm/Logger.js +0 -75
- package/dist/esm/Logger.js.map +0 -1
- package/dist/esm/Metrics.js +0 -17
- package/dist/esm/Metrics.js.map +0 -1
- package/dist/esm/NodeSdk.js.map +0 -1
- package/dist/esm/Otlp.js +0 -38
- package/dist/esm/Otlp.js.map +0 -1
- package/dist/esm/OtlpLogger.js +0 -150
- package/dist/esm/OtlpLogger.js.map +0 -1
- package/dist/esm/OtlpMetrics.js +0 -346
- package/dist/esm/OtlpMetrics.js.map +0 -1
- package/dist/esm/OtlpResource.js +0 -124
- package/dist/esm/OtlpResource.js.map +0 -1
- package/dist/esm/OtlpTracer.js +0 -221
- package/dist/esm/OtlpTracer.js.map +0 -1
- package/dist/esm/Resource.js.map +0 -1
- package/dist/esm/Tracer.js +0 -80
- package/dist/esm/Tracer.js.map +0 -1
- package/dist/esm/WebSdk.js +0 -33
- package/dist/esm/WebSdk.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/metrics.js +0 -278
- package/dist/esm/internal/metrics.js.map +0 -1
- package/dist/esm/internal/otlpExporter.js +0 -74
- package/dist/esm/internal/otlpExporter.js.map +0 -1
- package/dist/esm/internal/tracer.js +0 -290
- package/dist/esm/internal/tracer.js.map +0 -1
- package/dist/esm/internal/utils.js +0 -23
- package/dist/esm/internal/utils.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/index/package.json +0 -6
- package/src/Otlp.ts +0 -66
- package/src/OtlpLogger.ts +0 -258
- package/src/OtlpMetrics.ts +0 -571
- package/src/OtlpResource.ts +0 -232
- package/src/OtlpTracer.ts +0 -349
- package/src/internal/otlpExporter.ts +0 -124
- package/src/internal/tracer.ts +0 -437
- package/src/internal/utils.ts +0 -31
- /package/dist/{dts/internal → internal}/metrics.d.ts +0 -0
package/src/OtlpLogger.ts
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
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 * as Arr from "effect/Array"
|
|
7
|
-
import * as Cause from "effect/Cause"
|
|
8
|
-
import * as Context from "effect/Context"
|
|
9
|
-
import * as Duration from "effect/Duration"
|
|
10
|
-
import * as Effect from "effect/Effect"
|
|
11
|
-
import * as FiberId from "effect/FiberId"
|
|
12
|
-
import * as FiberRef from "effect/FiberRef"
|
|
13
|
-
import * as FiberRefs from "effect/FiberRefs"
|
|
14
|
-
import type * as Layer from "effect/Layer"
|
|
15
|
-
import * as Logger from "effect/Logger"
|
|
16
|
-
import type * as LogLevel from "effect/LogLevel"
|
|
17
|
-
import * as Option from "effect/Option"
|
|
18
|
-
import type * as Scope from "effect/Scope"
|
|
19
|
-
import * as Tracer from "effect/Tracer"
|
|
20
|
-
import * as Exporter from "./internal/otlpExporter.js"
|
|
21
|
-
import type { AnyValue, Fixed64, KeyValue, Resource } from "./OtlpResource.js"
|
|
22
|
-
import * as OtlpResource from "./OtlpResource.js"
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @since 1.0.0
|
|
26
|
-
* @category Constructors
|
|
27
|
-
*/
|
|
28
|
-
export const make: (
|
|
29
|
-
options: {
|
|
30
|
-
readonly url: string
|
|
31
|
-
readonly resource?: {
|
|
32
|
-
readonly serviceName?: string | undefined
|
|
33
|
-
readonly serviceVersion?: string | undefined
|
|
34
|
-
readonly attributes?: Record<string, unknown>
|
|
35
|
-
} | undefined
|
|
36
|
-
readonly headers?: Headers.Input | undefined
|
|
37
|
-
readonly exportInterval?: Duration.DurationInput | undefined
|
|
38
|
-
readonly maxBatchSize?: number | undefined
|
|
39
|
-
readonly shutdownTimeout?: Duration.DurationInput | undefined
|
|
40
|
-
readonly excludeLogSpans?: boolean | undefined
|
|
41
|
-
}
|
|
42
|
-
) => Effect.Effect<
|
|
43
|
-
Logger.Logger<unknown, void>,
|
|
44
|
-
never,
|
|
45
|
-
HttpClient.HttpClient | Scope.Scope
|
|
46
|
-
> = Effect.fnUntraced(function*(options) {
|
|
47
|
-
const otelResource = yield* OtlpResource.fromConfig(options.resource)
|
|
48
|
-
const scope: IInstrumentationScope = {
|
|
49
|
-
name: OtlpResource.unsafeServiceName(otelResource)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const exporter = yield* Exporter.make({
|
|
53
|
-
label: "OtlpLogger",
|
|
54
|
-
url: options.url,
|
|
55
|
-
headers: options.headers,
|
|
56
|
-
maxBatchSize: options.maxBatchSize ?? 1000,
|
|
57
|
-
exportInterval: options.exportInterval ?? Duration.seconds(1),
|
|
58
|
-
body: (data): IExportLogsServiceRequest => ({
|
|
59
|
-
resourceLogs: [{
|
|
60
|
-
resource: otelResource,
|
|
61
|
-
scopeLogs: [{
|
|
62
|
-
scope,
|
|
63
|
-
logRecords: data
|
|
64
|
-
}]
|
|
65
|
-
}]
|
|
66
|
-
}),
|
|
67
|
-
shutdownTimeout: options.shutdownTimeout ?? Duration.seconds(3)
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
const opts = {
|
|
71
|
-
excludeLogSpans: options.excludeLogSpans ?? false
|
|
72
|
-
}
|
|
73
|
-
return Logger.make((options) => {
|
|
74
|
-
exporter.push(makeLogRecord(options, opts))
|
|
75
|
-
})
|
|
76
|
-
})
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @since 1.0.0
|
|
80
|
-
* @category Layers
|
|
81
|
-
*/
|
|
82
|
-
export const layer = (options: {
|
|
83
|
-
readonly url: string
|
|
84
|
-
readonly resource?: {
|
|
85
|
-
readonly serviceName?: string | undefined
|
|
86
|
-
readonly serviceVersion?: string | undefined
|
|
87
|
-
readonly attributes?: Record<string, unknown>
|
|
88
|
-
} | undefined
|
|
89
|
-
readonly replaceLogger?: Logger.Logger<any, any> | undefined
|
|
90
|
-
readonly headers?: Headers.Input | undefined
|
|
91
|
-
readonly exportInterval?: Duration.DurationInput | undefined
|
|
92
|
-
readonly maxBatchSize?: number | undefined
|
|
93
|
-
readonly shutdownTimeout?: Duration.DurationInput | undefined
|
|
94
|
-
readonly excludeLogSpans?: boolean | undefined
|
|
95
|
-
}): Layer.Layer<never, never, HttpClient.HttpClient> =>
|
|
96
|
-
options.replaceLogger ? Logger.replaceScoped(options.replaceLogger, make(options)) : Logger.addScoped(make(options))
|
|
97
|
-
|
|
98
|
-
// internal
|
|
99
|
-
|
|
100
|
-
const makeLogRecord = (options: Logger.Logger.Options<unknown>, opts: {
|
|
101
|
-
readonly excludeLogSpans: boolean
|
|
102
|
-
}): ILogRecord => {
|
|
103
|
-
const now = options.date.getTime()
|
|
104
|
-
const nanosString = `${now}000000`
|
|
105
|
-
|
|
106
|
-
const attributes = OtlpResource.entriesToAttributes(options.annotations)
|
|
107
|
-
attributes.push({
|
|
108
|
-
key: "fiberId",
|
|
109
|
-
value: { stringValue: FiberId.threadName(options.fiberId) }
|
|
110
|
-
})
|
|
111
|
-
if (!opts.excludeLogSpans) {
|
|
112
|
-
for (const span of options.spans) {
|
|
113
|
-
attributes.push({
|
|
114
|
-
key: `logSpan.${span.label}`,
|
|
115
|
-
value: { stringValue: `${now - span.startTime}ms` }
|
|
116
|
-
})
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (!Cause.isEmpty(options.cause)) {
|
|
120
|
-
attributes.push({
|
|
121
|
-
key: "log.error",
|
|
122
|
-
value: { stringValue: Cause.pretty(options.cause, { renderErrorCause: true }) }
|
|
123
|
-
})
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
const message = Arr.ensure(options.message)
|
|
127
|
-
const maybeSpan = Context.getOption(
|
|
128
|
-
FiberRefs.getOrDefault(options.context, FiberRef.currentContext),
|
|
129
|
-
Tracer.ParentSpan
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
const logRecord: ILogRecord = {
|
|
133
|
-
severityNumber: logLevelToSeverityNumber(options.logLevel),
|
|
134
|
-
severityText: options.logLevel.label,
|
|
135
|
-
timeUnixNano: nanosString,
|
|
136
|
-
observedTimeUnixNano: nanosString,
|
|
137
|
-
attributes,
|
|
138
|
-
body: OtlpResource.unknownToAttributeValue(message.length === 1 ? message[0] : message),
|
|
139
|
-
droppedAttributesCount: 0
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (Option.isSome(maybeSpan)) {
|
|
143
|
-
logRecord.traceId = maybeSpan.value.traceId
|
|
144
|
-
logRecord.spanId = maybeSpan.value.spanId
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return logRecord
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/** Properties of an ExportLogsServiceRequest. */
|
|
151
|
-
interface IExportLogsServiceRequest {
|
|
152
|
-
/** ExportLogsServiceRequest resourceLogs */
|
|
153
|
-
resourceLogs?: Array<IResourceLogs>
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/** Properties of an InstrumentationScope. */
|
|
157
|
-
interface IInstrumentationScope {
|
|
158
|
-
/** InstrumentationScope name */
|
|
159
|
-
name: string
|
|
160
|
-
/** InstrumentationScope version */
|
|
161
|
-
version?: string
|
|
162
|
-
/** InstrumentationScope attributes */
|
|
163
|
-
attributes?: Array<KeyValue>
|
|
164
|
-
/** InstrumentationScope droppedAttributesCount */
|
|
165
|
-
droppedAttributesCount?: number
|
|
166
|
-
}
|
|
167
|
-
/** Properties of a ResourceLogs. */
|
|
168
|
-
interface IResourceLogs {
|
|
169
|
-
/** ResourceLogs resource */
|
|
170
|
-
resource?: Resource
|
|
171
|
-
/** ResourceLogs scopeLogs */
|
|
172
|
-
scopeLogs: Array<IScopeLogs>
|
|
173
|
-
/** ResourceLogs schemaUrl */
|
|
174
|
-
schemaUrl?: string
|
|
175
|
-
}
|
|
176
|
-
/** Properties of an ScopeLogs. */
|
|
177
|
-
interface IScopeLogs {
|
|
178
|
-
/** IScopeLogs scope */
|
|
179
|
-
scope?: IInstrumentationScope
|
|
180
|
-
/** IScopeLogs logRecords */
|
|
181
|
-
logRecords?: Array<ILogRecord>
|
|
182
|
-
/** IScopeLogs schemaUrl */
|
|
183
|
-
schemaUrl?: string | null
|
|
184
|
-
}
|
|
185
|
-
/** Properties of a LogRecord. */
|
|
186
|
-
interface ILogRecord {
|
|
187
|
-
/** LogRecord timeUnixNano */
|
|
188
|
-
timeUnixNano: Fixed64
|
|
189
|
-
/** LogRecord observedTimeUnixNano */
|
|
190
|
-
observedTimeUnixNano: Fixed64
|
|
191
|
-
/** LogRecord severityNumber */
|
|
192
|
-
severityNumber?: ESeverityNumber
|
|
193
|
-
/** LogRecord severityText */
|
|
194
|
-
severityText?: string
|
|
195
|
-
/** LogRecord body */
|
|
196
|
-
body?: AnyValue
|
|
197
|
-
/** LogRecord attributes */
|
|
198
|
-
attributes: Array<KeyValue>
|
|
199
|
-
/** LogRecord droppedAttributesCount */
|
|
200
|
-
droppedAttributesCount: number
|
|
201
|
-
/** LogRecord flags */
|
|
202
|
-
flags?: number
|
|
203
|
-
/** LogRecord traceId */
|
|
204
|
-
traceId?: string | Uint8Array
|
|
205
|
-
/** LogRecord spanId */
|
|
206
|
-
spanId?: string | Uint8Array
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
const logLevelToSeverityNumber = (logLevel: LogLevel.LogLevel): ESeverityNumber => {
|
|
210
|
-
switch (logLevel._tag) {
|
|
211
|
-
case "Trace":
|
|
212
|
-
return ESeverityNumber.SEVERITY_NUMBER_TRACE
|
|
213
|
-
case "Debug":
|
|
214
|
-
return ESeverityNumber.SEVERITY_NUMBER_DEBUG
|
|
215
|
-
case "Info":
|
|
216
|
-
return ESeverityNumber.SEVERITY_NUMBER_INFO
|
|
217
|
-
case "Warning":
|
|
218
|
-
return ESeverityNumber.SEVERITY_NUMBER_WARN
|
|
219
|
-
case "Error":
|
|
220
|
-
return ESeverityNumber.SEVERITY_NUMBER_ERROR
|
|
221
|
-
case "Fatal":
|
|
222
|
-
return ESeverityNumber.SEVERITY_NUMBER_FATAL
|
|
223
|
-
default:
|
|
224
|
-
return ESeverityNumber.SEVERITY_NUMBER_UNSPECIFIED
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Numerical value of the severity, normalized to values described in Log Data Model.
|
|
230
|
-
*/
|
|
231
|
-
const enum ESeverityNumber {
|
|
232
|
-
/** Unspecified. Do NOT use as default */
|
|
233
|
-
SEVERITY_NUMBER_UNSPECIFIED = 0,
|
|
234
|
-
SEVERITY_NUMBER_TRACE = 1,
|
|
235
|
-
SEVERITY_NUMBER_TRACE2 = 2,
|
|
236
|
-
SEVERITY_NUMBER_TRACE3 = 3,
|
|
237
|
-
SEVERITY_NUMBER_TRACE4 = 4,
|
|
238
|
-
SEVERITY_NUMBER_DEBUG = 5,
|
|
239
|
-
SEVERITY_NUMBER_DEBUG2 = 6,
|
|
240
|
-
SEVERITY_NUMBER_DEBUG3 = 7,
|
|
241
|
-
SEVERITY_NUMBER_DEBUG4 = 8,
|
|
242
|
-
SEVERITY_NUMBER_INFO = 9,
|
|
243
|
-
SEVERITY_NUMBER_INFO2 = 10,
|
|
244
|
-
SEVERITY_NUMBER_INFO3 = 11,
|
|
245
|
-
SEVERITY_NUMBER_INFO4 = 12,
|
|
246
|
-
SEVERITY_NUMBER_WARN = 13,
|
|
247
|
-
SEVERITY_NUMBER_WARN2 = 14,
|
|
248
|
-
SEVERITY_NUMBER_WARN3 = 15,
|
|
249
|
-
SEVERITY_NUMBER_WARN4 = 16,
|
|
250
|
-
SEVERITY_NUMBER_ERROR = 17,
|
|
251
|
-
SEVERITY_NUMBER_ERROR2 = 18,
|
|
252
|
-
SEVERITY_NUMBER_ERROR3 = 19,
|
|
253
|
-
SEVERITY_NUMBER_ERROR4 = 20,
|
|
254
|
-
SEVERITY_NUMBER_FATAL = 21,
|
|
255
|
-
SEVERITY_NUMBER_FATAL2 = 22,
|
|
256
|
-
SEVERITY_NUMBER_FATAL3 = 23,
|
|
257
|
-
SEVERITY_NUMBER_FATAL4 = 24
|
|
258
|
-
}
|