@effect/opentelemetry 4.0.0-beta.8 → 4.0.0-beta.81

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/index.js CHANGED
@@ -1,29 +1,29 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  // @barrel: Auto-generated exports. Do not edit manually.
5
5
  /**
6
- * @since 1.0.0
6
+ * @since 4.0.0
7
7
  */
8
8
  export * as Logger from "./Logger.js";
9
9
  /**
10
- * @since 1.0.0
10
+ * @since 4.0.0
11
11
  */
12
12
  export * as Metrics from "./Metrics.js";
13
13
  /**
14
- * @since 1.0.0
14
+ * @since 4.0.0
15
15
  */
16
16
  export * as NodeSdk from "./NodeSdk.js";
17
17
  /**
18
- * @since 1.0.0
18
+ * @since 4.0.0
19
19
  */
20
20
  export * as Resource from "./Resource.js";
21
21
  /**
22
- * @since 1.0.0
22
+ * @since 4.0.0
23
23
  */
24
24
  export * as Tracer from "./Tracer.js";
25
25
  /**
26
- * @since 1.0.0
26
+ * @since 4.0.0
27
27
  */
28
28
  export * as WebSdk from "./WebSdk.js";
29
29
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,9 @@
1
1
  import * as Inspectable from "effect/Inspectable";
2
+ const bigint1e9 = /*#__PURE__*/BigInt(1_000_000_000);
3
+ /** @internal */
4
+ export const nanosToHrTime = timestamp => {
5
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
6
+ };
2
7
  /** @internal */
