@arizeai/openinference-instrumentation-beeai 1.4.2 → 1.5.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.
@@ -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
- constructor({ instrumentationConfig, traceConfig, }?: {
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;AAGxC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAY,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAe3E;;GAEG;AACH,wBAAgB,SAAS,YAExB;AAED,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D,OAAO,CAAC,QAAQ,CAAW;gBAEf,EACV,qBAAqB,EACrB,WAAW,GACZ,GAAE;QACD;;;WAGG;QACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;QAC9C;;;WAGG;QACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;KAC7B;IASN,SAAS,CAAC,IAAI;IAWd;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG;IAerC,OAAO,CAAC,KAAK;IAiFb;;OAEG;IACH,OAAO,CAAC,OAAO;CAehB"}
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("@arizeai/openinference-instrumentation-beeai", Version, Object.assign({}, instrumentationConfig));
24
- this.oiTracer = new OITracer({ tracer: this.tracer, traceConfig });
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":"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"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}