@temporalio/interceptors-opentelemetry 0.14.0 → 0.16.3
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/lib/worker/index.d.ts +3 -3
- package/lib/worker/index.js +1 -1
- package/lib/workflow/context-manager.d.ts +2 -2
- package/lib/workflow/context-manager.js +1 -0
- package/lib/workflow/context-manager.js.map +1 -1
- package/lib/workflow/definitions.d.ts +3 -3
- package/lib/workflow/index.d.ts +4 -1
- package/lib/workflow/index.js +15 -2
- package/lib/workflow/index.js.map +1 -1
- package/lib/workflow/span-exporter.js +1 -1
- package/lib/workflow/span-exporter.js.map +1 -1
- package/package.json +6 -6
package/lib/worker/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as otel from '@opentelemetry/api';
|
|
|
2
2
|
import { Resource } from '@opentelemetry/resources';
|
|
3
3
|
import { SpanExporter } from '@opentelemetry/sdk-trace-base';
|
|
4
4
|
import { Context as ActivityContext } from '@temporalio/activity';
|
|
5
|
-
import { ActivityExecuteInput, ActivityInboundCallsInterceptor, DataConverter,
|
|
5
|
+
import { ActivityExecuteInput, ActivityInboundCallsInterceptor, DataConverter, InjectedSink, Next } from '@temporalio/worker';
|
|
6
6
|
import { OpenTelemetryWorkflowExporter } from '../workflow';
|
|
7
7
|
export interface InterceptorOptions {
|
|
8
8
|
readonly tracer?: otel.Tracer;
|
|
@@ -22,6 +22,6 @@ export declare class OpenTelemetryActivityInboundInterceptor implements Activity
|
|
|
22
22
|
execute(input: ActivityExecuteInput, next: Next<ActivityInboundCallsInterceptor, 'execute'>): Promise<unknown>;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Takes an opentelemetry SpanExporter and turns it into an injected Workflow span exporter
|
|
25
|
+
* Takes an opentelemetry SpanExporter and turns it into an injected Workflow span exporter sink
|
|
26
26
|
*/
|
|
27
|
-
export declare function makeWorkflowExporter(exporter: SpanExporter, resource: Resource):
|
|
27
|
+
export declare function makeWorkflowExporter(exporter: SpanExporter, resource: Resource): InjectedSink<OpenTelemetryWorkflowExporter>;
|
package/lib/worker/index.js
CHANGED
|
@@ -45,7 +45,7 @@ class OpenTelemetryActivityInboundInterceptor {
|
|
|
45
45
|
}
|
|
46
46
|
exports.OpenTelemetryActivityInboundInterceptor = OpenTelemetryActivityInboundInterceptor;
|
|
47
47
|
/**
|
|
48
|
-
* Takes an opentelemetry SpanExporter and turns it into an injected Workflow span exporter
|
|
48
|
+
* Takes an opentelemetry SpanExporter and turns it into an injected Workflow span exporter sink
|
|
49
49
|
*/
|
|
50
50
|
function makeWorkflowExporter(exporter, resource) {
|
|
51
51
|
return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import * as otel from '@opentelemetry/api';
|
|
2
|
-
import { AsyncLocalStorage } from '@temporalio/workflow';
|
|
3
3
|
export declare class ContextManager implements otel.ContextManager {
|
|
4
|
-
protected storage: AsyncLocalStorage<otel.Context>;
|
|
4
|
+
protected storage: import("async_hooks").AsyncLocalStorage<otel.Context>;
|
|
5
5
|
active(): otel.Context;
|
|
6
6
|
bind<T>(context: otel.Context, target: T): T;
|
|
7
7
|
enable(): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/workflow/context-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAC3C,mDAAyD;AAEzD,MAAa,cAAc;IAA3B;QACY,YAAO,GAAG,IAAI,4BAAiB,EAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/workflow/context-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAC3C,mDAAyD;AAEzD,MAAa,cAAc;IAA3B;QACY,YAAO,GAAG,IAAI,4BAAiB,EAAgB,CAAC;IA+C5D,CAAC;IA7CC,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACtD,CAAC;IAED,IAAI,CAAI,OAAqB,EAAE,MAAS;QACtC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,MAAM,IAAI,SAAS,CAAC,2CAA2C,OAAO,MAAM,EAAE,CAAC,CAAC;SACjF;QAED,8JAA8J;QAC9J,MAAM,cAAc,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE;YAC9C,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;QACH;;;WAGG;QACH,8DAA8D;QAC9D,OAAO,cAAqB,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,OAAqB,EACrB,EAAK,EACL,OAA8B,EAC9B,GAAG,IAAO;QAEV,MAAM,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAhDD,wCAgDC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as otel from '@opentelemetry/api';
|
|
2
2
|
import * as tracing from '@opentelemetry/sdk-trace-base';
|
|
3
3
|
import { InstrumentationLibrary } from '@opentelemetry/core';
|
|
4
|
-
import {
|
|
4
|
+
import { Sink, Sinks } from '@temporalio/workflow';
|
|
5
5
|
/**
|
|
6
6
|
* Serializable version of the opentelemetry Span for cross isolate copying
|
|
7
7
|
*/
|
|
@@ -20,13 +20,13 @@ export interface SerializableSpan {
|
|
|
20
20
|
readonly ended: boolean;
|
|
21
21
|
readonly instrumentationLibrary: InstrumentationLibrary;
|
|
22
22
|
}
|
|
23
|
-
export interface OpenTelemetryWorkflowExporter extends
|
|
23
|
+
export interface OpenTelemetryWorkflowExporter extends Sink {
|
|
24
24
|
export(span: SerializableSpan[]): void;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Required external dependencies for Workflow interceptor to export spans
|
|
28
28
|
*/
|
|
29
|
-
export interface
|
|
29
|
+
export interface OpenTelemetrySinks extends Sinks {
|
|
30
30
|
exporter: OpenTelemetryWorkflowExporter;
|
|
31
31
|
}
|
|
32
32
|
export declare enum SpanName {
|
package/lib/workflow/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './runtime';
|
|
2
2
|
import * as otel from '@opentelemetry/api';
|
|
3
|
-
import { ActivityInput, Next, StartChildWorkflowExecutionInput, WorkflowInboundCallsInterceptor, WorkflowOutboundCallsInterceptor, WorkflowExecuteInput, ContinueAsNewInput } from '@temporalio/workflow';
|
|
3
|
+
import { ActivityInput, DisposeInput, Next, StartChildWorkflowExecutionInput, WorkflowInboundCallsInterceptor, WorkflowOutboundCallsInterceptor, WorkflowExecuteInput, ContinueAsNewInput, WorkflowInternalsInterceptor } from '@temporalio/workflow';
|
|
4
4
|
export * from './definitions';
|
|
5
5
|
/**
|
|
6
6
|
* Intercepts calls to run a Workflow
|
|
@@ -23,3 +23,6 @@ export declare class OpenTelemetryOutboundInterceptor implements WorkflowOutboun
|
|
|
23
23
|
startChildWorkflowExecution(input: StartChildWorkflowExecutionInput, next: Next<WorkflowOutboundCallsInterceptor, 'startChildWorkflowExecution'>): Promise<[Promise<string>, Promise<unknown>]>;
|
|
24
24
|
continueAsNew(input: ContinueAsNewInput, next: Next<WorkflowOutboundCallsInterceptor, 'continueAsNew'>): Promise<never>;
|
|
25
25
|
}
|
|
26
|
+
export declare class OpenTelemetryInternalsInterceptor implements WorkflowInternalsInterceptor {
|
|
27
|
+
dispose(input: DisposeInput, next: Next<WorkflowInternalsInterceptor, 'dispose'>): Promise<void>;
|
|
28
|
+
}
|
package/lib/workflow/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
22
22
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.OpenTelemetryOutboundInterceptor = exports.OpenTelemetryInboundInterceptor = void 0;
|
|
25
|
+
exports.OpenTelemetryInternalsInterceptor = exports.OpenTelemetryOutboundInterceptor = exports.OpenTelemetryInboundInterceptor = void 0;
|
|
26
26
|
require("./runtime"); // Patch the Workflow isolate runtime for opentelemetry
|
|
27
27
|
const workflow_1 = require("@temporalio/workflow");
|
|
28
28
|
const otel_1 = require("@temporalio/common/lib/otel");
|
|
@@ -33,11 +33,15 @@ const tracing = __importStar(require("@opentelemetry/sdk-trace-base"));
|
|
|
33
33
|
const instrumentation_1 = require("../instrumentation");
|
|
34
34
|
__exportStar(require("./definitions"), exports);
|
|
35
35
|
let tracer = undefined;
|
|
36
|
+
let contextManager = undefined;
|
|
36
37
|
function getTracer() {
|
|
38
|
+
if (contextManager === undefined) {
|
|
39
|
+
contextManager = new context_manager_1.ContextManager();
|
|
40
|
+
}
|
|
37
41
|
if (tracer === undefined) {
|
|
38
42
|
const provider = new tracing.BasicTracerProvider();
|
|
39
43
|
provider.addSpanProcessor(new tracing.SimpleSpanProcessor(new span_exporter_1.SpanExporter()));
|
|
40
|
-
provider.register({ contextManager
|
|
44
|
+
provider.register({ contextManager });
|
|
41
45
|
tracer = provider.getTracer('@temporalio/interceptor-workflow');
|
|
42
46
|
}
|
|
43
47
|
return tracer;
|
|
@@ -97,4 +101,13 @@ class OpenTelemetryOutboundInterceptor {
|
|
|
97
101
|
}
|
|
98
102
|
}
|
|
99
103
|
exports.OpenTelemetryOutboundInterceptor = OpenTelemetryOutboundInterceptor;
|
|
104
|
+
class OpenTelemetryInternalsInterceptor {
|
|
105
|
+
async dispose(input, next) {
|
|
106
|
+
if (contextManager !== undefined) {
|
|
107
|
+
contextManager.disable();
|
|
108
|
+
}
|
|
109
|
+
await next(input);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.OpenTelemetryInternalsInterceptor = OpenTelemetryInternalsInterceptor;
|
|
100
113
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qBAAmB,CAAC,uDAAuD;AAE3E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
exports.SpanExporter = void 0;
|
|
23
23
|
const core_1 = require("@opentelemetry/core");
|
|
24
24
|
const wf = __importStar(require("@temporalio/workflow"));
|
|
25
|
-
const { exporter } = wf.
|
|
25
|
+
const { exporter } = wf.proxySinks();
|
|
26
26
|
class SpanExporter {
|
|
27
27
|
export(spans, resultCallback) {
|
|
28
28
|
exporter.export(spans.map((span) => this.makeSerializable(span)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span-exporter.js","sourceRoot":"","sources":["../../src/workflow/span-exporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,8CAAqE;AACrE,yDAA2C;AAG3C,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"span-exporter.js","sourceRoot":"","sources":["../../src/workflow/span-exporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,8CAAqE;AACrE,yDAA2C;AAG3C,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAsB,CAAC;AAEzD,MAAa,YAAY;IAChB,MAAM,CAAC,KAA6B,EAAE,cAA8C;QACzF,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClE,cAAc,CAAC,EAAE,IAAI,EAAE,uBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,uBAAuB;IACzB,CAAC;IAEM,gBAAgB,CAAC,IAA0B;QAChD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;SACpD,CAAC;IACJ,CAAC;CACF;AA3BD,oCA2BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temporalio/interceptors-opentelemetry",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.3",
|
|
4
4
|
"description": "Temporal.io SDK interceptors bundle for tracing with opentelemetry",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"@opentelemetry/core": "^1.0.0",
|
|
19
19
|
"@opentelemetry/resources": "^1.0.0",
|
|
20
20
|
"@opentelemetry/sdk-trace-base": "^1.0.0",
|
|
21
|
-
"@temporalio/client": "^0.
|
|
22
|
-
"@temporalio/common": "^0.
|
|
23
|
-
"@temporalio/worker": "^0.
|
|
24
|
-
"@temporalio/workflow": "^0.
|
|
21
|
+
"@temporalio/client": "^0.16.3",
|
|
22
|
+
"@temporalio/common": "^0.16.0",
|
|
23
|
+
"@temporalio/worker": "^0.16.3",
|
|
24
|
+
"@temporalio/workflow": "^0.16.3"
|
|
25
25
|
},
|
|
26
26
|
"bugs": {
|
|
27
27
|
"url": "https://github.com/temporalio/sdk-typescript/issues"
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"publishConfig": {
|
|
34
34
|
"access": "public"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "af54140a4da7e191c06627c5e06b92a3fd929bcc"
|
|
37
37
|
}
|