3
8
  export const recordToAttributes = record => {
4
9
  const attributes = {};
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.js","names":["Inspectable","recordToAttributes","record","attributes","key","value","Object","entries","unknownToAttributeValue","toString","toStringUnknown"],"sources":["../../src/internal/attributes.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD;AACA,OAAO,MAAMC,kBAAkB,GAAIC,MAA+B,IAAqB;EACrF,MAAMC,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,MAAM,CAAC,EAAE;IACjDC,UAAU,CAACC,GAAG,CAAC,GAAGI,uBAAuB,CAACH,KAAK,CAAC;EAClD;EACA,OAAOF,UAAU;AACnB,CAAC;AAED;AACA,OAAO,MAAMK,uBAAuB,GAAIH,KAAc,IAAyB;EAC7E,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACxF,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAOA,KAAK,CAACI,QAAQ,EAAE;EACzB;EACA,OAAOT,WAAW,CAACU,eAAe,CAACL,KAAK,CAAC;AAC3C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"attributes.js","names":["Inspectable","bigint1e9","BigInt","nanosToHrTime","timestamp","Number","recordToAttributes","record","attributes","key","value","Object","entries","unknownToAttributeValue","toString","toStringUnknown"],"sources":["../../src/internal/attributes.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD,MAAMC,SAAS,gBAAGC,MAAM,CAAC,aAAa,CAAC;AAEvC;AACA,OAAO,MAAMC,aAAa,GAAIC,SAAiB,IAAiB;EAC9D,OAAO,CAACC,MAAM,CAACD,SAAS,GAAGH,SAAS,CAAC,EAAEI,MAAM,CAACD,SAAS,GAAGH,SAAS,CAAC,CAAC;AACvE,CAAC;AAED;AACA,OAAO,MAAMK,kBAAkB,GAAIC,MAA+B,IAAqB;EACrF,MAAMC,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,MAAM,CAAC,EAAE;IACjDC,UAAU,CAACC,GAAG,CAAC,GAAGI,uBAAuB,CAACH,KAAK,CAAC;EAClD;EACA,OAAOF,UAAU;AACnB,CAAC;AAED;AACA,OAAO,MAAMK,uBAAuB,GAAIH,KAAc,IAAyB;EAC7E,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACxF,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAOA,KAAK,CAACI,QAAQ,EAAE;EACzB;EACA,OAAOd,WAAW,CAACe,eAAe,CAACL,KAAK,CAAC;AAC3C,CAAC","ignoreList":[]}
@@ -6,7 +6,7 @@ const sdkName = "@effect/opentelemetry/Metrics";
6
6
  /** @internal */
7
7
  export class MetricProducerImpl {
8
8
  resource;
9
- services;
9
+ context;
10
10
  temporality;
11
11
  startTimes;
12
12
  startTimeNanos;
@@ -15,9 +15,9 @@ export class MetricProducerImpl {
15
15
  previousHistogramState;
16
16
  previousFrequencyState;
17
17
  previousSummaryState;
18
- constructor(resource, services, temporality = "cumulative") {
18
+ constructor(resource, context, temporality = "cumulative") {
19
19
  this.resource = resource;
20
- this.services = services;
20
+ this.context = context;
21
21
  this.temporality = temporality;
22
22
  this.startTimes = new Map();
23
23
  this.startTimeNanos = currentHrTime();
@@ -35,7 +35,7 @@ export class MetricProducerImpl {
35
35
  return hrTime;
36
36
  }
37
37
  collect(_options) {
38
- const snapshot = Metric.snapshotUnsafe(this.services);
38
+ const snapshot = Metric.snapshotUnsafe(this.context);
39
39
  const hrTimeNow = currentHrTime();
40
40
  const metricData = [];
41
41
  const metricDataByName = new Map();
@@ -64,7 +64,7 @@ export class MetricProducerImpl {
64
64
  if (typeof currentCount === "bigint" && typeof previousCount === "bigint") {
65
65
  reportValue = currentCount - previousCount;
66
66
  // Handle reset: if current < previous, report current value
67
- if (reportValue < 0n) {
67
+ if (reportValue < BigInt(0)) {
68
68
  reportValue = currentCount;
69
69
  }
70
70
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","names":["ValueType","AggregationTemporality","DataPointType","InstrumentType","Arr","Metric","sdkName","MetricProducerImpl","resource","services","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","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":["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":"AAAA,SAAsBA,SAAS,QAAQ,oBAAoB;AAU3D,SAASC,sBAAsB,EAAEC,aAAa,EAAEC,cAAc,QAAQ,4BAA4B;AAElG,OAAO,KAAKC,GAAG,MAAM,cAAc;AAEnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,MAAMC,OAAO,GAAG,+BAA+B;AAmB/C;AACA,OAAM,MAAOC,kBAAkB;EAC7BC,QAAQ;EACRC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,cAAc;EACdC,uBAAuB;EACvBC,oBAAoB;EACpBC,sBAAsB;EACtBC,sBAAsB;EACtBC,oBAAoB;EAEpBC,YACEV,QAA4B,EAC5BC,OAA+B,EAC/BC,WAAA,GAA6C,YAAY;IAEzD,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,UAAU,GAAG,IAAIQ,GAAG,EAAE;IAC3B,IAAI,CAACP,cAAc,GAAGQ,aAAa,EAAE;IACrC,IAAI,CAACP,uBAAuB,GAAG,IAAI,CAACD,cAAc;IAClD,IAAI,CAACE,oBAAoB,GAAG,IAAIK,GAAG,EAAE;IACrC,IAAI,CAACJ,sBAAsB,GAAG,IAAII,GAAG,EAAE;IACvC,IAAI,CAACH,sBAAsB,GAAG,IAAIG,GAAG,EAAE;IACvC,IAAI,CAACF,oBAAoB,GAAG,IAAIE,GAAG,EAAE;EACvC;EAEAE,YAAYA,CAACC,IAAY,EAAEC,MAAc;IACvC,IAAI,IAAI,CAACZ,UAAU,CAACa,GAAG,CAACF,IAAI,CAAC,EAAE;MAC7B,OAAO,IAAI,CAACX,UAAU,CAACc,GAAG,CAACH,IAAI,CAAE;IACnC;IACA,IAAI,CAACX,UAAU,CAACe,GAAG,CAACJ,IAAI,EAAEC,MAAM,CAAC;IACjC,OAAOA,MAAM;EACf;EAEAI,OAAOA,CAACC,QAA+B;IACrC,MAAMC,QAAQ,GAAGxB,MAAM,CAACyB,cAAc,CAAC,IAAI,CAACrB,OAAO,CAAC;IACpD,MAAMsB,SAAS,GAAGX,aAAa,EAAE;IACjC,MAAMY,UAAU,GAAsB,EAAE;IACxC,MAAMC,gBAAgB,GAAG,IAAId,GAAG,EAAsB;IACtD,MAAMe,aAAa,GAAIC,IAAwC,IAAI;MACjEH,UAAU,CAACI,IAAI,CAACD,IAAI,CAAC;MACrBF,gBAAgB,CAACP,GAAG,CAACS,IAAI,CAACE,UAAU,CAACf,IAAI,EAAEa,IAAI,CAAC;IAClD,CAAC;IAED,MAAMG,OAAO,GAAG,IAAI,CAAC5B,WAAW,KAAK,OAAO;IAC5C,MAAM6B,sBAAsB,GAAGD,OAAO,GAClCrC,sBAAsB,CAACuC,KAAK,GAC5BvC,sBAAsB,CAACwC,UAAU;IACrC,MAAMC,iBAAiB,GAAGJ,OAAO,GAC7B,IAAI,CAACzB,uBAAuB,GAC5B,IAAI,CAACD,cAAc;IAEvB,KAAK,IAAI+B,CAAC,GAAG,CAAC,EAAEC,GAAG,GAAGf,QAAQ,CAACgB,MAAM,EAAEF,CAAC,GAAGC,GAAG,EAAED,CAAC,EAAE,EAAE;MACnD,MAAMG,KAAK,GAAGjB,QAAQ,CAACc,CAAC,CAAC;MACzB,MAAMI,UAAU,GAAGD,KAAK,CAACC,UAAU,GAC/B3C,GAAG,CAAC4C,MAAM,CAACC,MAAM,CAACC,OAAO,CAACJ,KAAK,CAACC,UAAU,CAAC,EAAE,EAA4B,EAAE,CAACI,GAAG,EAAE,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAI;QACjGF,GAAG,CAACC,GAAG,CAAC,GAAGE,MAAM,CAACD,KAAK,CAAC;QACxB,OAAOF,GAAG;MACZ,CAAC,CAAC,GACA,EAAE;MACN,MAAMI,SAAS,GAAGC,aAAa,CAACV,KAAK,CAACW,EAAE,EAAEX,KAAK,CAACC,UAAU,CAAC;MAE3D,QAAQD,KAAK,CAACY,IAAI;QAChB,KAAK,SAAS;UAAE;YACd,MAAMC,YAAY,GAAGb,KAAK,CAACA,KAAK,CAACc,KAAK;YACtC,IAAIC,WAAW,GAAoBF,YAAY;YAE/C,IAAIrB,OAAO,EAAE;cACX,MAAMwB,aAAa,GAAG,IAAI,CAAChD,oBAAoB,CAACW,GAAG,CAAC8B,SAAS,CAAC;cAC9D,IAAIO,aAAa,KAAKC,SAAS,EAAE;gBAC/B,IAAI,OAAOJ,YAAY,KAAK,QAAQ,IAAI,OAAOG,aAAa,KAAK,QAAQ,EAAE;kBACzED,WAAW,GAAGF,YAAY,GAAGG,aAAa;kBAC1C;kBACA,IAAID,WAAW,GAAGG,MAAM,CAAC,CAAC,CAAC,EAAE;oBAC3BH,WAAW,GAAGF,YAAY;kBAC5B;gBACF,CAAC,MAAM;kBACL,MAAMM,IAAI,GAAGC,MAAM,CAACP,YAAY,CAAC;kBACjC,MAAMQ,IAAI,GAAGD,MAAM,CAACJ,aAAa,CAAC;kBAClCD,WAAW,GAAGI,IAAI,GAAGE,IAAI;kBACzB;kBACA,IAAIN,WAAW,GAAG,CAAC,EAAE;oBACnBA,WAAW,GAAGI,IAAI;kBACpB;gBACF;cACF;cACA,IAAI,CAACnD,oBAAoB,CAACY,GAAG,CAAC6B,SAAS,EAAEI,YAAY,CAAC;YACxD;YAEA,MAAMtB,UAAU,GAAG+B,mBAAmB,CAACtB,KAAK,EAAEC,UAAU,CAAC;YACzD,MAAMsB,SAAS,GAAG,IAAI,CAAChD,YAAY,CAACgB,UAAU,CAACf,IAAI,EAAEoB,iBAAiB,CAAC;YACvE,MAAM4B,SAAS,GAAsB;cACnCD,SAAS;cACTE,OAAO,EAAExC,SAAS;cAClBgB,UAAU;cACVM,KAAK,EAAEa,MAAM,CAACL,WAAW;aAC1B;YACD,IAAI5B,gBAAgB,CAACT,GAAG,CAACsB,KAAK,CAACW,EAAE,CAAC,EAAE;cAClCxB,gBAAgB,CAACR,GAAG,CAACqB,KAAK,CAACW,EAAE,CAAE,CAACe,UAAU,CAACpC,IAAI,CAACkC,SAAgB,CAAC;YACnE,CAAC,MAAM;cACLpC,aAAa,CAAC;gBACZuC,aAAa,EAAEvE,aAAa,CAACwE,GAAG;gBAChCrC,UAAU;gBACVsC,WAAW,EAAE7B,KAAK,CAACA,KAAK,CAAC8B,WAAW;gBACpCrC,sBAAsB;gBACtBiC,UAAU,EAAE,CAACF,SAAS;eACvB,CAAC;YACJ;YACA;UACF;QACA,KAAK,OAAO;UAAE;YACZ;YACA,MAAMjC,UAAU,GAAG+B,mBAAmB,CAACtB,KAAK,EAAEC,UAAU,CAAC;YACzD,MAAMsB,SAAS,GAAG,IAAI,CAAChD,YAAY,CAACgB,UAAU,CAACf,IAAI,EAAE,IAAI,CAACV,cAAc,CAAC;YACzE,MAAM0D,SAAS,GAAsB;cACnCD,SAAS;cACTE,OAAO,EAAExC,SAAS;cAClBgB,UAAU;cACVM,KAAK,EAAEa,MAAM,CAACpB,KAAK,CAACA,KAAK,CAACO,KAAK;aAChC;YACD,IAAIpB,gBAAgB,CAACT,GAAG,CAACsB,KAAK,CAACW,EAAE,CAAC,EAAE;cAClCxB,gBAAgB,CAACR,GAAG,CAACqB,KAAK,CAACW,EAAE,CAAE,CAACe,UAAU,CAACpC,IAAI,CAACkC,SAAgB,CAAC;YACnE,CAAC,MAAM;cACLpC,aAAa,CAAC;gBACZuC,aAAa,EAAEvE,aAAa,CAAC2E,KAAK;gBAClCxC,UAAU;gBACVE,sBAAsB,EAAEtC,sBAAsB,CAACwC,UAAU;gBACzD+B,UAAU,EAAE,CAACF,SAAS;eACvB,CAAC;YACJ;YACA;UACF;QACA,KAAK,WAAW;UAAE;YAChB,MAAMQ,IAAI,GAAGhC,KAAK,CAACA,KAAK,CAACiC,OAAO,CAAClC,MAAM;YACvC,MAAMmC,cAAc,GAAG;cACrBC,UAAU,EAAE7E,GAAG,CAAC8E,QAAQ,CAACJ,IAAI,GAAG,CAAC,CAAkB;cACnDK,MAAM,EAAE/E,GAAG,CAAC8E,QAAQ,CAACJ,IAAI;aAC1B;YACD,IAAIM,GAAG,GAAG,CAAC;YACX,IAAIjB,IAAI,GAAG,CAAC;YACZ,KAAK,MAAM,CAACkB,QAAQ,EAAEhC,KAAK,CAAC,IAAIP,KAAK,CAACA,KAAK,CAACiC,OAAO,EAAE;cACnD,IAAIK,GAAG,GAAGN,IAAI,GAAG,CAAC,EAAE;gBAClBE,cAAc,CAACC,UAAU,CAACG,GAAG,CAAC,GAAGC,QAAQ;cAC3C;cACAL,cAAc,CAACG,MAAM,CAACC,GAAG,CAAC,GAAG/B,KAAK,GAAGc,IAAI;cACzCA,IAAI,GAAGd,KAAK;cACZ+B,GAAG,EAAE;YACP;YAEA,IAAIE,WAAW,GAAGxC,KAAK,CAACA,KAAK,CAACc,KAAK;YACnC,IAAI2B,SAAS,GAAGzC,KAAK,CAACA,KAAK,CAAC0C,GAAG;YAC/B,IAAIC,kBAAkB,GAAGT,cAAc,CAACG,MAAM;YAC9C,MAAMO,SAAS,GAAG5C,KAAK,CAACA,KAAK,CAAC6C,GAAG;YACjC,MAAMC,SAAS,GAAG9C,KAAK,CAACA,KAAK,CAAC+C,GAAG;YAEjC,IAAIvD,OAAO,EAAE;cACX,MAAMwD,aAAa,GAAG,IAAI,CAAC/E,sBAAsB,CAACU,GAAG,CAAC8B,SAAS,CAAC;cAChE,IAAIuC,aAAa,KAAK/B,SAAS,EAAE;gBAC/BuB,WAAW,GAAGxC,KAAK,CAACA,KAAK,CAACc,KAAK,GAAGkC,aAAa,CAAClC,KAAK;gBACrD2B,SAAS,GAAGzC,KAAK,CAACA,KAAK,CAAC0C,GAAG,GAAGM,aAAa,CAACN,GAAG;gBAC/CC,kBAAkB,GAAGT,cAAc,CAACG,MAAM,CAACY,GAAG,CAAC,CAACC,CAAC,EAAErD,CAAC,KAClDsD,IAAI,CAACJ,GAAG,CAAC,CAAC,EAAEG,CAAC,IAAIF,aAAa,CAACI,YAAY,CAACvD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtD;cACH;cACA,IAAI,CAAC5B,sBAAsB,CAACW,GAAG,CAAC6B,SAAS,EAAE;gBACzCK,KAAK,EAAEd,KAAK,CAACA,KAAK,CAACc,KAAK;gBACxB4B,GAAG,EAAE1C,KAAK,CAACA,KAAK,CAAC0C,GAAG;gBACpBU,YAAY,EAAElB,cAAc,CAACG,MAAM,CAACgB,KAAK,EAAE;gBAC3CR,GAAG,EAAE7C,KAAK,CAACA,KAAK,CAAC6C,GAAG;gBACpBE,GAAG,EAAE/C,KAAK,CAACA,KAAK,CAAC+C;eAClB,CAAC;YACJ;YAEA,MAAMxD,UAAU,GAAG+B,mBAAmB,CAACtB,KAAK,EAAEC,UAAU,CAAC;YACzD,MAAMsB,SAAS,GAAG,IAAI,CAAChD,YAAY,CAACgB,UAAU,CAACf,IAAI,EAAEoB,iBAAiB,CAAC;YACvE,MAAM4B,SAAS,GAAyB;cACtCD,SAAS;cACTE,OAAO,EAAExC,SAAS;cAClBgB,UAAU;cACVM,KAAK,EAAE;gBACL0B,OAAO,EAAE;kBACPE,UAAU,EAAED,cAAc,CAACC,UAAU;kBACrCE,MAAM,EAAEM;iBACT;gBACD7B,KAAK,EAAE0B,WAAW;gBAClBK,GAAG,EAAED,SAAS;gBACdG,GAAG,EAAED,SAAS;gBACdJ,GAAG,EAAED;;aAER;YAED,IAAItD,gBAAgB,CAACT,GAAG,CAACsB,KAAK,CAACW,EAAE,CAAC,EAAE;cAClCxB,gBAAgB,CAACR,GAAG,CAACqB,KAAK,CAACW,EAAE,CAAE,CAACe,UAAU,CAACpC,IAAI,CAACkC,SAAgB,CAAC;YACnE,CAAC,MAAM;cACLpC,aAAa,CAAC;gBACZuC,aAAa,EAAEvE,aAAa,CAACkG,SAAS;gBACtC/D,UAAU;gBACVE,sBAAsB;gBACtBiC,UAAU,EAAE,CAACF,SAAS;eACvB,CAAC;YACJ;YACA;UACF;QACA,KAAK,WAAW;UAAE;YAChB,MAAME,UAAU,GAA6B,EAAE;YAC/C,MAAM6B,kBAAkB,GAAG,IAAIlF,GAAG,EAAkB;YAEpD,KAAK,MAAM,CAACmF,OAAO,EAAEjD,KAAK,CAAC,IAAIP,KAAK,CAACA,KAAK,CAACyD,WAAW,EAAE;cACtDF,kBAAkB,CAAC3E,GAAG,CAAC4E,OAAO,EAAEjD,KAAK,CAAC;cACtC,IAAIQ,WAAW,GAAGR,KAAK;cAEvB,IAAIf,OAAO,EAAE;gBACX,MAAMkE,mBAAmB,GAAG,IAAI,CAACxF,sBAAsB,CAACS,GAAG,CAAC8B,SAAS,CAAC;gBACtE,IAAIiD,mBAAmB,KAAKzC,SAAS,EAAE;kBACrC,MAAM0C,aAAa,GAAGD,mBAAmB,CAAC/E,GAAG,CAAC6E,OAAO,CAAC,IAAI,CAAC;kBAC3DzC,WAAW,GAAGoC,IAAI,CAACJ,GAAG,CAAC,CAAC,EAAExC,KAAK,GAAGoD,aAAa,CAAC;gBAClD;cACF;cAEA,MAAMpE,UAAU,GAAG+B,mBAAmB,CAACtB,KAAK,EAAEC,UAAU,CAAC;cACzD,MAAMsB,SAAS,GAAG,IAAI,CAAChD,YAAY,CAACgB,UAAU,CAACf,IAAI,EAAEoB,iBAAiB,CAAC;cACvE8B,UAAU,CAACpC,IAAI,CAAC;gBACdiC,SAAS;gBACTE,OAAO,EAAExC,SAAS;gBAClBgB,UAAU,EAAE;kBACV,GAAGA,UAAU;kBACbK,GAAG,EAAEkD;iBACN;gBACDjD,KAAK,EAAEQ;eACR,CAAC;YACJ;YAEA,IAAIvB,OAAO,EAAE;cACX,IAAI,CAACtB,sBAAsB,CAACU,GAAG,CAAC6B,SAAS,EAAE8C,kBAAkB,CAAC;YAChE;YAEA,IAAIpE,gBAAgB,CAACT,GAAG,CAACsB,KAAK,CAACW,EAAE,CAAC,EAAE;cAClC;cACAxB,gBAAgB,CAACR,GAAG,CAACqB,KAAK,CAACW,EAAE,CAAE,CAACe,UAAU,CAACpC,IAAI,CAAC,GAAGoC,UAAiB,CAAC;YACvE,CAAC,MAAM;cACL,MAAMnC,UAAU,GAAG+B,mBAAmB,CAACtB,KAAK,EAAEC,UAAU,CAAC;cACzDb,aAAa,CAAC;gBACZuC,aAAa,EAAEvE,aAAa,CAACwE,GAAG;gBAChCrC,UAAU;gBACVE,sBAAsB;gBACtBoC,WAAW,EAAE,IAAI;gBACjBH;eACD,CAAC;YACJ;YACA;UACF;QACA,KAAK,SAAS;UAAE;YACd;YACA,MAAMA,UAAU,GAA6B,CAAC;cAC5CH,SAAS,EAAE3B,iBAAiB;cAC5B6B,OAAO,EAAExC,SAAS;cAClBgB,UAAU,EAAE;gBAAE,GAAGA,UAAU;gBAAE2D,QAAQ,EAAE;cAAK,CAAE;cAC9CrD,KAAK,EAAEP,KAAK,CAACA,KAAK,CAAC6C;aACpB,CAAC;YACF,KAAK,MAAM,CAACe,QAAQ,EAAErD,KAAK,CAAC,IAAIP,KAAK,CAACA,KAAK,CAAC6D,SAAS,EAAE;cACrDnC,UAAU,CAACpC,IAAI,CAAC;gBACdiC,SAAS,EAAE3B,iBAAiB;gBAC5B6B,OAAO,EAAExC,SAAS;gBAClBgB,UAAU,EAAE;kBAAE,GAAGA,UAAU;kBAAE2D,QAAQ,EAAEA,QAAQ,CAACE,QAAQ;gBAAE,CAAE;gBAC5DvD,KAAK,EAAEA,KAAK,IAAI;eACjB,CAAC;YACJ;YACAmB,UAAU,CAACpC,IAAI,CAAC;cACdiC,SAAS,EAAE3B,iBAAiB;cAC5B6B,OAAO,EAAExC,SAAS;cAClBgB,UAAU,EAAE;gBAAE,GAAGA,UAAU;gBAAE2D,QAAQ,EAAE;cAAK,CAAE;cAC9CrD,KAAK,EAAEP,KAAK,CAACA,KAAK,CAAC+C;aACpB,CAAC;YAEF,IAAIP,WAAW,GAAGxC,KAAK,CAACA,KAAK,CAACc,KAAK;YACnC,IAAI2B,SAAS,GAAGzC,KAAK,CAACA,KAAK,CAAC0C,GAAG;YAE/B,IAAIlD,OAAO,EAAE;cACX,MAAMwD,aAAa,GAAG,IAAI,CAAC7E,oBAAoB,CAACQ,GAAG,CAAC8B,SAAS,CAAC;cAC9D,IAAIuC,aAAa,KAAK/B,SAAS,EAAE;gBAC/BuB,WAAW,GAAGxC,KAAK,CAACA,KAAK,CAACc,KAAK,GAAGkC,aAAa,CAAClC,KAAK;gBACrD2B,SAAS,GAAGzC,KAAK,CAACA,KAAK,CAAC0C,GAAG,GAAGM,aAAa,CAACN,GAAG;cACjD;cACA,IAAI,CAACvE,oBAAoB,CAACS,GAAG,CAAC6B,SAAS,EAAE;gBACvCK,KAAK,EAAEd,KAAK,CAACA,KAAK,CAACc,KAAK;gBACxB4B,GAAG,EAAE1C,KAAK,CAACA,KAAK,CAAC0C;eAClB,CAAC;YACJ;YAEA,MAAMqB,cAAc,GAAsB;cACxCxC,SAAS,EAAE3B,iBAAiB;cAC5B6B,OAAO,EAAExC,SAAS;cAClBgB,UAAU;cACVM,KAAK,EAAEiC;aACR;YACD,MAAMwB,YAAY,GAAsB;cACtCzC,SAAS,EAAE3B,iBAAiB;cAC5B6B,OAAO,EAAExC,SAAS;cAClBgB,UAAU;cACVM,KAAK,EAAEkC;aACR;YAED,IAAItD,gBAAgB,CAACT,GAAG,CAAC,GAAGsB,KAAK,CAACW,EAAE,YAAY,CAAC,EAAE;cACjD;cACAxB,gBAAgB,CAACR,GAAG,CAAC,GAAGqB,KAAK,CAACW,EAAE,YAAY,CAAE,CAACe,UAAU,CAACpC,IAAI,CAAC,GAAGoC,UAAiB,CAAC;cACpFvC,gBAAgB,CAACR,GAAG,CAAC,GAAGqB,KAAK,CAACW,EAAE,QAAQ,CAAE,CAACe,UAAU,CAACpC,IAAI,CAACyE,cAAqB,CAAC;cACjF5E,gBAAgB,CAACR,GAAG,CAAC,GAAGqB,KAAK,CAACW,EAAE,MAAM,CAAE,CAACe,UAAU,CAACpC,IAAI,CAAC0E,YAAmB,CAAC;YAC/E,CAAC,MAAM;cACL,MAAMzE,UAAU,GAAG+B,mBAAmB,CAACtB,KAAK,EAAEC,UAAU,CAAC;cACzDb,aAAa,CAAC;gBACZuC,aAAa,EAAEvE,aAAa,CAACwE,GAAG;gBAChCrC,UAAU,EAAE;kBACV,GAAGA,UAAU;kBACbf,IAAI,EAAE,GAAGe,UAAU,CAACf,IAAI;iBACzB;gBACDiB,sBAAsB;gBACtBoC,WAAW,EAAE,KAAK;gBAClBH;eACD,CAAC;cACFtC,aAAa,CAAC;gBACZuC,aAAa,EAAEvE,aAAa,CAACwE,GAAG;gBAChCrC,UAAU,EAAE;kBACVf,IAAI,EAAE,GAAGwB,KAAK,CAACW,EAAE,QAAQ;kBACzBsD,WAAW,EAAEjE,KAAK,CAACiE,WAAW,IAAI,EAAE;kBACpCC,IAAI,EAAE,GAAG;kBACTtD,IAAI,EAAEvD,cAAc,CAAC8G,OAAO;kBAC5BC,SAAS,EAAElH,SAAS,CAACmH,GAAG;kBACxBC,MAAM,EAAE;iBACT;gBACD7E,sBAAsB;gBACtBoC,WAAW,EAAE,IAAI;gBACjBH,UAAU,EAAE,CAACqC,cAAc;eAC5B,CAAC;cACF3E,aAAa,CAAC;gBACZuC,aAAa,EAAEvE,aAAa,CAACwE,GAAG;gBAChCrC,UAAU,EAAE;kBACVf,IAAI,EAAE,GAAGwB,KAAK,CAACW,EAAE,MAAM;kBACvBsD,WAAW,EAAEjE,KAAK,CAACiE,WAAW,IAAI,EAAE;kBACpCC,IAAI,EAAE,GAAG;kBACTtD,IAAI,EAAEvD,cAAc,CAAC8G,OAAO;kBAC5BC,SAAS,EAAElH,SAAS,CAACqH,MAAM;kBAC3BD,MAAM,EAAE;iBACT;gBACD7E,sBAAsB;gBACtBoC,WAAW,EAAE,IAAI;gBACjBH,UAAU,EAAE,CAACsC,YAAY;eAC1B,CAAC;YACJ;YACA;UACF;MACF;IACF;IAEA;IACA,IAAIxE,OAAO,EAAE;MACX,IAAI,CAACzB,uBAAuB,GAAGkB,SAAS;IAC1C;IAEA,OAAOuF,OAAO,CAACC,OAAO,CAAC;MACrBC,eAAe,EAAE;QACfhH,QAAQ,EAAE,IAAI,CAACA,QAAQ;QACvBiH,YAAY,EAAE,CAAC;UACbC,KAAK,EAAE;YAAEpG,IAAI,EAAEhB;UAAO,CAAE;UACxBqH,OAAO,EAAE3F;SACV;OACF;MACD4F,MAAM,EAAE;KACT,CAAC;EACJ;;AAGF;AACA,MAAMpE,aAAa,GAAGA,CAACC,EAAU,EAAEV,UAAkD,KAAY;EAC/F,IAAIA,UAAU,KAAKgB,SAAS,IAAId,MAAM,CAAC4E,IAAI,CAAC9E,UAAU,CAAC,CAACF,MAAM,KAAK,CAAC,EAAE;IACpE,OAAOY,EAAE;EACX;EACA,MAAMqE,aAAa,GAAG7E,MAAM,CAACC,OAAO,CAACH,UAAU,CAAC,CAACgF,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAAC,CAAC,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACzF,OAAO,GAAGxE,EAAE,IAAI0E,IAAI,CAACC,SAAS,CAACN,aAAa,CAAC,EAAE;AACjD,CAAC;AAED,MAAM1G,aAAa,GAAGA,CAAA,KAAa;EACjC,MAAMiH,GAAG,GAAGC,IAAI,CAACD,GAAG,EAAE;EACtB,OAAO,CAACpC,IAAI,CAACsC,KAAK,CAACF,GAAG,GAAG,IAAI,CAAC,EAAGA,GAAG,GAAG,IAAI,GAAI,OAAO,CAAC;AACzD,CAAC;AAED,MAAMjE,mBAAmB,GAAGA,CAC1BtB,KAA6B,EAC7BC,UAAkC,KACV;EACxB,MAAMiE,IAAI,GAAGjE,UAAU,CAACiE,IAAI,IAAIjE,UAAU,CAACyF,SAAS,IAAI,GAAG;EAC3D,OAAO;IACLlH,IAAI,EAAEwB,KAAK,CAACW,EAAE;IACdsD,WAAW,EAAEjE,KAAK,CAACiE,WAAW,IAAI,EAAE;IACpCC,IAAI;IACJtD,IAAI,EAAE+E,0BAA0B,CAAC3F,KAAK,CAAC;IACvCoE,SAAS,EAAEwB,kBAAkB,CAAC5F,KAAK,CAAC;IACpCsE,MAAM,EAAE;GACT;AACH,CAAC;AAED,MAAMqB,0BAA0B,GAAI3F,KAA6B,IAAoB;EACnF,QAAQA,KAAK,CAACY,IAAI;IAChB,KAAK,WAAW;MACd,OAAOvD,cAAc,CAACiG,SAAS;IACjC,KAAK,OAAO;MACV,OAAOjG,cAAc,CAACwI,gBAAgB;IACxC,KAAK,WAAW;MACd,OAAOxI,cAAc,CAAC8G,OAAO;IAC/B,KAAK,SAAS;MACZ,OAAOnE,KAAK,CAACA,KAAK,CAAC8B,WAAW,GAAGzE,cAAc,CAAC8G,OAAO,GAAG9G,cAAc,CAACyI,eAAe;IAC1F,KAAK,SAAS;MACZ,OAAOzI,cAAc,CAAC8G,OAAO;EACjC;AACF,CAAC;AAED,MAAMyB,kBAAkB,GAAI5F,KAA6B,IAAe;EACtE,IAAIA,KAAK,CAACY,IAAI,KAAK,SAAS,EAAE;IAC5B,OAAO,OAAOZ,KAAK,CAACA,KAAK,CAACc,KAAK,KAAK,QAAQ,GAAG5D,SAAS,CAACmH,GAAG,GAAGnH,SAAS,CAACqH,MAAM;EACjF,CAAC,MAAM,IAAIvE,KAAK,CAACY,IAAI,KAAK,OAAO,EAAE;IACjC,OAAO,OAAOZ,KAAK,CAACA,KAAK,CAACO,KAAK,KAAK,QAAQ,GAAGrD,SAAS,CAACmH,GAAG,GAAGnH,SAAS,CAACqH,MAAM;EACjF;EACA,OAAOrH,SAAS,CAACqH,MAAM;AACzB,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-beta.8",
4
+ "version": "4.0.0-beta.81",
5
5
  "license": "MIT",
6
6
  "description": "OpenTelemetry integration for Effect",
7
7
  "homepage": "https://effect.website",
@@ -55,6 +55,7 @@
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@opentelemetry/api": "^1.9",
58
+ "@opentelemetry/api-logs": ">=0.203.0 <0.300.0",
58
59
  "@opentelemetry/resources": "^2.0.0",
59
60
  "@opentelemetry/sdk-logs": ">=0.203.0 <0.300.0",
60
61
  "@opentelemetry/sdk-metrics": "^2.0.0",
@@ -62,7 +63,7 @@
62
63
  "@opentelemetry/sdk-trace-node": "^2.0.0",
63
64
  "@opentelemetry/sdk-trace-web": "^2.0.0",
64
65
  "@opentelemetry/semantic-conventions": "^1.33.0",
65
- "effect": "^4.0.0-beta.8"
66
+ "effect": "^4.0.0-beta.81"
66
67
  },
67
68
  "peerDependenciesMeta": {
68
69
  "@opentelemetry/api": {
@@ -85,22 +86,26 @@
85
86
  },
86
87
  "@opentelemetry/sdk-logs": {
87
88
  "optional": true
89
+ },
90
+ "@opentelemetry/api-logs": {
91
+ "optional": true
88
92
  }
89
93
  },
90
94
  "devDependencies": {
91
- "@opentelemetry/api": "^1.9.0",
92
- "@opentelemetry/context-async-hooks": "^2.5.0",
93
- "@opentelemetry/exporter-metrics-otlp-http": "0.211.0",
94
- "@opentelemetry/exporter-prometheus": "^0.211.0",
95
- "@opentelemetry/exporter-trace-otlp-http": "^0.211.0",
96
- "@opentelemetry/otlp-exporter-base": "^0.211.0",
97
- "@opentelemetry/resources": "^2.5.0",
98
- "@opentelemetry/sdk-logs": "^0.211.0",
99
- "@opentelemetry/sdk-metrics": "^2.5.0",
100
- "@opentelemetry/sdk-trace-base": "^2.5.0",
101
- "@opentelemetry/sdk-trace-node": "^2.5.0",
102
- "@opentelemetry/sdk-trace-web": "^2.5.0",
103
- "@opentelemetry/semantic-conventions": "^1.39.0"
95
+ "@opentelemetry/api": "^1.9.1",
96
+ "@opentelemetry/api-logs": "^0.217.0",
97
+ "@opentelemetry/context-async-hooks": "^2.7.1",
98
+ "@opentelemetry/exporter-metrics-otlp-http": "0.217.0",
99
+ "@opentelemetry/exporter-prometheus": "^0.217.0",
100
+ "@opentelemetry/exporter-trace-otlp-http": "^0.217.0",
101
+ "@opentelemetry/otlp-exporter-base": "^0.217.0",
102
+ "@opentelemetry/resources": "^2.7.1",
103
+ "@opentelemetry/sdk-logs": "^0.217.0",
104
+ "@opentelemetry/sdk-metrics": "^2.7.1",
105
+ "@opentelemetry/sdk-trace-base": "^2.7.1",
106
+ "@opentelemetry/sdk-trace-node": "^2.7.1",
107
+ "@opentelemetry/sdk-trace-web": "^2.7.1",
108
+ "@opentelemetry/semantic-conventions": "^1.40.0"
104
109
  },
105
110
  "scripts": {
106
111
  "codegen": "effect-utils codegen",
package/src/Logger.ts CHANGED
@@ -1,33 +1,80 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Connects Effect logging to the OpenTelemetry Logs SDK.
3
+ *
4
+ * This module turns Effect log events into OpenTelemetry log records. It maps
5
+ * Effect log levels to OpenTelemetry severity numbers, provides the
6
+ * `OtelLoggerProvider` service, creates an Effect `Logger` with `make`, and
7
+ * offers layers for installing that logger or creating a scoped SDK
8
+ * `LoggerProvider` from one or more `LogRecordProcessor`s.
9
+ *
10
+ * @since 4.0.0
3
11
  */
12
+ import { SeverityNumber } from "@opentelemetry/api-logs"
4
13
  import * as Otel from "@opentelemetry/sdk-logs"
5
14
  import type { NonEmptyReadonlyArray } from "effect/Array"
6
15
  import * as Arr from "effect/Array"
7
16
  import * as Clock from "effect/Clock"
17
+ import * as Context from "effect/Context"
8
18
  import type * as Duration from "effect/Duration"
9
19
  import * as Effect from "effect/Effect"
10
20
  import * as Layer from "effect/Layer"
11
21
  import * as Logger from "effect/Logger"
12
- import * as LogLevel from "effect/LogLevel"
22
+ import type * as LogLevel from "effect/LogLevel"
13
23
  import * as Predicate from "effect/Predicate"
14
- import * as ServiceMap from "effect/ServiceMap"
24
+ import * as References from "effect/References"
15
25
  import * as Tracer from "effect/Tracer"
16
- import { unknownToAttributeValue } from "./internal/attributes.ts"
26
+ import { nanosToHrTime, unknownToAttributeValue } from "./internal/attributes.ts"
17
27
  import { Resource } from "./Resource.ts"
18
28
 
19
29
  /**
20
- * @since 1.0.0
21
- * @category Services
30
+ * Context service containing the OpenTelemetry `LoggerProvider` used to emit Effect log records.
31
+ *
32
+ * @category services
33
+ * @since 4.0.0
22
34
  */
23
- export class OtelLoggerProvider extends ServiceMap.Service<
35
+ export class OtelLoggerProvider extends Context.Service<
24
36
  OtelLoggerProvider,
25
37
  Otel.LoggerProvider
26
38
  >()("@effect/opentelemetry/Logger/OtelLoggerProvider") {}
27
39
 
28
40
  /**
29
- * @since 1.0.0
30
- * @category Constructors
41
+ * Maps an Effect `LogLevel` to the corresponding OpenTelemetry `SeverityNumber`.
42
+ *
43
+ * **Details**
44
+ *
45
+ * OpenTelemetry log severity numbers are in the range `1` through `24`. This
46
+ * function maps from Effect's log levels instead of using
47
+ * `LogLevel.getOrdinal`, whose internal sort ordinals, such as the `Info`
48
+ * ordinal `20000`, fall outside the OpenTelemetry logs data model and can be
49
+ * treated as `UNSPECIFIED` by validating backends.
50
+ *
51
+ * @category converting
52
+ * @since 4.0.0
53
+ */
54
+ export const logLevelToSeverityNumber = (level: LogLevel.LogLevel): SeverityNumber => {
55
+ switch (level) {
56
+ case "Trace":
57
+ return SeverityNumber.TRACE
58
+ case "Debug":
59
+ return SeverityNumber.DEBUG
60
+ case "Info":
61
+ return SeverityNumber.INFO
62
+ case "Warn":
63
+ return SeverityNumber.WARN
64
+ case "Error":
65
+ return SeverityNumber.ERROR
66
+ case "Fatal":
67
+ return SeverityNumber.FATAL
68
+ default:
69
+ return SeverityNumber.UNSPECIFIED
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Creates an Effect logger that emits log records through the configured OpenTelemetry logger provider.
75
+ *
76
+ * @category constructors
77
+ * @since 4.0.0
31
78
  */
32
79
  export const make: Effect.Effect<
33
80
  Logger.Logger<unknown, void>,
@@ -43,40 +90,60 @@ export const make: Effect.Effect<
43
90
  fiberId: options.fiber.id
44
91
  }
45
92
 
46
- const span = ServiceMap.getOrUndefined(options.fiber.services, Tracer.ParentSpan)
93
+ const span = Context.getOrUndefined(options.fiber.context, Tracer.ParentSpan)
47
94
 
48
95
  if (Predicate.isNotUndefined(span)) {
49
96
  attributes.spanId = span.spanId
50
97
  attributes.traceId = span.traceId
51
98
  }
52
99
 
53
- // TODO: add back after log spans / annotations
54
- // for (const [key, value] of options.annotations) {
55
- // attributes[key] = unknownToAttributeValue(value)
56
- // }
57
- // const now = options.date.getTime()
58
- // for (const span of options.spans) {
59
- // attributes[`logSpan.${span.label}`] = `${now - span.startTime}ms`
60
- // }
100
+ for (const [key, value] of Object.entries(options.fiber.getRef(References.CurrentLogAnnotations))) {
101
+ attributes[key] = unknownToAttributeValue(value)
102
+ }
103
+ const now = options.date.getTime()
104
+ for (const [label, startTime] of options.fiber.getRef(References.CurrentLogSpans)) {
105
+ attributes[`logSpan.${label}`] = `${now - startTime}ms`
106
+ }
61
107
 
62
108
  const message = Arr.ensure(options.message).map(unknownToAttributeValue)
109
+ const hrTime = nanosToHrTime(clock.currentTimeNanosUnsafe())
63
110
  otelLogger.emit({
64
111
  body: message.length === 1 ? message[0] : message,
65
112
  severityText: options.logLevel,
66
- severityNumber: LogLevel.getOrdinal(options.logLevel),
67
- timestamp: options.date,
68
- observedTimestamp: clock.currentTimeMillisUnsafe(),
113
+ severityNumber: logLevelToSeverityNumber(options.logLevel),
114
+ timestamp: hrTime,
115
+ observedTimestamp: hrTime,
69
116
  attributes
70
117
  })
71
118
  })
72
119
  })
73
120
 
74
121
  /**
75
- * @since 1.0.0
76
- * @category Layers
122
+ * Creates a layer that installs the OpenTelemetry-backed Effect logger, merging with existing loggers by default.
123
+ *
124
+ * **When to use**
125
+ *
126
+ * Use to install the OpenTelemetry-backed Effect logger in an application that
127
+ * has an `OtelLoggerProvider`, so standard Effect logging emits OpenTelemetry
128
+ * log records.
129
+ *
130
+ * **Details**
131
+ *
132
+ * The layer installs the logger created by `make`. `mergeWithExisting` defaults
133
+ * to `true`; set it to `false` to replace the current logger set.
134
+ *
135
+ * @see {@link make} for constructing the logger directly
136
+ * @see {@link layerLoggerProvider} for creating the required logger provider
137
+ *
138
+ * @category layers
139
+ * @since 4.0.0
77
140
  */
78
141
  export const layer = (options: {
79
142
  /**
143
+ * Whether to merge the OpenTelemetry logger with existing loggers.
144
+ *
145
+ * **Details**
146
+ *
80
147
  * If set to `true`, the OpenTelemetry logger will be merged with existing
81
148
  * loggers in the application.
82
149
  *
@@ -92,8 +159,10 @@ export const layer = (options: {
92
159
  })
93
160
 
94
161
  /**
95
- * @since 1.0.0
96
- * @category Layers
162
+ * Creates a scoped OpenTelemetry logger provider from one or more log record processors, using the current `Resource` and flushing and shutting down the provider when the layer is released.
163
+ *
164
+ * @category layers
165
+ * @since 4.0.0
97
166
  */
98
167
  export const layerLoggerProvider = (
99
168
  processor: Otel.LogRecordProcessor | NonEmptyReadonlyArray<Otel.LogRecordProcessor>,
package/src/Metrics.ts CHANGED
@@ -1,5 +1,13 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * OpenTelemetry support for Effect metrics.
3
+ *
4
+ * This module exposes Effect metrics as an OpenTelemetry `MetricProducer`.
5
+ * `makeProducer` creates the producer, `registerProducer` attaches it to one
6
+ * or more SDK `MetricReader`s, and `layer` manages that setup in a scoped
7
+ * layer. The `TemporalityPreference` type lets callers choose cumulative or
8
+ * delta metric values.
9
+ *
10
+ * @since 4.0.0
3
11
  */
4
12
  import type { MetricProducer, MetricReader } from "@opentelemetry/sdk-metrics"
5
13
  import type * as Arr from "effect/Array"
@@ -15,35 +23,50 @@ import { Resource } from "./Resource.ts"
15
23
  * Determines how metric values relate to the time interval over which they
16
24
  * are aggregated.
17
25
  *
18
- * - `cumulative`: Reports total since a fixed start time. Each data point
19
- * depends on all previous measurements. This is the default behavior.
26
+ * **Details**
20
27
  *
21
- * - `delta`: Reports changes since the last export. Each interval is
22
- * independent with no dependency on previous measurements.
28
+ * `cumulative` reports total since a fixed start time. Each data point depends
29
+ * on all previous measurements. This is the default behavior. `delta` reports
30
+ * changes since the last export. Each interval is independent with no
31
+ * dependency on previous measurements.
23
32
  *
24
- * @since 1.0.0
25
- * @category Models
33
+ * @category models
34
+ * @since 4.0.0
26
35
  */
27
36
  export type TemporalityPreference = "cumulative" | "delta"
28
37
 
29
38
  /**
30
39
  * Creates an OpenTelemetry metric producer from Effect metrics.
31
40
  *
32
- * @since 1.0.0
33
- * @category Constructors
41
+ * **When to use**
42
+ *
43
+ * Use when you need a `MetricProducer` for manually wiring Effect metrics into
44
+ * OpenTelemetry instead of using the scoped `layer` helper.
45
+ *
46
+ * **Details**
47
+ *
48
+ * Requires the current OpenTelemetry `Resource`, captures the current Effect
49
+ * context, and uses cumulative temporality by default. Pass `"delta"` for
50
+ * interval-based values.
51
+ *
52
+ * @see {@link registerProducer} for attaching a producer to metric readers
53
+ * @see {@link layer} for creating and registering a producer in a scoped layer
54
+ *
55
+ * @category constructors
56
+ * @since 4.0.0
34
57
  */
35
58
  export const makeProducer = (temporality?: TemporalityPreference): Effect.Effect<MetricProducer, never, Resource> =>
36
59
  Effect.gen(function*() {
37
60
  const resource = yield* Resource
38
- const services = yield* Effect.services<never>()
61
+ const services = yield* Effect.context<never>()
39
62
  return new MetricProducerImpl(resource, services, temporality)
40
63
  })
41
64
 
42
65
  /**
43
66
  * Registers a metric producer with one or more metric readers.
44
67
  *
45
- * @since 1.0.0
46
- * @category Constructors
68
+ * @category constructors
69
+ * @since 4.0.0
47
70
  */
48
71
  export const registerProducer = (
49
72
  self: MetricProducer,
@@ -74,7 +97,8 @@ export const registerProducer = (
74
97
  /**
75
98
  * Creates a Layer that registers a metric producer with metric readers.
76
99
  *
77
- * @example
100
+ * **Example** (Creating a metrics layer with temporality)
101
+ *
78
102
  * ```ts
79
103
  * import { Metrics } from "@effect/opentelemetry"
80
104
  * import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics"
@@ -98,8 +122,8 @@ export const registerProducer = (
98
122
  * )
99
123
  * ```
100
124
  *
101
- * @since 1.0.0
102
- * @category Layers
125
+ * @category layers
126
+ * @since 4.0.0
103
127
  */
104
128
  export const layer = (
105
129
  evaluate: LazyArg<MetricReader | Arr.NonEmptyReadonlyArray<MetricReader>>,
package/src/NodeSdk.ts CHANGED
@@ -1,5 +1,14 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Node.js OpenTelemetry setup for Effect applications.
3
+ *
4
+ * This module exports a `Configuration` type and layers for installing
5
+ * tracing, metrics, and logging in Node.js. The main `layer` builds the shared
6
+ * OpenTelemetry resource from environment variables and optional service
7
+ * metadata, then enables only the signal types that have processors or readers
8
+ * configured. `layerTracerProvider` creates a scoped Node tracer provider, and
9
+ * `layerEmpty` provides an empty resource.
10
+ *
11
+ * @since 4.0.0
3
12
  */
4
13
  import type * as Otel from "@opentelemetry/api"
5
14
  import type { LoggerProviderConfig, LogRecordProcessor } from "@opentelemetry/sdk-logs"
@@ -18,8 +27,10 @@ import * as Resource from "./Resource.ts"
18
27
  import * as Tracer from "./Tracer.ts"
19
28
 
20
29
  /**
21
- * @since 1.0.0
22
- * @category Models
30
+ * Configuration for the Node OpenTelemetry layer, including optional tracing, metrics, logging, resource, and shutdown settings.
31
+ *
32
+ * @category models
33
+ * @since 4.0.0
23
34
  */
24
35
  export interface Configuration {
25
36
  readonly spanProcessor?: SpanProcessor | ReadonlyArray<SpanProcessor> | undefined
@@ -38,8 +49,10 @@ export interface Configuration {
38
49
  }
39
50
 
40
51
  /**
41
- * @since 1.0.0
42
- * @category Layers
52
+ * Creates a scoped Node OpenTelemetry tracer provider from one or more span processors and shuts it down when the layer is released.
53
+ *
54
+ * @category layers
55
+ * @since 4.0.0
43
56
  */
44
57
  export const layerTracerProvider = (
45
58
  processor: SpanProcessor | NonEmptyReadonlyArray<SpanProcessor>,
@@ -71,18 +84,75 @@ export const layerTracerProvider = (
71
84
  )
72
85
 
73
86
  /**
74
- * @since 1.0.0
75
- * @category Layers
87
+ * Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
88
+ *
89
+ * **When to use**
90
+ *
91
+ * Use to install OpenTelemetry support for a Node.js Effect application from
92
+ * one configuration object, enabling tracing, metrics, logging, or any
93
+ * combination of those signals based on the processors and readers supplied.
94
+ *
95
+ * **Details**
96
+ *
97
+ * The configuration can be provided lazily or effectfully. The layer always
98
+ * provides `Resource.Resource`, building it from environment variables and any
99
+ * explicit resource metadata in the configuration.
100
+ *
101
+ * **Gotchas**
102
+ *
103
+ * Register Node auto-instrumentations before importing modules that should be
104
+ * patched, because many Node instrumentations hook module loading.
105
+ *
106
+ * @category layers
107
+ * @since 4.0.0
76
108
  */
77
109
  export const layer: {
78
110
  /**
79
- * @since 1.0.0
80
- * @category Layers
111
+ * Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
112
+ *
113
+ * **When to use**
114
+ *
115
+ * Use to install OpenTelemetry support for a Node.js Effect application from
116
+ * one configuration object, enabling tracing, metrics, logging, or any
117
+ * combination of those signals based on the processors and readers supplied.
118
+ *
119
+ * **Details**
120
+ *
121
+ * The configuration can be provided lazily or effectfully. The layer always
122
+ * provides `Resource.Resource`, building it from environment variables and any
123
+ * explicit resource metadata in the configuration.
124
+ *
125
+ * **Gotchas**
126
+ *
127
+ * Register Node auto-instrumentations before importing modules that should be
128
+ * patched, because many Node instrumentations hook module loading.
129
+ *
130
+ * @category layers
131
+ * @since 4.0.0
81
132
  */
82
133
  (evaluate: LazyArg<Configuration>): Layer.Layer<Resource.Resource>
83
134
  /**
84
- * @since 1.0.0
85
- * @category Layers
135
+ * Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
136
+ *
137
+ * **When to use**
138
+ *
139
+ * Use to install OpenTelemetry support for a Node.js Effect application from
140
+ * one configuration object, enabling tracing, metrics, logging, or any
141
+ * combination of those signals based on the processors and readers supplied.
142
+ *
143
+ * **Details**
144
+ *
145
+ * The configuration can be provided lazily or effectfully. The layer always
146
+ * provides `Resource.Resource`, building it from environment variables and any
147
+ * explicit resource metadata in the configuration.
148
+ *
149
+ * **Gotchas**
150
+ *
151
+ * Register Node auto-instrumentations before importing modules that should be
152
+ * patched, because many Node instrumentations hook module loading.
153
+ *
154
+ * @category layers
155
+ * @since 4.0.0
86
156
  */
87
157
  <R, E>(evaluate: Effect.Effect<Configuration, E, R>): Layer.Layer<Resource.Resource, E, R>
88
158
  } = (
@@ -130,7 +200,9 @@ export const layer: {
130
200
  )
131
201
 
132
202
  /**
203
+ * Layer that provides an empty OpenTelemetry `Resource`.
204
+ *
205
+ * @category layers
133
206
  * @since 2.0.0
134
- * @category layer
135
207
  */
136
208
  export const layerEmpty: Layer.Layer<Resource.Resource> = Resource.layerEmpty