@livestore/utils 0.0.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/dist/.tsbuildinfo.json +1 -0
- package/dist/Deferred.d.ts +10 -0
- package/dist/Deferred.d.ts.map +1 -0
- package/dist/Deferred.js +18 -0
- package/dist/Deferred.js.map +1 -0
- package/dist/NoopTracer.d.ts +9 -0
- package/dist/NoopTracer.d.ts.map +1 -0
- package/dist/NoopTracer.js +54 -0
- package/dist/NoopTracer.js.map +1 -0
- package/dist/base64.d.ts +12 -0
- package/dist/base64.d.ts.map +1 -0
- package/dist/base64.js +114 -0
- package/dist/base64.js.map +1 -0
- package/dist/binary.d.ts +4 -0
- package/dist/binary.d.ts.map +1 -0
- package/dist/binary.js +23 -0
- package/dist/binary.js.map +1 -0
- package/dist/browser.d.ts +3 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +28 -0
- package/dist/browser.js.map +1 -0
- package/dist/effect/Debounce.d.ts +5 -0
- package/dist/effect/Debounce.d.ts.map +1 -0
- package/dist/effect/Debounce.js +33 -0
- package/dist/effect/Debounce.js.map +1 -0
- package/dist/effect/Effect.d.ts +7 -0
- package/dist/effect/Effect.d.ts.map +1 -0
- package/dist/effect/Effect.js +17 -0
- package/dist/effect/Effect.js.map +1 -0
- package/dist/effect/EndableQueue.d.ts +11 -0
- package/dist/effect/EndableQueue.d.ts.map +1 -0
- package/dist/effect/EndableQueue.js +22 -0
- package/dist/effect/EndableQueue.js.map +1 -0
- package/dist/effect/EnvVar.d.ts +16 -0
- package/dist/effect/EnvVar.d.ts.map +1 -0
- package/dist/effect/EnvVar.js +21 -0
- package/dist/effect/EnvVar.js.map +1 -0
- package/dist/effect/Error.d.ts +12 -0
- package/dist/effect/Error.d.ts.map +1 -0
- package/dist/effect/Error.js +13 -0
- package/dist/effect/Error.js.map +1 -0
- package/dist/effect/Gate.d.ts +14 -0
- package/dist/effect/Gate.d.ts.map +1 -0
- package/dist/effect/Gate.js +17 -0
- package/dist/effect/Gate.js.map +1 -0
- package/dist/effect/Layer.d.ts +6 -0
- package/dist/effect/Layer.d.ts.map +1 -0
- package/dist/effect/Layer.js +11 -0
- package/dist/effect/Layer.js.map +1 -0
- package/dist/effect/Otel/Dummy.d.ts +5 -0
- package/dist/effect/Otel/Dummy.d.ts.map +1 -0
- package/dist/effect/Otel/Dummy.js +22 -0
- package/dist/effect/Otel/Dummy.js.map +1 -0
- package/dist/effect/Otel/Meter.d.ts +20 -0
- package/dist/effect/Otel/Meter.d.ts.map +1 -0
- package/dist/effect/Otel/Meter.js +76 -0
- package/dist/effect/Otel/Meter.js.map +1 -0
- package/dist/effect/Otel/OtlpGrpc.d.ts +6 -0
- package/dist/effect/Otel/OtlpGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/OtlpGrpc.js +42 -0
- package/dist/effect/Otel/OtlpGrpc.js.map +1 -0
- package/dist/effect/Otel/OtlpHttp.d.ts +6 -0
- package/dist/effect/Otel/OtlpHttp.d.ts.map +1 -0
- package/dist/effect/Otel/OtlpHttp.js +42 -0
- package/dist/effect/Otel/OtlpHttp.js.map +1 -0
- package/dist/effect/Otel/OtlpWebsocket.d.ts +6 -0
- package/dist/effect/Otel/OtlpWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/OtlpWebsocket.js +42 -0
- package/dist/effect/Otel/OtlpWebsocket.js.map +1 -0
- package/dist/effect/Otel/Span.d.ts +32 -0
- package/dist/effect/Otel/Span.d.ts.map +1 -0
- package/dist/effect/Otel/Span.js +97 -0
- package/dist/effect/Otel/Span.js.map +1 -0
- package/dist/effect/Otel/Tracer.d.ts +15 -0
- package/dist/effect/Otel/Tracer.d.ts.map +1 -0
- package/dist/effect/Otel/Tracer.js +17 -0
- package/dist/effect/Otel/Tracer.js.map +1 -0
- package/dist/effect/Otel/index.d.ts +8 -0
- package/dist/effect/Otel/index.d.ts.map +1 -0
- package/dist/effect/Otel/index.js +9 -0
- package/dist/effect/Otel/index.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts +14 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js +15 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts +14 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js +15 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts +19 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js +17 -0
- package/dist/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts +10 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.js +4 -0
- package/dist/effect/Otel/lib-metrics/MetricsProvider.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts +16 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js +39 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts +16 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js +39 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts +16 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js +39 -0
- package/dist/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.js.map +1 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts +17 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js +27 -0
- package/dist/effect/Otel/lib-metrics/PeriodicMetricsProvider.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts +18 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js +31 -0
- package/dist/effect/Otel/lib-tracer/BatchSpanProcessor.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts +19 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js +36 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts +19 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js +36 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts +9 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js +29 -0
- package/dist/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts +19 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.js +25 -0
- package/dist/effect/Otel/lib-tracer/SimpleProcessor.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts +10 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.js +7 -0
- package/dist/effect/Otel/lib-tracer/TracerProvider.js.map +1 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.d.ts +18 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.d.ts.map +1 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.js +25 -0
- package/dist/effect/Otel/lib-tracer/WebProvider.js.map +1 -0
- package/dist/effect/ReadonlyArray.d.ts +4 -0
- package/dist/effect/ReadonlyArray.d.ts.map +1 -0
- package/dist/effect/ReadonlyArray.js +11 -0
- package/dist/effect/ReadonlyArray.js.map +1 -0
- package/dist/effect/RequestResolver.d.ts +11 -0
- package/dist/effect/RequestResolver.d.ts.map +1 -0
- package/dist/effect/RequestResolver.js +18 -0
- package/dist/effect/RequestResolver.js.map +1 -0
- package/dist/effect/STM.d.ts +3 -0
- package/dist/effect/STM.d.ts.map +1 -0
- package/dist/effect/STM.js +3 -0
- package/dist/effect/STM.js.map +1 -0
- package/dist/effect/Schedule.d.ts +5 -0
- package/dist/effect/Schedule.d.ts.map +1 -0
- package/dist/effect/Schedule.js +7 -0
- package/dist/effect/Schedule.js.map +1 -0
- package/dist/effect/Scheduler.d.ts +49 -0
- package/dist/effect/Scheduler.d.ts.map +1 -0
- package/dist/effect/Scheduler.js +168 -0
- package/dist/effect/Scheduler.js.map +1 -0
- package/dist/effect/Schema/SchemaHash.d.ts +3 -0
- package/dist/effect/Schema/SchemaHash.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaHash.js +15 -0
- package/dist/effect/Schema/SchemaHash.js.map +1 -0
- package/dist/effect/Schema/SchemaHash.test.d.ts +2 -0
- package/dist/effect/Schema/SchemaHash.test.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaHash.test.js +13 -0
- package/dist/effect/Schema/SchemaHash.test.js.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.d.ts +11 -0
- package/dist/effect/Schema/SchemaJsonWrapper.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.js +38 -0
- package/dist/effect/Schema/SchemaJsonWrapper.js.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts +2 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.d.ts.map +1 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.js +42 -0
- package/dist/effect/Schema/SchemaJsonWrapper.test.js.map +1 -0
- package/dist/effect/Schema/index.d.ts +15 -0
- package/dist/effect/Schema/index.d.ts.map +1 -0
- package/dist/effect/Schema/index.js +14 -0
- package/dist/effect/Schema/index.js.map +1 -0
- package/dist/effect/ServiceContext.d.ts +39 -0
- package/dist/effect/ServiceContext.d.ts.map +1 -0
- package/dist/effect/ServiceContext.js +61 -0
- package/dist/effect/ServiceContext.js.map +1 -0
- package/dist/effect/SmartQueue.d.ts +38 -0
- package/dist/effect/SmartQueue.d.ts.map +1 -0
- package/dist/effect/SmartQueue.js +123 -0
- package/dist/effect/SmartQueue.js.map +1 -0
- package/dist/effect/Stream/chainSwitch.d.ts +3 -0
- package/dist/effect/Stream/chainSwitch.d.ts.map +1 -0
- package/dist/effect/Stream/chainSwitch.js +48 -0
- package/dist/effect/Stream/chainSwitch.js.map +1 -0
- package/dist/effect/Stream/index.d.ts +37 -0
- package/dist/effect/Stream/index.d.ts.map +1 -0
- package/dist/effect/Stream/index.js +82 -0
- package/dist/effect/Stream/index.js.map +1 -0
- package/dist/effect/SubscriptionRef.d.ts +10 -0
- package/dist/effect/SubscriptionRef.d.ts.map +1 -0
- package/dist/effect/SubscriptionRef.js +8 -0
- package/dist/effect/SubscriptionRef.js.map +1 -0
- package/dist/effect/TimeoutGate.d.ts +13 -0
- package/dist/effect/TimeoutGate.d.ts.map +1 -0
- package/dist/effect/TimeoutGate.js +41 -0
- package/dist/effect/TimeoutGate.js.map +1 -0
- package/dist/effect/WebCrypto.d.ts +18 -0
- package/dist/effect/WebCrypto.d.ts.map +1 -0
- package/dist/effect/WebCrypto.js +56 -0
- package/dist/effect/WebCrypto.js.map +1 -0
- package/dist/effect/WebLock.d.ts +5 -0
- package/dist/effect/WebLock.d.ts.map +1 -0
- package/dist/effect/WebLock.js +20 -0
- package/dist/effect/WebLock.js.map +1 -0
- package/dist/effect/browser.d.ts +19 -0
- package/dist/effect/browser.d.ts.map +1 -0
- package/dist/effect/browser.js +82 -0
- package/dist/effect/browser.js.map +1 -0
- package/dist/effect/fetch.d.ts +89 -0
- package/dist/effect/fetch.d.ts.map +1 -0
- package/dist/effect/fetch.js +142 -0
- package/dist/effect/fetch.js.map +1 -0
- package/dist/effect/index.d.ts +50 -0
- package/dist/effect/index.d.ts.map +1 -0
- package/dist/effect/index.js +58 -0
- package/dist/effect/index.js.map +1 -0
- package/dist/global.d.ts +5 -0
- package/dist/global.d.ts.map +1 -0
- package/dist/global.js +2 -0
- package/dist/global.js.map +1 -0
- package/dist/guards.d.ts +6 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +6 -0
- package/dist/guards.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +162 -0
- package/dist/index.js.map +1 -0
- package/dist/object/index.d.ts +10 -0
- package/dist/object/index.d.ts.map +1 -0
- package/dist/object/index.js +10 -0
- package/dist/object/index.js.map +1 -0
- package/dist/object/omit.d.ts +3 -0
- package/dist/object/omit.d.ts.map +1 -0
- package/dist/object/omit.js +14 -0
- package/dist/object/omit.js.map +1 -0
- package/dist/object/pick.d.ts +14 -0
- package/dist/object/pick.d.ts.map +1 -0
- package/dist/object/pick.js +17 -0
- package/dist/object/pick.js.map +1 -0
- package/dist/promise.d.ts +6 -0
- package/dist/promise.d.ts.map +1 -0
- package/dist/promise.js +27 -0
- package/dist/promise.js.map +1 -0
- package/dist/set.d.ts +2 -0
- package/dist/set.d.ts.map +1 -0
- package/dist/set.js +10 -0
- package/dist/set.js.map +1 -0
- package/dist/single-item.d.ts +8 -0
- package/dist/single-item.d.ts.map +1 -0
- package/dist/single-item.js +9 -0
- package/dist/single-item.js.map +1 -0
- package/dist/string.d.ts +3 -0
- package/dist/string.d.ts.map +1 -0
- package/dist/string.js +3 -0
- package/dist/string.js.map +1 -0
- package/dist/time.d.ts +12 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +22 -0
- package/dist/time.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/json.d.ts +27 -0
- package/dist/types/json.d.ts.map +1 -0
- package/dist/types/json.js +2 -0
- package/dist/types/json.js.map +1 -0
- package/package.json +58 -0
- package/src/Deferred.ts +24 -0
- package/src/NoopTracer.ts +75 -0
- package/src/base64.ts +118 -0
- package/src/browser.ts +32 -0
- package/src/effect/Effect.ts +27 -0
- package/src/effect/Error.ts +12 -0
- package/src/effect/Otel/Dummy.ts +32 -0
- package/src/effect/Otel/Meter.ts +145 -0
- package/src/effect/Otel/OtlpGrpc.ts +75 -0
- package/src/effect/Otel/OtlpHttp.ts +75 -0
- package/src/effect/Otel/OtlpWebsocket.ts +75 -0
- package/src/effect/Otel/Span.ts +222 -0
- package/src/effect/Otel/Tracer.ts +30 -0
- package/src/effect/Otel/index.ts +8 -0
- package/src/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.ts +39 -0
- package/src/effect/Otel/lib-metrics/ExporterMetricsOltpHttp.ts +39 -0
- package/src/effect/Otel/lib-metrics/ExporterMetricsOltpWebsocket.ts +47 -0
- package/src/effect/Otel/lib-metrics/MetricsProvider.ts +12 -0
- package/src/effect/Otel/lib-metrics/OTLPMetricsProviderGrpc.ts +77 -0
- package/src/effect/Otel/lib-metrics/OTLPMetricsProviderHttp.ts +77 -0
- package/src/effect/Otel/lib-metrics/OTLPMetricsProviderWebsocket.ts +80 -0
- package/src/effect/Otel/lib-metrics/PeriodicMetricsProvider.ts +55 -0
- package/src/effect/Otel/lib-tracer/BatchSpanProcessor.ts +58 -0
- package/src/effect/Otel/lib-tracer/ExporterTraceOtlpGrpc.ts +64 -0
- package/src/effect/Otel/lib-tracer/ExporterTraceOtlpHttp.ts +64 -0
- package/src/effect/Otel/lib-tracer/ExporterTraceOtlpWebsocket.ts +38 -0
- package/src/effect/Otel/lib-tracer/README.md +1 -0
- package/src/effect/Otel/lib-tracer/SimpleProcessor.ts +46 -0
- package/src/effect/Otel/lib-tracer/TracerProvider.ts +16 -0
- package/src/effect/Otel/lib-tracer/WebProvider.ts +48 -0
- package/src/effect/Schedule.ts +12 -0
- package/src/effect/ServiceContext.ts +116 -0
- package/src/effect/index.ts +65 -0
- package/src/global.ts +5 -0
- package/src/guards.ts +8 -0
- package/src/index.ts +217 -0
- package/src/object/index.ts +24 -0
- package/src/object/omit.ts +17 -0
- package/src/object/pick.ts +27 -0
- package/src/promise.ts +43 -0
- package/src/set.ts +10 -0
- package/src/string.ts +2 -0
- package/src/time.ts +25 -0
- package/tsconfig.json +13 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layer.js","sourceRoot":"","sources":["../../src/effect/Layer.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAEa,CAAkB,IAAiD,EAAE,EAAE;IAC3G,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAwB,CAAA;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAU,+BAA+B,CAAC,CAAA;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import * as Otel from './index.js';
|
|
3
|
+
export declare const DummyTracingLive: Layer.Layer<never, never, Otel.Tracer>;
|
|
4
|
+
export declare const DummyMeterLive: Layer.Layer<never, never, Otel.Meter>;
|
|
5
|
+
//# sourceMappingURL=Dummy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dummy.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Dummy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAYlC,eAAO,MAAM,gBAAgB,wCAAgD,CAAA;AAe7E,eAAO,MAAM,cAAc,uCAA6C,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import { NoopTracer } from '../../NoopTracer.js';
|
|
3
|
+
import * as Otel from './index.js';
|
|
4
|
+
//
|
|
5
|
+
// Dummy Tracer
|
|
6
|
+
//
|
|
7
|
+
const DummyTracing = () => ({
|
|
8
|
+
[Otel.TracerSymbol]: Otel.TracerSymbol,
|
|
9
|
+
tracer: new NoopTracer(),
|
|
10
|
+
});
|
|
11
|
+
export const DummyTracingLive = Layer.sync(Otel.Tracer, () => DummyTracing());
|
|
12
|
+
const NoopMeter = () => ({
|
|
13
|
+
createHistogram: () => ({ record: () => { } }),
|
|
14
|
+
createCounter: () => ({ add: () => { } }),
|
|
15
|
+
createUpDownCounter: () => ({ add: () => { } }),
|
|
16
|
+
});
|
|
17
|
+
const DummyMeter = () => ({
|
|
18
|
+
[Otel.MeterSymbol]: Otel.MeterSymbol,
|
|
19
|
+
meter: NoopMeter(),
|
|
20
|
+
});
|
|
21
|
+
export const DummyMeterLive = Layer.sync(Otel.Meter, () => DummyMeter());
|
|
22
|
+
//# sourceMappingURL=Dummy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dummy.js","sourceRoot":"","sources":["../../../src/effect/Otel/Dummy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAElC,EAAE;AACF,eAAe;AACf,EAAE;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,CAAC;IACC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY;IACtC,MAAM,EAAE,IAAI,UAAU,EAAE;CACzB,CAAU,CAAA;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAA;AAE7E,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,CAAC;IACC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC7C,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACxC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;CAC/C,CAAiC,CAAA;AAEpC,MAAM,UAAU,GAAG,GAAG,EAAE,CACtB,CAAC;IACC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW;IACpC,KAAK,EAAE,SAAS,EAAE;CACnB,CAAU,CAAA;AAEb,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import * as Layer from '@effect/io/Layer';
|
|
4
|
+
import type * as OTMetrics from '@opentelemetry/api-metrics';
|
|
5
|
+
import { MetricsProvider } from './lib-metrics/MetricsProvider.js';
|
|
6
|
+
export declare const MeterSymbol: unique symbol;
|
|
7
|
+
export type MeterSymbol = typeof MeterSymbol;
|
|
8
|
+
export interface Meter {
|
|
9
|
+
readonly [MeterSymbol]: MeterSymbol;
|
|
10
|
+
readonly meter: OTMetrics.Meter;
|
|
11
|
+
}
|
|
12
|
+
export declare const Meter: Context.Tag<Meter, Meter>;
|
|
13
|
+
export declare const makeMeter: (name: string) => Effect.Effect<MetricsProvider, never, Meter>;
|
|
14
|
+
export declare const LiveMeter: Layer.Layer<MetricsProvider, never, Meter>;
|
|
15
|
+
export declare const histogram: (metricName: string, value: number, attributes?: OTMetrics.MetricAttributes) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R, E, A>;
|
|
16
|
+
export declare const histogramEff: <R2>(metricName: string, valueEff: Effect.Effect<R2, never, number>) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R2 | R, E, A>;
|
|
17
|
+
export declare const upDownCounter: (metricName: string, delta: number, attributes?: OTMetrics.MetricAttributes) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R, E, A>;
|
|
18
|
+
/** NOTE we're using an up-down-counter here (which is push based) instead of an observable gauge (which is pull based) */
|
|
19
|
+
export declare const gauge: (metricName: string, value: number, attributes?: OTMetrics.MetricAttributes) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Meter | R, E, A>;
|
|
20
|
+
//# sourceMappingURL=Meter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Meter.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Meter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAElE,eAAO,MAAM,WAAW,eAAkC,CAAA;AAC1D,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAA;AAE5C,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAA;CAChC;AAED,eAAO,MAAM,KAAK,2BAAkC,CAAA;AAEpD,eAAO,MAAM,SAAS,SAAU,MAAM,iDAUlC,CAAA;AAEJ,eAAO,MAAM,SAAS,4CAAuD,CAAA;AAe7E,eAAO,MAAM,SAAS,eACP,MAAM,SAAS,MAAM,eAAe,UAAU,gBAAgB,gFASxE,CAAA;AAEL,eAAO,MAAM,YAAY,mBACN,MAAM,iIASpB,CAAA;AAEL,eAAO,MAAM,aAAa,eACX,MAAM,SAAS,MAAM,eAAe,UAAU,gBAAgB,gFASxE,CAAA;AAEL,0HAA0H;AAC1H,eAAO,MAAM,KAAK,eACH,MAAM,SAAS,MAAM,eAAe,UAAU,gBAAgB,gFAqB1E,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import { identity, pipe } from '@effect/data/Function';
|
|
3
|
+
import * as Effect from '@effect/io/Effect';
|
|
4
|
+
import * as Layer from '@effect/io/Layer';
|
|
5
|
+
import { MetricsProvider } from './lib-metrics/MetricsProvider.js';
|
|
6
|
+
export const MeterSymbol = Symbol.for('effect-otel/Meter');
|
|
7
|
+
export const Meter = Context.Tag(MeterSymbol);
|
|
8
|
+
export const makeMeter = (name) => Effect.gen(function* ($) {
|
|
9
|
+
const { metricsProvider } = yield* $(MetricsProvider);
|
|
10
|
+
const meter = yield* $(Effect.sync(() => metricsProvider.getMeter(name)));
|
|
11
|
+
return identity({
|
|
12
|
+
[MeterSymbol]: MeterSymbol,
|
|
13
|
+
meter,
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
export const LiveMeter = Layer.scoped(Meter, makeMeter('@effect/otel/Meter'));
|
|
17
|
+
const metricCache = {
|
|
18
|
+
histograms: new Map(),
|
|
19
|
+
gauges: new Map(),
|
|
20
|
+
upDownCounters: new Map(),
|
|
21
|
+
};
|
|
22
|
+
export const histogram = (metricName, value, attributes) => (effect) => Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.histograms, metricName, () => meter.createHistogram(metricName))), Effect.tap((histogram) => Effect.sync(() => histogram.record(value, attributes)))));
|
|
23
|
+
export const histogramEff = (metricName, valueEff) => (effect) => Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.histograms, metricName, () => meter.createHistogram(metricName))), Effect.tap((histogram) => Effect.map(valueEff, (value) => histogram.record(value)))));
|
|
24
|
+
export const upDownCounter = (metricName, delta, attributes) => (effect) => Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.upDownCounters, metricName, () => meter.createUpDownCounter(metricName))), Effect.tap((counter) => Effect.sync(() => counter.add(delta, attributes)))));
|
|
25
|
+
/** NOTE we're using an up-down-counter here (which is push based) instead of an observable gauge (which is pull based) */
|
|
26
|
+
export const gauge = (metricName, value, attributes) => (effect) => {
|
|
27
|
+
// NOTE this is currently used to keep separate gauges for each attribute value
|
|
28
|
+
const metricCacheName = metricName + '_' + JSON.stringify(attributes);
|
|
29
|
+
return Effect.tap(effect, () => pipe(Effect.map(Meter, ({ meter }) => getOrCreate(metricCache.gauges, metricCacheName, () => ({
|
|
30
|
+
counter: meter.createUpDownCounter(metricName),
|
|
31
|
+
prevValue: 0,
|
|
32
|
+
}))), Effect.tap(({ counter, prevValue }) => Effect.sync(() => {
|
|
33
|
+
const delta = value - prevValue;
|
|
34
|
+
counter.add(delta, attributes);
|
|
35
|
+
metricCache.gauges.set(metricCacheName, { counter, prevValue: value });
|
|
36
|
+
}))));
|
|
37
|
+
};
|
|
38
|
+
// export const gauge =
|
|
39
|
+
// (metricName: string, value: number, attributes?: OTMetrics.MetricAttributes) =>
|
|
40
|
+
// <R, E, A>(effect: Effect.Effect<R, E, A>) => {
|
|
41
|
+
// // NOTE this is currently used to keep separate gauges for each attribute value
|
|
42
|
+
// const metricCacheName = metricName + '_' + JSON.stringify(attributes)
|
|
43
|
+
// return pipe(
|
|
44
|
+
// effect,
|
|
45
|
+
// Effect.tap(() =>
|
|
46
|
+
// pipe(
|
|
47
|
+
// withMeter((meter) =>
|
|
48
|
+
// getOrCreate(metricCache.gauges, metricCacheName, () => ({
|
|
49
|
+
// observable: meter.createObservableGauge(metricName),
|
|
50
|
+
// currentCallback: () => {},
|
|
51
|
+
// })),
|
|
52
|
+
// ),
|
|
53
|
+
// Effect.tap(({ observable, currentCallback }) =>
|
|
54
|
+
// Effect.succeedWith(() => {
|
|
55
|
+
// observable.removeCallback(currentCallback)
|
|
56
|
+
// const newCallback: OTMetrics.ObservableCallback = (observableResult) => {
|
|
57
|
+
// observableResult.observe(value, attributes)
|
|
58
|
+
// }
|
|
59
|
+
// observable.addCallback(newCallback)
|
|
60
|
+
// metricCache.gauges.set(metricCacheName, { observable, currentCallback: newCallback })
|
|
61
|
+
// }),
|
|
62
|
+
// ),
|
|
63
|
+
// ),
|
|
64
|
+
// ),
|
|
65
|
+
// )
|
|
66
|
+
// }
|
|
67
|
+
const getOrCreate = (map, name, create) => {
|
|
68
|
+
const cached = map.get(name);
|
|
69
|
+
if (cached) {
|
|
70
|
+
return cached;
|
|
71
|
+
}
|
|
72
|
+
const created = create();
|
|
73
|
+
map.set(name, created);
|
|
74
|
+
return created;
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=Meter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Meter.js","sourceRoot":"","sources":["../../../src/effect/Otel/Meter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import type { ResourceAttributes } from '@opentelemetry/resources';
|
|
3
|
+
import * as Otel from './index.js';
|
|
4
|
+
export declare const makeWebTracingLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Tracer>;
|
|
5
|
+
export declare const makeWebMetricLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Meter>;
|
|
6
|
+
//# sourceMappingURL=OtlpGrpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtlpGrpc.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpGrpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AA6BlC,eAAO,MAAM,mBAAmB,gBACjB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,CAOrC,CAAA;AAqBH,eAAO,MAAM,kBAAkB,gBAChB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAIpC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import { Resource } from '@opentelemetry/resources';
|
|
3
|
+
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
|
4
|
+
import * as Otel from './index.js';
|
|
5
|
+
import { makeOTLPMetricExporterConfigLayer } from './lib-metrics/ExporterMetricsOltpGrpc.js';
|
|
6
|
+
import { OTLPMetricsProvider } from './lib-metrics/OTLPMetricsProviderGrpc.js';
|
|
7
|
+
import { BatchProcessor } from './lib-tracer/BatchSpanProcessor.js';
|
|
8
|
+
import * as GrpcExporter from './lib-tracer/ExporterTraceOtlpGrpc.js';
|
|
9
|
+
import * as OTWeb from './lib-tracer/WebProvider.js';
|
|
10
|
+
import { LiveMeter } from './Meter.js';
|
|
11
|
+
//
|
|
12
|
+
// TRACING
|
|
13
|
+
//
|
|
14
|
+
const makeWebTracingProvider = (serviceName, resourceAttributes) => OTWeb.WebProvider({
|
|
15
|
+
resource: new Resource({
|
|
16
|
+
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
|
|
17
|
+
...resourceAttributes,
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
const TraceCollectorConfig = (exporterUrl) => GrpcExporter.makeOTLPTraceExporterConfigLayer({
|
|
21
|
+
// empty headers makes sure to use XHR instead of `navigator.sendBeacon`
|
|
22
|
+
headers: {},
|
|
23
|
+
url: exporterUrl,
|
|
24
|
+
});
|
|
25
|
+
const LiveBatchGrpcProcessor = BatchProcessor(GrpcExporter.makeTracingSpanExporter);
|
|
26
|
+
export const makeWebTracingLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provideMerge(TraceCollectorConfig(exporterUrl), Layer.provide(Layer.provideMerge(makeWebTracingProvider(serviceName, resourceAttributes), LiveBatchGrpcProcessor), Otel.LiveTracer));
|
|
27
|
+
//
|
|
28
|
+
// METRICS
|
|
29
|
+
//
|
|
30
|
+
const makeWebMetricProvider = (serviceName, resourceAttributes) => OTLPMetricsProvider({
|
|
31
|
+
resource: new Resource({
|
|
32
|
+
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
|
|
33
|
+
...resourceAttributes,
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
const MetricCollectorConfig = (exporterUrl) => makeOTLPMetricExporterConfigLayer({
|
|
37
|
+
// empty headers makes sure to use XHR instead of `navigator.sendBeacon`
|
|
38
|
+
headers: {},
|
|
39
|
+
url: exporterUrl,
|
|
40
|
+
});
|
|
41
|
+
export const makeWebMetricLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provide(Layer.provideMerge(MetricCollectorConfig(exporterUrl), makeWebMetricProvider(serviceName, resourceAttributes)), LiveMeter);
|
|
42
|
+
//# sourceMappingURL=OtlpGrpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtlpGrpc.js","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpGrpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAEhF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAA;AACrE,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC9F,KAAK,CAAC,WAAW,CAAC;IAChB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACpD,YAAY,CAAC,gCAAgC,CAAC;IAC5C,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,sBAAsB,GAAG,cAAc,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACC,EAAE,CAC1C,KAAK,CAAC,YAAY,CAChB,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,EACnG,IAAI,CAAC,UAAU,CAChB,CACF,CAAA;AAEH,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC7F,mBAAmB,CAAC;IAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,qBAAqB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACrD,iCAAiC,CAAC;IAChC,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACA,EAAE,CACzC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAC9G,SAAS,CACV,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import type { ResourceAttributes } from '@opentelemetry/resources';
|
|
3
|
+
import * as Otel from './index.js';
|
|
4
|
+
export declare const makeWebTracingLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Tracer>;
|
|
5
|
+
export declare const makeWebMetricLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Meter>;
|
|
6
|
+
//# sourceMappingURL=OtlpHttp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtlpHttp.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AA6BlC,eAAO,MAAM,mBAAmB,gBACjB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,CAOrC,CAAA;AAqBH,eAAO,MAAM,kBAAkB,gBAChB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAIpC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import { Resource } from '@opentelemetry/resources';
|
|
3
|
+
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
|
4
|
+
import * as Otel from './index.js';
|
|
5
|
+
import { makeOTLPMetricExporterConfigLayer } from './lib-metrics/ExporterMetricsOltpHttp.js';
|
|
6
|
+
import { OTLPMetricsProvider } from './lib-metrics/OTLPMetricsProviderHttp.js';
|
|
7
|
+
import { BatchProcessor } from './lib-tracer/BatchSpanProcessor.js';
|
|
8
|
+
import * as HttpExporter from './lib-tracer/ExporterTraceOtlpHttp.js';
|
|
9
|
+
import * as OTWeb from './lib-tracer/WebProvider.js';
|
|
10
|
+
import { LiveMeter } from './Meter.js';
|
|
11
|
+
//
|
|
12
|
+
// TRACING
|
|
13
|
+
//
|
|
14
|
+
const makeWebTracingProvider = (serviceName, resourceAttributes) => OTWeb.WebProvider({
|
|
15
|
+
resource: new Resource({
|
|
16
|
+
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
|
|
17
|
+
...resourceAttributes,
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
const TraceCollectorConfig = (exporterUrl) => HttpExporter.makeOTLPTraceExporterConfigLayer({
|
|
21
|
+
// empty headers makes sure to use XHR instead of `navigator.sendBeacon`
|
|
22
|
+
headers: {},
|
|
23
|
+
url: exporterUrl,
|
|
24
|
+
});
|
|
25
|
+
const LiveBatchHttpProcessor = BatchProcessor(HttpExporter.makeTracingSpanExporter);
|
|
26
|
+
export const makeWebTracingLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provideMerge(TraceCollectorConfig(exporterUrl), Layer.provide(Layer.provideMerge(makeWebTracingProvider(serviceName, resourceAttributes), LiveBatchHttpProcessor), Otel.LiveTracer));
|
|
27
|
+
//
|
|
28
|
+
// METRICS
|
|
29
|
+
//
|
|
30
|
+
const makeWebMetricProvider = (serviceName, resourceAttributes) => OTLPMetricsProvider({
|
|
31
|
+
resource: new Resource({
|
|
32
|
+
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
|
|
33
|
+
...resourceAttributes,
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
const MetricCollectorConfig = (exporterUrl) => makeOTLPMetricExporterConfigLayer({
|
|
37
|
+
// empty headers makes sure to use XHR instead of `navigator.sendBeacon`
|
|
38
|
+
headers: {},
|
|
39
|
+
url: exporterUrl,
|
|
40
|
+
});
|
|
41
|
+
export const makeWebMetricLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provide(Layer.provideMerge(MetricCollectorConfig(exporterUrl), makeWebMetricProvider(serviceName, resourceAttributes)), LiveMeter);
|
|
42
|
+
//# sourceMappingURL=OtlpHttp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtlpHttp.js","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAEhF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAA;AACrE,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC9F,KAAK,CAAC,WAAW,CAAC;IAChB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACpD,YAAY,CAAC,gCAAgC,CAAC;IAC5C,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,sBAAsB,GAAG,cAAc,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACC,EAAE,CAC1C,KAAK,CAAC,YAAY,CAChB,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,EACnG,IAAI,CAAC,UAAU,CAChB,CACF,CAAA;AAEH,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC7F,mBAAmB,CAAC;IAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,qBAAqB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACrD,iCAAiC,CAAC;IAChC,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACA,EAAE,CACzC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAC9G,SAAS,CACV,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import type { ResourceAttributes } from '@opentelemetry/resources';
|
|
3
|
+
import * as Otel from './index.js';
|
|
4
|
+
export declare const makeWebTracingLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Tracer>;
|
|
5
|
+
export declare const makeWebMetricLayer: (serviceName: string, exporterUrl?: string, resourceAttributes?: ResourceAttributes) => Layer.Layer<never, never, Otel.Meter>;
|
|
6
|
+
//# sourceMappingURL=OtlpWebsocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtlpWebsocket.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpWebsocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAIlE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AA6BlC,eAAO,MAAM,mBAAmB,gBACjB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,CAOrC,CAAA;AAqBH,eAAO,MAAM,kBAAkB,gBAChB,MAAM,gBACL,MAAM,uBACC,kBAAkB,KACtC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAIpC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as Layer from '@effect/io/Layer';
|
|
2
|
+
import { Resource } from '@opentelemetry/resources';
|
|
3
|
+
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
|
4
|
+
import * as Otel from './index.js';
|
|
5
|
+
import { makeOTLPMetricExporterConfigLayer } from './lib-metrics/ExporterMetricsOltpWebsocket.js';
|
|
6
|
+
import { OTLPMetricsProvider } from './lib-metrics/OTLPMetricsProviderWebsocket.js';
|
|
7
|
+
import { BatchProcessor } from './lib-tracer/BatchSpanProcessor.js';
|
|
8
|
+
import * as WebSocketExporter from './lib-tracer/ExporterTraceOtlpWebsocket.js';
|
|
9
|
+
import * as OTWeb from './lib-tracer/WebProvider.js';
|
|
10
|
+
import { LiveMeter } from './Meter.js';
|
|
11
|
+
//
|
|
12
|
+
// TRACING
|
|
13
|
+
//
|
|
14
|
+
const makeWebTracingProvider = (serviceName, resourceAttributes) => OTWeb.WebProvider({
|
|
15
|
+
resource: new Resource({
|
|
16
|
+
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
|
|
17
|
+
...resourceAttributes,
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
const TraceCollectorConfig = (exporterUrl) => WebSocketExporter.makeOTLPTraceExporterConfigLayer({
|
|
21
|
+
// empty headers makes sure to use XHR instead of `navigator.sendBeacon`
|
|
22
|
+
headers: {},
|
|
23
|
+
url: exporterUrl,
|
|
24
|
+
});
|
|
25
|
+
const LiveBatchWebsocketProcessor = BatchProcessor(WebSocketExporter.makeTracingSpanExporter);
|
|
26
|
+
export const makeWebTracingLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provideMerge(TraceCollectorConfig(exporterUrl), Layer.provide(Layer.provideMerge(makeWebTracingProvider(serviceName, resourceAttributes), LiveBatchWebsocketProcessor), Otel.LiveTracer));
|
|
27
|
+
//
|
|
28
|
+
// METRICS
|
|
29
|
+
//
|
|
30
|
+
const makeWebMetricProvider = (serviceName, resourceAttributes) => OTLPMetricsProvider({
|
|
31
|
+
resource: new Resource({
|
|
32
|
+
[SemanticResourceAttributes.SERVICE_NAME]: serviceName,
|
|
33
|
+
...resourceAttributes,
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
const MetricCollectorConfig = (exporterUrl) => makeOTLPMetricExporterConfigLayer({
|
|
37
|
+
// empty headers makes sure to use XHR instead of `navigator.sendBeacon`
|
|
38
|
+
headers: {},
|
|
39
|
+
url: exporterUrl,
|
|
40
|
+
});
|
|
41
|
+
export const makeWebMetricLayer = (serviceName, exporterUrl, resourceAttributes) => Layer.provide(Layer.provideMerge(MetricCollectorConfig(exporterUrl), makeWebMetricProvider(serviceName, resourceAttributes)), LiveMeter);
|
|
42
|
+
//# sourceMappingURL=OtlpWebsocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtlpWebsocket.js","sourceRoot":"","sources":["../../../src/effect/Otel/OtlpWebsocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAA;AAEhF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iCAAiC,EAAE,MAAM,+CAA+C,CAAA;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,iBAAiB,MAAM,4CAA4C,CAAA;AAC/E,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC9F,KAAK,CAAC,WAAW,CAAC;IAChB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACpD,iBAAiB,CAAC,gCAAgC,CAAC;IACjD,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,2BAA2B,GAAG,cAAc,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAA;AAE7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACC,EAAE,CAC1C,KAAK,CAAC,YAAY,CAChB,oBAAoB,CAAC,WAAW,CAAC,EACjC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,2BAA2B,CAAC,EACxG,IAAI,CAAC,UAAU,CAChB,CACF,CAAA;AAEH,EAAE;AACF,UAAU;AACV,EAAE;AAEF,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,kBAAuC,EAAE,EAAE,CAC7F,mBAAmB,CAAC;IAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC;QACrB,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,WAAW;QACtD,GAAG,kBAAkB;KACtB,CAAC;CACH,CAAC,CAAA;AAEJ,MAAM,qBAAqB,GAAG,CAAC,WAAoB,EAAE,EAAE,CACrD,iCAAiC,CAAC;IAChC,wEAAwE;IACxE,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,WAAW;CACjB,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAmB,EACnB,WAAoB,EACpB,kBAAuC,EACA,EAAE,CACzC,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,EAC9G,SAAS,CACV,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import * as Layer from '@effect/io/Layer';
|
|
4
|
+
import * as Stream from '@effect/stream/Stream';
|
|
5
|
+
import * as otel from '@opentelemetry/api';
|
|
6
|
+
import { Tracer } from './Tracer.js';
|
|
7
|
+
export declare const SpanSymbol: unique symbol;
|
|
8
|
+
export type SpanSymbol = typeof SpanSymbol;
|
|
9
|
+
export interface Span {
|
|
10
|
+
readonly [SpanSymbol]: SpanSymbol;
|
|
11
|
+
readonly span: otel.Span;
|
|
12
|
+
}
|
|
13
|
+
export declare const Span: Context.Tag<Span, Span>;
|
|
14
|
+
export declare const makeSpan: (span: otel.Span) => Span;
|
|
15
|
+
export declare const requireParentSpan: <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Span | R, E, A>;
|
|
16
|
+
export declare const activeSpanContext: Effect.Effect<Span, never, otel.SpanContext>;
|
|
17
|
+
export declare const activeContext: Effect.Effect<Span, never, otel.Context>;
|
|
18
|
+
export declare const endInProgressSpans: Effect.Effect<never, never, void>;
|
|
19
|
+
export declare const withSpan: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<Tracer | Exclude<R, Span>, E, A>;
|
|
20
|
+
export declare const withSpanScoped: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<import("@effect/io/Scope.js").Scope | Tracer | Exclude<R, Span>, E, A>;
|
|
21
|
+
export declare const withSpanStream: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(stream: Stream.Stream<Span | R, E, A>) => Stream.Stream<Tracer | Exclude<R, Span>, E, A>;
|
|
22
|
+
export declare const spanLayer: {
|
|
23
|
+
(name: string, options?: otel.SpanOptions, ctx?: otel.Context, afterEnded?: (span: otel.Span) => Effect.Effect<never, never, void>): Layer.Layer<Tracer, never, Span>;
|
|
24
|
+
<TIdentifier>(name: string, options: otel.SpanOptions | undefined, ctx: otel.Context | undefined, afterEnded: ((span: otel.Span) => Effect.Effect<never, never, void>) | undefined, tag: Context.Tag<TIdentifier, Span>): Layer.Layer<Tracer, never, TIdentifier>;
|
|
25
|
+
};
|
|
26
|
+
export declare const spanLayerFromContext: (parentSpanCtx: otel.Context) => Layer.Layer<never, never, Span>;
|
|
27
|
+
export declare const withSpanLayer: (name: string, options?: otel.SpanOptions, ctx?: otel.Context) => <R, E, A>(layer: Layer.Layer<Span | R, E, A>) => Layer.Layer<Tracer | Exclude<R, Span>, E, A>;
|
|
28
|
+
export declare const addAttribute: (name: string, value: otel.AttributeValue) => Effect.Effect<Span, never, void>;
|
|
29
|
+
export declare const addAttributes: (attributes: otel.Attributes) => Effect.Effect<Span, never, void>;
|
|
30
|
+
export declare const addAttributesEffect: <R, E>(attributes: Effect.Effect<R, E, otel.Attributes>) => Effect.Effect<Span | R, E, void>;
|
|
31
|
+
export declare const addEvent: (name: string, attributesOrStartTime?: otel.SpanAttributes | otel.TimeInput, startTime?: otel.TimeInput) => Effect.Effect<Span, never, void>;
|
|
32
|
+
//# sourceMappingURL=Span.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Span.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Span.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAI/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,eAAO,MAAM,UAAU,eAAiC,CAAA;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA;AAG1C,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAA;CACzB;AAED,eAAO,MAAM,IAAI,yBAAgC,CAAA;AAEjD,eAAO,MAAM,QAAQ,SAAU,SAAS,KAAG,IAGzC,CAAA;AAEF,eAAO,MAAM,iBAAiB,4EAAqF,CAAA;AAEnH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAE1E,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAElE,CAAA;AAQD,eAAO,MAAM,kBAAkB,mCAG7B,CAAA;AA0CF,eAAO,MAAM,QAAQ,SACZ,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,gGAU1D,CAAA;AAEL,eAAO,MAAM,cAAc,SAClB,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,sIAWzD,CAAA;AAEN,eAAO,MAAM,cAAc,SAClB,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,uGAc1D,CAAA;AAGL,eAAO,MAAM,SAAS,EAAE;IACtB,CACE,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAC1B,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,EAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAClE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC,WAAW,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,EACrC,GAAG,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS,EAChF,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAClC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;CA8BzC,CAAA;AAEH,eAAO,MAAM,oBAAoB,kBAAmB,YAAY,oCAG/D,CAAA;AAED,eAAO,MAAM,aAAa,SACjB,MAAM,YAAY,KAAK,WAAW,QAAQ,YAAY,kGAER,CAAA;AAEvD,eAAO,MAAM,YAAY,SAAU,MAAM,SAAS,KAAK,cAAc,qCAKlE,CAAA;AAEH,eAAO,MAAM,aAAa,eAAgB,KAAK,UAAU,qCAKtD,CAAA;AAEH,eAAO,MAAM,mBAAmB,8FAO7B,CAAA;AAEH,eAAO,MAAM,QAAQ,SACb,MAAM,0BACY,KAAK,cAAc,GAAG,KAAK,SAAS,cAChD,KAAK,SAAS,qCAMzB,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import { pipe } from '@effect/data/Function';
|
|
3
|
+
import * as Option from '@effect/data/Option';
|
|
4
|
+
import * as Cause from '@effect/io/Cause';
|
|
5
|
+
import * as Effect from '@effect/io/Effect';
|
|
6
|
+
import * as Exit from '@effect/io/Exit';
|
|
7
|
+
import * as Layer from '@effect/io/Layer';
|
|
8
|
+
import * as Stream from '@effect/stream/Stream';
|
|
9
|
+
import * as otel from '@opentelemetry/api';
|
|
10
|
+
import { Tracer } from './Tracer.js';
|
|
11
|
+
export const SpanSymbol = Symbol.for('effect-otel/Span');
|
|
12
|
+
export const Span = Context.Tag(SpanSymbol);
|
|
13
|
+
export const makeSpan = (span) => ({
|
|
14
|
+
[SpanSymbol]: SpanSymbol,
|
|
15
|
+
span,
|
|
16
|
+
});
|
|
17
|
+
export const requireParentSpan = (effect) => effect;
|
|
18
|
+
export const activeSpanContext = Effect.map(Span, (_) => _.span.spanContext());
|
|
19
|
+
export const activeContext = Effect.flatMap(Span, (_) => Effect.sync(() => otel.trace.setSpan(otel.context.active(), _.span)));
|
|
20
|
+
// TODO get rid of this
|
|
21
|
+
const inProgressSpans = new Set();
|
|
22
|
+
// @ts-expect-error `inProgressSpans` is not a global variable
|
|
23
|
+
globalThis.inProgressSpans = inProgressSpans;
|
|
24
|
+
// TODO get rid of this
|
|
25
|
+
export const endInProgressSpans = Effect.sync(() => {
|
|
26
|
+
inProgressSpans.forEach((span) => span.end());
|
|
27
|
+
inProgressSpans.clear();
|
|
28
|
+
});
|
|
29
|
+
const startSpan = (tracer, context, name, options, ctx) => {
|
|
30
|
+
let span;
|
|
31
|
+
const maybeSpan = Context.getOption(context, Span);
|
|
32
|
+
if (ctx !== undefined) {
|
|
33
|
+
span = tracer.startSpan(name, options, ctx);
|
|
34
|
+
}
|
|
35
|
+
else if (options?.root !== true && Option.isSome(maybeSpan)) {
|
|
36
|
+
const ctx = otel.trace.setSpan(otel.context.active(), maybeSpan.value.span);
|
|
37
|
+
span = tracer.startSpan(name, options, ctx);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
span = tracer.startSpan(name, { ...options, root: true });
|
|
41
|
+
}
|
|
42
|
+
inProgressSpans.add(span);
|
|
43
|
+
return span;
|
|
44
|
+
};
|
|
45
|
+
const handleExit = (span, exit) => Effect.sync(() => {
|
|
46
|
+
if (Exit.isFailure(exit)) {
|
|
47
|
+
if (Cause.isInterruptedOnly(exit.cause)) {
|
|
48
|
+
// TODO in the future set a special status code for interruption (once Otel supports it)
|
|
49
|
+
span.setStatus({ code: otel.SpanStatusCode.OK, message: Cause.pretty(exit.cause) });
|
|
50
|
+
// NOTE as a workaround we're using the `span.label` attribute which is visible in Grafana
|
|
51
|
+
// See https://github.com/grafana/grafana/pull/50931
|
|
52
|
+
span.setAttribute('span.label', '⚠️ Interrupted️');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
span.setStatus({ code: otel.SpanStatusCode.ERROR, message: Cause.pretty(exit.cause) });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
span.setStatus({ code: otel.SpanStatusCode.OK });
|
|
60
|
+
}
|
|
61
|
+
inProgressSpans.delete(span);
|
|
62
|
+
span.end();
|
|
63
|
+
});
|
|
64
|
+
export const withSpan = (name, options, ctx) => (effect) => Effect.flatMap(Tracer, (tracer) => Effect.acquireUseRelease(Effect.flatMap(Effect.context(), (context) => Effect.sync(() => startSpan(tracer.tracer, context, name, options, ctx))), (span) => Effect.provideService(effect, Span, makeSpan(span)), handleExit));
|
|
65
|
+
export const withSpanScoped = (name, options, ctx) => (effect) => Effect.flatMap(Tracer, (tracer) => {
|
|
66
|
+
const createSpan = Effect.acquireRelease(Effect.flatMap(Effect.context(), (context) => Effect.sync(() => startSpan(tracer.tracer, context, name, options, ctx))), handleExit);
|
|
67
|
+
return Effect.flatMap(createSpan, (span) => Effect.provideService(effect, Span, makeSpan(span)));
|
|
68
|
+
});
|
|
69
|
+
export const withSpanStream = (name, options, ctx) => (stream) => Stream.unwrapScoped(Effect.flatMap(Tracer, (tracer) => pipe(Effect.acquireRelease(Effect.flatMap(Effect.context(), (context) => Effect.sync(() => startSpan(tracer.tracer, context, name, options, ctx))), handleExit), Effect.map((span) => Stream.provideService(stream, Span, makeSpan(span))))));
|
|
70
|
+
// TODO add optional arg for `Tag` of `Span`
|
|
71
|
+
export const spanLayer = (name, options, ctx, afterEnded, tag) => Layer.flatMap(Layer.context(), (context) => Layer.scoped(tag ?? Span, pipe(Effect.sync(() => {
|
|
72
|
+
const tracer = Context.get(context, Tracer);
|
|
73
|
+
return startSpan(tracer.tracer, context, name, options, ctx);
|
|
74
|
+
}), Effect.map(makeSpan), Effect.acquireRelease(({ span }, exit) => pipe(handleExit(span, exit), Effect.tap(() => {
|
|
75
|
+
if (afterEnded !== undefined) {
|
|
76
|
+
return afterEnded(span);
|
|
77
|
+
}
|
|
78
|
+
return Effect.unit;
|
|
79
|
+
}))))));
|
|
80
|
+
export const spanLayerFromContext = (parentSpanCtx) => {
|
|
81
|
+
// const _spanId = otel.trace.getSpan(parentSpanCtx)!.spanContext().spanId
|
|
82
|
+
return Layer.succeed(Span, makeSpan(otel.trace.getSpan(parentSpanCtx)));
|
|
83
|
+
};
|
|
84
|
+
export const withSpanLayer = (name, options, ctx) => (layer) => Layer.provide(spanLayer(name, options, ctx), layer);
|
|
85
|
+
export const addAttribute = (name, value) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
|
|
86
|
+
span.setAttribute(name, value);
|
|
87
|
+
}));
|
|
88
|
+
export const addAttributes = (attributes) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
|
|
89
|
+
span.setAttributes(attributes);
|
|
90
|
+
}));
|
|
91
|
+
export const addAttributesEffect = (attributes) => Effect.flatMap(attributes, (attributes) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
|
|
92
|
+
span.setAttributes(attributes);
|
|
93
|
+
})));
|
|
94
|
+
export const addEvent = (name, attributesOrStartTime, startTime) => Effect.flatMap(Span, ({ span }) => Effect.sync(() => {
|
|
95
|
+
span.addEvent(name, attributesOrStartTime, startTime);
|
|
96
|
+
}));
|
|
97
|
+
//# sourceMappingURL=Span.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Span.js","sourceRoot":"","sources":["../../../src/effect/Otel/Span.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;AASxD,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAO,UAAU,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAe,EAAQ,EAAE,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,EAAE,UAAU;IACxB,IAAI;CACL,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,MAA8B,EAAiC,EAAE,CAAC,MAAM,CAAA;AAEnH,MAAM,CAAC,MAAM,iBAAiB,GAAiD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACpG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CACrB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAA6C,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAChG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CACrE,CAAA;AAED,uBAAuB;AACvB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAa,CAAA;AAC5C,8DAA8D;AAC9D,UAAU,CAAC,eAAe,GAAG,eAAe,CAAA;AAE5C,uBAAuB;AACvB,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACjD,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC7C,eAAe,CAAC,KAAK,EAAE,CAAA;AACzB,CAAC,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,CAChB,MAAmB,EACnB,OAA+B,EAC/B,IAAY,EACZ,OAAqC,EACrC,GAA6B,EAClB,EAAE;IACb,IAAI,IAAe,CAAA;IACnB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAClD,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;KAC5C;SAAM,IAAI,OAAO,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3E,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;KAC5C;SAAM;QACL,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;KAC1D;IACD,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAO,IAAe,EAAE,IAAqB,EAAE,EAAE,CAClE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACxB,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACvC,wFAAwF;YACxF,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACnF,0FAA0F;YAC1F,oDAAoD;YACpD,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;SACnD;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;SACvF;KACF;SAAM;QACL,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAA;KACjD;IACD,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,CAAC,GAAG,EAAE,CAAA;AACZ,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,QAAQ,GACnB,CAAC,IAAY,EAAE,OAA0B,EAAE,GAAkB,EAAE,EAAE,CACjE,CAAU,MAA8B,EAAkD,EAAE,CAC1F,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAChC,MAAM,CAAC,iBAAiB,CACtB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAClD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CACzE,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC7D,UAAU,CACX,CACF,CAAA;AAEL,MAAM,CAAC,MAAM,cAAc,GACzB,CAAC,IAAY,EAAE,OAA0B,EAAE,GAAkB,EAAE,EAAE,CACjE,CAAU,MAA8B,EAAE,EAAE,CAC1C,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAClD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CACzE,EACD,UAAU,CACX,CAAA;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAClG,CAAC,CAAC,CAAA;AAEN,MAAM,CAAC,MAAM,cAAc,GACzB,CAAC,IAAY,EAAE,OAA0B,EAAE,GAAkB,EAAE,EAAE,CACjE,CAAU,MAAqC,EAAkD,EAAE,CACjG,MAAM,CAAC,YAAY,CACjB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAChC,IAAI,CACF,MAAM,CAAC,cAAc,CACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAClD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CACzE,EACD,UAAU,CACX,EACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1E,CACF,CACF,CAAA;AAEL,4CAA4C;AAC5C,MAAM,CAAC,MAAM,SAAS,GAclB,CACF,IAAY,EACZ,OAA0B,EAC1B,GAAkB,EAClB,UAAmE,EACnE,GAAoC,EACK,EAAE,CAC3C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CACjD,KAAK,CAAC,MAAM,CACV,GAAG,IAAI,IAAI,EACX,IAAI,CACF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3C,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;AAC9D,CAAC,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CACvC,IAAI,CACF,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EACtB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;IACd,IAAI,UAAU,KAAK,SAAS,EAAE;QAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;KACxB;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAC,CACH,CACF,CACF,CACF,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAA2B,EAAE,EAAE;IAClE,0EAA0E;IAC1E,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAE,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,IAAY,EAAE,OAA0B,EAAE,GAAkB,EAAE,EAAE,CACjE,CAAU,KAAkC,EAAgD,EAAE,CAC5F,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAA0B,EAAE,EAAE,CACvE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAChC,CAAC,CAAC,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAA2B,EAAE,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;AAChC,CAAC,CAAC,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAO,UAAgD,EAAE,EAAE,CAC5F,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACxC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;AAChC,CAAC,CAAC,CACH,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAY,EACZ,qBAA4D,EAC5D,SAA0B,EAC1B,EAAE,CACF,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAA;AACvD,CAAC,CAAC,CACH,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import * as Layer from '@effect/io/Layer';
|
|
4
|
+
import type * as otel from '@opentelemetry/api';
|
|
5
|
+
import { TracerProvider } from './lib-tracer/TracerProvider.js';
|
|
6
|
+
export declare const TracerSymbol: unique symbol;
|
|
7
|
+
export type TracerSymbol = typeof TracerSymbol;
|
|
8
|
+
export interface Tracer {
|
|
9
|
+
readonly [TracerSymbol]: TracerSymbol;
|
|
10
|
+
readonly tracer: otel.Tracer;
|
|
11
|
+
}
|
|
12
|
+
export declare const Tracer: Context.Tag<Tracer, Tracer>;
|
|
13
|
+
export declare const makeTracer: (name: string) => Effect.Effect<TracerProvider, never, Tracer>;
|
|
14
|
+
export declare const LiveTracer: Layer.Layer<TracerProvider, never, Tracer>;
|
|
15
|
+
//# sourceMappingURL=Tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/Tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE/D,eAAO,MAAM,YAAY,eAAmC,CAAA;AAC5D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAA;AAE9C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,MAAM,6BAAoC,CAAA;AAEvD,eAAO,MAAM,UAAU,SAAU,MAAM,iDASnC,CAAA;AAEJ,eAAO,MAAM,UAAU,4CAA0D,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import { identity } from '@effect/data/Function';
|
|
3
|
+
import * as Effect from '@effect/io/Effect';
|
|
4
|
+
import * as Layer from '@effect/io/Layer';
|
|
5
|
+
import { TracerProvider } from './lib-tracer/TracerProvider.js';
|
|
6
|
+
export const TracerSymbol = Symbol.for('effect-otel/Tracer');
|
|
7
|
+
export const Tracer = Context.Tag(TracerSymbol);
|
|
8
|
+
export const makeTracer = (name) => Effect.gen(function* ($) {
|
|
9
|
+
const { tracerProvider } = yield* $(TracerProvider);
|
|
10
|
+
const tracer = yield* $(Effect.sync(() => tracerProvider.getTracer(name)));
|
|
11
|
+
return identity({
|
|
12
|
+
[TracerSymbol]: TracerSymbol,
|
|
13
|
+
tracer,
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
export const LiveTracer = Layer.scoped(Tracer, makeTracer('@effect/otel/Tracer'));
|
|
17
|
+
//# sourceMappingURL=Tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tracer.js","sourceRoot":"","sources":["../../../src/effect/Otel/Tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAQ5D,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAS,YAAY,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE1E,OAAO,QAAQ,CAAS;QACtB,CAAC,YAAY,CAAC,EAAE,YAAY;QAC5B,MAAM;KACP,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './Meter.js';
|
|
2
|
+
export * from './Tracer.js';
|
|
3
|
+
export * from './Span.js';
|
|
4
|
+
export * from './Dummy.js';
|
|
5
|
+
export * from './lib-tracer/BatchSpanProcessor.js';
|
|
6
|
+
export * from './lib-metrics/MetricsProvider.js';
|
|
7
|
+
export * as OTWeb from './lib-tracer/WebProvider.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/effect/Otel/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,oCAAoC,CAAA;AAClD,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// otel
|
|
2
|
+
export * from './Meter.js';
|
|
3
|
+
export * from './Tracer.js';
|
|
4
|
+
export * from './Span.js';
|
|
5
|
+
export * from './Dummy.js';
|
|
6
|
+
export * from './lib-tracer/BatchSpanProcessor.js';
|
|
7
|
+
export * from './lib-metrics/MetricsProvider.js';
|
|
8
|
+
export * as OTWeb from './lib-tracer/WebProvider.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/effect/Otel/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,oCAAoC,CAAA;AAClD,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import * as Layer from '@effect/io/Layer';
|
|
4
|
+
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
|
|
5
|
+
import type { OTLPExporterNodeConfigBase } from '@opentelemetry/otlp-exporter-base';
|
|
6
|
+
import { PeriodicMetricsProvider } from './PeriodicMetricsProvider.js';
|
|
7
|
+
export interface OTLPMetricExporterConfig {
|
|
8
|
+
readonly _: unique symbol;
|
|
9
|
+
}
|
|
10
|
+
export declare const OTLPMetricExporterConfig: Context.Tag<OTLPMetricExporterConfig, OTLPExporterNodeConfigBase>;
|
|
11
|
+
export declare const makeOTLPMetricExporterConfigLayer: (config: OTLPExporterNodeConfigBase) => Layer.Layer<never, never, OTLPMetricExporterConfig>;
|
|
12
|
+
export declare const makeMetricExporter: Effect.Effect<import("@effect/io/Scope.js").Scope | OTLPMetricExporterConfig, never, OTLPMetricExporter>;
|
|
13
|
+
export declare const LivePeriodicMetricsProvider: Layer.Layer<import("./MetricsProvider.js").MetricsProvider | OTLPMetricExporterConfig, never, PeriodicMetricsProvider>;
|
|
14
|
+
//# sourceMappingURL=ExporterMetricsOltpGrpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExporterMetricsOltpGrpc.d.ts","sourceRoot":"","sources":["../../../../src/effect/Otel/lib-metrics/ExporterMetricsOltpGrpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAC9E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,wBAAwB,mEAEpC,CAAA;AAED,eAAO,MAAM,iCAAiC,WAAY,0BAA0B,wDACnC,CAAA;AAEjD,eAAO,MAAM,kBAAkB,0GAgB7B,CAAA;AAEF,eAAO,MAAM,2BAA2B,wHAA8C,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
2
|
+
import { pipe } from '@effect/data/Function';
|
|
3
|
+
import * as Effect from '@effect/io/Effect';
|
|
4
|
+
import * as Layer from '@effect/io/Layer';
|
|
5
|
+
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc';
|
|
6
|
+
import { PeriodicMetricsProvider } from './PeriodicMetricsProvider.js';
|
|
7
|
+
export const OTLPMetricExporterConfig = Context.Tag('otel-metric-exporter-config');
|
|
8
|
+
export const makeOTLPMetricExporterConfigLayer = (config) => Layer.succeed(OTLPMetricExporterConfig, config);
|
|
9
|
+
export const makeMetricExporter = Effect.gen(function* (_) {
|
|
10
|
+
const config = yield* _(OTLPMetricExporterConfig);
|
|
11
|
+
const metricExporter = yield* _(pipe(Effect.sync(() => new OTLPMetricExporter(config)), Effect.acquireRelease((p) => pipe(Effect.tryPromise(() => p.shutdown()), Effect.orDie))));
|
|
12
|
+
return metricExporter;
|
|
13
|
+
});
|
|
14
|
+
export const LivePeriodicMetricsProvider = PeriodicMetricsProvider(makeMetricExporter);
|
|
15
|
+
//# sourceMappingURL=ExporterMetricsOltpGrpc.js.map
|