@arizeai/openinference-instrumentation-beeai 1.4.2 → 1.5.1
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/README.md +34 -0
- package/dist/esm/instrumentation.d.ts +13 -1
- package/dist/esm/instrumentation.d.ts.map +1 -1
- package/dist/esm/instrumentation.js +23 -3
- package/dist/esm/instrumentation.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esnext/instrumentation.d.ts +13 -1
- package/dist/esnext/instrumentation.d.ts.map +1 -1
- package/dist/esnext/instrumentation.js +24 -3
- package/dist/esnext/instrumentation.js.map +1 -1
- package/dist/esnext/tsconfig.esnext.tsbuildinfo +1 -1
- package/dist/src/instrumentation.d.ts +13 -1
- package/dist/src/instrumentation.d.ts.map +1 -1
- package/dist/src/instrumentation.js +24 -3
- package/dist/src/instrumentation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/instrumentation.ts +37 -3
package/README.md
CHANGED
|
@@ -78,3 +78,37 @@ console.log(`Agent 🤖 : `, response.result.text);
|
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
For more information on OpenTelemetry Node.js SDK, see the [OpenTelemetry Node.js SDK documentation](https://opentelemetry.io/docs/instrumentation/js/getting-started/nodejs/).
|
|
81
|
+
|
|
82
|
+
## Using a Custom Tracer Provider
|
|
83
|
+
|
|
84
|
+
You can specify a custom tracer provider when creating the BeeAI instrumentation. This is useful when you want to use a non-global tracer provider or have more control over the tracing configuration.
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
|
|
88
|
+
import { Resource } from "@opentelemetry/resources";
|
|
89
|
+
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";
|
|
90
|
+
import { BeeAIInstrumentation } from "@arizeai/openinference-instrumentation-beeai";
|
|
91
|
+
import * as beeaiFramework from "beeai-framework";
|
|
92
|
+
|
|
93
|
+
// Create a custom tracer provider
|
|
94
|
+
const customTracerProvider = new NodeTracerProvider({
|
|
95
|
+
resource: new Resource({
|
|
96
|
+
[SEMRESATTRS_PROJECT_NAME]: "my-beeai-project",
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Pass the custom tracer provider to the instrumentation
|
|
101
|
+
const beeAIInstrumentation = new BeeAIInstrumentation({
|
|
102
|
+
tracerProvider: customTracerProvider,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// Manually instrument the BeeAI framework
|
|
106
|
+
beeAIInstrumentation.manuallyInstrument(beeaiFramework);
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Alternatively, you can set the tracer provider after creating the instrumentation:
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
const beeAIInstrumentation = new BeeAIInstrumentation();
|
|
113
|
+
beeAIInstrumentation.setTracerProvider(customTracerProvider);
|
|
114
|
+
```
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { InstrumentationBase, InstrumentationNodeModuleDefinition, InstrumentationConfig } from "@opentelemetry/instrumentation";
|
|
2
|
+
import { Tracer, TracerProvider } from "@opentelemetry/api";
|
|
2
3
|
import * as bee from "beeai-framework";
|
|
3
4
|
import { TraceConfigOptions } from "@arizeai/openinference-core";
|
|
4
5
|
/**
|
|
@@ -7,7 +8,9 @@ import { TraceConfigOptions } from "@arizeai/openinference-core";
|
|
|
7
8
|
export declare function isPatched(): boolean;
|
|
8
9
|
export declare class BeeAIInstrumentation extends InstrumentationBase {
|
|
9
10
|
private oiTracer;
|
|
10
|
-
|
|
11
|
+
private tracerProvider?;
|
|
12
|
+
private traceConfig?;
|
|
13
|
+
constructor({ instrumentationConfig, traceConfig, tracerProvider, }?: {
|
|
11
14
|
/**
|
|
12
15
|
* The config for the instrumentation
|
|
13
16
|
* @see {@link InstrumentationConfig}
|
|
@@ -18,6 +21,13 @@ export declare class BeeAIInstrumentation extends InstrumentationBase {
|
|
|
18
21
|
* @see {@link TraceConfigOptions}
|
|
19
22
|
*/
|
|
20
23
|
traceConfig?: TraceConfigOptions;
|
|
24
|
+
/**
|
|
25
|
+
* An optional custom trace provider to be used for tracing. If not provided, a tracer will be created using the global tracer provider.
|
|
26
|
+
* This is useful if you want to use a non-global tracer provider.
|
|
27
|
+
*
|
|
28
|
+
* @see {@link TracerProvider}
|
|
29
|
+
*/
|
|
30
|
+
tracerProvider?: TracerProvider;
|
|
21
31
|
});
|
|
22
32
|
protected init(): InstrumentationNodeModuleDefinition;
|
|
23
33
|
/**
|
|
@@ -25,6 +35,8 @@ export declare class BeeAIInstrumentation extends InstrumentationBase {
|
|
|
25
35
|
* @param {openai} module
|
|
26
36
|
*/
|
|
27
37
|
manuallyInstrument(module: typeof bee): void;
|
|
38
|
+
get tracer(): Tracer;
|
|
39
|
+
setTracerProvider(tracerProvider: TracerProvider): void;
|
|
28
40
|
private patch;
|
|
29
41
|
/**
|
|
30
42
|
* Un-patches the OpenAI module's chat completions API
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mCAAmC,EACnC,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mCAAmC,EACnC,qBAAqB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAQ,MAAM,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAY,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAiB3E;;GAEG;AACH,wBAAgB,SAAS,YAExB;AAED,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,WAAW,CAAC,CAAqB;gBAE7B,EACV,qBAAqB,EACrB,WAAW,EACX,cAAc,GACf,GAAE;QACD;;;WAGG;QACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;QAC9C;;;WAGG;QACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;QACjC;;;;;WAKG;QACH,cAAc,CAAC,EAAE,cAAc,CAAC;KAC5B;IAeN,SAAS,CAAC,IAAI;IAWd;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG;IAerC,IAAI,MAAM,IAAI,MAAM,CAKnB;IAED,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IASvD,OAAO,CAAC,KAAK;IAiFb;;OAEG;IACH,OAAO,CAAC,OAAO;CAehB"}
|
|
@@ -6,6 +6,7 @@ import { createTelemetryMiddleware } from "./middleware.js";
|
|
|
6
6
|
import { OpenInferenceSpanKind } from "@arizeai/openinference-semantic-conventions";
|
|
7
7
|
import { satisfies } from "semver";
|
|
8
8
|
const MODULE_NAME = "beeai-framework";
|
|
9
|
+
const INSTRUMENTATION_NAME = "@arizeai/openinference-instrumentation-beeai";
|
|
9
10
|
const INSTRUMENTS = [">=0.1.9 <0.1.14"];
|
|
10
11
|
/**
|
|
11
12
|
* Flag to check if the openai module has been patched
|
|
@@ -19,9 +20,14 @@ export function isPatched() {
|
|
|
19
20
|
return _isOpenInferencePatched;
|
|
20
21
|
}
|
|
21
22
|
export class BeeAIInstrumentation extends InstrumentationBase {
|
|
22
|
-
constructor({ instrumentationConfig, traceConfig, } = {}) {
|
|
23
|
-
super(
|
|
24
|
-
this.
|
|
23
|
+
constructor({ instrumentationConfig, traceConfig, tracerProvider, } = {}) {
|
|
24
|
+
super(INSTRUMENTATION_NAME, Version, Object.assign({}, instrumentationConfig));
|
|
25
|
+
this.tracerProvider = tracerProvider;
|
|
26
|
+
this.traceConfig = traceConfig;
|
|
27
|
+
this.oiTracer = new OITracer({
|
|
28
|
+
tracer: this.tracerProvider?.getTracer(INSTRUMENTATION_NAME) ?? this.tracer,
|
|
29
|
+
traceConfig,
|
|
30
|
+
});
|
|
25
31
|
}
|
|
26
32
|
init() {
|
|
27
33
|
const module = new InstrumentationNodeModuleDefinition(MODULE_NAME, INSTRUMENTS, this.patch.bind(this), this.unpatch.bind(this));
|
|
@@ -40,6 +46,20 @@ export class BeeAIInstrumentation extends InstrumentationBase {
|
|
|
40
46
|
diag.debug(`[BeeaiInstrumentation] Manually instrumenting ${MODULE_NAME}`);
|
|
41
47
|
this.patch(module);
|
|
42
48
|
}
|
|
49
|
+
get tracer() {
|
|
50
|
+
if (this.tracerProvider) {
|
|
51
|
+
return this.tracerProvider.getTracer(this.instrumentationName);
|
|
52
|
+
}
|
|
53
|
+
return super.tracer;
|
|
54
|
+
}
|
|
55
|
+
setTracerProvider(tracerProvider) {
|
|
56
|
+
super.setTracerProvider(tracerProvider);
|
|
57
|
+
this.tracerProvider = tracerProvider;
|
|
58
|
+
this.oiTracer = new OITracer({
|
|
59
|
+
tracer: this.tracer,
|
|
60
|
+
traceConfig: this.traceConfig,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
43
63
|
patch(module) {
|
|
44
64
|
if (!module?.BaseAgent) {
|
|
45
65
|
diag.warn("[BeeaiInstrumentation] BaseAgent not found, skipping instrumentation.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mCAAmC,GAEpC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}
|