@effect/opentelemetry 4.0.0-beta.99 → 4.0.0-rc.109
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/AGENTS.md +395 -0
- package/CLAUDE.md +395 -0
- package/README.md +13 -2
- package/ai-docs/README.md +44 -0
- package/ai-docs/package.json +36 -0
- package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
- package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/ai-docs/src/01_effect/01_basics/index.md +5 -0
- package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
- package/ai-docs/src/01_effect/02_schema/index.md +7 -0
- package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
- package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
- package/ai-docs/src/01_effect/03_services/index.md +5 -0
- package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
- package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
- package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
- package/ai-docs/src/01_effect/04_errors/index.md +1 -0
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
- package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
- package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
- package/ai-docs/src/01_effect/05_resources/index.md +3 -0
- package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
- package/ai-docs/src/01_effect/06_running/index.md +1 -0
- package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
- package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
- package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
- package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
- package/ai-docs/src/03_stream/30_encoding.ts +165 -0
- package/ai-docs/src/03_stream/index.md +4 -0
- package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
- package/ai-docs/src/04_integration/index.md +5 -0
- package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/ai-docs/src/05_batching/index.md +3 -0
- package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
- package/ai-docs/src/06_schedule/index.md +3 -0
- package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/ai-docs/src/07_datetime/index.md +5 -0
- package/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/ai-docs/src/08_observability/index.md +7 -0
- package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/ai-docs/src/09_testing/index.md +1 -0
- package/ai-docs/src/10_predicate/01_basics.ts +14 -0
- package/ai-docs/src/10_predicate/index.md +9 -0
- package/ai-docs/src/40_sql/10_basics.ts +175 -0
- package/ai-docs/src/40_sql/index.md +6 -0
- package/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/ai-docs/src/50_http-client/index.md +3 -0
- package/ai-docs/src/51_http-server/10_basics.ts +118 -0
- package/ai-docs/src/51_http-server/20_testing.ts +100 -0
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +107 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +21 -0
- package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +37 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +80 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +183 -0
- package/ai-docs/src/51_http-server/index.md +3 -0
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/ai-docs/src/60_child-process/index.md +3 -0
- package/ai-docs/src/70_cli/10_basics.ts +160 -0
- package/ai-docs/src/70_cli/index.md +5 -0
- package/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/ai-docs/src/71_ai/index.md +5 -0
- package/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/ai-docs/src/80_cluster/index.md +4 -0
- package/ai-docs/src/index.md +10 -0
- package/ai-docs/tsconfig.json +24 -0
- package/dist/NodeSdk.js +6 -6
- package/dist/NodeSdk.js.map +1 -1
- package/dist/OtelLogger.d.ts.map +1 -1
- package/dist/OtelLogger.js +5 -4
- package/dist/OtelLogger.js.map +1 -1
- package/dist/OtelMetrics.d.ts +32 -21
- package/dist/OtelMetrics.d.ts.map +1 -1
- package/dist/OtelMetrics.js +31 -20
- package/dist/OtelMetrics.js.map +1 -1
- package/dist/OtelTracer.d.ts.map +1 -1
- package/dist/OtelTracer.js +28 -19
- package/dist/OtelTracer.js.map +1 -1
- package/dist/Resource.d.ts +1 -1
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +7 -6
- package/dist/Resource.js.map +1 -1
- package/dist/WebSdk.d.ts.map +1 -1
- package/dist/WebSdk.js +6 -6
- package/dist/WebSdk.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/attributes.js +2 -1
- package/dist/internal/attributes.js.map +1 -1
- package/dist/internal/metrics.js +5 -1
- package/dist/internal/metrics.js.map +1 -1
- package/dist/internal/utilities.js.map +1 -1
- package/package.json +15 -13
- package/src/NodeSdk.ts +7 -7
- package/src/OtelLogger.ts +6 -4
- package/src/OtelMetrics.ts +33 -22
- package/src/OtelTracer.ts +32 -20
- package/src/Resource.ts +7 -6
- package/src/WebSdk.ts +9 -8
- package/src/internal/attributes.ts +2 -1
- package/src/internal/metrics.ts +6 -1
package/dist/WebSdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSdk.js","names":[
|
|
1
|
+
{"version":3,"file":"WebSdk.js","names":[],"sources":["../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"AAeA,SAAS,iBAAiB,QAAQ,8BAA8B;AAEhE,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,SAAS,QAAQ,QAAsB,iBAAiB;AACxD,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,SAAS,UAAU,QAAQ,yBAAyB;AACpD,OAAO,KAAK,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAK,OAAO,MAAM,kBAAkB;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe;AAuBzC;;;;;;AAMA,OAAO,MAAM,mBAAmB,GAAG,CACjC,SAA+D,EAC/D,MAAuC,KAEvC,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,kBAAkB,EACzB,MAAM,CAAC,GAAG,CAAC,aAAS;EAClB,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,QAAQ;EACzC,OAAO,OAAO,MAAM,CAAC,cAAc,CACjC,MAAM,CAAC,IAAI,CAAC,MAAK;IACf,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;MACrC,IAAI,MAAM,IAAI,SAAS,CAAC;MACxB,QAAQ;MACR,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAI,SAAiB,GAAG,CAAC,SAAS;KAC3E,CAAC;IACF,OAAO,QAAQ;EACjB,CAAC,CAAC,EACD,QAAQ,IACP,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAC1D,MAAM,CAAC,MAAM,CACd,CACJ;AACH,CAAC,CAAC,CACH;AAEH;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAM,KAAK,GAkDhB,QAAyE,IAEzE,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,GAAG,CAAC,aAAS;EAClB,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAC3C,QAAwC,GACxC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;EAEzB,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;EAErD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAChD,KAAK,CAAC,OAAO,CACb,MAAM,CAAC,KAAK,EACZ,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAC/D,GACC,KAAK,CAAC,KAAK;EAEf,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,GACrD,KAAK,CAAC,OAAO,CACb,MAAM,CAAC,KAAK,CAAC;IAAE,iBAAiB,EAAE,MAAM,CAAC;EAAuB,CAAE,CAAC,EACnE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC,CACnF,GACC,KAAK,CAAC,KAAK;EAEf,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAChD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;GACrB,CAAC,GACA,KAAK,CAAC,KAAK;EAEf,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,IAAI,CAChE,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAClC;AACH,CAAC,CAAC,CACH","ignoreList":[]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAK,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAK,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAK,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAK,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAK,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAK,MAAM,MAAM,aAAa","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Inspectable from "effect/Inspectable";
|
|
2
|
+
import * as Rec from "effect/Record";
|
|
2
3
|
const bigint1e9 = /*#__PURE__*/BigInt(1_000_000_000);
|
|
3
4
|
/** @internal */
|
|
4
5
|
export const nanosToHrTime = timestamp => {
|
|
@@ -8,7 +9,7 @@ export const nanosToHrTime = timestamp => {
|
|
|
8
9
|
export const recordToAttributes = record => {
|
|
9
10
|
const attributes = {};
|
|
10
11
|
for (const [key, value] of Object.entries(record)) {
|
|
11
|
-
attributes
|
|
12
|
+
Rec.assignProperty(attributes, key, unknownToAttributeValue(value));
|
|
12
13
|
}
|
|
13
14
|
return attributes;
|
|
14
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","names":[
|
|
1
|
+
{"version":3,"file":"attributes.js","names":[],"sources":["../../src/internal/attributes.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,oBAAoB;AACjD,OAAO,KAAK,GAAG,MAAM,eAAe;AAEpC,MAAM,SAAS,gBAAG,MAAM,CAAC,aAAa,CAAC;AAEvC;AACA,OAAO,MAAM,aAAa,GAAI,SAAiB,IAAiB;EAC9D,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;AACvE,CAAC;AAED;AACA,OAAO,MAAM,kBAAkB,GAAI,MAA+B,IAAqB;EACrF,MAAM,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IACjD,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC;EACrE;EACA,OAAO,UAAU;AACnB,CAAC;AAED;AACA,OAAO,MAAM,uBAAuB,GAAI,KAAc,IAAyB;EAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;IACxF,OAAO,KAAK;EACd,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAO,KAAK,CAAC,QAAQ,EAAE;EACzB;EACA,OAAO,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC;AAC3C,CAAC","ignoreList":[]}
|
package/dist/internal/metrics.js
CHANGED
|
@@ -2,6 +2,7 @@ import { ValueType } from "@opentelemetry/api";
|
|
|
2
2
|
import { AggregationTemporality, DataPointType, InstrumentType } from "@opentelemetry/sdk-metrics";
|
|
3
3
|
import * as Arr from "effect/Array";
|
|
4
4
|
import * as Metric from "effect/Metric";
|
|
5
|
+
import * as Rec from "effect/Record";
|
|
5
6
|
const sdkName = "@effect/opentelemetry/Metrics";
|
|
6
7
|
/** @internal */
|
|
7
8
|
export class MetricProducerImpl {
|
|
@@ -27,6 +28,9 @@ export class MetricProducerImpl {
|
|
|
27
28
|
this.previousFrequencyState = new Map();
|
|
28
29
|
this.previousSummaryState = new Map();
|
|
29
30
|
}
|
|
31
|
+
fork() {
|
|
32
|
+
return new MetricProducerImpl(this.resource, this.context, this.temporality);
|
|
33
|
+
}
|
|
30
34
|
startTimeFor(name, hrTime) {
|
|
31
35
|
if (this.startTimes.has(name)) {
|
|
32
36
|
return this.startTimes.get(name);
|
|
@@ -49,7 +53,7 @@ export class MetricProducerImpl {
|
|
|
49
53
|
for (let i = 0, len = snapshot.length; i < len; i++) {
|
|
50
54
|
const state = snapshot[i];
|
|
51
55
|
const attributes = state.attributes ? Arr.reduce(Object.entries(state.attributes), {}, (acc, [key, value]) => {
|
|
52
|
-
acc
|
|
56
|
+
Rec.assignProperty(acc, key, String(value));
|
|
53
57
|
return acc;
|
|
54
58
|
}) : {};
|
|
55
59
|
const metricKey = makeMetricKey(state.id, state.attributes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Arr","Metric","sdkName","MetricProducerImpl","resource","context","temporality","startTimes","startTimeNanos","previousExportTimeNanos","previousCounterState","previousHistogramState","previousFrequencyState","previousSummaryState","constructor","Map","currentHrTime","startTimeFor","name","hrTime","has","get","set","collect","_options","snapshot","snapshotUnsafe","hrTimeNow","metricData","metricDataByName","addMetricData","data","push","descriptor","isDelta","aggregationTemporality","DELTA","CUMULATIVE","intervalStartTime","i","len","length","state","attributes","reduce","Object","entries","acc","key","value","String","metricKey","makeMetricKey","id","type","currentCount","count","reportValue","previousCount","undefined","BigInt","curr","Number","prev","descriptorFromState","startTime","dataPoint","endTime","dataPoints","dataPointType","SUM","isMonotonic","incremental","GAUGE","size","buckets","currentBuckets","boundaries","allocate","counts","idx","boundary","reportCount","reportSum","sum","reportBucketCounts","reportMin","min","reportMax","max","previousState","map","c","Math","bucketCounts","slice","HISTOGRAM","currentOccurrences","freqKey","occurrences","previousOccurrences","previousValue","quantile","quantiles","toString","countDataPoint","sumDataPoint","description","unit","COUNTER","valueType","INT","advice","DOUBLE","Promise","resolve","resourceMetrics","scopeMetrics","scope","metrics","errors","keys","sortedEntries","sort","a","b","localeCompare","JSON","stringify","now","Date","floor","time_unit","instrumentTypeFromSnapshot","determineValueType","OBSERVABLE_GAUGE","UP_DOWN_COUNTER"],"sources":["../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"metrics.js","names":[],"sources":["../../src/internal/metrics.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","names":[
|
|
1
|
+
{"version":3,"file":"utilities.js","names":[],"sources":["../../src/internal/utilities.ts"],"sourcesContent":[null],"mappings":"AAEA;AACA,OAAO,MAAM,UAAU,GAAO,CAAmC,IAC/D,CAAC,KAAK,SAAS,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/opentelemetry",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.0.0-
|
|
4
|
+
"version": "4.0.0-rc.109",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "OpenTelemetry integration for Effect",
|
|
7
7
|
"homepage": "https://effect.website",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
".": "./dist/index.js",
|
|
41
41
|
"./*": "./dist/*.js",
|
|
42
42
|
"./internal/*": null,
|
|
43
|
+
"./index": null,
|
|
43
44
|
"./*/index": null
|
|
44
45
|
},
|
|
45
46
|
"files": [
|
|
@@ -47,23 +48,26 @@
|
|
|
47
48
|
"dist/**/*.js",
|
|
48
49
|
"dist/**/*.js.map",
|
|
49
50
|
"dist/**/*.d.ts",
|
|
50
|
-
"dist/**/*.d.ts.map"
|
|
51
|
+
"dist/**/*.d.ts.map",
|
|
52
|
+
"AGENTS.md",
|
|
53
|
+
"CLAUDE.md",
|
|
54
|
+
"ai-docs/**/*"
|
|
51
55
|
],
|
|
52
56
|
"publishConfig": {
|
|
53
57
|
"access": "public",
|
|
54
58
|
"provenance": true
|
|
55
59
|
},
|
|
56
60
|
"peerDependencies": {
|
|
57
|
-
"@opentelemetry/api": "
|
|
61
|
+
"@opentelemetry/api": ">=1.9.0 <2.0.0",
|
|
58
62
|
"@opentelemetry/api-logs": ">=0.203.0 <0.300.0",
|
|
59
|
-
"@opentelemetry/resources": "
|
|
63
|
+
"@opentelemetry/resources": ">=2.0.0 <3.0.0",
|
|
60
64
|
"@opentelemetry/sdk-logs": ">=0.203.0 <0.300.0",
|
|
61
|
-
"@opentelemetry/sdk-metrics": "
|
|
62
|
-
"@opentelemetry/sdk-trace-base": "
|
|
63
|
-
"@opentelemetry/sdk-trace-node": "
|
|
64
|
-
"@opentelemetry/sdk-trace-web": "
|
|
65
|
-
"@opentelemetry/semantic-conventions": "
|
|
66
|
-
"effect": "^4.0.0-
|
|
65
|
+
"@opentelemetry/sdk-metrics": ">=2.0.0 <3.0.0",
|
|
66
|
+
"@opentelemetry/sdk-trace-base": ">=2.0.0 <3.0.0",
|
|
67
|
+
"@opentelemetry/sdk-trace-node": ">=2.0.0 <3.0.0",
|
|
68
|
+
"@opentelemetry/sdk-trace-web": ">=2.0.0 <3.0.0",
|
|
69
|
+
"@opentelemetry/semantic-conventions": ">=1.33.0 <2.0.0",
|
|
70
|
+
"effect": "^4.0.0-rc.109"
|
|
67
71
|
},
|
|
68
72
|
"peerDependenciesMeta": {
|
|
69
73
|
"@opentelemetry/api": {
|
|
@@ -111,8 +115,6 @@
|
|
|
111
115
|
"codegen": "effect-utils codegen",
|
|
112
116
|
"build": "tsc -b tsconfig.json && pnpm babel",
|
|
113
117
|
"babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps",
|
|
114
|
-
"check": "tsc -b tsconfig.json"
|
|
115
|
-
"test": "vitest",
|
|
116
|
-
"coverage": "vitest --coverage"
|
|
118
|
+
"check": "tsc -b tsconfig.json"
|
|
117
119
|
}
|
|
118
120
|
}
|
package/src/NodeSdk.ts
CHANGED
|
@@ -74,7 +74,7 @@ export const layerTracerProvider = (
|
|
|
74
74
|
return provider
|
|
75
75
|
}),
|
|
76
76
|
(provider) =>
|
|
77
|
-
Effect.promise(() => provider.forceFlush().
|
|
77
|
+
Effect.promise(() => provider.forceFlush().finally(() => provider.shutdown())).pipe(
|
|
78
78
|
Effect.ignore,
|
|
79
79
|
Effect.interruptible,
|
|
80
80
|
Effect.timeoutOption(config?.shutdownTimeout ?? 3000)
|
|
@@ -164,9 +164,9 @@ export const layer: {
|
|
|
164
164
|
? evaluate as Effect.Effect<Configuration>
|
|
165
165
|
: Effect.sync(evaluate)
|
|
166
166
|
|
|
167
|
-
const
|
|
167
|
+
const ResourceLayer = Resource.layerFromEnv(config.resource && Resource.configToAttributes(config.resource))
|
|
168
168
|
|
|
169
|
-
const
|
|
169
|
+
const TracerLayer = isNonEmpty(config.spanProcessor)
|
|
170
170
|
? Layer.provide(
|
|
171
171
|
Tracer.layer,
|
|
172
172
|
layerTracerProvider(config.spanProcessor, {
|
|
@@ -176,14 +176,14 @@ export const layer: {
|
|
|
176
176
|
)
|
|
177
177
|
: Layer.empty
|
|
178
178
|
|
|
179
|
-
const
|
|
179
|
+
const MetricsLayer = isNonEmpty(config.metricReader)
|
|
180
180
|
? Metrics.layer(constant(config.metricReader), {
|
|
181
181
|
shutdownTimeout: config.shutdownTimeout,
|
|
182
182
|
temporality: config.metricTemporality
|
|
183
183
|
})
|
|
184
184
|
: Layer.empty
|
|
185
185
|
|
|
186
|
-
const
|
|
186
|
+
const LoggerLayer = isNonEmpty(config.logRecordProcessor)
|
|
187
187
|
? Layer.provide(
|
|
188
188
|
Logger.layer({ mergeWithExisting: config.loggerMergeWithExisting }),
|
|
189
189
|
Logger.layerLoggerProvider(config.logRecordProcessor, {
|
|
@@ -193,8 +193,8 @@ export const layer: {
|
|
|
193
193
|
)
|
|
194
194
|
: Layer.empty
|
|
195
195
|
|
|
196
|
-
return Layer.mergeAll(
|
|
197
|
-
Layer.provideMerge(
|
|
196
|
+
return Layer.mergeAll(TracerLayer, MetricsLayer, LoggerLayer).pipe(
|
|
197
|
+
Layer.provideMerge(ResourceLayer)
|
|
198
198
|
)
|
|
199
199
|
})
|
|
200
200
|
)
|
package/src/OtelLogger.ts
CHANGED
|
@@ -21,6 +21,7 @@ import * as Layer from "effect/Layer"
|
|
|
21
21
|
import * as Logger from "effect/Logger"
|
|
22
22
|
import type * as LogLevel from "effect/LogLevel"
|
|
23
23
|
import * as Predicate from "effect/Predicate"
|
|
24
|
+
import * as Rec from "effect/Record"
|
|
24
25
|
import * as References from "effect/References"
|
|
25
26
|
import * as Tracer from "effect/Tracer"
|
|
26
27
|
import { nanosToHrTime, unknownToAttributeValue } from "./internal/attributes.ts"
|
|
@@ -90,6 +91,10 @@ export const make: Effect.Effect<
|
|
|
90
91
|
fiberId: options.fiber.id
|
|
91
92
|
}
|
|
92
93
|
|
|
94
|
+
for (const [key, value] of Object.entries(options.fiber.getRef(References.CurrentLogAnnotations))) {
|
|
95
|
+
Rec.assignProperty(attributes, key, unknownToAttributeValue(value))
|
|
96
|
+
}
|
|
97
|
+
|
|
93
98
|
const span = Context.getOrUndefined(options.fiber.context, Tracer.ParentSpan)
|
|
94
99
|
|
|
95
100
|
if (Predicate.isNotUndefined(span)) {
|
|
@@ -97,9 +102,6 @@ export const make: Effect.Effect<
|
|
|
97
102
|
attributes.traceId = span.traceId
|
|
98
103
|
}
|
|
99
104
|
|
|
100
|
-
for (const [key, value] of Object.entries(options.fiber.getRef(References.CurrentLogAnnotations))) {
|
|
101
|
-
attributes[key] = unknownToAttributeValue(value)
|
|
102
|
-
}
|
|
103
105
|
const now = options.date.getTime()
|
|
104
106
|
for (const [label, startTime] of options.fiber.getRef(References.CurrentLogSpans)) {
|
|
105
107
|
attributes[`logSpan.${label}`] = `${now - startTime}ms`
|
|
@@ -183,7 +185,7 @@ export const layerLoggerProvider = (
|
|
|
183
185
|
})
|
|
184
186
|
),
|
|
185
187
|
(provider) =>
|
|
186
|
-
Effect.promise(() => provider.forceFlush().
|
|
188
|
+
Effect.promise(() => provider.forceFlush().finally(() => provider.shutdown())).pipe(
|
|
187
189
|
Effect.ignore,
|
|
188
190
|
Effect.interruptible,
|
|
189
191
|
Effect.timeoutOption(config?.shutdownTimeout ?? 3000)
|
package/src/OtelMetrics.ts
CHANGED
|
@@ -65,7 +65,7 @@ export const makeProducer = (temporality?: TemporalityPreference): Effect.Effect
|
|
|
65
65
|
/**
|
|
66
66
|
* Registers a metric producer with one or more metric readers.
|
|
67
67
|
*
|
|
68
|
-
* @category
|
|
68
|
+
* @category resource management
|
|
69
69
|
* @since 4.0.0
|
|
70
70
|
*/
|
|
71
71
|
export const registerProducer = (
|
|
@@ -79,7 +79,7 @@ export const registerProducer = (
|
|
|
79
79
|
Effect.sync(() => {
|
|
80
80
|
const reader = metricReader()
|
|
81
81
|
const readers: Array<MetricReader> = Array.isArray(reader) ? reader : [reader] as any
|
|
82
|
-
readers.forEach((reader) => reader.setMetricProducer(self))
|
|
82
|
+
readers.forEach((reader) => reader.setMetricProducer(self instanceof MetricProducerImpl ? self.fork() : self))
|
|
83
83
|
return readers
|
|
84
84
|
}),
|
|
85
85
|
(readers) =>
|
|
@@ -97,29 +97,40 @@ export const registerProducer = (
|
|
|
97
97
|
/**
|
|
98
98
|
* Creates a Layer that registers a metric producer with metric readers.
|
|
99
99
|
*
|
|
100
|
-
* **Example** (
|
|
101
|
-
*
|
|
102
|
-
* ```ts
|
|
103
|
-
* import { OtelMetrics } from "@effect/opentelemetry"
|
|
104
|
-
* import {
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
100
|
+
* **Example** (Exporting delta metrics)
|
|
101
|
+
*
|
|
102
|
+
* ```ts import.meta.vitest
|
|
103
|
+
* import { OtelMetrics, Resource } from "@effect/opentelemetry"
|
|
104
|
+
* import {
|
|
105
|
+
* AggregationTemporality,
|
|
106
|
+
* InMemoryMetricExporter,
|
|
107
|
+
* PeriodicExportingMetricReader
|
|
108
|
+
* } from "@opentelemetry/sdk-metrics"
|
|
109
|
+
* import { Effect, Layer, Metric } from "effect"
|
|
110
|
+
*
|
|
111
|
+
* const exporter = new InMemoryMetricExporter(AggregationTemporality.DELTA)
|
|
112
|
+
* const reader = new PeriodicExportingMetricReader({
|
|
113
|
+
* exporter,
|
|
114
|
+
* exportIntervalMillis: 60_000
|
|
115
|
+
* })
|
|
116
|
+
* const metricsLayer = OtelMetrics.layer(() => reader, { temporality: "delta" }).pipe(
|
|
117
|
+
* Layer.provide(Resource.layerEmpty)
|
|
116
118
|
* )
|
|
117
119
|
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* () =>
|
|
121
|
-
*
|
|
120
|
+
* const program = Effect.gen(function*() {
|
|
121
|
+
* yield* Metric.update(Metric.counter("docs.requests", { incremental: true }), 2)
|
|
122
|
+
* yield* Effect.promise(() => reader.forceFlush())
|
|
123
|
+
*
|
|
124
|
+
* const metric = exporter.getMetrics()[0]?.scopeMetrics[0]?.metrics.find(
|
|
125
|
+
* (metric) => metric.descriptor.name === "docs.requests"
|
|
126
|
+
* )
|
|
127
|
+
* return [metric?.descriptor.name, metric?.aggregationTemporality, metric?.dataPoints[0]?.value] as const
|
|
128
|
+
* }).pipe(
|
|
129
|
+
* Effect.provide(metricsLayer),
|
|
130
|
+
* Effect.provideService(Metric.MetricRegistry, new Map())
|
|
122
131
|
* )
|
|
132
|
+
*
|
|
133
|
+
* await Effect.runPromise(program) // => ["docs.requests", AggregationTemporality.DELTA, 2]
|
|
123
134
|
* ```
|
|
124
135
|
*
|
|
125
136
|
* @category layers
|
package/src/OtelTracer.ts
CHANGED
|
@@ -130,24 +130,20 @@ export const makeExternalSpan = (options: {
|
|
|
130
130
|
readonly traceFlags?: number | undefined
|
|
131
131
|
readonly traceState?: string | Otel.TraceState | undefined
|
|
132
132
|
}): Tracer.ExternalSpan => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
133
|
+
let annotations = Context.empty()
|
|
134
|
+
if (options.traceFlags !== undefined) {
|
|
135
|
+
annotations = Context.add(annotations, OtelTraceFlags, options.traceFlags)
|
|
136
|
+
}
|
|
138
137
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
145
|
-
} else if (options.traceState) {
|
|
146
|
-
next = Context.add(next, OtelTraceState, options.traceState)
|
|
138
|
+
if (typeof options.traceState === "string") {
|
|
139
|
+
try {
|
|
140
|
+
annotations = Context.add(annotations, OtelTraceState, Otel.createTraceState(options.traceState))
|
|
141
|
+
} catch {
|
|
142
|
+
//
|
|
147
143
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
144
|
+
} else if (options.traceState) {
|
|
145
|
+
annotations = Context.add(annotations, OtelTraceState, options.traceState)
|
|
146
|
+
}
|
|
151
147
|
|
|
152
148
|
return {
|
|
153
149
|
_tag: "ExternalSpan",
|
|
@@ -314,7 +310,7 @@ const makeOtelSpan = (span: Tracer.Span, clock: Clock.Clock): Otel.Span => {
|
|
|
314
310
|
return self
|
|
315
311
|
},
|
|
316
312
|
setStatus(status) {
|
|
317
|
-
exit = Otel.SpanStatusCode.ERROR
|
|
313
|
+
exit = status.code === Otel.SpanStatusCode.ERROR
|
|
318
314
|
? Exit.die(status.message ?? "Unknown error")
|
|
319
315
|
: Exit.void
|
|
320
316
|
return self
|
|
@@ -535,18 +531,23 @@ export class OtelSpan implements Tracer.Span {
|
|
|
535
531
|
const isSampled = (traceFlags: Otel.TraceFlags): boolean =>
|
|
536
532
|
(traceFlags & Otel.TraceFlags.SAMPLED) === Otel.TraceFlags.SAMPLED
|
|
537
533
|
|
|
534
|
+
class OtelParentSpanContext extends Context.Service<
|
|
535
|
+
OtelParentSpanContext,
|
|
536
|
+
Otel.SpanContext
|
|
537
|
+
>()("@effect/opentelemetry/Tracer/OtelParentSpanContext") {}
|
|
538
|
+
|
|
538
539
|
const getOtelParent = (
|
|
539
540
|
tracer: Otel.TraceAPI,
|
|
540
541
|
context: Otel.Context,
|
|
541
542
|
annotations: Context.Context<never>
|
|
542
543
|
): Option.Option<Tracer.AnySpan> => {
|
|
543
|
-
const otelParent = tracer.
|
|
544
|
+
const otelParent = tracer.getSpanContext(context)
|
|
544
545
|
if (!otelParent) return Option.none()
|
|
545
546
|
return Option.some(Tracer.externalSpan({
|
|
546
547
|
spanId: otelParent.spanId,
|
|
547
548
|
traceId: otelParent.traceId,
|
|
548
|
-
sampled: (otelParent.traceFlags
|
|
549
|
-
annotations
|
|
549
|
+
sampled: isSampled(otelParent.traceFlags),
|
|
550
|
+
annotations: Context.add(annotations, OtelParentSpanContext, otelParent)
|
|
550
551
|
}))
|
|
551
552
|
}
|
|
552
553
|
|
|
@@ -554,6 +555,17 @@ const makeSpanContext = (
|
|
|
554
555
|
span: Tracer.AnySpan,
|
|
555
556
|
annotations?: Context.Context<never>
|
|
556
557
|
): Otel.SpanContext => {
|
|
558
|
+
const otelParent = Context.getOrUndefined(span.annotations, OtelParentSpanContext)
|
|
559
|
+
if (otelParent !== undefined) {
|
|
560
|
+
if (annotations === undefined) return otelParent
|
|
561
|
+
const traceFlags = extractTraceService(span, annotations, OtelTraceFlags)
|
|
562
|
+
const traceState = extractTraceService(span, annotations, OtelTraceState)
|
|
563
|
+
return {
|
|
564
|
+
...otelParent,
|
|
565
|
+
traceFlags: traceFlags ?? otelParent.traceFlags,
|
|
566
|
+
traceState: traceState ?? otelParent.traceState!
|
|
567
|
+
}
|
|
568
|
+
}
|
|
557
569
|
const traceFlags = makeTraceFlags(span, annotations)
|
|
558
570
|
const traceState = makeTraceState(span, annotations)!
|
|
559
571
|
return ({
|
package/src/Resource.ts
CHANGED
|
@@ -18,6 +18,7 @@ import * as Config from "effect/Config"
|
|
|
18
18
|
import * as Context from "effect/Context"
|
|
19
19
|
import * as Effect from "effect/Effect"
|
|
20
20
|
import * as Layer from "effect/Layer"
|
|
21
|
+
import * as Rec from "effect/Record"
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Service tag for OpenTelemetry metadata attached to emitted telemetry.
|
|
@@ -74,7 +75,7 @@ export const layer = (config: {
|
|
|
74
75
|
* @see {@link layer} for creating a `Resource` layer from explicit metadata
|
|
75
76
|
* @see {@link layerFromEnv} for merging attributes with OpenTelemetry environment variables
|
|
76
77
|
*
|
|
77
|
-
* @category
|
|
78
|
+
* @category converting
|
|
78
79
|
* @since 4.0.0
|
|
79
80
|
*/
|
|
80
81
|
export const configToAttributes = (options: {
|
|
@@ -120,7 +121,7 @@ export const layerFromEnv = (
|
|
|
120
121
|
if (parts.length !== 2) {
|
|
121
122
|
return acc
|
|
122
123
|
}
|
|
123
|
-
acc
|
|
124
|
+
Rec.assignProperty(acc, parts[0].trim(), parts[1].trim())
|
|
124
125
|
return acc
|
|
125
126
|
})
|
|
126
127
|
})
|
|
@@ -128,10 +129,10 @@ export const layerFromEnv = (
|
|
|
128
129
|
if (serviceName._tag === "Some") {
|
|
129
130
|
attributes[OtelSemConv.ATTR_SERVICE_NAME] = serviceName.value
|
|
130
131
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
132
|
+
return Resources.resourceFromAttributes({
|
|
133
|
+
...attributes,
|
|
134
|
+
...additionalAttributes
|
|
135
|
+
})
|
|
135
136
|
}).pipe(Effect.orDie)
|
|
136
137
|
)
|
|
137
138
|
|
package/src/WebSdk.ts
CHANGED
|
@@ -69,8 +69,9 @@ export const layerTracerProvider = (
|
|
|
69
69
|
return provider
|
|
70
70
|
}),
|
|
71
71
|
(provider) =>
|
|
72
|
-
Effect.
|
|
73
|
-
Effect.
|
|
72
|
+
Effect.promise(() => provider.forceFlush()).pipe(
|
|
73
|
+
Effect.ensuring(Effect.promise(() => provider.shutdown())),
|
|
74
|
+
Effect.ignore
|
|
74
75
|
)
|
|
75
76
|
)
|
|
76
77
|
})
|
|
@@ -157,30 +158,30 @@ export const layer: {
|
|
|
157
158
|
? evaluate as Effect.Effect<Configuration>
|
|
158
159
|
: Effect.sync(evaluate)
|
|
159
160
|
|
|
160
|
-
const
|
|
161
|
+
const ResourceLayer = Resource.layer(config.resource)
|
|
161
162
|
|
|
162
|
-
const
|
|
163
|
+
const TracerLayer = isNonEmpty(config.spanProcessor)
|
|
163
164
|
? Layer.provide(
|
|
164
165
|
Tracer.layer,
|
|
165
166
|
layerTracerProvider(config.spanProcessor, config.tracerConfig)
|
|
166
167
|
)
|
|
167
168
|
: Layer.empty
|
|
168
169
|
|
|
169
|
-
const
|
|
170
|
+
const LoggerLayer = isNonEmpty(config.logRecordProcessor)
|
|
170
171
|
? Layer.provide(
|
|
171
172
|
Logger.layer({ mergeWithExisting: config.loggerMergeWithExisting }),
|
|
172
173
|
Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)
|
|
173
174
|
)
|
|
174
175
|
: Layer.empty
|
|
175
176
|
|
|
176
|
-
const
|
|
177
|
+
const MetricsLayer = isNonEmpty(config.metricReader)
|
|
177
178
|
? Metrics.layer(constant(config.metricReader), {
|
|
178
179
|
temporality: config.metricTemporality
|
|
179
180
|
})
|
|
180
181
|
: Layer.empty
|
|
181
182
|
|
|
182
|
-
return Layer.mergeAll(
|
|
183
|
-
Layer.provideMerge(
|
|
183
|
+
return Layer.mergeAll(TracerLayer, MetricsLayer, LoggerLayer).pipe(
|
|
184
|
+
Layer.provideMerge(ResourceLayer)
|
|
184
185
|
)
|
|
185
186
|
})
|
|
186
187
|
)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type * as Otel from "@opentelemetry/api"
|
|
2
2
|
import * as Inspectable from "effect/Inspectable"
|
|
3
|
+
import * as Rec from "effect/Record"
|
|
3
4
|
|
|
4
5
|
const bigint1e9 = BigInt(1_000_000_000)
|
|
5
6
|
|
|
@@ -12,7 +13,7 @@ export const nanosToHrTime = (timestamp: bigint): Otel.HrTime => {
|
|
|
12
13
|
export const recordToAttributes = (record: Record<string, unknown>): Otel.Attributes => {
|
|
13
14
|
const attributes: Otel.Attributes = {}
|
|
14
15
|
for (const [key, value] of Object.entries(record)) {
|
|
15
|
-
attributes
|
|
16
|
+
Rec.assignProperty(attributes, key, unknownToAttributeValue(value))
|
|
16
17
|
}
|
|
17
18
|
return attributes
|
|
18
19
|
}
|
package/src/internal/metrics.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type { InstrumentDescriptor } from "@opentelemetry/sdk-metrics/build/src/
|
|
|
13
13
|
import * as Arr from "effect/Array"
|
|
14
14
|
import type * as Context from "effect/Context"
|
|
15
15
|
import * as Metric from "effect/Metric"
|
|
16
|
+
import * as Rec from "effect/Record"
|
|
16
17
|
import type * as Metrics from "../OtelMetrics.ts"
|
|
17
18
|
|
|
18
19
|
const sdkName = "@effect/opentelemetry/Metrics"
|
|
@@ -64,6 +65,10 @@ export class MetricProducerImpl implements MetricProducer {
|
|
|
64
65
|
this.previousSummaryState = new Map()
|
|
65
66
|
}
|
|
66
67
|
|
|
68
|
+
fork(): MetricProducerImpl {
|
|
69
|
+
return new MetricProducerImpl(this.resource, this.context, this.temporality)
|
|
70
|
+
}
|
|
71
|
+
|
|
67
72
|
startTimeFor(name: string, hrTime: HrTime) {
|
|
68
73
|
if (this.startTimes.has(name)) {
|
|
69
74
|
return this.startTimes.get(name)!
|
|
@@ -94,7 +99,7 @@ export class MetricProducerImpl implements MetricProducer {
|
|
|
94
99
|
const state = snapshot[i]
|
|
95
100
|
const attributes = state.attributes
|
|
96
101
|
? Arr.reduce(Object.entries(state.attributes), {} as Record<string, string>, (acc, [key, value]) => {
|
|
97
|
-
acc
|
|
102
|
+
Rec.assignProperty(acc, key, String(value))
|
|
98
103
|
return acc
|
|
99
104
|
})
|
|
100
105
|
: {}
|