@effect/opentelemetry 0.32.2 → 0.33.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/cjs/NodeSdk.js +3 -3
- package/dist/cjs/NodeSdk.js.map +1 -1
- package/dist/cjs/Resource.js +31 -2
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/dts/NodeSdk.d.ts +5 -5
- package/dist/dts/NodeSdk.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +5 -0
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/esm/NodeSdk.js +3 -3
- package/dist/esm/NodeSdk.js.map +1 -1
- package/dist/esm/Resource.js +28 -0
- package/dist/esm/Resource.js.map +1 -1
- package/package.json +8 -8
- package/src/NodeSdk.ts +10 -8
- package/src/Resource.ts +42 -0
package/dist/cjs/NodeSdk.js
CHANGED
|
@@ -53,9 +53,9 @@ const layerTracerProvider = (processor, config) => Layer.scoped(Tracer.TracerPro
|
|
|
53
53
|
*/
|
|
54
54
|
exports.layerTracerProvider = layerTracerProvider;
|
|
55
55
|
const layer = evaluate => Layer.unwrapEffect(Effect.map(Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate), config => {
|
|
56
|
-
const ResourceLive = Resource.layer(config.resource);
|
|
57
|
-
const TracerLive = config.spanProcessor ? Tracer.layer.pipe(Layer.provide(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer.
|
|
58
|
-
const MetricsLive = config.metricReader ? Metrics.layer(() => config.metricReader) : Layer.
|
|
56
|
+
const ResourceLive = config.resource === undefined ? Resource.layerFromEnv() : Resource.layer(config.resource);
|
|
57
|
+
const TracerLive = config.spanProcessor ? Tracer.layer.pipe(Layer.provide(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer.empty;
|
|
58
|
+
const MetricsLive = config.metricReader ? Metrics.layer(() => config.metricReader) : Layer.empty;
|
|
59
59
|
return Layer.merge(TracerLive, MetricsLive).pipe(Layer.provideMerge(ResourceLive));
|
|
60
60
|
}));
|
|
61
61
|
/**
|
package/dist/cjs/NodeSdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSdk.js","names":["_sdkTraceNode","require","Effect","_interopRequireWildcard","Layer","Metrics","Resource","Tracer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","layerTracerProvider","processor","config","scoped","TracerProvider","flatMap","resource","acquireRelease","sync","provider","NodeTracerProvider","undefined","addSpanProcessor","ignoreLogged","promise","shutdown","exports","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","TracerLive","spanProcessor","pipe","provide","tracerConfig","
|
|
1
|
+
{"version":3,"file":"NodeSdk.js","names":["_sdkTraceNode","require","Effect","_interopRequireWildcard","Layer","Metrics","Resource","Tracer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","layerTracerProvider","processor","config","scoped","TracerProvider","flatMap","resource","acquireRelease","sync","provider","NodeTracerProvider","undefined","addSpanProcessor","ignoreLogged","promise","shutdown","exports","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","layerFromEnv","TracerLive","spanProcessor","pipe","provide","tracerConfig","empty","MetricsLive","metricReader","merge","provideMerge","layerEmpty"],"sources":["../../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":";;;;;;AAOA,IAAAA,aAAA,gBAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAC,uBAAA,eAAAF,OAAA;AAEA,IAAAG,KAAA,gBAAAD,uBAAA,eAAAF,OAAA;AACA,IAAAI,OAAA,gBAAAF,uBAAA,eAAAF,OAAA;AACA,IAAAK,QAAA,gBAAAH,uBAAA,eAAAF,OAAA;AACA,IAAAM,MAAA,gBAAAJ,uBAAA,eAAAF,OAAA;AAAqC,SAAAO,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAiBrC;;;;AAIO,MAAMW,mBAAmB,GAAGA,CACjCC,SAAwB,EACxBC,MAAuC,KAEvC1B,KAAK,CAAC2B,MAAM,CACVxB,MAAM,CAACyB,cAAc,EACrB9B,MAAM,CAAC+B,OAAO,CACZ3B,QAAQ,CAACA,QAAQ,EAChB4B,QAAQ,IACPhC,MAAM,CAACiC,cAAc,CACnBjC,MAAM,CAACkC,IAAI,CAAC,MAAK;EACf,MAAMC,QAAQ,GAAG,IAAIrC,aAAA,CAAAsC,kBAAkB,CAAC;IACtC,IAAIR,MAAM,IAAIS,SAAS,CAAC;IACxBL;GACD,CAAC;EACFG,QAAQ,CAACG,gBAAgB,CAACX,SAAS,CAAC;EACpC,OAAOQ,QAAQ;AACjB,CAAC,CAAC,EACDA,QAAQ,IAAKnC,MAAM,CAACuC,YAAY,CAACvC,MAAM,CAACwC,OAAO,CAAC,MAAML,QAAQ,CAACM,QAAQ,EAAE,CAAC,CAAC,CAC7E,CACJ,CACF;AAEH;;;;AAAAC,OAAA,CAAAhB,mBAAA,GAAAA,mBAAA;AAIO,MAAMiB,KAAK,GAIhBC,QAAyE,IAEzE1C,KAAK,CAAC2C,YAAY,CAChB7C,MAAM,CAAC8C,GAAG,CACR9C,MAAM,CAAC+C,QAAQ,CAACH,QAAQ,CAAC,GACrBA,QAAwC,GACxC5C,MAAM,CAACkC,IAAI,CAACU,QAAQ,CAAC,EACxBhB,MAAM,IAAI;EACT,MAAMoB,YAAY,GAAGpB,MAAM,CAACI,QAAQ,KAAKK,SAAS,GAC9CjC,QAAQ,CAAC6C,YAAY,EAAE,GACvB7C,QAAQ,CAACuC,KAAK,CAACf,MAAM,CAACI,QAAQ,CAAC;EACnC,MAAMkB,UAAU,GAAGtB,MAAM,CAACuB,aAAa,GACrC9C,MAAM,CAACsC,KAAK,CAACS,IAAI,CACflD,KAAK,CAACmD,OAAO,CAAC3B,mBAAmB,CAACE,MAAM,CAACuB,aAAa,EAAEvB,MAAM,CAAC0B,YAAY,CAAC,CAAC,CAC9E,GACCpD,KAAK,CAACqD,KAAK;EACf,MAAMC,WAAW,GAAG5B,MAAM,CAAC6B,YAAY,GACnCtD,OAAO,CAACwC,KAAK,CAAC,MAAMf,MAAM,CAAC6B,YAAa,CAAC,GACzCvD,KAAK,CAACqD,KAAK;EACf,OAAOrD,KAAK,CAACwD,KAAK,CAACR,UAAU,EAAEM,WAAW,CAAC,CAACJ,IAAI,CAC9ClD,KAAK,CAACyD,YAAY,CAACX,YAAY,CAAC,CACjC;AACH,CAAC,CACF,CACF;AAEH;;;;AAAAN,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAIO,MAAMiB,UAAU,GAAAlB,OAAA,CAAAkB,UAAA,GAAmCxD,QAAQ,CAACwD,UAAU","ignoreList":[]}
|
package/dist/cjs/Resource.js
CHANGED
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.layerEmpty = exports.layer = exports.Resource = void 0;
|
|
6
|
+
exports.layerFromEnv = exports.layerEmpty = exports.layer = exports.Resource = void 0;
|
|
7
7
|
var Resources = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@opentelemetry/resources"));
|
|
8
8
|
var _semanticConventions = /*#__PURE__*/require("@opentelemetry/semantic-conventions");
|
|
9
|
+
var _effect = /*#__PURE__*/require("effect");
|
|
10
|
+
var Arr = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Array"));
|
|
9
11
|
var _Context = /*#__PURE__*/require("effect/Context");
|
|
12
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
10
13
|
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
11
14
|
function _getRequireWildcardCache(e) {
|
|
12
15
|
if ("function" != typeof WeakMap) return null;
|
|
@@ -59,9 +62,35 @@ const layer = config => {
|
|
|
59
62
|
return Layer.succeed(Resource, new Resources.Resource(attributes));
|
|
60
63
|
};
|
|
61
64
|
/**
|
|
62
|
-
* @since
|
|
65
|
+
* @since 1.0.0
|
|
63
66
|
* @category layer
|
|
64
67
|
*/
|
|
65
68
|
exports.layer = layer;
|
|
69
|
+
const layerFromEnv = additionalAttributes => Layer.effect(Resource, Effect.gen(function* (_) {
|
|
70
|
+
const serviceName = yield* _(_effect.Config.string("OTEL_SERVICE_NAME"), _effect.Config.option, Effect.orDie);
|
|
71
|
+
const attributes = yield* _(_effect.Config.string("OTEL_RESOURCE_ATTRIBUTES"), _effect.Config.withDefault(""), _effect.Config.map(s => {
|
|
72
|
+
const attrs = s.split(",");
|
|
73
|
+
return Arr.reduce(attrs, {}, (acc, attr) => {
|
|
74
|
+
const parts = attr.split("=");
|
|
75
|
+
if (parts.length !== 2) {
|
|
76
|
+
return acc;
|
|
77
|
+
}
|
|
78
|
+
acc[parts[0].trim()] = parts[1].trim();
|
|
79
|
+
return acc;
|
|
80
|
+
});
|
|
81
|
+
}), Effect.orDie);
|
|
82
|
+
if (serviceName._tag === "Some") {
|
|
83
|
+
attributes[_semanticConventions.SEMRESATTRS_SERVICE_NAME] = serviceName.value;
|
|
84
|
+
}
|
|
85
|
+
if (additionalAttributes) {
|
|
86
|
+
Object.assign(attributes, additionalAttributes);
|
|
87
|
+
}
|
|
88
|
+
return new Resources.Resource(attributes);
|
|
89
|
+
}));
|
|
90
|
+
/**
|
|
91
|
+
* @since 2.0.0
|
|
92
|
+
* @category layer
|
|
93
|
+
*/
|
|
94
|
+
exports.layerFromEnv = layerFromEnv;
|
|
66
95
|
const layerEmpty = exports.layerEmpty = /*#__PURE__*/Layer.succeed(Resource, /*#__PURE__*/Resources.Resource.empty());
|
|
67
96
|
//# sourceMappingURL=Resource.js.map
|
package/dist/cjs/Resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.js","names":["Resources","_interopRequireWildcard","require","_semanticConventions","_Context","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Resource","exports","GenericTag","layer","config","attributes","undefined","SEMRESATTRS_SERVICE_NAME","serviceName","SEMRESATTRS_TELEMETRY_SDK_NAME","SEMRESATTRS_TELEMETRY_SDK_LANGUAGE","globalThis","document","TELEMETRYSDKLANGUAGEVALUES_NODEJS","TELEMETRYSDKLANGUAGEVALUES_WEBJS","serviceVersion","SEMRESATTRS_SERVICE_VERSION","succeed","layerEmpty","empty"],"sources":["../../src/Resource.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,SAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,oBAAA,gBAAAD,OAAA;AAQA,IAAAE,
|
|
1
|
+
{"version":3,"file":"Resource.js","names":["Resources","_interopRequireWildcard","require","_semanticConventions","_effect","Arr","_Context","Effect","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Resource","exports","GenericTag","layer","config","attributes","undefined","SEMRESATTRS_SERVICE_NAME","serviceName","SEMRESATTRS_TELEMETRY_SDK_NAME","SEMRESATTRS_TELEMETRY_SDK_LANGUAGE","globalThis","document","TELEMETRYSDKLANGUAGEVALUES_NODEJS","TELEMETRYSDKLANGUAGEVALUES_WEBJS","serviceVersion","SEMRESATTRS_SERVICE_VERSION","succeed","layerFromEnv","additionalAttributes","effect","gen","_","Config","string","option","orDie","withDefault","map","s","attrs","split","reduce","acc","attr","parts","length","trim","_tag","value","assign","layerEmpty","empty"],"sources":["../../src/Resource.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,SAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,oBAAA,gBAAAD,OAAA;AAQA,IAAAE,OAAA,gBAAAF,OAAA;AACA,IAAAG,GAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AACA,IAAAI,QAAA,gBAAAJ,OAAA;AACA,IAAAK,MAAA,gBAAAN,uBAAA,eAAAC,OAAA;AACA,IAAAM,KAAA,gBAAAP,uBAAA,eAAAC,OAAA;AAAqC,SAAAO,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAhBrC;;;;AA0BA;;;;AAIO,MAAMW,QAAQ,GAAAC,OAAA,CAAAD,QAAA,gBAAG,IAAAvB,QAAA,CAAAyB,UAAU,EAA+B,gCAAgC,CAAC;AAElG;;;;AAIO,MAAMC,KAAK,GAAIC,MAIrB,IAAI;EACH,MAAMC,UAAU,GAA2B;IACzC,IAAID,MAAM,CAACC,UAAU,IAAIC,SAAS,CAAC;IACnC,CAAChC,oBAAA,CAAAiC,wBAAwB,GAAGH,MAAM,CAACI,WAAW;IAC9C,CAAClC,oBAAA,CAAAmC,8BAA8B,GAAG,uBAAuB;IACzD,CAACnC,oBAAA,CAAAoC,kCAAkC,GAAG,OAAQC,UAAkB,CAACC,QAAQ,KAAK,WAAW,GACrFtC,oBAAA,CAAAuC,iCAAiC,GACjCvC,oBAAA,CAAAwC;GACL;EACD,IAAIV,MAAM,CAACW,cAAc,EAAE;IACzBV,UAAU,CAAC/B,oBAAA,CAAA0C,2BAA2B,CAAC,GAAGZ,MAAM,CAACW,cAAc;EACjE;EACA,OAAOpC,KAAK,CAACsC,OAAO,CAClBjB,QAAQ,EACR,IAAI7B,SAAS,CAAC6B,QAAQ,CAACK,UAAU,CAAC,CACnC;AACH,CAAC;AAED;;;;AAAAJ,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAIO,MAAMe,YAAY,GACvBC,oBAEa,IAEbxC,KAAK,CAACyC,MAAM,CACVpB,QAAQ,EACRtB,MAAM,CAAC2C,GAAG,CAAC,WAAUC,CAAC;EACpB,MAAMd,WAAW,GAAG,OAAOc,CAAC,CAAC/C,OAAA,CAAAgD,MAAM,CAACC,MAAM,CAAC,mBAAmB,CAAC,EAAEjD,OAAA,CAAAgD,MAAM,CAACE,MAAM,EAAE/C,MAAM,CAACgD,KAAK,CAAC;EAC7F,MAAMrB,UAAU,GAAG,OAAOiB,CAAC,CACzB/C,OAAA,CAAAgD,MAAM,CAACC,MAAM,CAAC,0BAA0B,CAAC,EACzCjD,OAAA,CAAAgD,MAAM,CAACI,WAAW,CAAC,EAAE,CAAC,EACtBpD,OAAA,CAAAgD,MAAM,CAACK,GAAG,CAAEC,CAAC,IAAI;IACf,MAAMC,KAAK,GAAGD,CAAC,CAACE,KAAK,CAAC,GAAG,CAAC;IAC1B,OAAOvD,GAAG,CAACwD,MAAM,CAACF,KAAK,EAAE,EAAkC,EAAE,CAACG,GAAG,EAAEC,IAAI,KAAI;MACzE,MAAMC,KAAK,GAAGD,IAAI,CAACH,KAAK,CAAC,GAAG,CAAC;MAC7B,IAAII,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAOH,GAAG;MACZ;MACAA,GAAG,CAACE,KAAK,CAAC,CAAC,CAAC,CAACE,IAAI,EAAE,CAAC,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACE,IAAI,EAAE;MACtC,OAAOJ,GAAG;IACZ,CAAC,CAAC;EACJ,CAAC,CAAC,EACFvD,MAAM,CAACgD,KAAK,CACb;EACD,IAAIlB,WAAW,CAAC8B,IAAI,KAAK,MAAM,EAAE;IAC/BjC,UAAU,CAAC/B,oBAAA,CAAAiC,wBAAwB,CAAC,GAAGC,WAAW,CAAC+B,KAAK;EAC1D;EACA,IAAIpB,oBAAoB,EAAE;IACxB3B,MAAM,CAACgD,MAAM,CAACnC,UAAU,EAAEc,oBAAoB,CAAC;EACjD;EACA,OAAO,IAAIhD,SAAS,CAAC6B,QAAQ,CAACK,UAAU,CAAC;AAC3C,CAAC,CAAC,CACH;AAEH;;;;AAAAJ,OAAA,CAAAiB,YAAA,GAAAA,YAAA;AAIO,MAAMuB,UAAU,GAAAxC,OAAA,CAAAwC,UAAA,gBAAG9D,KAAK,CAACsC,OAAO,CACrCjB,QAAQ,eACR7B,SAAS,CAAC6B,QAAQ,CAAC0C,KAAK,EAAE,CAC3B","ignoreList":[]}
|
package/dist/dts/NodeSdk.d.ts
CHANGED
|
@@ -14,14 +14,14 @@ import * as Resource from "./Resource.js";
|
|
|
14
14
|
* @category model
|
|
15
15
|
*/
|
|
16
16
|
export interface Configuration {
|
|
17
|
-
readonly spanProcessor?: SpanProcessor;
|
|
18
|
-
readonly tracerConfig?: Omit<TracerConfig, "resource"
|
|
19
|
-
readonly metricReader?: MetricReader;
|
|
20
|
-
readonly resource
|
|
17
|
+
readonly spanProcessor?: SpanProcessor | undefined;
|
|
18
|
+
readonly tracerConfig?: Omit<TracerConfig, "resource"> | undefined;
|
|
19
|
+
readonly metricReader?: MetricReader | undefined;
|
|
20
|
+
readonly resource?: {
|
|
21
21
|
readonly serviceName: string;
|
|
22
22
|
readonly serviceVersion?: string;
|
|
23
23
|
readonly attributes?: Resources.ResourceAttributes;
|
|
24
|
-
};
|
|
24
|
+
} | undefined;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSdk.d.ts","sourceRoot":"","sources":["../../src/NodeSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"NodeSdk.d.ts","sourceRoot":"","sources":["../../src/NodeSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,SAAS,CAAA;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAA;KACnD,GAAG,SAAS,CAAA;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cACnB,aAAa,WACf,KAAK,YAAY,EAAE,UAAU,CAAC,KACtC,MAAM,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,SAAS,QAAQ,CAkBpD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CA0BzF,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAuB,CAAA"}
|
package/dist/dts/Resource.d.ts
CHANGED
|
@@ -24,6 +24,11 @@ export declare const layer: (config: {
|
|
|
24
24
|
readonly serviceVersion?: string;
|
|
25
25
|
readonly attributes?: Resources.ResourceAttributes;
|
|
26
26
|
}) => Layer.Layer<Resource, never, never>;
|
|
27
|
+
/**
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category layer
|
|
30
|
+
*/
|
|
31
|
+
export declare const layerFromEnv: (additionalAttributes?: Resources.ResourceAttributes | undefined) => Layer.Layer<Resource>;
|
|
27
32
|
/**
|
|
28
33
|
* @since 2.0.0
|
|
29
34
|
* @category layer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../src/Resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../src/Resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAarD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,4DAA6E,CAAA;AAElG;;;GAGG;AACH,eAAO,MAAM,KAAK,WAAY;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,kBAAkB,CAAA;CACnD,wCAgBA,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,0BAEnB,UAAU,kBAAkB,GAC5B,SAAS,KACZ,MAAM,KAAK,CAAC,QAAQ,CA6BpB,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,qCAGtB,CAAA"}
|
package/dist/esm/NodeSdk.js
CHANGED
|
@@ -21,9 +21,9 @@ export const layerTracerProvider = (processor, config) => Layer.scoped(Tracer.Tr
|
|
|
21
21
|
* @category layer
|
|
22
22
|
*/
|
|
23
23
|
export const layer = evaluate => Layer.unwrapEffect(Effect.map(Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate), config => {
|
|
24
|
-
const ResourceLive = Resource.layer(config.resource);
|
|
25
|
-
const TracerLive = config.spanProcessor ? Tracer.layer.pipe(Layer.provide(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer.
|
|
26
|
-
const MetricsLive = config.metricReader ? Metrics.layer(() => config.metricReader) : Layer.
|
|
24
|
+
const ResourceLive = config.resource === undefined ? Resource.layerFromEnv() : Resource.layer(config.resource);
|
|
25
|
+
const TracerLive = config.spanProcessor ? Tracer.layer.pipe(Layer.provide(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer.empty;
|
|
26
|
+
const MetricsLive = config.metricReader ? Metrics.layer(() => config.metricReader) : Layer.empty;
|
|
27
27
|
return Layer.merge(TracerLive, MetricsLive).pipe(Layer.provideMerge(ResourceLive));
|
|
28
28
|
}));
|
|
29
29
|
/**
|
package/dist/esm/NodeSdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSdk.js","names":["NodeTracerProvider","Effect","Layer","Metrics","Resource","Tracer","layerTracerProvider","processor","config","scoped","TracerProvider","flatMap","resource","acquireRelease","sync","provider","undefined","addSpanProcessor","ignoreLogged","promise","shutdown","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","TracerLive","spanProcessor","pipe","provide","tracerConfig","
|
|
1
|
+
{"version":3,"file":"NodeSdk.js","names":["NodeTracerProvider","Effect","Layer","Metrics","Resource","Tracer","layerTracerProvider","processor","config","scoped","TracerProvider","flatMap","resource","acquireRelease","sync","provider","undefined","addSpanProcessor","ignoreLogged","promise","shutdown","layer","evaluate","unwrapEffect","map","isEffect","ResourceLive","layerFromEnv","TracerLive","spanProcessor","pipe","provide","tracerConfig","empty","MetricsLive","metricReader","merge","provideMerge","layerEmpty"],"sources":["../../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":"AAOA,SAASA,kBAAkB,QAAQ,+BAA+B;AAClE,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,MAAM,MAAM,aAAa;AAiBrC;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,SAAwB,EACxBC,MAAuC,KAEvCN,KAAK,CAACO,MAAM,CACVJ,MAAM,CAACK,cAAc,EACrBT,MAAM,CAACU,OAAO,CACZP,QAAQ,CAACA,QAAQ,EAChBQ,QAAQ,IACPX,MAAM,CAACY,cAAc,CACnBZ,MAAM,CAACa,IAAI,CAAC,MAAK;EACf,MAAMC,QAAQ,GAAG,IAAIf,kBAAkB,CAAC;IACtC,IAAIQ,MAAM,IAAIQ,SAAS,CAAC;IACxBJ;GACD,CAAC;EACFG,QAAQ,CAACE,gBAAgB,CAACV,SAAS,CAAC;EACpC,OAAOQ,QAAQ;AACjB,CAAC,CAAC,EACDA,QAAQ,IAAKd,MAAM,CAACiB,YAAY,CAACjB,MAAM,CAACkB,OAAO,CAAC,MAAMJ,QAAQ,CAACK,QAAQ,EAAE,CAAC,CAAC,CAC7E,CACJ,CACF;AAEH;;;;AAIA,OAAO,MAAMC,KAAK,GAIhBC,QAAyE,IAEzEpB,KAAK,CAACqB,YAAY,CAChBtB,MAAM,CAACuB,GAAG,CACRvB,MAAM,CAACwB,QAAQ,CAACH,QAAQ,CAAC,GACrBA,QAAwC,GACxCrB,MAAM,CAACa,IAAI,CAACQ,QAAQ,CAAC,EACxBd,MAAM,IAAI;EACT,MAAMkB,YAAY,GAAGlB,MAAM,CAACI,QAAQ,KAAKI,SAAS,GAC9CZ,QAAQ,CAACuB,YAAY,EAAE,GACvBvB,QAAQ,CAACiB,KAAK,CAACb,MAAM,CAACI,QAAQ,CAAC;EACnC,MAAMgB,UAAU,GAAGpB,MAAM,CAACqB,aAAa,GACrCxB,MAAM,CAACgB,KAAK,CAACS,IAAI,CACf5B,KAAK,CAAC6B,OAAO,CAACzB,mBAAmB,CAACE,MAAM,CAACqB,aAAa,EAAErB,MAAM,CAACwB,YAAY,CAAC,CAAC,CAC9E,GACC9B,KAAK,CAAC+B,KAAK;EACf,MAAMC,WAAW,GAAG1B,MAAM,CAAC2B,YAAY,GACnChC,OAAO,CAACkB,KAAK,CAAC,MAAMb,MAAM,CAAC2B,YAAa,CAAC,GACzCjC,KAAK,CAAC+B,KAAK;EACf,OAAO/B,KAAK,CAACkC,KAAK,CAACR,UAAU,EAAEM,WAAW,CAAC,CAACJ,IAAI,CAC9C5B,KAAK,CAACmC,YAAY,CAACX,YAAY,CAAC,CACjC;AACH,CAAC,CACF,CACF;AAEH;;;;AAIA,OAAO,MAAMY,UAAU,GAAmClC,QAAQ,CAACkC,UAAU","ignoreList":[]}
|
package/dist/esm/Resource.js
CHANGED
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Resources from "@opentelemetry/resources";
|
|
5
5
|
import { SEMRESATTRS_SERVICE_NAME, SEMRESATTRS_SERVICE_VERSION, SEMRESATTRS_TELEMETRY_SDK_LANGUAGE, SEMRESATTRS_TELEMETRY_SDK_NAME, TELEMETRYSDKLANGUAGEVALUES_NODEJS, TELEMETRYSDKLANGUAGEVALUES_WEBJS } from "@opentelemetry/semantic-conventions";
|
|
6
|
+
import { Config } from "effect";
|
|
7
|
+
import * as Arr from "effect/Array";
|
|
6
8
|
import { GenericTag } from "effect/Context";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
7
10
|
import * as Layer from "effect/Layer";
|
|
8
11
|
/**
|
|
9
12
|
* @since 1.0.0
|
|
@@ -26,6 +29,31 @@ export const layer = config => {
|
|
|
26
29
|
}
|
|
27
30
|
return Layer.succeed(Resource, new Resources.Resource(attributes));
|
|
28
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
* @category layer
|
|
35
|
+
*/
|
|
36
|
+
export const layerFromEnv = additionalAttributes => Layer.effect(Resource, Effect.gen(function* (_) {
|
|
37
|
+
const serviceName = yield* _(Config.string("OTEL_SERVICE_NAME"), Config.option, Effect.orDie);
|
|
38
|
+
const attributes = yield* _(Config.string("OTEL_RESOURCE_ATTRIBUTES"), Config.withDefault(""), Config.map(s => {
|
|
39
|
+
const attrs = s.split(",");
|
|
40
|
+
return Arr.reduce(attrs, {}, (acc, attr) => {
|
|
41
|
+
const parts = attr.split("=");
|
|
42
|
+
if (parts.length !== 2) {
|
|
43
|
+
return acc;
|
|
44
|
+
}
|
|
45
|
+
acc[parts[0].trim()] = parts[1].trim();
|
|
46
|
+
return acc;
|
|
47
|
+
});
|
|
48
|
+
}), Effect.orDie);
|
|
49
|
+
if (serviceName._tag === "Some") {
|
|
50
|
+
attributes[SEMRESATTRS_SERVICE_NAME] = serviceName.value;
|
|
51
|
+
}
|
|
52
|
+
if (additionalAttributes) {
|
|
53
|
+
Object.assign(attributes, additionalAttributes);
|
|
54
|
+
}
|
|
55
|
+
return new Resources.Resource(attributes);
|
|
56
|
+
}));
|
|
29
57
|
/**
|
|
30
58
|
* @since 2.0.0
|
|
31
59
|
* @category layer
|
package/dist/esm/Resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.js","names":["Resources","SEMRESATTRS_SERVICE_NAME","SEMRESATTRS_SERVICE_VERSION","SEMRESATTRS_TELEMETRY_SDK_LANGUAGE","SEMRESATTRS_TELEMETRY_SDK_NAME","TELEMETRYSDKLANGUAGEVALUES_NODEJS","TELEMETRYSDKLANGUAGEVALUES_WEBJS","GenericTag","Layer","Resource","layer","config","attributes","undefined","serviceName","globalThis","document","serviceVersion","succeed","layerEmpty","empty"],"sources":["../../src/Resource.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,SAAS,MAAM,0BAA0B;AACrD,SACEC,wBAAwB,EACxBC,2BAA2B,EAC3BC,kCAAkC,EAClCC,8BAA8B,EAC9BC,iCAAiC,EACjCC,gCAAgC,QAC3B,qCAAqC;AAC5C,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,KAAK,MAAM,cAAc;AAUrC;;;;AAIA,OAAO,MAAMC,QAAQ,
|
|
1
|
+
{"version":3,"file":"Resource.js","names":["Resources","SEMRESATTRS_SERVICE_NAME","SEMRESATTRS_SERVICE_VERSION","SEMRESATTRS_TELEMETRY_SDK_LANGUAGE","SEMRESATTRS_TELEMETRY_SDK_NAME","TELEMETRYSDKLANGUAGEVALUES_NODEJS","TELEMETRYSDKLANGUAGEVALUES_WEBJS","Config","Arr","GenericTag","Effect","Layer","Resource","layer","config","attributes","undefined","serviceName","globalThis","document","serviceVersion","succeed","layerFromEnv","additionalAttributes","effect","gen","_","string","option","orDie","withDefault","map","s","attrs","split","reduce","acc","attr","parts","length","trim","_tag","value","Object","assign","layerEmpty","empty"],"sources":["../../src/Resource.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.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "OpenTelemetry integration for Effect",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"sideEffects": [],
|
|
12
12
|
"peerDependencies": {
|
|
13
13
|
"@opentelemetry/api": "^1.6",
|
|
14
|
-
"@opentelemetry/resources": "^1.
|
|
15
|
-
"@opentelemetry/sdk-metrics": "^1.
|
|
16
|
-
"@opentelemetry/sdk-trace-base": "^1.
|
|
17
|
-
"@opentelemetry/sdk-trace-node": "^1.
|
|
18
|
-
"@opentelemetry/sdk-trace-web": "^1.
|
|
19
|
-
"@opentelemetry/semantic-conventions": "^1.
|
|
20
|
-
"effect": "^3.0.
|
|
14
|
+
"@opentelemetry/resources": "^1.22",
|
|
15
|
+
"@opentelemetry/sdk-metrics": "^1.22",
|
|
16
|
+
"@opentelemetry/sdk-trace-base": "^1.22",
|
|
17
|
+
"@opentelemetry/sdk-trace-node": "^1.22",
|
|
18
|
+
"@opentelemetry/sdk-trace-web": "^1.22",
|
|
19
|
+
"@opentelemetry/semantic-conventions": "^1.22",
|
|
20
|
+
"effect": "^3.0.3"
|
|
21
21
|
},
|
|
22
22
|
"peerDependenciesMeta": {
|
|
23
23
|
"@opentelemetry/sdk-metrics": {
|
package/src/NodeSdk.ts
CHANGED
|
@@ -18,14 +18,14 @@ import * as Tracer from "./Tracer.js"
|
|
|
18
18
|
* @category model
|
|
19
19
|
*/
|
|
20
20
|
export interface Configuration {
|
|
21
|
-
readonly spanProcessor?: SpanProcessor
|
|
22
|
-
readonly tracerConfig?: Omit<TracerConfig, "resource">
|
|
23
|
-
readonly metricReader?: MetricReader
|
|
24
|
-
readonly resource
|
|
21
|
+
readonly spanProcessor?: SpanProcessor | undefined
|
|
22
|
+
readonly tracerConfig?: Omit<TracerConfig, "resource"> | undefined
|
|
23
|
+
readonly metricReader?: MetricReader | undefined
|
|
24
|
+
readonly resource?: {
|
|
25
25
|
readonly serviceName: string
|
|
26
26
|
readonly serviceVersion?: string
|
|
27
27
|
readonly attributes?: Resources.ResourceAttributes
|
|
28
|
-
}
|
|
28
|
+
} | undefined
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -71,15 +71,17 @@ export const layer: {
|
|
|
71
71
|
? evaluate as Effect.Effect<Configuration>
|
|
72
72
|
: Effect.sync(evaluate),
|
|
73
73
|
(config) => {
|
|
74
|
-
const ResourceLive =
|
|
74
|
+
const ResourceLive = config.resource === undefined
|
|
75
|
+
? Resource.layerFromEnv()
|
|
76
|
+
: Resource.layer(config.resource)
|
|
75
77
|
const TracerLive = config.spanProcessor ?
|
|
76
78
|
Tracer.layer.pipe(
|
|
77
79
|
Layer.provide(layerTracerProvider(config.spanProcessor, config.tracerConfig))
|
|
78
80
|
)
|
|
79
|
-
: Layer.
|
|
81
|
+
: Layer.empty
|
|
80
82
|
const MetricsLive = config.metricReader
|
|
81
83
|
? Metrics.layer(() => config.metricReader!)
|
|
82
|
-
: Layer.
|
|
84
|
+
: Layer.empty
|
|
83
85
|
return Layer.merge(TracerLive, MetricsLive).pipe(
|
|
84
86
|
Layer.provideMerge(ResourceLive)
|
|
85
87
|
)
|
package/src/Resource.ts
CHANGED
|
@@ -10,7 +10,10 @@ import {
|
|
|
10
10
|
TELEMETRYSDKLANGUAGEVALUES_NODEJS,
|
|
11
11
|
TELEMETRYSDKLANGUAGEVALUES_WEBJS
|
|
12
12
|
} from "@opentelemetry/semantic-conventions"
|
|
13
|
+
import { Config } from "effect"
|
|
14
|
+
import * as Arr from "effect/Array"
|
|
13
15
|
import { GenericTag } from "effect/Context"
|
|
16
|
+
import * as Effect from "effect/Effect"
|
|
14
17
|
import * as Layer from "effect/Layer"
|
|
15
18
|
|
|
16
19
|
/**
|
|
@@ -53,6 +56,45 @@ export const layer = (config: {
|
|
|
53
56
|
)
|
|
54
57
|
}
|
|
55
58
|
|
|
59
|
+
/**
|
|
60
|
+
* @since 1.0.0
|
|
61
|
+
* @category layer
|
|
62
|
+
*/
|
|
63
|
+
export const layerFromEnv = (
|
|
64
|
+
additionalAttributes?:
|
|
65
|
+
| Resources.ResourceAttributes
|
|
66
|
+
| undefined
|
|
67
|
+
): Layer.Layer<Resource> =>
|
|
68
|
+
Layer.effect(
|
|
69
|
+
Resource,
|
|
70
|
+
Effect.gen(function*(_) {
|
|
71
|
+
const serviceName = yield* _(Config.string("OTEL_SERVICE_NAME"), Config.option, Effect.orDie)
|
|
72
|
+
const attributes = yield* _(
|
|
73
|
+
Config.string("OTEL_RESOURCE_ATTRIBUTES"),
|
|
74
|
+
Config.withDefault(""),
|
|
75
|
+
Config.map((s) => {
|
|
76
|
+
const attrs = s.split(",")
|
|
77
|
+
return Arr.reduce(attrs, {} as Resources.ResourceAttributes, (acc, attr) => {
|
|
78
|
+
const parts = attr.split("=")
|
|
79
|
+
if (parts.length !== 2) {
|
|
80
|
+
return acc
|
|
81
|
+
}
|
|
82
|
+
acc[parts[0].trim()] = parts[1].trim()
|
|
83
|
+
return acc
|
|
84
|
+
})
|
|
85
|
+
}),
|
|
86
|
+
Effect.orDie
|
|
87
|
+
)
|
|
88
|
+
if (serviceName._tag === "Some") {
|
|
89
|
+
attributes[SEMRESATTRS_SERVICE_NAME] = serviceName.value
|
|
90
|
+
}
|
|
91
|
+
if (additionalAttributes) {
|
|
92
|
+
Object.assign(attributes, additionalAttributes)
|
|
93
|
+
}
|
|
94
|
+
return new Resources.Resource(attributes)
|
|
95
|
+
})
|
|
96
|
+
)
|
|
97
|
+
|
|
56
98
|
/**
|
|
57
99
|
* @since 2.0.0
|
|
58
100
|
* @category layer
|