@effect/opentelemetry 0.13.1 → 0.14.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/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.mts +2 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.mts.map +1 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.ts +2 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.cjs.d.ts.map +1 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.cjs.dev.js +293 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.cjs.js +7 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.cjs.mjs +5 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.cjs.prod.js +293 -0
- package/Metrics/dist/effect-opentelemetry-Metrics.esm.js +24 -0
- package/Metrics/package.json +4 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.mts +2 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.mts.map +1 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.ts +2 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.d.ts.map +1 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.dev.js +63 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.js +7 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.mjs +4 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.prod.js +63 -0
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.esm.js +34 -0
- package/NodeSdk/package.json +4 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.d.mts +2 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.d.mts.map +1 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.d.ts +2 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.d.ts.map +1 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.dev.js +64 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.js +7 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.mjs +4 -0
- package/Resource/dist/effect-opentelemetry-Resource.cjs.prod.js +64 -0
- package/{mjs/Resource.mjs → Resource/dist/effect-opentelemetry-Resource.esm.js} +16 -7
- package/Resource/package.json +4 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.mts +2 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.mts.map +1 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.ts +2 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.d.ts.map +1 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.dev.js +243 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.js +7 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.mjs +10 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.prod.js +243 -0
- package/Tracer/dist/effect-opentelemetry-Tracer.esm.js +54 -0
- package/Tracer/package.json +4 -0
- package/{Metrics.d.ts → dist/declarations/src/Metrics.d.ts} +4 -1
- package/dist/declarations/src/Metrics.d.ts.map +1 -0
- package/{NodeSdk.d.ts → dist/declarations/src/NodeSdk.d.ts} +1 -1
- package/dist/declarations/src/NodeSdk.d.ts.map +1 -0
- package/dist/declarations/src/Resource.d.ts.map +1 -0
- package/{Tracer.d.ts → dist/declarations/src/Tracer.d.ts} +4 -1
- package/dist/declarations/src/Tracer.d.ts.map +1 -0
- package/dist/declarations/src/index.d.ts +17 -0
- package/dist/declarations/src/index.d.ts.map +1 -0
- package/dist/effect-opentelemetry.cjs.d.mts +2 -0
- package/dist/effect-opentelemetry.cjs.d.mts.map +1 -0
- package/dist/effect-opentelemetry.cjs.d.ts +2 -0
- package/dist/effect-opentelemetry.cjs.d.ts.map +1 -0
- package/dist/effect-opentelemetry.cjs.dev.js +38 -0
- package/dist/effect-opentelemetry.cjs.js +7 -0
- package/dist/effect-opentelemetry.cjs.mjs +6 -0
- package/dist/effect-opentelemetry.cjs.prod.js +38 -0
- package/dist/effect-opentelemetry.esm.js +8 -0
- package/{mjs/internal/metrics.mjs → internal/metrics.esm.js} +21 -15
- package/{mjs/internal/tracer.mjs → internal/tracer.esm.js} +37 -24
- package/package.json +130 -30
- package/src/Metrics.ts +2 -2
- package/src/NodeSdk.ts +1 -1
- package/src/Tracer.ts +2 -2
- package/src/internal/metrics.ts +1 -1
- package/src/internal/tracer.ts +1 -1
- package/Metrics.d.ts.map +0 -1
- package/Metrics.js +0 -29
- package/Metrics.js.map +0 -1
- package/NodeSdk.d.ts.map +0 -1
- package/NodeSdk.js +0 -36
- package/NodeSdk.js.map +0 -1
- package/Resource.d.ts.map +0 -1
- package/Resource.js +0 -39
- package/Resource.js.map +0 -1
- package/Tracer.d.ts.map +0 -1
- package/Tracer.js +0 -54
- package/Tracer.js.map +0 -1
- package/index.d.ts +0 -17
- package/index.d.ts.map +0 -1
- package/index.js +0 -17
- package/index.js.map +0 -1
- package/internal/metrics.d.ts +0 -2
- package/internal/metrics.d.ts.map +0 -1
- package/internal/metrics.js +0 -242
- package/internal/metrics.js.map +0 -1
- package/internal/tracer.d.ts +0 -2
- package/internal/tracer.d.ts.map +0 -1
- package/internal/tracer.js +0 -147
- package/internal/tracer.js.map +0 -1
- package/mjs/Metrics.mjs +0 -20
- package/mjs/Metrics.mjs.map +0 -1
- package/mjs/NodeSdk.mjs +0 -25
- package/mjs/NodeSdk.mjs.map +0 -1
- package/mjs/Resource.mjs.map +0 -1
- package/mjs/Tracer.mjs +0 -45
- package/mjs/Tracer.mjs.map +0 -1
- package/mjs/index.mjs +0 -9
- package/mjs/index.mjs.map +0 -1
- package/mjs/internal/metrics.mjs.map +0 -1
- package/mjs/internal/tracer.mjs.map +0 -1
- package/tsconfig.base.json +0 -55
- package/tsconfig.build.json +0 -10
- package/tsconfig.examples.json +0 -11
- package/tsconfig.json +0 -8
- package/tsconfig.madge.json +0 -12
- package/tsconfig.test.json +0 -10
- /package/{Resource.d.ts → dist/declarations/src/Resource.d.ts} +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var sdkNode = require('@opentelemetry/sdk-node');
|
|
6
|
+
var Effect = require('effect/Effect');
|
|
7
|
+
var Layer = require('effect/Layer');
|
|
8
|
+
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.dev.js');
|
|
9
|
+
require('@opentelemetry/resources');
|
|
10
|
+
require('@opentelemetry/semantic-conventions');
|
|
11
|
+
require('effect/Context');
|
|
12
|
+
|
|
13
|
+
function _interopNamespace(e) {
|
|
14
|
+
if (e && e.__esModule) return e;
|
|
15
|
+
var n = Object.create(null);
|
|
16
|
+
if (e) {
|
|
17
|
+
Object.keys(e).forEach(function (k) {
|
|
18
|
+
if (k !== 'default') {
|
|
19
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
20
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return e[k]; }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
n["default"] = e;
|
|
28
|
+
return Object.freeze(n);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
32
|
+
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @since 1.0.0
|
|
40
|
+
* @category model
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @since 1.0.0
|
|
45
|
+
* @category constructor
|
|
46
|
+
*/
|
|
47
|
+
const config = config => config;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @since 1.0.0
|
|
51
|
+
* @category layer
|
|
52
|
+
*/
|
|
53
|
+
const layer = config => Layer__namespace.scopedDiscard(Effect__namespace.acquireRelease(Effect__namespace.flatMap(Effect__namespace.all([config, Resource_dist_effectOpentelemetryResource.Resource]), ([config, resource]) => Effect__namespace.sync(() => {
|
|
54
|
+
const sdk = new sdkNode.NodeSDK({
|
|
55
|
+
...config,
|
|
56
|
+
resource
|
|
57
|
+
});
|
|
58
|
+
sdk.start();
|
|
59
|
+
return sdk;
|
|
60
|
+
})), sdk => Effect__namespace.promise(() => sdk.shutdown())));
|
|
61
|
+
|
|
62
|
+
exports.config = config;
|
|
63
|
+
exports.layer = layer;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var sdkNode = require('@opentelemetry/sdk-node');
|
|
6
|
+
var Effect = require('effect/Effect');
|
|
7
|
+
var Layer = require('effect/Layer');
|
|
8
|
+
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.prod.js');
|
|
9
|
+
require('@opentelemetry/resources');
|
|
10
|
+
require('@opentelemetry/semantic-conventions');
|
|
11
|
+
require('effect/Context');
|
|
12
|
+
|
|
13
|
+
function _interopNamespace(e) {
|
|
14
|
+
if (e && e.__esModule) return e;
|
|
15
|
+
var n = Object.create(null);
|
|
16
|
+
if (e) {
|
|
17
|
+
Object.keys(e).forEach(function (k) {
|
|
18
|
+
if (k !== 'default') {
|
|
19
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
20
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return e[k]; }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
n["default"] = e;
|
|
28
|
+
return Object.freeze(n);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
32
|
+
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @since 1.0.0
|
|
40
|
+
* @category model
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @since 1.0.0
|
|
45
|
+
* @category constructor
|
|
46
|
+
*/
|
|
47
|
+
const config = config => config;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @since 1.0.0
|
|
51
|
+
* @category layer
|
|
52
|
+
*/
|
|
53
|
+
const layer = config => Layer__namespace.scopedDiscard(Effect__namespace.acquireRelease(Effect__namespace.flatMap(Effect__namespace.all([config, Resource_dist_effectOpentelemetryResource.Resource]), ([config, resource]) => Effect__namespace.sync(() => {
|
|
54
|
+
const sdk = new sdkNode.NodeSDK({
|
|
55
|
+
...config,
|
|
56
|
+
resource
|
|
57
|
+
});
|
|
58
|
+
sdk.start();
|
|
59
|
+
return sdk;
|
|
60
|
+
})), sdk => Effect__namespace.promise(() => sdk.shutdown())));
|
|
61
|
+
|
|
62
|
+
exports.config = config;
|
|
63
|
+
exports.layer = layer;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NodeSDK } from '@opentelemetry/sdk-node';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import * as Layer from 'effect/Layer';
|
|
4
|
+
import { Resource } from '../../Resource/dist/effect-opentelemetry-Resource.esm.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category model
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category constructor
|
|
18
|
+
*/
|
|
19
|
+
const config = config => config;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category layer
|
|
24
|
+
*/
|
|
25
|
+
const layer = config => Layer.scopedDiscard(Effect.acquireRelease(Effect.flatMap(Effect.all([config, Resource]), ([config, resource]) => Effect.sync(() => {
|
|
26
|
+
const sdk = new NodeSDK({
|
|
27
|
+
...config,
|
|
28
|
+
resource
|
|
29
|
+
});
|
|
30
|
+
sdk.start();
|
|
31
|
+
return sdk;
|
|
32
|
+
})), sdk => Effect.promise(() => sdk.shutdown())));
|
|
33
|
+
|
|
34
|
+
export { config, layer };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-opentelemetry-Resource.cjs.d.mts","sourceRoot":"","sources":["../../dist/declarations/src/Resource.d.ts"],"names":[],"mappings":"AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-opentelemetry-Resource.cjs.d.ts","sourceRoot":"","sources":["../../dist/declarations/src/Resource.d.ts"],"names":[],"mappings":"AAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var Resources = require('@opentelemetry/resources');
|
|
6
|
+
var semanticConventions = require('@opentelemetry/semantic-conventions');
|
|
7
|
+
var Context = require('effect/Context');
|
|
8
|
+
var Layer = require('effect/Layer');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n["default"] = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var Resources__namespace = /*#__PURE__*/_interopNamespace(Resources);
|
|
29
|
+
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category identifier
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
* @category tag
|
|
43
|
+
*/
|
|
44
|
+
const Resource = /*#__PURE__*/Context.Tag("@effect/opentelemetry/Resource");
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
* @category layer
|
|
49
|
+
*/
|
|
50
|
+
const layer = config => {
|
|
51
|
+
const attributes = {
|
|
52
|
+
...(config.attributes ?? {}),
|
|
53
|
+
[semanticConventions.SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
|
|
54
|
+
[semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_NAME]: "@effect/opentelemetry",
|
|
55
|
+
[semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]: typeof globalThis.document === "undefined" ? semanticConventions.TelemetrySdkLanguageValues.NODEJS : semanticConventions.TelemetrySdkLanguageValues.WEBJS
|
|
56
|
+
};
|
|
57
|
+
if (config.serviceVersion) {
|
|
58
|
+
attributes[semanticConventions.SemanticResourceAttributes.SERVICE_VERSION] = config.serviceVersion;
|
|
59
|
+
}
|
|
60
|
+
return Layer__namespace.succeed(Resource, new Resources__namespace.Resource(attributes));
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.Resource = Resource;
|
|
64
|
+
exports.layer = layer;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var Resources = require('@opentelemetry/resources');
|
|
6
|
+
var semanticConventions = require('@opentelemetry/semantic-conventions');
|
|
7
|
+
var Context = require('effect/Context');
|
|
8
|
+
var Layer = require('effect/Layer');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n["default"] = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var Resources__namespace = /*#__PURE__*/_interopNamespace(Resources);
|
|
29
|
+
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category identifier
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
* @category tag
|
|
43
|
+
*/
|
|
44
|
+
const Resource = /*#__PURE__*/Context.Tag("@effect/opentelemetry/Resource");
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
* @category layer
|
|
49
|
+
*/
|
|
50
|
+
const layer = config => {
|
|
51
|
+
const attributes = {
|
|
52
|
+
...(config.attributes ?? {}),
|
|
53
|
+
[semanticConventions.SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
|
|
54
|
+
[semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_NAME]: "@effect/opentelemetry",
|
|
55
|
+
[semanticConventions.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]: typeof globalThis.document === "undefined" ? semanticConventions.TelemetrySdkLanguageValues.NODEJS : semanticConventions.TelemetrySdkLanguageValues.WEBJS
|
|
56
|
+
};
|
|
57
|
+
if (config.serviceVersion) {
|
|
58
|
+
attributes[semanticConventions.SemanticResourceAttributes.SERVICE_VERSION] = config.serviceVersion;
|
|
59
|
+
}
|
|
60
|
+
return Layer__namespace.succeed(Resource, new Resources__namespace.Resource(attributes));
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.Resource = Resource;
|
|
64
|
+
exports.layer = layer;
|
|
@@ -1,20 +1,28 @@
|
|
|
1
|
+
import * as Resources from '@opentelemetry/resources';
|
|
2
|
+
import { SemanticResourceAttributes, TelemetrySdkLanguageValues } from '@opentelemetry/semantic-conventions';
|
|
3
|
+
import { Tag } from 'effect/Context';
|
|
4
|
+
import * as Layer from 'effect/Layer';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* @since 1.0.0
|
|
3
8
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category identifier
|
|
13
|
+
*/
|
|
14
|
+
|
|
8
15
|
/**
|
|
9
16
|
* @since 1.0.0
|
|
10
17
|
* @category tag
|
|
11
18
|
*/
|
|
12
|
-
|
|
19
|
+
const Resource = /*#__PURE__*/Tag("@effect/opentelemetry/Resource");
|
|
20
|
+
|
|
13
21
|
/**
|
|
14
22
|
* @since 1.0.0
|
|
15
23
|
* @category layer
|
|
16
24
|
*/
|
|
17
|
-
|
|
25
|
+
const layer = config => {
|
|
18
26
|
const attributes = {
|
|
19
27
|
...(config.attributes ?? {}),
|
|
20
28
|
[SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
|
|
@@ -26,4 +34,5 @@ export const layer = config => {
|
|
|
26
34
|
}
|
|
27
35
|
return Layer.succeed(Resource, new Resources.Resource(attributes));
|
|
28
36
|
};
|
|
29
|
-
|
|
37
|
+
|
|
38
|
+
export { Resource, layer };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-opentelemetry-Tracer.cjs.d.mts","sourceRoot":"","sources":["../../dist/declarations/src/Tracer.d.ts"],"names":[],"mappings":"AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-opentelemetry-Tracer.cjs.d.ts","sourceRoot":"","sources":["../../dist/declarations/src/Tracer.d.ts"],"names":[],"mappings":"AAAA"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var OtelApi = require('@opentelemetry/api');
|
|
6
|
+
var Cause = require('effect/Cause');
|
|
7
|
+
var Context = require('effect/Context');
|
|
8
|
+
var Effect = require('effect/Effect');
|
|
9
|
+
var FiberRef = require('effect/FiberRef');
|
|
10
|
+
var FiberRefs = require('effect/FiberRefs');
|
|
11
|
+
var Layer = require('effect/Layer');
|
|
12
|
+
var List = require('effect/List');
|
|
13
|
+
var Option = require('effect/Option');
|
|
14
|
+
var Tracer = require('effect/Tracer');
|
|
15
|
+
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.dev.js');
|
|
16
|
+
require('@opentelemetry/resources');
|
|
17
|
+
require('@opentelemetry/semantic-conventions');
|
|
18
|
+
|
|
19
|
+
function _interopNamespace(e) {
|
|
20
|
+
if (e && e.__esModule) return e;
|
|
21
|
+
var n = Object.create(null);
|
|
22
|
+
if (e) {
|
|
23
|
+
Object.keys(e).forEach(function (k) {
|
|
24
|
+
if (k !== 'default') {
|
|
25
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () { return e[k]; }
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
n["default"] = e;
|
|
34
|
+
return Object.freeze(n);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var OtelApi__namespace = /*#__PURE__*/_interopNamespace(OtelApi);
|
|
38
|
+
var Cause__namespace = /*#__PURE__*/_interopNamespace(Cause);
|
|
39
|
+
var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
|
|
40
|
+
var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
41
|
+
var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
|
|
42
|
+
var FiberRefs__namespace = /*#__PURE__*/_interopNamespace(FiberRefs);
|
|
43
|
+
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
44
|
+
var List__namespace = /*#__PURE__*/_interopNamespace(List);
|
|
45
|
+
var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
|
|
46
|
+
var Tracer__namespace = /*#__PURE__*/_interopNamespace(Tracer);
|
|
47
|
+
|
|
48
|
+
/** @internal */
|
|
49
|
+
class OtelSpan {
|
|
50
|
+
_tag = "Span";
|
|
51
|
+
attributes = new Map();
|
|
52
|
+
constructor(contextApi, tracer, name, parent, context, links, startTime) {
|
|
53
|
+
this.name = name;
|
|
54
|
+
this.parent = parent;
|
|
55
|
+
this.context = context;
|
|
56
|
+
this.links = links;
|
|
57
|
+
const active = contextApi.active();
|
|
58
|
+
this.span = tracer.startSpan(name, {
|
|
59
|
+
startTime: nanosToHrTime(startTime),
|
|
60
|
+
links: links.length > 0 ? links.map(link => ({
|
|
61
|
+
context: makeSpanContext(link.span),
|
|
62
|
+
attributes: link.attributes
|
|
63
|
+
})) : undefined
|
|
64
|
+
}, parent._tag === "Some" ? populateContext(active, parent.value, context) : active);
|
|
65
|
+
const spanContext = this.span.spanContext();
|
|
66
|
+
this.spanId = spanContext.spanId;
|
|
67
|
+
this.traceId = spanContext.traceId;
|
|
68
|
+
this.status = {
|
|
69
|
+
_tag: "Started",
|
|
70
|
+
startTime
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
attribute(key, value) {
|
|
74
|
+
this.span.setAttribute(key, value);
|
|
75
|
+
this.attributes.set(key, value);
|
|
76
|
+
}
|
|
77
|
+
end(endTime, exit) {
|
|
78
|
+
this.status = {
|
|
79
|
+
_tag: "Ended",
|
|
80
|
+
endTime,
|
|
81
|
+
exit,
|
|
82
|
+
startTime: this.status.startTime
|
|
83
|
+
};
|
|
84
|
+
if (exit._tag === "Success") {
|
|
85
|
+
this.span.setStatus({
|
|
86
|
+
code: OtelApi__namespace.SpanStatusCode.OK
|
|
87
|
+
});
|
|
88
|
+
} else {
|
|
89
|
+
if (Cause__namespace.isInterruptedOnly(exit.cause)) {
|
|
90
|
+
this.span.setStatus({
|
|
91
|
+
code: OtelApi__namespace.SpanStatusCode.OK,
|
|
92
|
+
message: Cause__namespace.pretty(exit.cause)
|
|
93
|
+
});
|
|
94
|
+
this.span.setAttribute("span.label", "⚠︎ Interrupted");
|
|
95
|
+
this.span.setAttribute("status.interrupted", true);
|
|
96
|
+
} else {
|
|
97
|
+
this.span.setStatus({
|
|
98
|
+
code: OtelApi__namespace.SpanStatusCode.ERROR,
|
|
99
|
+
message: Cause__namespace.pretty(exit.cause)
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
this.span.end(nanosToHrTime(endTime));
|
|
104
|
+
}
|
|
105
|
+
event(name, startTime, attributes) {
|
|
106
|
+
this.span.addEvent(name, attributes, nanosToHrTime(startTime));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/** @internal */
|
|
111
|
+
const OtelTracer$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/OtelTracer");
|
|
112
|
+
|
|
113
|
+
/** @internal */
|
|
114
|
+
const make$1 = /*#__PURE__*/Effect__namespace.map(OtelTracer$1, tracer => Tracer__namespace.make({
|
|
115
|
+
span(name, parent, context, links, startTime) {
|
|
116
|
+
return new OtelSpan(OtelApi__namespace.context, tracer, name, parent, context, links, startTime);
|
|
117
|
+
},
|
|
118
|
+
context(execution, fiber) {
|
|
119
|
+
const currentSpan = Option__namespace.flatMap(FiberRefs__namespace.get(fiber.getFiberRefs(), FiberRef__namespace.currentTracerSpan), List__namespace.head);
|
|
120
|
+
if (currentSpan._tag === "None") {
|
|
121
|
+
return execution();
|
|
122
|
+
}
|
|
123
|
+
return OtelApi__namespace.context.with(populateContext(OtelApi__namespace.context.active(), currentSpan.value), execution);
|
|
124
|
+
}
|
|
125
|
+
}));
|
|
126
|
+
|
|
127
|
+
/** @internal */
|
|
128
|
+
|
|
129
|
+
/** @internal */
|
|
130
|
+
const traceFlagsTag = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/traceFlags");
|
|
131
|
+
|
|
132
|
+
/** @internal */
|
|
133
|
+
const traceStateTag = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/traceState");
|
|
134
|
+
|
|
135
|
+
/** @internal */
|
|
136
|
+
const makeExternalSpan$1 = options => {
|
|
137
|
+
let context = Context__namespace.empty();
|
|
138
|
+
if (options.traceFlags) {
|
|
139
|
+
context = Context__namespace.add(context, traceFlagsTag, options.traceFlags);
|
|
140
|
+
}
|
|
141
|
+
if (typeof options.traceState === "string") {
|
|
142
|
+
context = Option__namespace.match(createTraceState(options.traceState), {
|
|
143
|
+
onNone: () => context,
|
|
144
|
+
onSome: traceState => Context__namespace.add(context, traceStateTag, traceState)
|
|
145
|
+
});
|
|
146
|
+
} else if (options.traceState) {
|
|
147
|
+
context = Context__namespace.add(context, traceStateTag, options.traceState);
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
_tag: "ExternalSpan",
|
|
151
|
+
traceId: options.traceId,
|
|
152
|
+
spanId: options.spanId,
|
|
153
|
+
context
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
/** @internal */
|
|
158
|
+
const currentOtelSpan$1 = /*#__PURE__*/Effect__namespace.map(Effect__namespace.currentSpan, span => Option__namespace.map(Option__namespace.filter(span, span => "span" in span), _ => _.span));
|
|
159
|
+
|
|
160
|
+
/** @internal */
|
|
161
|
+
const layerOtelTracer$1 = /*#__PURE__*/Layer__namespace.effect(OtelTracer$1, /*#__PURE__*/Effect__namespace.flatMap(Resource_dist_effectOpentelemetryResource.Resource, resource => Effect__namespace.sync(() => OtelApi__namespace.trace.getTracer(resource.attributes["service.name"], resource.attributes["service.version"]))));
|
|
162
|
+
|
|
163
|
+
/** @internal */
|
|
164
|
+
const layer$1 = /*#__PURE__*/Layer__namespace.provide(layerOtelTracer$1, /*#__PURE__*/Layer__namespace.unwrapEffect( /*#__PURE__*/Effect__namespace.map(make$1, Effect__namespace.setTracer)));
|
|
165
|
+
|
|
166
|
+
// -------------------------------------------------------------------------------------
|
|
167
|
+
// utils
|
|
168
|
+
// -------------------------------------------------------------------------------------
|
|
169
|
+
|
|
170
|
+
const bigint1e9 = 1_000_000_000n;
|
|
171
|
+
const nanosToHrTime = timestamp => {
|
|
172
|
+
return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
|
|
173
|
+
};
|
|
174
|
+
const createTraceState = /*#__PURE__*/Option__namespace.liftThrowable(OtelApi__namespace.createTraceState);
|
|
175
|
+
const populateContext = (otelContext, span, context) => span instanceof OtelSpan ? OtelApi__namespace.trace.setSpan(otelContext, span.span) : OtelApi__namespace.trace.setSpanContext(otelContext, makeSpanContext(span, context));
|
|
176
|
+
const makeSpanContext = (span, context) => ({
|
|
177
|
+
spanId: span.spanId,
|
|
178
|
+
traceId: span.traceId,
|
|
179
|
+
isRemote: span._tag === "ExternalSpan",
|
|
180
|
+
traceFlags: Option__namespace.getOrElse(context ? extractTraceTag(span, context, traceFlagsTag) : Context__namespace.getOption(span.context, traceFlagsTag), () => OtelApi__namespace.TraceFlags.SAMPLED),
|
|
181
|
+
traceState: Option__namespace.getOrUndefined(context ? extractTraceTag(span, context, traceStateTag) : Context__namespace.getOption(span.context, traceStateTag))
|
|
182
|
+
});
|
|
183
|
+
const extractTraceTag = (parent, context, tag) => Option__namespace.orElse(Context__namespace.getOption(context, tag), () => Context__namespace.getOption(parent.context, tag));
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* @since 1.0.0
|
|
187
|
+
*/
|
|
188
|
+
/**
|
|
189
|
+
* @since 1.0.0
|
|
190
|
+
* @category constructors
|
|
191
|
+
*/
|
|
192
|
+
const make = make$1;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @since 1.0.0
|
|
196
|
+
* @category constructors
|
|
197
|
+
*/
|
|
198
|
+
const makeExternalSpan = makeExternalSpan$1;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* @since 1.0.0
|
|
202
|
+
* @category accessors
|
|
203
|
+
*/
|
|
204
|
+
const currentOtelSpan = currentOtelSpan$1;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* @since 1.0.0
|
|
208
|
+
* @category layers
|
|
209
|
+
*/
|
|
210
|
+
const layer = layer$1;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* @since 1.0.0
|
|
214
|
+
* @category layers
|
|
215
|
+
*/
|
|
216
|
+
const layerOtelTracer = layerOtelTracer$1;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* @since 1.0.0
|
|
220
|
+
* @category tags
|
|
221
|
+
*/
|
|
222
|
+
const OtelTracer = OtelTracer$1;
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* @since 1.0.0
|
|
226
|
+
* @category tags
|
|
227
|
+
*/
|
|
228
|
+
const TraceFlags = traceFlagsTag;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* @since 1.0.0
|
|
232
|
+
* @category tags
|
|
233
|
+
*/
|
|
234
|
+
const TraceState = traceStateTag;
|
|
235
|
+
|
|
236
|
+
exports.OtelTracer = OtelTracer;
|
|
237
|
+
exports.TraceFlags = TraceFlags;
|
|
238
|
+
exports.TraceState = TraceState;
|
|
239
|
+
exports.currentOtelSpan = currentOtelSpan;
|
|
240
|
+
exports.layer = layer;
|
|
241
|
+
exports.layerOtelTracer = layerOtelTracer;
|
|
242
|
+
exports.make = make;
|
|
243
|
+
exports.makeExternalSpan = makeExternalSpan;
|