@effect/opentelemetry 0.60.0 → 4.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/{dts/Logger.d.ts → Logger.d.ts} +19 -13
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +76 -0
- package/dist/Logger.js.map +1 -0
- package/dist/Metrics.d.ts +76 -0
- package/dist/Metrics.d.ts.map +1 -0
- package/dist/Metrics.js +59 -0
- package/dist/Metrics.js.map +1 -0
- package/dist/{dts/NodeSdk.d.ts → NodeSdk.d.ts} +12 -9
- package/dist/NodeSdk.d.ts.map +1 -0
- package/dist/{esm/NodeSdk.js → NodeSdk.js} +23 -14
- package/dist/NodeSdk.js.map +1 -0
- package/dist/{dts/Resource.d.ts → Resource.d.ts} +10 -13
- package/dist/Resource.d.ts.map +1 -0
- package/dist/{esm/Resource.js → Resource.js} +12 -13
- package/dist/Resource.js.map +1 -0
- package/dist/Tracer.d.ts +129 -0
- package/dist/Tracer.d.ts.map +1 -0
- package/dist/Tracer.js +391 -0
- package/dist/Tracer.js.map +1 -0
- package/dist/{dts/WebSdk.d.ts → WebSdk.d.ts} +12 -9
- package/dist/WebSdk.d.ts.map +1 -0
- package/dist/WebSdk.js +41 -0
- package/dist/WebSdk.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{esm/index.js → index.js} +4 -20
- package/dist/index.js.map +1 -0
- package/dist/internal/attributes.d.ts +2 -0
- package/dist/internal/attributes.d.ts.map +1 -0
- package/dist/internal/attributes.js +19 -0
- package/dist/internal/attributes.js.map +1 -0
- package/dist/{dts/internal → internal}/metrics.d.ts.map +1 -1
- package/dist/internal/metrics.js +406 -0
- package/dist/internal/metrics.js.map +1 -0
- package/dist/internal/utilities.d.ts +2 -0
- package/dist/internal/utilities.d.ts.map +1 -0
- package/dist/internal/utilities.js +3 -0
- package/dist/internal/utilities.js.map +1 -0
- package/package.json +70 -118
- package/src/Logger.ts +52 -55
- package/src/Metrics.ts +92 -18
- package/src/NodeSdk.ts +67 -64
- package/src/Resource.ts +16 -24
- package/src/Tracer.ts +469 -78
- package/src/WebSdk.ts +59 -51
- package/src/index.ts +7 -26
- package/src/internal/attributes.ts +21 -0
- package/src/internal/metrics.ts +381 -250
- package/src/internal/utilities.ts +5 -0
- package/Logger/package.json +0 -6
- package/Metrics/package.json +0 -6
- package/NodeSdk/package.json +0 -6
- package/Otlp/package.json +0 -6
- package/OtlpLogger/package.json +0 -6
- package/OtlpMetrics/package.json +0 -6
- package/OtlpResource/package.json +0 -6
- package/OtlpTracer/package.json +0 -6
- package/Resource/package.json +0 -6
- package/Tracer/package.json +0 -6
- package/WebSdk/package.json +0 -6
- package/dist/cjs/Logger.js +0 -85
- package/dist/cjs/Logger.js.map +0 -1
- package/dist/cjs/Metrics.js +0 -24
- package/dist/cjs/Metrics.js.map +0 -1
- package/dist/cjs/NodeSdk.js +0 -53
- package/dist/cjs/NodeSdk.js.map +0 -1
- package/dist/cjs/Otlp.js +0 -46
- package/dist/cjs/Otlp.js.map +0 -1
- package/dist/cjs/OtlpLogger.js +0 -158
- package/dist/cjs/OtlpLogger.js.map +0 -1
- package/dist/cjs/OtlpMetrics.js +0 -354
- package/dist/cjs/OtlpMetrics.js.map +0 -1
- package/dist/cjs/OtlpResource.js +0 -136
- package/dist/cjs/OtlpResource.js.map +0 -1
- package/dist/cjs/OtlpTracer.js +0 -229
- package/dist/cjs/OtlpTracer.js.map +0 -1
- package/dist/cjs/Resource.js +0 -75
- package/dist/cjs/Resource.js.map +0 -1
- package/dist/cjs/Tracer.js +0 -87
- package/dist/cjs/Tracer.js.map +0 -1
- package/dist/cjs/WebSdk.js +0 -42
- package/dist/cjs/WebSdk.js.map +0 -1
- package/dist/cjs/index.js +0 -30
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/metrics.js +0 -288
- package/dist/cjs/internal/metrics.js.map +0 -1
- package/dist/cjs/internal/otlpExporter.js +0 -81
- package/dist/cjs/internal/otlpExporter.js.map +0 -1
- package/dist/cjs/internal/tracer.js +0 -299
- package/dist/cjs/internal/tracer.js.map +0 -1
- package/dist/cjs/internal/utils.js +0 -34
- package/dist/cjs/internal/utils.js.map +0 -1
- package/dist/dts/Logger.d.ts.map +0 -1
- package/dist/dts/Metrics.d.ts +0 -29
- package/dist/dts/Metrics.d.ts.map +0 -1
- package/dist/dts/NodeSdk.d.ts.map +0 -1
- package/dist/dts/Otlp.d.ts +0 -31
- package/dist/dts/Otlp.d.ts.map +0 -1
- package/dist/dts/OtlpLogger.d.ts +0 -46
- package/dist/dts/OtlpLogger.d.ts.map +0 -1
- package/dist/dts/OtlpMetrics.d.ts +0 -40
- package/dist/dts/OtlpMetrics.d.ts.map +0 -1
- package/dist/dts/OtlpResource.d.ts +0 -104
- package/dist/dts/OtlpResource.d.ts.map +0 -1
- package/dist/dts/OtlpTracer.d.ts +0 -49
- package/dist/dts/OtlpTracer.d.ts.map +0 -1
- package/dist/dts/Resource.d.ts.map +0 -1
- package/dist/dts/Tracer.d.ts +0 -143
- package/dist/dts/Tracer.d.ts.map +0 -1
- package/dist/dts/WebSdk.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -45
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/otlpExporter.d.ts +0 -2
- package/dist/dts/internal/otlpExporter.d.ts.map +0 -1
- package/dist/dts/internal/tracer.d.ts +0 -2
- package/dist/dts/internal/tracer.d.ts.map +0 -1
- package/dist/dts/internal/utils.d.ts +0 -2
- package/dist/dts/internal/utils.d.ts.map +0 -1
- package/dist/esm/Logger.js +0 -75
- package/dist/esm/Logger.js.map +0 -1
- package/dist/esm/Metrics.js +0 -17
- package/dist/esm/Metrics.js.map +0 -1
- package/dist/esm/NodeSdk.js.map +0 -1
- package/dist/esm/Otlp.js +0 -38
- package/dist/esm/Otlp.js.map +0 -1
- package/dist/esm/OtlpLogger.js +0 -150
- package/dist/esm/OtlpLogger.js.map +0 -1
- package/dist/esm/OtlpMetrics.js +0 -346
- package/dist/esm/OtlpMetrics.js.map +0 -1
- package/dist/esm/OtlpResource.js +0 -124
- package/dist/esm/OtlpResource.js.map +0 -1
- package/dist/esm/OtlpTracer.js +0 -221
- package/dist/esm/OtlpTracer.js.map +0 -1
- package/dist/esm/Resource.js.map +0 -1
- package/dist/esm/Tracer.js +0 -80
- package/dist/esm/Tracer.js.map +0 -1
- package/dist/esm/WebSdk.js +0 -33
- package/dist/esm/WebSdk.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/metrics.js +0 -278
- package/dist/esm/internal/metrics.js.map +0 -1
- package/dist/esm/internal/otlpExporter.js +0 -74
- package/dist/esm/internal/otlpExporter.js.map +0 -1
- package/dist/esm/internal/tracer.js +0 -290
- package/dist/esm/internal/tracer.js.map +0 -1
- package/dist/esm/internal/utils.js +0 -23
- package/dist/esm/internal/utils.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/index/package.json +0 -6
- package/src/Otlp.ts +0 -66
- package/src/OtlpLogger.ts +0 -258
- package/src/OtlpMetrics.ts +0 -571
- package/src/OtlpResource.ts +0 -232
- package/src/OtlpTracer.ts +0 -349
- package/src/internal/otlpExporter.ts +0 -124
- package/src/internal/tracer.ts +0 -437
- package/src/internal/utils.ts +0 -31
- /package/dist/{dts/internal → internal}/metrics.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSdk.js","names":["WebTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","effect","OtelTracerProvider","gen","resource","acquireRelease","sync","provider","undefined","spanProcessors","Array","isArray","ignore","promise","forceFlush","then","shutdown","layer","evaluate","unwrap","isEffect","ResourceLive","TracerLive","spanProcessor","provide","tracerConfig","empty","LoggerLive","logRecordProcessor","mergeWithExisting","loggerMergeWithExisting","layerLoggerProvider","loggerProviderConfig","MetricsLive","metricReader","temporality","metricTemporality","mergeAll","pipe","provideMerge"],"sources":["../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* @since 1.0.0
|
|
6
|
+
*/
|
|
7
|
+
export * as Logger from "./Logger.ts";
|
|
8
|
+
/**
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
export * as Metrics from "./Metrics.ts";
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
*/
|
|
15
|
+
export * as NodeSdk from "./NodeSdk.ts";
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
*/
|
|
19
|
+
export * as Resource from "./Resource.ts";
|
|
20
|
+
/**
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
*/
|
|
23
|
+
export * as Tracer from "./Tracer.ts";
|
|
24
|
+
/**
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
*/
|
|
27
|
+
export * as WebSdk from "./WebSdk.ts";
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
|
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @since 1.0.0
|
|
7
|
-
*/
|
|
8
|
-
export * as Metrics from "./Metrics.js";
|
|
9
|
-
/**
|
|
10
|
-
* @since 1.0.0
|
|
11
|
-
*/
|
|
12
|
-
export * as NodeSdk from "./NodeSdk.js";
|
|
4
|
+
// @barrel: Auto-generated exports. Do not edit manually.
|
|
13
5
|
/**
|
|
14
6
|
* @since 1.0.0
|
|
15
7
|
*/
|
|
16
|
-
export * as
|
|
17
|
-
/**
|
|
18
|
-
* @since 1.0.0
|
|
19
|
-
*/
|
|
20
|
-
export * as OtlpLogger from "./OtlpLogger.js";
|
|
21
|
-
/**
|
|
22
|
-
* @since 1.0.0
|
|
23
|
-
*/
|
|
24
|
-
export * as OtlpMetrics from "./OtlpMetrics.js";
|
|
8
|
+
export * as Logger from "./Logger.js";
|
|
25
9
|
/**
|
|
26
10
|
* @since 1.0.0
|
|
27
11
|
*/
|
|
28
|
-
export * as
|
|
12
|
+
export * as Metrics from "./Metrics.js";
|
|
29
13
|
/**
|
|
30
14
|
* @since 1.0.0
|
|
31
15
|
*/
|
|
32
|
-
export * as
|
|
16
|
+
export * as NodeSdk from "./NodeSdk.js";
|
|
33
17
|
/**
|
|
34
18
|
* @since 1.0.0
|
|
35
19
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Logger","Metrics","NodeSdk","Resource","Tracer","WebSdk"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/internal/attributes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as Inspectable from "effect/Inspectable";
|
|
2
|
+
/** @internal */
|
|
3
|
+
export const recordToAttributes = record => {
|
|
4
|
+
const attributes = {};
|
|
5
|
+
for (const [key, value] of Object.entries(record)) {
|
|
6
|
+
attributes[key] = unknownToAttributeValue(value);
|
|
7
|
+
}
|
|
8
|
+
return attributes;
|
|
9
|
+
};
|
|
10
|
+
/** @internal */
|
|
11
|
+
export const unknownToAttributeValue = value => {
|
|
12
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
13
|
+
return value;
|
|
14
|
+
} else if (typeof value === "bigint") {
|
|
15
|
+
return value.toString();
|
|
16
|
+
}
|
|
17
|
+
return Inspectable.toStringUnknown(value);
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=attributes.js.map
|
|
@@ -0,0 +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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/internal/metrics.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import { ValueType } from "@opentelemetry/api";
|
|
2
|
+
import { AggregationTemporality, DataPointType, InstrumentType } from "@opentelemetry/sdk-metrics";
|
|
3
|
+
import * as Arr from "effect/Array";
|
|
4
|
+
import * as Metric from "effect/Metric";
|
|
5
|
+
const sdkName = "@effect/opentelemetry/Metrics";
|
|
6
|
+
/** @internal */
|
|
7
|
+
export class MetricProducerImpl {
|
|
8
|
+
resource;
|
|
9
|
+
services;
|
|
10
|
+
temporality;
|
|
11
|
+
startTimes;
|
|
12
|
+
startTimeNanos;
|
|
13
|
+
previousExportTimeNanos;
|
|
14
|
+
previousCounterState;
|
|
15
|
+
previousHistogramState;
|
|
16
|
+
previousFrequencyState;
|
|
17
|
+
previousSummaryState;
|
|
18
|
+
constructor(resource, services, temporality = "cumulative") {
|
|
19
|
+
this.resource = resource;
|
|
20
|
+
this.services = services;
|
|
21
|
+
this.temporality = temporality;
|
|
22
|
+
this.startTimes = new Map();
|
|
23
|
+
this.startTimeNanos = currentHrTime();
|
|
24
|
+
this.previousExportTimeNanos = this.startTimeNanos;
|
|
25
|
+
this.previousCounterState = new Map();
|
|
26
|
+
this.previousHistogramState = new Map();
|
|
27
|
+
this.previousFrequencyState = new Map();
|
|
28
|
+
this.previousSummaryState = new Map();
|
|
29
|
+
}
|
|
30
|
+
startTimeFor(name, hrTime) {
|
|
31
|
+
if (this.startTimes.has(name)) {
|
|
32
|
+
return this.startTimes.get(name);
|
|
33
|
+
}
|
|
34
|
+
this.startTimes.set(name, hrTime);
|
|
35
|
+
return hrTime;
|
|
36
|
+
}
|
|
37
|
+
collect(_options) {
|
|
38
|
+
const snapshot = Metric.snapshotUnsafe(this.services);
|
|
39
|
+
const hrTimeNow = currentHrTime();
|
|
40
|
+
const metricData = [];
|
|
41
|
+
const metricDataByName = new Map();
|
|
42
|
+
const addMetricData = data => {
|
|
43
|
+
metricData.push(data);
|
|
44
|
+
metricDataByName.set(data.descriptor.name, data);
|
|
45
|
+
};
|
|
46
|
+
const isDelta = this.temporality === "delta";
|
|
47
|
+
const aggregationTemporality = isDelta ? AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE;
|
|
48
|
+
const intervalStartTime = isDelta ? this.previousExportTimeNanos : this.startTimeNanos;
|
|
49
|
+
for (let i = 0, len = snapshot.length; i < len; i++) {
|
|
50
|
+
const state = snapshot[i];
|
|
51
|
+
const attributes = state.attributes ? Arr.reduce(Object.entries(state.attributes), {}, (acc, [key, value]) => {
|
|
52
|
+
acc[key] = String(value);
|
|
53
|
+
return acc;
|
|
54
|
+
}) : {};
|
|
55
|
+
const metricKey = makeMetricKey(state.id, state.attributes);
|
|
56
|
+
switch (state.type) {
|
|
57
|
+
case "Counter":
|
|
58
|
+
{
|
|
59
|
+
const currentCount = state.state.count;
|
|
60
|
+
let reportValue = currentCount;
|
|
61
|
+
if (isDelta) {
|
|
62
|
+
const previousCount = this.previousCounterState.get(metricKey);
|
|
63
|
+
if (previousCount !== undefined) {
|
|
64
|
+
if (typeof currentCount === "bigint" && typeof previousCount === "bigint") {
|
|
65
|
+
reportValue = currentCount - previousCount;
|
|
66
|
+
// Handle reset: if current < previous, report current value
|
|
67
|
+
if (reportValue < 0n) {
|
|
68
|
+
reportValue = currentCount;
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
const curr = Number(currentCount);
|
|
72
|
+
const prev = Number(previousCount);
|
|
73
|
+
reportValue = curr - prev;
|
|
74
|
+
// Handle reset
|
|
75
|
+
if (reportValue < 0) {
|
|
76
|
+
reportValue = curr;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
this.previousCounterState.set(metricKey, currentCount);
|
|
81
|
+
}
|
|
82
|
+
const descriptor = descriptorFromState(state, attributes);
|
|
83
|
+
const startTime = this.startTimeFor(descriptor.name, intervalStartTime);
|
|
84
|
+
const dataPoint = {
|
|
85
|
+
startTime,
|
|
86
|
+
endTime: hrTimeNow,
|
|
87
|
+
attributes,
|
|
88
|
+
value: Number(reportValue)
|
|
89
|
+
};
|
|
90
|
+
if (metricDataByName.has(state.id)) {
|
|
91
|
+
metricDataByName.get(state.id).dataPoints.push(dataPoint);
|
|
92
|
+
} else {
|
|
93
|
+
addMetricData({
|
|
94
|
+
dataPointType: DataPointType.SUM,
|
|
95
|
+
descriptor,
|
|
96
|
+
isMonotonic: state.state.incremental,
|
|
97
|
+
aggregationTemporality,
|
|
98
|
+
dataPoints: [dataPoint]
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
case "Gauge":
|
|
104
|
+
{
|
|
105
|
+
// Gauges don't have temporality - they always report current value
|
|
106
|
+
const descriptor = descriptorFromState(state, attributes);
|
|
107
|
+
const startTime = this.startTimeFor(descriptor.name, this.startTimeNanos);
|
|
108
|
+
const dataPoint = {
|
|
109
|
+
startTime,
|
|
110
|
+
endTime: hrTimeNow,
|
|
111
|
+
attributes,
|
|
112
|
+
value: Number(state.state.value)
|
|
113
|
+
};
|
|
114
|
+
if (metricDataByName.has(state.id)) {
|
|
115
|
+
metricDataByName.get(state.id).dataPoints.push(dataPoint);
|
|
116
|
+
} else {
|
|
117
|
+
addMetricData({
|
|
118
|
+
dataPointType: DataPointType.GAUGE,
|
|
119
|
+
descriptor,
|
|
120
|
+
aggregationTemporality: AggregationTemporality.CUMULATIVE,
|
|
121
|
+
dataPoints: [dataPoint]
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
case "Histogram":
|
|
127
|
+
{
|
|
128
|
+
const size = state.state.buckets.length;
|
|
129
|
+
const currentBuckets = {
|
|
130
|
+
boundaries: Arr.allocate(size - 1),
|
|
131
|
+
counts: Arr.allocate(size)
|
|
132
|
+
};
|
|
133
|
+
let idx = 0;
|
|
134
|
+
let prev = 0;
|
|
135
|
+
for (const [boundary, value] of state.state.buckets) {
|
|
136
|
+
if (idx < size - 1) {
|
|
137
|
+
currentBuckets.boundaries[idx] = boundary;
|
|
138
|
+
}
|
|
139
|
+
currentBuckets.counts[idx] = value - prev;
|
|
140
|
+
prev = value;
|
|
141
|
+
idx++;
|
|
142
|
+
}
|
|
143
|
+
let reportCount = state.state.count;
|
|
144
|
+
let reportSum = state.state.sum;
|
|
145
|
+
let reportBucketCounts = currentBuckets.counts;
|
|
146
|
+
const reportMin = state.state.min;
|
|
147
|
+
const reportMax = state.state.max;
|
|
148
|
+
if (isDelta) {
|
|
149
|
+
const previousState = this.previousHistogramState.get(metricKey);
|
|
150
|
+
if (previousState !== undefined) {
|
|
151
|
+
reportCount = state.state.count - previousState.count;
|
|
152
|
+
reportSum = state.state.sum - previousState.sum;
|
|
153
|
+
reportBucketCounts = currentBuckets.counts.map((c, i) => Math.max(0, c - (previousState.bucketCounts[i] ?? 0)));
|
|
154
|
+
}
|
|
155
|
+
this.previousHistogramState.set(metricKey, {
|
|
156
|
+
count: state.state.count,
|
|
157
|
+
sum: state.state.sum,
|
|
158
|
+
bucketCounts: currentBuckets.counts.slice(),
|
|
159
|
+
min: state.state.min,
|
|
160
|
+
max: state.state.max
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
const descriptor = descriptorFromState(state, attributes);
|
|
164
|
+
const startTime = this.startTimeFor(descriptor.name, intervalStartTime);
|
|
165
|
+
const dataPoint = {
|
|
166
|
+
startTime,
|
|
167
|
+
endTime: hrTimeNow,
|
|
168
|
+
attributes,
|
|
169
|
+
value: {
|
|
170
|
+
buckets: {
|
|
171
|
+
boundaries: currentBuckets.boundaries,
|
|
172
|
+
counts: reportBucketCounts
|
|
173
|
+
},
|
|
174
|
+
count: reportCount,
|
|
175
|
+
min: reportMin,
|
|
176
|
+
max: reportMax,
|
|
177
|
+
sum: reportSum
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
if (metricDataByName.has(state.id)) {
|
|
181
|
+
metricDataByName.get(state.id).dataPoints.push(dataPoint);
|
|
182
|
+
} else {
|
|
183
|
+
addMetricData({
|
|
184
|
+
dataPointType: DataPointType.HISTOGRAM,
|
|
185
|
+
descriptor,
|
|
186
|
+
aggregationTemporality,
|
|
187
|
+
dataPoints: [dataPoint]
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
case "Frequency":
|
|
193
|
+
{
|
|
194
|
+
const dataPoints = [];
|
|
195
|
+
const currentOccurrences = new Map();
|
|
196
|
+
for (const [freqKey, value] of state.state.occurrences) {
|
|
197
|
+
currentOccurrences.set(freqKey, value);
|
|
198
|
+
let reportValue = value;
|
|
199
|
+
if (isDelta) {
|
|
200
|
+
const previousOccurrences = this.previousFrequencyState.get(metricKey);
|
|
201
|
+
if (previousOccurrences !== undefined) {
|
|
202
|
+
const previousValue = previousOccurrences.get(freqKey) ?? 0;
|
|
203
|
+
reportValue = Math.max(0, value - previousValue);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const descriptor = descriptorFromState(state, attributes);
|
|
207
|
+
const startTime = this.startTimeFor(descriptor.name, intervalStartTime);
|
|
208
|
+
dataPoints.push({
|
|
209
|
+
startTime,
|
|
210
|
+
endTime: hrTimeNow,
|
|
211
|
+
attributes: {
|
|
212
|
+
...attributes,
|
|
213
|
+
key: freqKey
|
|
214
|
+
},
|
|
215
|
+
value: reportValue
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (isDelta) {
|
|
219
|
+
this.previousFrequencyState.set(metricKey, currentOccurrences);
|
|
220
|
+
}
|
|
221
|
+
if (metricDataByName.has(state.id)) {
|
|
222
|
+
// oxlint-disable-next-line no-restricted-syntax
|
|
223
|
+
metricDataByName.get(state.id).dataPoints.push(...dataPoints);
|
|
224
|
+
} else {
|
|
225
|
+
const descriptor = descriptorFromState(state, attributes);
|
|
226
|
+
addMetricData({
|
|
227
|
+
dataPointType: DataPointType.SUM,
|
|
228
|
+
descriptor,
|
|
229
|
+
aggregationTemporality,
|
|
230
|
+
isMonotonic: true,
|
|
231
|
+
dataPoints
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
case "Summary":
|
|
237
|
+
{
|
|
238
|
+
// Quantiles are always computed fresh from the sliding window
|
|
239
|
+
const dataPoints = [{
|
|
240
|
+
startTime: intervalStartTime,
|
|
241
|
+
endTime: hrTimeNow,
|
|
242
|
+
attributes: {
|
|
243
|
+
...attributes,
|
|
244
|
+
quantile: "min"
|
|
245
|
+
},
|
|
246
|
+
value: state.state.min
|
|
247
|
+
}];
|
|
248
|
+
for (const [quantile, value] of state.state.quantiles) {
|
|
249
|
+
dataPoints.push({
|
|
250
|
+
startTime: intervalStartTime,
|
|
251
|
+
endTime: hrTimeNow,
|
|
252
|
+
attributes: {
|
|
253
|
+
...attributes,
|
|
254
|
+
quantile: quantile.toString()
|
|
255
|
+
},
|
|
256
|
+
value: value ?? 0
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
dataPoints.push({
|
|
260
|
+
startTime: intervalStartTime,
|
|
261
|
+
endTime: hrTimeNow,
|
|
262
|
+
attributes: {
|
|
263
|
+
...attributes,
|
|
264
|
+
quantile: "max"
|
|
265
|
+
},
|
|
266
|
+
value: state.state.max
|
|
267
|
+
});
|
|
268
|
+
let reportCount = state.state.count;
|
|
269
|
+
let reportSum = state.state.sum;
|
|
270
|
+
if (isDelta) {
|
|
271
|
+
const previousState = this.previousSummaryState.get(metricKey);
|
|
272
|
+
if (previousState !== undefined) {
|
|
273
|
+
reportCount = state.state.count - previousState.count;
|
|
274
|
+
reportSum = state.state.sum - previousState.sum;
|
|
275
|
+
}
|
|
276
|
+
this.previousSummaryState.set(metricKey, {
|
|
277
|
+
count: state.state.count,
|
|
278
|
+
sum: state.state.sum
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
const countDataPoint = {
|
|
282
|
+
startTime: intervalStartTime,
|
|
283
|
+
endTime: hrTimeNow,
|
|
284
|
+
attributes,
|
|
285
|
+
value: reportCount
|
|
286
|
+
};
|
|
287
|
+
const sumDataPoint = {
|
|
288
|
+
startTime: intervalStartTime,
|
|
289
|
+
endTime: hrTimeNow,
|
|
290
|
+
attributes,
|
|
291
|
+
value: reportSum
|
|
292
|
+
};
|
|
293
|
+
if (metricDataByName.has(`${state.id}_quantiles`)) {
|
|
294
|
+
// oxlint-disable-next-line no-restricted-syntax
|
|
295
|
+
metricDataByName.get(`${state.id}_quantiles`).dataPoints.push(...dataPoints);
|
|
296
|
+
metricDataByName.get(`${state.id}_count`).dataPoints.push(countDataPoint);
|
|
297
|
+
metricDataByName.get(`${state.id}_sum`).dataPoints.push(sumDataPoint);
|
|
298
|
+
} else {
|
|
299
|
+
const descriptor = descriptorFromState(state, attributes);
|
|
300
|
+
addMetricData({
|
|
301
|
+
dataPointType: DataPointType.SUM,
|
|
302
|
+
descriptor: {
|
|
303
|
+
...descriptor,
|
|
304
|
+
name: `${descriptor.name}_quantiles`
|
|
305
|
+
},
|
|
306
|
+
aggregationTemporality,
|
|
307
|
+
isMonotonic: false,
|
|
308
|
+
dataPoints
|
|
309
|
+
});
|
|
310
|
+
addMetricData({
|
|
311
|
+
dataPointType: DataPointType.SUM,
|
|
312
|
+
descriptor: {
|
|
313
|
+
name: `${state.id}_count`,
|
|
314
|
+
description: state.description ?? "",
|
|
315
|
+
unit: "1",
|
|
316
|
+
type: InstrumentType.COUNTER,
|
|
317
|
+
valueType: ValueType.INT,
|
|
318
|
+
advice: {}
|
|
319
|
+
},
|
|
320
|
+
aggregationTemporality,
|
|
321
|
+
isMonotonic: true,
|
|
322
|
+
dataPoints: [countDataPoint]
|
|
323
|
+
});
|
|
324
|
+
addMetricData({
|
|
325
|
+
dataPointType: DataPointType.SUM,
|
|
326
|
+
descriptor: {
|
|
327
|
+
name: `${state.id}_sum`,
|
|
328
|
+
description: state.description ?? "",
|
|
329
|
+
unit: "1",
|
|
330
|
+
type: InstrumentType.COUNTER,
|
|
331
|
+
valueType: ValueType.DOUBLE,
|
|
332
|
+
advice: {}
|
|
333
|
+
},
|
|
334
|
+
aggregationTemporality,
|
|
335
|
+
isMonotonic: true,
|
|
336
|
+
dataPoints: [sumDataPoint]
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Update the previous export time for delta calculations
|
|
344
|
+
if (isDelta) {
|
|
345
|
+
this.previousExportTimeNanos = hrTimeNow;
|
|
346
|
+
}
|
|
347
|
+
return Promise.resolve({
|
|
348
|
+
resourceMetrics: {
|
|
349
|
+
resource: this.resource,
|
|
350
|
+
scopeMetrics: [{
|
|
351
|
+
scope: {
|
|
352
|
+
name: sdkName
|
|
353
|
+
},
|
|
354
|
+
metrics: metricData
|
|
355
|
+
}]
|
|
356
|
+
},
|
|
357
|
+
errors: []
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/** Creates a unique key for a metric including its attributes */
|
|
362
|
+
const makeMetricKey = (id, attributes) => {
|
|
363
|
+
if (attributes === undefined || Object.keys(attributes).length === 0) {
|
|
364
|
+
return id;
|
|
365
|
+
}
|
|
366
|
+
const sortedEntries = Object.entries(attributes).sort((a, b) => a[0].localeCompare(b[0]));
|
|
367
|
+
return `${id}:${JSON.stringify(sortedEntries)}`;
|
|
368
|
+
};
|
|
369
|
+
const currentHrTime = () => {
|
|
370
|
+
const now = Date.now();
|
|
371
|
+
return [Math.floor(now / 1000), now % 1000 * 1000000];
|
|
372
|
+
};
|
|
373
|
+
const descriptorFromState = (state, attributes) => {
|
|
374
|
+
const unit = attributes.unit ?? attributes.time_unit ?? "1";
|
|
375
|
+
return {
|
|
376
|
+
name: state.id,
|
|
377
|
+
description: state.description ?? "",
|
|
378
|
+
unit,
|
|
379
|
+
type: instrumentTypeFromSnapshot(state),
|
|
380
|
+
valueType: determineValueType(state),
|
|
381
|
+
advice: {}
|
|
382
|
+
};
|
|
383
|
+
};
|
|
384
|
+
const instrumentTypeFromSnapshot = state => {
|
|
385
|
+
switch (state.type) {
|
|
386
|
+
case "Histogram":
|
|
387
|
+
return InstrumentType.HISTOGRAM;
|
|
388
|
+
case "Gauge":
|
|
389
|
+
return InstrumentType.OBSERVABLE_GAUGE;
|
|
390
|
+
case "Frequency":
|
|
391
|
+
return InstrumentType.COUNTER;
|
|
392
|
+
case "Counter":
|
|
393
|
+
return state.state.incremental ? InstrumentType.COUNTER : InstrumentType.UP_DOWN_COUNTER;
|
|
394
|
+
case "Summary":
|
|
395
|
+
return InstrumentType.COUNTER;
|
|
396
|
+
}
|
|
397
|
+
};
|
|
398
|
+
const determineValueType = state => {
|
|
399
|
+
if (state.type === "Counter") {
|
|
400
|
+
return typeof state.state.count === "bigint" ? ValueType.INT : ValueType.DOUBLE;
|
|
401
|
+
} else if (state.type === "Gauge") {
|
|
402
|
+
return typeof state.state.value === "bigint" ? ValueType.INT : ValueType.DOUBLE;
|
|
403
|
+
}
|
|
404
|
+
return ValueType.DOUBLE;
|
|
405
|
+
};
|
|
406
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/internal/utilities.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.js","names":["isNonEmpty","a","undefined","Array","isArray","length"],"sources":["../../src/internal/utilities.ts"],"sourcesContent":[null],"mappings":"AAEA;AACA,OAAO,MAAMA,UAAU,GAAOC,CAAmC,IAC/DA,CAAC,KAAKC,SAAS,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IAAIA,CAAC,CAACI,MAAM,KAAK,CAAC,CAAC","ignoreList":[]}
|