openlit 1.10.0 → 1.12.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/README.md +35 -1
- package/dist/config.d.ts +12 -4
- package/dist/config.js +7 -17
- package/dist/config.js.map +1 -1
- package/dist/evals/llm/anthropic.js +10 -6
- package/dist/evals/llm/anthropic.js.map +1 -1
- package/dist/evals/llm/openai.js +9 -5
- package/dist/evals/llm/openai.js.map +1 -1
- package/dist/features/__tests__/rule-engine.test.d.ts +1 -0
- package/dist/features/__tests__/rule-engine.test.js +146 -0
- package/dist/features/__tests__/rule-engine.test.js.map +1 -0
- package/dist/features/base.d.ts +2 -0
- package/dist/features/base.js +2 -0
- package/dist/features/base.js.map +1 -1
- package/dist/features/rule-engine.d.ts +6 -0
- package/dist/features/rule-engine.js +60 -0
- package/dist/features/rule-engine.js.map +1 -0
- package/dist/features/vault.js +1 -1
- package/dist/features/vault.js.map +1 -1
- package/dist/helpers.d.ts +93 -1
- package/dist/helpers.js +270 -8
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.js +95 -50
- package/dist/index.js.map +1 -1
- package/dist/instrumentation/__tests__/anthropic-wrapper.test.js +215 -27
- package/dist/instrumentation/__tests__/anthropic-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/base-wrapper.test.js +19 -23
- package/dist/instrumentation/__tests__/base-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.d.ts +1 -0
- package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js +422 -0
- package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js.map +1 -0
- package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js +1 -1
- package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/cohere-wrapper.test.js +150 -25
- package/dist/instrumentation/__tests__/cohere-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js +152 -33
- package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/groq-trace-comparison.test.js +391 -45
- package/dist/instrumentation/__tests__/groq-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.d.ts +2 -2
- package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js +323 -31
- package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/langchain-wrapper.test.d.ts +1 -0
- package/dist/instrumentation/__tests__/langchain-wrapper.test.js +282 -0
- package/dist/instrumentation/__tests__/langchain-wrapper.test.js.map +1 -0
- package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js +1 -1
- package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/mistral-trace-comparison.test.d.ts +0 -3
- package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js +275 -68
- package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/openai-wrapper.test.js +7 -9
- package/dist/instrumentation/__tests__/openai-wrapper.test.js.map +1 -1
- package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js +1 -1
- package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/replicate-trace-comparison.test.d.ts +2 -1
- package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js +209 -21
- package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/together-trace-comparison.test.js +231 -51
- package/dist/instrumentation/__tests__/together-trace-comparison.test.js.map +1 -1
- package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.d.ts +8 -0
- package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js +446 -0
- package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js.map +1 -0
- package/dist/instrumentation/anthropic/index.d.ts +2 -3
- package/dist/instrumentation/anthropic/index.js.map +1 -1
- package/dist/instrumentation/anthropic/wrapper.d.ts +1 -3
- package/dist/instrumentation/anthropic/wrapper.js +211 -91
- package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
- package/dist/instrumentation/azure-ai-inference/index.d.ts +11 -0
- package/dist/instrumentation/azure-ai-inference/index.js +76 -0
- package/dist/instrumentation/azure-ai-inference/index.js.map +1 -0
- package/dist/instrumentation/azure-ai-inference/wrapper.d.ts +42 -0
- package/dist/instrumentation/azure-ai-inference/wrapper.js +515 -0
- package/dist/instrumentation/azure-ai-inference/wrapper.js.map +1 -0
- package/dist/instrumentation/base-wrapper.d.ts +2 -1
- package/dist/instrumentation/base-wrapper.js +35 -23
- package/dist/instrumentation/base-wrapper.js.map +1 -1
- package/dist/instrumentation/bedrock/wrapper.d.ts +21 -3
- package/dist/instrumentation/bedrock/wrapper.js +318 -265
- package/dist/instrumentation/bedrock/wrapper.js.map +1 -1
- package/dist/instrumentation/chroma/wrapper.js +1 -1
- package/dist/instrumentation/chroma/wrapper.js.map +1 -1
- package/dist/instrumentation/claude-agent-sdk/index.d.ts +23 -0
- package/dist/instrumentation/claude-agent-sdk/index.js +83 -0
- package/dist/instrumentation/claude-agent-sdk/index.js.map +1 -0
- package/dist/instrumentation/claude-agent-sdk/wrapper.d.ts +13 -0
- package/dist/instrumentation/claude-agent-sdk/wrapper.js +1031 -0
- package/dist/instrumentation/claude-agent-sdk/wrapper.js.map +1 -0
- package/dist/instrumentation/cohere/index.d.ts +2 -3
- package/dist/instrumentation/cohere/index.js.map +1 -1
- package/dist/instrumentation/cohere/wrapper.d.ts +1 -1
- package/dist/instrumentation/cohere/wrapper.js +215 -56
- package/dist/instrumentation/cohere/wrapper.js.map +1 -1
- package/dist/instrumentation/google-adk/index.d.ts +57 -0
- package/dist/instrumentation/google-adk/index.js +371 -0
- package/dist/instrumentation/google-adk/index.js.map +1 -0
- package/dist/instrumentation/google-adk/utils.d.ts +45 -0
- package/dist/instrumentation/google-adk/utils.js +663 -0
- package/dist/instrumentation/google-adk/utils.js.map +1 -0
- package/dist/instrumentation/google-adk/wrapper.d.ts +11 -0
- package/dist/instrumentation/google-adk/wrapper.js +391 -0
- package/dist/instrumentation/google-adk/wrapper.js.map +1 -0
- package/dist/instrumentation/google-ai/wrapper.d.ts +7 -4
- package/dist/instrumentation/google-ai/wrapper.js +197 -61
- package/dist/instrumentation/google-ai/wrapper.js.map +1 -1
- package/dist/instrumentation/groq/wrapper.js +137 -65
- package/dist/instrumentation/groq/wrapper.js.map +1 -1
- package/dist/instrumentation/huggingface/wrapper.js +241 -39
- package/dist/instrumentation/huggingface/wrapper.js.map +1 -1
- package/dist/instrumentation/index.d.ts +2 -2
- package/dist/instrumentation/index.js +64 -6
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/langchain/index.d.ts +0 -7
- package/dist/instrumentation/langchain/index.js +2 -20
- package/dist/instrumentation/langchain/index.js.map +1 -1
- package/dist/instrumentation/langchain/wrapper.d.ts +35 -0
- package/dist/instrumentation/langchain/wrapper.js +1098 -184
- package/dist/instrumentation/langchain/wrapper.js.map +1 -1
- package/dist/instrumentation/langgraph/index.d.ts +12 -0
- package/dist/instrumentation/langgraph/index.js +99 -0
- package/dist/instrumentation/langgraph/index.js.map +1 -0
- package/dist/instrumentation/langgraph/wrapper.d.ts +20 -0
- package/dist/instrumentation/langgraph/wrapper.js +619 -0
- package/dist/instrumentation/langgraph/wrapper.js.map +1 -0
- package/dist/instrumentation/llamaindex/index.d.ts +31 -6
- package/dist/instrumentation/llamaindex/index.js +180 -61
- package/dist/instrumentation/llamaindex/index.js.map +1 -1
- package/dist/instrumentation/llamaindex/wrapper.d.ts +15 -3
- package/dist/instrumentation/llamaindex/wrapper.js +670 -179
- package/dist/instrumentation/llamaindex/wrapper.js.map +1 -1
- package/dist/instrumentation/milvus/wrapper.js +1 -1
- package/dist/instrumentation/milvus/wrapper.js.map +1 -1
- package/dist/instrumentation/mistral/wrapper.js +154 -79
- package/dist/instrumentation/mistral/wrapper.js.map +1 -1
- package/dist/instrumentation/ollama/index.js +33 -4
- package/dist/instrumentation/ollama/index.js.map +1 -1
- package/dist/instrumentation/ollama/wrapper.d.ts +28 -2
- package/dist/instrumentation/ollama/wrapper.js +432 -48
- package/dist/instrumentation/ollama/wrapper.js.map +1 -1
- package/dist/instrumentation/openai/index.d.ts +2 -3
- package/dist/instrumentation/openai/index.js.map +1 -1
- package/dist/instrumentation/openai/wrapper.js +293 -194
- package/dist/instrumentation/openai/wrapper.js.map +1 -1
- package/dist/instrumentation/openai-agents/index.d.ts +20 -0
- package/dist/instrumentation/openai-agents/index.js +174 -0
- package/dist/instrumentation/openai-agents/index.js.map +1 -0
- package/dist/instrumentation/openai-agents/processor.d.ts +35 -0
- package/dist/instrumentation/openai-agents/processor.js +249 -0
- package/dist/instrumentation/openai-agents/processor.js.map +1 -0
- package/dist/instrumentation/openai-agents/utils.d.ts +20 -0
- package/dist/instrumentation/openai-agents/utils.js +624 -0
- package/dist/instrumentation/openai-agents/utils.js.map +1 -0
- package/dist/instrumentation/pinecone/wrapper.js +2 -2
- package/dist/instrumentation/pinecone/wrapper.js.map +1 -1
- package/dist/instrumentation/qdrant/wrapper.js +1 -1
- package/dist/instrumentation/qdrant/wrapper.js.map +1 -1
- package/dist/instrumentation/replicate/wrapper.js +103 -21
- package/dist/instrumentation/replicate/wrapper.js.map +1 -1
- package/dist/instrumentation/strands/index.d.ts +21 -0
- package/dist/instrumentation/strands/index.js +83 -0
- package/dist/instrumentation/strands/index.js.map +1 -0
- package/dist/instrumentation/strands/processor.d.ts +45 -0
- package/dist/instrumentation/strands/processor.js +545 -0
- package/dist/instrumentation/strands/processor.js.map +1 -0
- package/dist/instrumentation/strands/utils.d.ts +24 -0
- package/dist/instrumentation/strands/utils.js +360 -0
- package/dist/instrumentation/strands/utils.js.map +1 -0
- package/dist/instrumentation/together/wrapper.js +125 -51
- package/dist/instrumentation/together/wrapper.js.map +1 -1
- package/dist/instrumentation/vercel-ai/wrapper.d.ts +28 -2
- package/dist/instrumentation/vercel-ai/wrapper.js +314 -164
- package/dist/instrumentation/vercel-ai/wrapper.js.map +1 -1
- package/dist/llm/anthropic.js +10 -6
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/openai.js +9 -5
- package/dist/llm/openai.js.map +1 -1
- package/dist/otel/__tests__/metrics.test.js +16 -27
- package/dist/otel/__tests__/metrics.test.js.map +1 -1
- package/dist/otel/events.d.ts +11 -0
- package/dist/otel/events.js +74 -0
- package/dist/otel/events.js.map +1 -0
- package/dist/otel/metrics.d.ts +5 -6
- package/dist/otel/metrics.js +66 -48
- package/dist/otel/metrics.js.map +1 -1
- package/dist/otel/tracing.d.ts +6 -2
- package/dist/otel/tracing.js +71 -24
- package/dist/otel/tracing.js.map +1 -1
- package/dist/otel/utils.d.ts +11 -0
- package/dist/otel/utils.js +34 -0
- package/dist/otel/utils.js.map +1 -0
- package/dist/semantic-convention.d.ts +44 -5
- package/dist/semantic-convention.js +51 -8
- package/dist/semantic-convention.js.map +1 -1
- package/dist/types.d.ts +74 -22
- package/package.json +41 -9
package/dist/helpers.js
CHANGED
|
@@ -1,7 +1,217 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isFrameworkLlmActive = isFrameworkLlmActive;
|
|
7
|
+
exports.runWithFrameworkLlm = runWithFrameworkLlm;
|
|
8
|
+
exports.setFrameworkLlmActive = setFrameworkLlmActive;
|
|
9
|
+
exports.resetFrameworkLlmActive = resetFrameworkLlmActive;
|
|
10
|
+
exports.isLangGraphActive = isLangGraphActive;
|
|
11
|
+
exports.runWithLangGraph = runWithLangGraph;
|
|
12
|
+
exports.isCreateAgentActive = isCreateAgentActive;
|
|
13
|
+
exports.runWithCreateAgent = runWithCreateAgent;
|
|
14
|
+
exports.getLangGraphConversationId = getLangGraphConversationId;
|
|
15
|
+
exports.runWithLangGraphConversationId = runWithLangGraphConversationId;
|
|
16
|
+
exports.getFrameworkParentContext = getFrameworkParentContext;
|
|
17
|
+
exports.setFrameworkParentContext = setFrameworkParentContext;
|
|
18
|
+
exports.clearFrameworkParentContext = clearFrameworkParentContext;
|
|
19
|
+
exports.getServerAddressForProvider = getServerAddressForProvider;
|
|
20
|
+
exports.applyCustomSpanAttributes = applyCustomSpanAttributes;
|
|
21
|
+
exports.getMergedCustomAttributes = getMergedCustomAttributes;
|
|
22
|
+
exports.injectAdditionalAttributes = injectAdditionalAttributes;
|
|
23
|
+
exports.usingAttributes = usingAttributes;
|
|
3
24
|
const js_tiktoken_1 = require("js-tiktoken");
|
|
4
25
|
const api_1 = require("@opentelemetry/api");
|
|
26
|
+
const api_logs_1 = require("@opentelemetry/api-logs");
|
|
27
|
+
const async_hooks_1 = require("async_hooks");
|
|
28
|
+
const semantic_convention_1 = __importDefault(require("./semantic-convention"));
|
|
29
|
+
const events_1 = __importDefault(require("./otel/events"));
|
|
30
|
+
const config_1 = __importDefault(require("./config"));
|
|
31
|
+
/**
|
|
32
|
+
* AsyncLocalStorage for context-scoped custom span attributes.
|
|
33
|
+
* Mirrors Python's ContextVar _custom_span_attributes, used by
|
|
34
|
+
* usingAttributes() and injectAdditionalAttributes().
|
|
35
|
+
*/
|
|
36
|
+
const _customSpanAttributes = new async_hooks_1.AsyncLocalStorage();
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Framework LLM span suppression flags (mirrors Python SDK ContextVars)
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
const _frameworkLlmActive = new async_hooks_1.AsyncLocalStorage();
|
|
41
|
+
/**
|
|
42
|
+
* Returns true when a framework instrumentor (LangChain, LiteLLM, etc.)
|
|
43
|
+
* owns the current LLM span. Provider-level wrappers (OpenAI, Anthropic, …)
|
|
44
|
+
* must skip their own span creation when this returns true.
|
|
45
|
+
*/
|
|
46
|
+
function isFrameworkLlmActive() {
|
|
47
|
+
return _frameworkLlmActive.getStore() === true;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Run `fn` with the framework-LLM-active flag set. All provider wrappers
|
|
51
|
+
* invoked inside `fn` will see `isFrameworkLlmActive() === true`.
|
|
52
|
+
*/
|
|
53
|
+
function runWithFrameworkLlm(fn) {
|
|
54
|
+
return _frameworkLlmActive.run(true, fn);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Set framework-LLM-active flag in the current execution context.
|
|
58
|
+
* Used by SpanProcessor-based instrumentations (Strands) where
|
|
59
|
+
* the processor observes spans rather than controlling execution.
|
|
60
|
+
* Mirrors Python's ContextVar.set(True) in Strands processor.
|
|
61
|
+
*/
|
|
62
|
+
function setFrameworkLlmActive() {
|
|
63
|
+
_frameworkLlmActive.enterWith(true);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Reset framework-LLM-active flag in the current execution context.
|
|
67
|
+
* Mirrors Python's ContextVar.reset(token) in Strands processor.
|
|
68
|
+
*/
|
|
69
|
+
function resetFrameworkLlmActive() {
|
|
70
|
+
_frameworkLlmActive.enterWith(false);
|
|
71
|
+
}
|
|
72
|
+
const _langGraphActive = new async_hooks_1.AsyncLocalStorage();
|
|
73
|
+
/**
|
|
74
|
+
* Returns true when a LangGraph wrapper is controlling execution.
|
|
75
|
+
* LangChain's callback handler skips its own invoke_workflow span when true.
|
|
76
|
+
*/
|
|
77
|
+
function isLangGraphActive() {
|
|
78
|
+
return _langGraphActive.getStore() === true;
|
|
79
|
+
}
|
|
80
|
+
function runWithLangGraph(fn) {
|
|
81
|
+
return _langGraphActive.run(true, fn);
|
|
82
|
+
}
|
|
83
|
+
const _createAgentActive = new async_hooks_1.AsyncLocalStorage();
|
|
84
|
+
/**
|
|
85
|
+
* Returns true when a create_agent span is already being handled
|
|
86
|
+
* (prevents duplicate spans between LangChain and LangGraph).
|
|
87
|
+
*/
|
|
88
|
+
function isCreateAgentActive() {
|
|
89
|
+
return _createAgentActive.getStore() === true;
|
|
90
|
+
}
|
|
91
|
+
function runWithCreateAgent(fn) {
|
|
92
|
+
return _createAgentActive.run(true, fn);
|
|
93
|
+
}
|
|
94
|
+
const _langGraphConversationId = new async_hooks_1.AsyncLocalStorage();
|
|
95
|
+
/**
|
|
96
|
+
* Propagate conversation ID from invoke_workflow to child node spans.
|
|
97
|
+
* Mirrors Python's set_langgraph_conversation_id / get_langgraph_conversation_id.
|
|
98
|
+
*/
|
|
99
|
+
function getLangGraphConversationId() {
|
|
100
|
+
return _langGraphConversationId.getStore();
|
|
101
|
+
}
|
|
102
|
+
function runWithLangGraphConversationId(conversationId, fn) {
|
|
103
|
+
return _langGraphConversationId.run(conversationId, fn);
|
|
104
|
+
}
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
// Framework parent context propagation (mirrors Python context_api.attach)
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
const _frameworkParentContext = new async_hooks_1.AsyncLocalStorage();
|
|
109
|
+
/**
|
|
110
|
+
* Returns the OTel context set by a framework processor (OpenAI Agents, etc.)
|
|
111
|
+
* so that provider wrappers can create spans as children of framework spans.
|
|
112
|
+
* Mirrors Python's context_api.attach(set_span_in_context(span)).
|
|
113
|
+
*/
|
|
114
|
+
function getFrameworkParentContext() {
|
|
115
|
+
return _frameworkParentContext.getStore() || undefined;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Set the OTel parent context for provider span creation.
|
|
119
|
+
* Called by processor-based frameworks that cannot use context.with().
|
|
120
|
+
*/
|
|
121
|
+
function setFrameworkParentContext(ctx) {
|
|
122
|
+
_frameworkParentContext.enterWith(ctx);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Clear the framework parent context.
|
|
126
|
+
*/
|
|
127
|
+
function clearFrameworkParentContext() {
|
|
128
|
+
_frameworkParentContext.enterWith(undefined);
|
|
129
|
+
}
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// Provider default endpoints (mirrors Python PROVIDER_DEFAULT_ENDPOINTS)
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
const PROVIDER_DEFAULT_ENDPOINTS = {
|
|
134
|
+
openai: ['api.openai.com', 443],
|
|
135
|
+
anthropic: ['api.anthropic.com', 443],
|
|
136
|
+
google: ['generativelanguage.googleapis.com', 443],
|
|
137
|
+
'gcp.gemini': ['generativelanguage.googleapis.com', 443],
|
|
138
|
+
'gcp.vertex_ai': ['aiplatform.googleapis.com', 443],
|
|
139
|
+
mistral_ai: ['api.mistral.ai', 443],
|
|
140
|
+
groq: ['api.groq.com', 443],
|
|
141
|
+
together: ['api.together.xyz', 443],
|
|
142
|
+
fireworks: ['api.fireworks.ai', 443],
|
|
143
|
+
perplexity: ['api.perplexity.ai', 443],
|
|
144
|
+
deepinfra: ['api.deepinfra.com', 443],
|
|
145
|
+
'aws.bedrock': ['bedrock-runtime.amazonaws.com', 443],
|
|
146
|
+
azure: ['openai.azure.com', 443],
|
|
147
|
+
'azure.ai.openai': ['openai.azure.com', 443],
|
|
148
|
+
'azure.ai.inference': ['inference.ai.azure.com', 443],
|
|
149
|
+
cohere: ['api.cohere.ai', 443],
|
|
150
|
+
ollama: ['localhost', 11434],
|
|
151
|
+
deepseek: ['api.deepseek.com', 443],
|
|
152
|
+
x_ai: ['api.x.ai', 443],
|
|
153
|
+
huggingface: ['api-inference.huggingface.co', 443],
|
|
154
|
+
};
|
|
155
|
+
function getServerAddressForProvider(provider) {
|
|
156
|
+
return PROVIDER_DEFAULT_ENDPOINTS[provider] || ['', 0];
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Apply global (from init) and context-scoped (from usingAttributes /
|
|
160
|
+
* injectAdditionalAttributes) custom attributes to a span.
|
|
161
|
+
* Global attributes are applied first; context attributes override on conflict.
|
|
162
|
+
* Matches Python's _apply_custom_span_attributes().
|
|
163
|
+
*/
|
|
164
|
+
function applyCustomSpanAttributes(span) {
|
|
165
|
+
const globalAttrs = config_1.default.customSpanAttributes;
|
|
166
|
+
if (globalAttrs) {
|
|
167
|
+
for (const [key, value] of Object.entries(globalAttrs)) {
|
|
168
|
+
span.setAttribute(key, value);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const contextAttrs = _customSpanAttributes.getStore();
|
|
172
|
+
if (contextAttrs) {
|
|
173
|
+
for (const [key, value] of Object.entries(contextAttrs)) {
|
|
174
|
+
span.setAttribute(key, value);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get merged custom attributes (global + context) for use in events.
|
|
180
|
+
* Returns a flat object; context attributes override global on conflict.
|
|
181
|
+
*/
|
|
182
|
+
function getMergedCustomAttributes() {
|
|
183
|
+
const merged = {};
|
|
184
|
+
const globalAttrs = config_1.default.customSpanAttributes;
|
|
185
|
+
if (globalAttrs) {
|
|
186
|
+
Object.assign(merged, globalAttrs);
|
|
187
|
+
}
|
|
188
|
+
const contextAttrs = _customSpanAttributes.getStore();
|
|
189
|
+
if (contextAttrs) {
|
|
190
|
+
Object.assign(merged, contextAttrs);
|
|
191
|
+
}
|
|
192
|
+
return merged;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Run a function with custom span attributes attached to all
|
|
196
|
+
* auto-instrumented spans created during its execution.
|
|
197
|
+
* Matches Python's openlit.inject_additional_attributes().
|
|
198
|
+
*/
|
|
199
|
+
function injectAdditionalAttributes(fn, attributes) {
|
|
200
|
+
return _customSpanAttributes.run(attributes, fn);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Context wrapper that adds custom attributes to all auto-instrumented
|
|
204
|
+
* spans created within its callback scope.
|
|
205
|
+
* Matches Python's openlit.using_attributes() context manager.
|
|
206
|
+
*
|
|
207
|
+
* Usage:
|
|
208
|
+
* await usingAttributes({"user.id": "u1", "team": "ml"}, async () => {
|
|
209
|
+
* await client.chat.completions.create(...);
|
|
210
|
+
* });
|
|
211
|
+
*/
|
|
212
|
+
function usingAttributes(attributes, fn) {
|
|
213
|
+
return _customSpanAttributes.run(attributes, fn);
|
|
214
|
+
}
|
|
5
215
|
class OpenLitHelper {
|
|
6
216
|
static openaiTokens(text, model) {
|
|
7
217
|
try {
|
|
@@ -18,23 +228,38 @@ class OpenLitHelper {
|
|
|
18
228
|
}
|
|
19
229
|
static getChatModelCost(model, pricingInfo, promptTokens, completionTokens) {
|
|
20
230
|
try {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
231
|
+
const chatPricing = pricingInfo?.chat;
|
|
232
|
+
if (!chatPricing)
|
|
233
|
+
return 0;
|
|
234
|
+
let modelPricing = chatPricing[model];
|
|
235
|
+
if (modelPricing == null && model.includes('/')) {
|
|
236
|
+
modelPricing = chatPricing[model.split('/', 2)[1]];
|
|
237
|
+
}
|
|
238
|
+
if (modelPricing == null)
|
|
239
|
+
return 0;
|
|
240
|
+
const cost = (promptTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * modelPricing.promptPrice +
|
|
241
|
+
(completionTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * modelPricing.completionPrice;
|
|
24
242
|
return isNaN(cost) ? 0 : cost;
|
|
25
243
|
}
|
|
26
|
-
catch
|
|
27
|
-
console.error(`Error in getChatModelCost: ${error}`);
|
|
244
|
+
catch {
|
|
28
245
|
return 0;
|
|
29
246
|
}
|
|
30
247
|
}
|
|
31
248
|
static getEmbedModelCost(model, pricingInfo, promptTokens) {
|
|
32
249
|
try {
|
|
33
|
-
const
|
|
250
|
+
const embedPricing = pricingInfo?.embeddings;
|
|
251
|
+
if (!embedPricing)
|
|
252
|
+
return 0;
|
|
253
|
+
let unitCost = embedPricing[model];
|
|
254
|
+
if (unitCost == null && model.includes('/')) {
|
|
255
|
+
unitCost = embedPricing[model.split('/', 2)[1]];
|
|
256
|
+
}
|
|
257
|
+
if (unitCost == null)
|
|
258
|
+
return 0;
|
|
259
|
+
const cost = (promptTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * unitCost;
|
|
34
260
|
return isNaN(cost) ? 0 : cost;
|
|
35
261
|
}
|
|
36
|
-
catch
|
|
37
|
-
console.error(`Error in getEmbedModelCost: ${error}`);
|
|
262
|
+
catch {
|
|
38
263
|
return 0;
|
|
39
264
|
}
|
|
40
265
|
}
|
|
@@ -205,9 +430,46 @@ class OpenLitHelper {
|
|
|
205
430
|
return '[]';
|
|
206
431
|
}
|
|
207
432
|
}
|
|
433
|
+
/**
|
|
434
|
+
* Emit an inference event via the LoggerProvider, matching Python SDK's
|
|
435
|
+
* gen_ai.client.inference.operation.details event.
|
|
436
|
+
* Falls back to span.addEvent if LoggerProvider is not available.
|
|
437
|
+
*/
|
|
438
|
+
static emitInferenceEvent(span, attrs) {
|
|
439
|
+
const eventAttributes = {};
|
|
440
|
+
const customAttrs = getMergedCustomAttributes();
|
|
441
|
+
for (const [key, value] of Object.entries(customAttrs)) {
|
|
442
|
+
if (value !== undefined && value !== null) {
|
|
443
|
+
eventAttributes[key] = value;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
for (const [key, value] of Object.entries(attrs)) {
|
|
447
|
+
if (value !== undefined && value !== null) {
|
|
448
|
+
eventAttributes[key] = value;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
if (events_1.default.logger) {
|
|
452
|
+
events_1.default.logger.emit({
|
|
453
|
+
eventName: semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS,
|
|
454
|
+
context: api_1.trace.setSpan(api_1.context.active(), span),
|
|
455
|
+
severityNumber: api_logs_1.SeverityNumber.INFO,
|
|
456
|
+
severityText: 'INFO',
|
|
457
|
+
body: semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS,
|
|
458
|
+
attributes: {
|
|
459
|
+
...eventAttributes,
|
|
460
|
+
'event.name': semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS,
|
|
461
|
+
},
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
span.addEvent(semantic_convention_1.default.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS, eventAttributes);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
208
468
|
static handleException(span, error) {
|
|
209
469
|
span.recordException(error);
|
|
210
470
|
span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error.message });
|
|
471
|
+
const errorType = error.constructor?.name || '_OTHER';
|
|
472
|
+
span.setAttribute(semantic_convention_1.default.ERROR_TYPE, errorType);
|
|
211
473
|
}
|
|
212
474
|
static async createStreamProxy(stream, generatorFuncResponse) {
|
|
213
475
|
return new Proxy(stream, {
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resourceFromAttributes } from '@opentelemetry/resources';
|
|
2
|
-
import {
|
|
3
|
-
import { OpenlitOptions } from './types';
|
|
2
|
+
import { OpenlitOptions, ResolvedOptions } from './types';
|
|
4
3
|
import BaseOpenlit from './features/base';
|
|
4
|
+
import { usingAttributes, injectAdditionalAttributes } from './helpers';
|
|
5
5
|
import { Hallucination, Bias, Toxicity, All } from './evals';
|
|
6
6
|
import { PromptInjection } from './guard/prompt-injection';
|
|
7
7
|
import { SensitiveTopic } from './guard/sensitive-topic';
|
|
@@ -21,8 +21,7 @@ declare const guard: {
|
|
|
21
21
|
};
|
|
22
22
|
declare class Openlit extends BaseOpenlit {
|
|
23
23
|
static resource: ReturnType<typeof resourceFromAttributes>;
|
|
24
|
-
static options:
|
|
25
|
-
static _sdk: NodeSDK;
|
|
24
|
+
static options: ResolvedOptions;
|
|
26
25
|
static evals: {
|
|
27
26
|
Hallucination: (options: ConstructorParameters<typeof Hallucination>[0]) => Hallucination;
|
|
28
27
|
Bias: (options: ConstructorParameters<typeof Bias>[0]) => Bias;
|
|
@@ -40,7 +39,9 @@ declare class Openlit extends BaseOpenlit {
|
|
|
40
39
|
declare const openlit: typeof Openlit & {
|
|
41
40
|
evals: typeof evals;
|
|
42
41
|
guard: typeof guard;
|
|
42
|
+
usingAttributes: typeof usingAttributes;
|
|
43
|
+
injectAdditionalAttributes: typeof injectAdditionalAttributes;
|
|
43
44
|
};
|
|
44
45
|
export default openlit;
|
|
45
|
-
export { Openlit };
|
|
46
|
+
export { Openlit, usingAttributes, injectAdditionalAttributes };
|
|
46
47
|
export type { OpenlitOptions } from './types';
|
package/dist/index.js
CHANGED
|
@@ -3,13 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Openlit = void 0;
|
|
6
|
+
exports.injectAdditionalAttributes = exports.usingAttributes = exports.Openlit = void 0;
|
|
7
7
|
const resources_1 = require("@opentelemetry/resources");
|
|
8
8
|
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
9
|
-
const
|
|
9
|
+
const api_1 = require("@opentelemetry/api");
|
|
10
10
|
const tracing_1 = __importDefault(require("./otel/tracing"));
|
|
11
|
+
const events_1 = __importDefault(require("./otel/events"));
|
|
11
12
|
const constant_1 = require("./constant");
|
|
12
13
|
const base_1 = __importDefault(require("./features/base"));
|
|
14
|
+
const config_1 = __importDefault(require("./config"));
|
|
15
|
+
const helpers_1 = __importDefault(require("./helpers"));
|
|
16
|
+
const helpers_2 = require("./helpers");
|
|
17
|
+
Object.defineProperty(exports, "usingAttributes", { enumerable: true, get: function () { return helpers_2.usingAttributes; } });
|
|
18
|
+
Object.defineProperty(exports, "injectAdditionalAttributes", { enumerable: true, get: function () { return helpers_2.injectAdditionalAttributes; } });
|
|
13
19
|
const evals_1 = require("./evals");
|
|
14
20
|
const metrics_1 = __importDefault(require("./otel/metrics"));
|
|
15
21
|
const semantic_convention_1 = __importDefault(require("./semantic-convention"));
|
|
@@ -17,73 +23,110 @@ const prompt_injection_1 = require("./guard/prompt-injection");
|
|
|
17
23
|
const sensitive_topic_1 = require("./guard/sensitive-topic");
|
|
18
24
|
const topic_restriction_1 = require("./guard/topic-restriction");
|
|
19
25
|
const all_1 = require("./guard/all");
|
|
20
|
-
|
|
26
|
+
const utils_1 = require("./otel/utils");
|
|
21
27
|
const evals = {
|
|
22
28
|
Hallucination: (options) => new evals_1.Hallucination(options),
|
|
23
29
|
Bias: (options) => new evals_1.Bias(options),
|
|
24
30
|
Toxicity: (options) => new evals_1.Toxicity(options),
|
|
25
31
|
All: (options) => new evals_1.All(options),
|
|
26
32
|
};
|
|
27
|
-
// Factory functions for guards
|
|
28
33
|
const guard = {
|
|
29
34
|
PromptInjection: (options) => new prompt_injection_1.PromptInjection(options),
|
|
30
35
|
SensitiveTopic: (options) => new sensitive_topic_1.SensitiveTopic(options),
|
|
31
36
|
TopicRestriction: (options) => new topic_restriction_1.TopicRestriction(options),
|
|
32
37
|
All: (options) => new all_1.All(options),
|
|
33
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* Resolve OpenlitOptions into a single ResolvedOptions object.
|
|
41
|
+
* Precedence: arg > env var > default.
|
|
42
|
+
*/
|
|
43
|
+
function resolveOptions(options) {
|
|
44
|
+
const o = options || {};
|
|
45
|
+
const environment = o.environment ?? constant_1.DEFAULT_ENVIRONMENT;
|
|
46
|
+
const applicationName = o.applicationName ?? constant_1.DEFAULT_APPLICATION_NAME;
|
|
47
|
+
const rawEndpoint = o.otlpEndpoint ??
|
|
48
|
+
process.env.OTEL_EXPORTER_OTLP_ENDPOINT ??
|
|
49
|
+
undefined;
|
|
50
|
+
const otlpEndpoint = rawEndpoint
|
|
51
|
+
? rawEndpoint.replace(/\/v1\/traces$/, '')
|
|
52
|
+
: undefined;
|
|
53
|
+
let otlpHeaders = o.otlpHeaders ?? undefined;
|
|
54
|
+
if (!otlpHeaders && process.env.OTEL_EXPORTER_OTLP_HEADERS) {
|
|
55
|
+
otlpHeaders = process.env.OTEL_EXPORTER_OTLP_HEADERS.split(',').reduce((acc, item) => {
|
|
56
|
+
const keyVal = item.split('=');
|
|
57
|
+
acc[keyVal[0]] = keyVal[1];
|
|
58
|
+
return acc;
|
|
59
|
+
}, {});
|
|
60
|
+
}
|
|
61
|
+
if (!otlpHeaders)
|
|
62
|
+
otlpHeaders = {};
|
|
63
|
+
let disableBatch = o.disableBatch ?? undefined;
|
|
64
|
+
const envDisableBatch = (0, utils_1.parseBoolEnv)('OPENLIT_DISABLE_BATCH');
|
|
65
|
+
if (disableBatch === undefined) {
|
|
66
|
+
disableBatch = envDisableBatch ?? false;
|
|
67
|
+
}
|
|
68
|
+
let captureMessageContent = o.captureMessageContent ?? undefined;
|
|
69
|
+
const envCapture = (0, utils_1.parseBoolEnv)('OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT');
|
|
70
|
+
if (captureMessageContent === undefined) {
|
|
71
|
+
captureMessageContent = envCapture ?? true;
|
|
72
|
+
}
|
|
73
|
+
let disableMetrics = o.disableMetrics ?? undefined;
|
|
74
|
+
const envDisableMetrics = (0, utils_1.parseBoolEnv)('OPENLIT_DISABLE_METRICS');
|
|
75
|
+
if (disableMetrics === undefined) {
|
|
76
|
+
disableMetrics = envDisableMetrics ?? false;
|
|
77
|
+
}
|
|
78
|
+
let disableEvents = o.disableEvents ?? undefined;
|
|
79
|
+
const envDisableEvents = (0, utils_1.parseBoolEnv)('OPENLIT_DISABLE_EVENTS');
|
|
80
|
+
if (disableEvents === undefined) {
|
|
81
|
+
disableEvents = envDisableEvents ?? false;
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
environment,
|
|
85
|
+
applicationName,
|
|
86
|
+
tracer: o.tracer,
|
|
87
|
+
otlpEndpoint,
|
|
88
|
+
otlpHeaders,
|
|
89
|
+
disableBatch,
|
|
90
|
+
captureMessageContent,
|
|
91
|
+
disabledInstrumentors: o.disabledInstrumentors,
|
|
92
|
+
instrumentations: o.instrumentations,
|
|
93
|
+
disableMetrics,
|
|
94
|
+
disableEvents,
|
|
95
|
+
pricingJson: o.pricingJson,
|
|
96
|
+
maxContentLength: o.maxContentLength ?? null,
|
|
97
|
+
customSpanAttributes: o.customSpanAttributes ?? null,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
34
100
|
class Openlit extends base_1.default {
|
|
35
101
|
static init(options) {
|
|
36
102
|
try {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
otlpHeaders = process.env.OTEL_EXPORTER_OTLP_HEADERS.split(',').reduce((acc, items) => {
|
|
43
|
-
const keyVal = items.split('=');
|
|
44
|
-
acc[keyVal[0]] = keyVal[1];
|
|
45
|
-
return acc;
|
|
46
|
-
}, {});
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
otlpHeaders = {};
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
this.options = options || {};
|
|
53
|
-
this.options.otlpEndpoint = otlpEndpoint;
|
|
54
|
-
this.options.otlpHeaders = otlpHeaders;
|
|
55
|
-
this.options.disableBatch =
|
|
56
|
-
options?.disableBatch === undefined ? true : !!options.disableBatch;
|
|
103
|
+
// Enable OTel diagnostic logging so exporter errors (connection refused,
|
|
104
|
+
// 404, timeouts) are surfaced to the user — matches Python SDK behavior.
|
|
105
|
+
api_1.diag.setLogger(new api_1.DiagConsoleLogger(), api_1.DiagLogLevel.WARN);
|
|
106
|
+
const resolved = resolveOptions(options);
|
|
107
|
+
this.options = resolved;
|
|
57
108
|
this.resource = (0, resources_1.resourceFromAttributes)({
|
|
58
|
-
[semantic_conventions_1.ATTR_SERVICE_NAME]: applicationName,
|
|
59
|
-
[semantic_convention_1.default.ATTR_DEPLOYMENT_ENVIRONMENT]: environment,
|
|
109
|
+
[semantic_conventions_1.ATTR_SERVICE_NAME]: resolved.applicationName,
|
|
110
|
+
[semantic_convention_1.default.ATTR_DEPLOYMENT_ENVIRONMENT]: resolved.environment,
|
|
60
111
|
[semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME]: constant_1.SDK_NAME,
|
|
61
112
|
});
|
|
62
|
-
|
|
63
|
-
...
|
|
64
|
-
environment,
|
|
65
|
-
applicationName,
|
|
66
|
-
otlpEndpoint,
|
|
67
|
-
otlpHeaders,
|
|
113
|
+
const setupBase = {
|
|
114
|
+
...resolved,
|
|
68
115
|
resource: this.resource,
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
metricReader: metrics_1.default.metricReaders[0],
|
|
84
|
-
});
|
|
85
|
-
// This was causing the traceProvider initilization with multiple instances.
|
|
86
|
-
// this._sdk.start();
|
|
116
|
+
};
|
|
117
|
+
tracing_1.default.setup(setupBase);
|
|
118
|
+
if (!resolved.disableEvents) {
|
|
119
|
+
events_1.default.setup(setupBase);
|
|
120
|
+
}
|
|
121
|
+
if (!resolved.disableMetrics) {
|
|
122
|
+
const exportIntervalMillis = Number(process.env.OTEL_EXPORTER_OTLP_METRICS_EXPORT_INTERVAL ?? 60000) || 60000;
|
|
123
|
+
metrics_1.default.setup({
|
|
124
|
+
...setupBase,
|
|
125
|
+
exportIntervalMillis,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
// Fetch pricing info once and cache — matches Python SDK behavior.
|
|
129
|
+
helpers_1.default.fetchPricingInfo(resolved.pricingJson).then((info) => { config_1.default.pricingInfo = info; }, () => { config_1.default.pricingInfo = {}; });
|
|
87
130
|
}
|
|
88
131
|
catch (e) {
|
|
89
132
|
console.log('Connection time out', e);
|
|
@@ -94,5 +137,7 @@ exports.Openlit = Openlit;
|
|
|
94
137
|
Openlit.evals = evals;
|
|
95
138
|
Openlit.guard = guard;
|
|
96
139
|
const openlit = Openlit;
|
|
140
|
+
openlit.usingAttributes = helpers_2.usingAttributes;
|
|
141
|
+
openlit.injectAdditionalAttributes = helpers_2.injectAdditionalAttributes;
|
|
97
142
|
exports.default = openlit;
|
|
98
143
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAkE;AAClE,8EAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|