openlit 1.33.14__py3-none-any.whl → 1.33.16__py3-none-any.whl
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.
- openlit/__init__.py +3 -0
- openlit/instrumentation/astra/__init__.py +82 -83
- openlit/instrumentation/astra/astra.py +26 -207
- openlit/instrumentation/astra/async_astra.py +27 -208
- openlit/instrumentation/astra/utils.py +102 -0
- openlit/instrumentation/chroma/chroma.py +10 -10
- openlit/instrumentation/dynamiq/dynamiq.py +2 -2
- openlit/instrumentation/milvus/milvus.py +10 -10
- openlit/instrumentation/openai/__init__.py +18 -2
- openlit/instrumentation/openai/async_openai.py +405 -0
- openlit/instrumentation/openai/openai.py +405 -0
- openlit/instrumentation/openai_agents/__init__.py +42 -0
- openlit/instrumentation/openai_agents/openai_agents.py +65 -0
- openlit/instrumentation/pinecone/pinecone.py +8 -8
- openlit/instrumentation/qdrant/async_qdrant.py +19 -19
- openlit/instrumentation/qdrant/qdrant.py +20 -20
- openlit/otel/metrics.py +18 -0
- openlit/semcov/__init__.py +26 -13
- {openlit-1.33.14.dist-info → openlit-1.33.16.dist-info}/METADATA +1 -1
- {openlit-1.33.14.dist-info → openlit-1.33.16.dist-info}/RECORD +22 -19
- {openlit-1.33.14.dist-info → openlit-1.33.16.dist-info}/LICENSE +0 -0
- {openlit-1.33.14.dist-info → openlit-1.33.16.dist-info}/WHEEL +0 -0
@@ -79,40 +79,40 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
79
79
|
application_name)
|
80
80
|
span.set_attribute(SemanticConvetion.GEN_AI_OPERATION,
|
81
81
|
SemanticConvetion.GEN_AI_OPERATION_TYPE_VECTORDB)
|
82
|
-
span.set_attribute(SemanticConvetion.
|
82
|
+
span.set_attribute(SemanticConvetion.DB_SYSTEM_NAME,
|
83
83
|
SemanticConvetion.DB_SYSTEM_QDRANT)
|
84
84
|
|
85
85
|
if gen_ai_endpoint == "qdrant.create_collection":
|
86
86
|
db_operation = SemanticConvetion.DB_OPERATION_CREATE_COLLECTION
|
87
|
-
span.set_attribute(SemanticConvetion.
|
87
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
88
88
|
SemanticConvetion.DB_OPERATION_CREATE_COLLECTION)
|
89
89
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
90
90
|
kwargs.get("collection_name", ""))
|
91
91
|
|
92
92
|
elif gen_ai_endpoint == "qdrant.upload_collection":
|
93
93
|
db_operation = SemanticConvetion.DB_OPERATION_CREATE_COLLECTION
|
94
|
-
span.set_attribute(SemanticConvetion.
|
94
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
95
95
|
SemanticConvetion.DB_OPERATION_CREATE_COLLECTION)
|
96
96
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
97
97
|
kwargs.get("collection_name", ""))
|
98
98
|
|
99
99
|
elif gen_ai_endpoint == "qdrant.delete_collection":
|
100
100
|
db_operation = SemanticConvetion.DB_OPERATION_DELETE_COLLECTION
|
101
|
-
span.set_attribute(SemanticConvetion.
|
101
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
102
102
|
SemanticConvetion.DB_OPERATION_DELETE_COLLECTION)
|
103
103
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
104
104
|
kwargs.get("collection_name", ""))
|
105
105
|
|
106
106
|
elif gen_ai_endpoint == "qdrant.update_collection":
|
107
107
|
db_operation = SemanticConvetion.DB_OPERATION_UPDATE_COLLECTION
|
108
|
-
span.set_attribute(SemanticConvetion.
|
108
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
109
109
|
SemanticConvetion.DB_OPERATION_UPDATE_COLLECTION)
|
110
110
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
111
111
|
kwargs.get("collection_name", ""))
|
112
112
|
|
113
113
|
elif gen_ai_endpoint == "qdrant.set_payload":
|
114
114
|
db_operation = SemanticConvetion.DB_OPERATION_ADD
|
115
|
-
span.set_attribute(SemanticConvetion.
|
115
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
116
116
|
SemanticConvetion.DB_OPERATION_ADD)
|
117
117
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
118
118
|
kwargs.get("collection_name", ""))
|
@@ -125,7 +125,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
125
125
|
|
126
126
|
elif gen_ai_endpoint == "qdrant.retrieve":
|
127
127
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
128
|
-
span.set_attribute(SemanticConvetion.
|
128
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
129
129
|
SemanticConvetion.DB_OPERATION_QUERY)
|
130
130
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
131
131
|
kwargs.get("collection_name", ""))
|
@@ -134,7 +134,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
134
134
|
|
135
135
|
elif gen_ai_endpoint == "qdrant.scroll":
|
136
136
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
137
|
-
span.set_attribute(SemanticConvetion.
|
137
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
138
138
|
SemanticConvetion.DB_OPERATION_QUERY)
|
139
139
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
140
140
|
kwargs.get("collection_name", ""))
|
@@ -143,7 +143,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
143
143
|
|
144
144
|
elif gen_ai_endpoint in ["qdrant.search", "qdrant.search_groups"]:
|
145
145
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
146
|
-
span.set_attribute(SemanticConvetion.
|
146
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
147
147
|
SemanticConvetion.DB_OPERATION_QUERY)
|
148
148
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
149
149
|
kwargs.get("collection_name", ""))
|
@@ -152,7 +152,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
152
152
|
|
153
153
|
elif gen_ai_endpoint == "qdrant.recommend":
|
154
154
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
155
|
-
span.set_attribute(SemanticConvetion.
|
155
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
156
156
|
SemanticConvetion.DB_OPERATION_QUERY)
|
157
157
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
158
158
|
kwargs.get("collection_name", ""))
|
@@ -162,7 +162,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
162
162
|
|
163
163
|
elif gen_ai_endpoint == "qdrant.upload_points":
|
164
164
|
db_operation = SemanticConvetion.DB_OPERATION_ADD
|
165
|
-
span.set_attribute(SemanticConvetion.
|
165
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
166
166
|
SemanticConvetion.DB_OPERATION_ADD)
|
167
167
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
168
168
|
kwargs.get("collection_name", ""))
|
@@ -171,7 +171,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
171
171
|
|
172
172
|
elif gen_ai_endpoint == "qdrant.update_vectors":
|
173
173
|
db_operation = SemanticConvetion.DB_OPERATION_UPDATE
|
174
|
-
span.set_attribute(SemanticConvetion.
|
174
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
175
175
|
SemanticConvetion.DB_OPERATION_UPDATE)
|
176
176
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
177
177
|
kwargs.get("collection_name", ""))
|
@@ -182,7 +182,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
182
182
|
|
183
183
|
elif gen_ai_endpoint == "qdrant.overwrite_payload":
|
184
184
|
db_operation = SemanticConvetion.DB_OPERATION_UPDATE
|
185
|
-
span.set_attribute(SemanticConvetion.
|
185
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
186
186
|
SemanticConvetion.DB_OPERATION_UPDATE)
|
187
187
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
188
188
|
kwargs.get("collection_name", ""))
|
@@ -197,7 +197,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
197
197
|
db_operation = SemanticConvetion.DB_OPERATION_UPSERT
|
198
198
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
199
199
|
kwargs.get("collection_name", ""))
|
200
|
-
span.set_attribute(SemanticConvetion.
|
200
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
201
201
|
SemanticConvetion.DB_OPERATION_UPSERT)
|
202
202
|
span.set_attribute(SemanticConvetion.DB_OPERATION_STATUS,
|
203
203
|
response.status)
|
@@ -206,7 +206,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
206
206
|
|
207
207
|
elif gen_ai_endpoint in ["qdrant.delete_payload", "qdrant.delete_vectors"]:
|
208
208
|
db_operation = SemanticConvetion.DB_OPERATION_DELETE
|
209
|
-
span.set_attribute(SemanticConvetion.
|
209
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
210
210
|
SemanticConvetion.DB_OPERATION_DELETE)
|
211
211
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
212
212
|
kwargs.get("collection_name", ""))
|
@@ -217,7 +217,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
217
217
|
|
218
218
|
elif gen_ai_endpoint in ["qdrant.clear_payload", "qdrant.delete"]:
|
219
219
|
db_operation = SemanticConvetion.DB_OPERATION_DELETE
|
220
|
-
span.set_attribute(SemanticConvetion.
|
220
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
221
221
|
SemanticConvetion.DB_OPERATION_DELETE)
|
222
222
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
223
223
|
kwargs.get("collection_name", ""))
|
@@ -228,7 +228,7 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
228
228
|
|
229
229
|
elif gen_ai_endpoint == "qdrant.create_payload_index":
|
230
230
|
db_operation = SemanticConvetion.DB_OPERATION_CREATE_INDEX
|
231
|
-
span.set_attribute(SemanticConvetion.
|
231
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
232
232
|
SemanticConvetion.DB_OPERATION_CREATE_INDEX)
|
233
233
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
234
234
|
kwargs.get("collection_name", ""))
|
@@ -243,13 +243,13 @@ def async_general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
243
243
|
"openlit",
|
244
244
|
SERVICE_NAME:
|
245
245
|
application_name,
|
246
|
-
SemanticConvetion.
|
246
|
+
SemanticConvetion.DB_SYSTEM_NAME:
|
247
247
|
SemanticConvetion.DB_SYSTEM_QDRANT,
|
248
248
|
DEPLOYMENT_ENVIRONMENT:
|
249
249
|
environment,
|
250
250
|
SemanticConvetion.GEN_AI_OPERATION:
|
251
251
|
SemanticConvetion.GEN_AI_OPERATION_TYPE_VECTORDB,
|
252
|
-
SemanticConvetion.
|
252
|
+
SemanticConvetion.DB_OPERATION_NAME:
|
253
253
|
db_operation
|
254
254
|
}
|
255
255
|
|
@@ -79,40 +79,40 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
79
79
|
application_name)
|
80
80
|
span.set_attribute(SemanticConvetion.GEN_AI_OPERATION,
|
81
81
|
SemanticConvetion.GEN_AI_OPERATION_TYPE_VECTORDB)
|
82
|
-
span.set_attribute(SemanticConvetion.
|
82
|
+
span.set_attribute(SemanticConvetion.DB_SYSTEM_NAME,
|
83
83
|
SemanticConvetion.DB_SYSTEM_QDRANT)
|
84
84
|
|
85
85
|
if gen_ai_endpoint == "qdrant.create_collection":
|
86
86
|
db_operation = SemanticConvetion.DB_OPERATION_CREATE_COLLECTION
|
87
|
-
span.set_attribute(SemanticConvetion.
|
87
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
88
88
|
SemanticConvetion.DB_OPERATION_CREATE_COLLECTION)
|
89
89
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
90
90
|
kwargs.get("collection_name", ""))
|
91
91
|
|
92
92
|
elif gen_ai_endpoint == "qdrant.upload_collection":
|
93
93
|
db_operation = SemanticConvetion.DB_OPERATION_CREATE_COLLECTION
|
94
|
-
span.set_attribute(SemanticConvetion.
|
94
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
95
95
|
SemanticConvetion.DB_OPERATION_CREATE_COLLECTION)
|
96
96
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
97
97
|
kwargs.get("collection_name", ""))
|
98
98
|
|
99
99
|
elif gen_ai_endpoint == "qdrant.delete_collection":
|
100
100
|
db_operation = SemanticConvetion.DB_OPERATION_DELETE_COLLECTION
|
101
|
-
span.set_attribute(SemanticConvetion.
|
101
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
102
102
|
SemanticConvetion.DB_OPERATION_DELETE_COLLECTION)
|
103
103
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
104
104
|
kwargs.get("collection_name", ""))
|
105
105
|
|
106
106
|
elif gen_ai_endpoint == "qdrant.update_collection":
|
107
107
|
db_operation = SemanticConvetion.DB_OPERATION_UPDATE_COLLECTION
|
108
|
-
span.set_attribute(SemanticConvetion.
|
108
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
109
109
|
SemanticConvetion.DB_OPERATION_UPDATE_COLLECTION)
|
110
110
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
111
111
|
kwargs.get("collection_name", ""))
|
112
112
|
|
113
113
|
elif gen_ai_endpoint == "qdrant.set_payload":
|
114
114
|
db_operation = SemanticConvetion.DB_OPERATION_ADD
|
115
|
-
span.set_attribute(SemanticConvetion.
|
115
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
116
116
|
SemanticConvetion.DB_OPERATION_ADD)
|
117
117
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
118
118
|
kwargs.get("collection_name", ""))
|
@@ -125,7 +125,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
125
125
|
|
126
126
|
elif gen_ai_endpoint == "qdrant.retrieve":
|
127
127
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
128
|
-
span.set_attribute(SemanticConvetion.
|
128
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
129
129
|
SemanticConvetion.DB_OPERATION_QUERY)
|
130
130
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
131
131
|
kwargs.get("collection_name", ""))
|
@@ -134,7 +134,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
134
134
|
|
135
135
|
elif gen_ai_endpoint == "qdrant.scroll":
|
136
136
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
137
|
-
span.set_attribute(SemanticConvetion.
|
137
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
138
138
|
SemanticConvetion.DB_OPERATION_QUERY)
|
139
139
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
140
140
|
kwargs.get("collection_name", ""))
|
@@ -143,7 +143,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
143
143
|
|
144
144
|
elif gen_ai_endpoint in ["qdrant.search", "qdrant.search_groups"]:
|
145
145
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
146
|
-
span.set_attribute(SemanticConvetion.
|
146
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
147
147
|
SemanticConvetion.DB_OPERATION_QUERY)
|
148
148
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
149
149
|
kwargs.get("collection_name", ""))
|
@@ -152,7 +152,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
152
152
|
|
153
153
|
elif gen_ai_endpoint == "qdrant.recommend":
|
154
154
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
155
|
-
span.set_attribute(SemanticConvetion.
|
155
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
156
156
|
SemanticConvetion.DB_OPERATION_QUERY)
|
157
157
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
158
158
|
kwargs.get("collection_name", ""))
|
@@ -162,7 +162,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
162
162
|
|
163
163
|
elif gen_ai_endpoint == "qdrant.upload_points":
|
164
164
|
db_operation = SemanticConvetion.DB_OPERATION_ADD
|
165
|
-
span.set_attribute(SemanticConvetion.
|
165
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
166
166
|
SemanticConvetion.DB_OPERATION_ADD)
|
167
167
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
168
168
|
kwargs.get("collection_name", ""))
|
@@ -171,7 +171,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
171
171
|
|
172
172
|
elif gen_ai_endpoint == "qdrant.update_vectors":
|
173
173
|
db_operation = SemanticConvetion.DB_OPERATION_UPDATE
|
174
|
-
span.set_attribute(SemanticConvetion.
|
174
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
175
175
|
SemanticConvetion.DB_OPERATION_UPDATE)
|
176
176
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
177
177
|
kwargs.get("collection_name", ""))
|
@@ -182,7 +182,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
182
182
|
|
183
183
|
elif gen_ai_endpoint == "qdrant.overwrite_payload":
|
184
184
|
db_operation = SemanticConvetion.DB_OPERATION_UPDATE
|
185
|
-
span.set_attribute(SemanticConvetion.
|
185
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
186
186
|
SemanticConvetion.DB_OPERATION_UPDATE)
|
187
187
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
188
188
|
kwargs.get("collection_name", ""))
|
@@ -197,7 +197,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
197
197
|
db_operation = SemanticConvetion.DB_OPERATION_UPSERT
|
198
198
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
199
199
|
kwargs.get("collection_name", ""))
|
200
|
-
span.set_attribute(SemanticConvetion.
|
200
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
201
201
|
SemanticConvetion.DB_OPERATION_UPSERT)
|
202
202
|
span.set_attribute(SemanticConvetion.DB_OPERATION_STATUS,
|
203
203
|
response.status)
|
@@ -206,7 +206,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
206
206
|
|
207
207
|
elif gen_ai_endpoint in ["qdrant.delete_payload", "qdrant.delete_vectors"]:
|
208
208
|
db_operation = SemanticConvetion.DB_OPERATION_DELETE
|
209
|
-
span.set_attribute(SemanticConvetion.
|
209
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
210
210
|
SemanticConvetion.DB_OPERATION_DELETE)
|
211
211
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
212
212
|
kwargs.get("collection_name", ""))
|
@@ -217,7 +217,7 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
217
217
|
|
218
218
|
elif gen_ai_endpoint in ["qdrant.clear_payload", "qdrant.delete"]:
|
219
219
|
db_operation = SemanticConvetion.DB_OPERATION_DELETE
|
220
|
-
span.set_attribute(SemanticConvetion.
|
220
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
221
221
|
SemanticConvetion.DB_OPERATION_DELETE)
|
222
222
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
223
223
|
kwargs.get("collection_name", ""))
|
@@ -228,14 +228,14 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
228
228
|
|
229
229
|
elif gen_ai_endpoint == "qdrant.create_payload_index":
|
230
230
|
db_operation = SemanticConvetion.DB_OPERATION_CREATE_INDEX
|
231
|
-
span.set_attribute(SemanticConvetion.
|
231
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
232
232
|
SemanticConvetion.DB_OPERATION_CREATE_INDEX)
|
233
233
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
234
234
|
kwargs.get("collection_name", ""))
|
235
235
|
|
236
236
|
elif gen_ai_endpoint == "qdrant.query_points":
|
237
237
|
db_operation = SemanticConvetion.DB_OPERATION_QUERY
|
238
|
-
span.set_attribute(SemanticConvetion.
|
238
|
+
span.set_attribute(SemanticConvetion.DB_OPERATION_NAME,
|
239
239
|
SemanticConvetion.DB_OPERATION_QUERY)
|
240
240
|
span.set_attribute(SemanticConvetion.DB_COLLECTION_NAME,
|
241
241
|
kwargs.get("collection_name", ""))
|
@@ -250,13 +250,13 @@ def general_wrap(gen_ai_endpoint, version, environment, application_name,
|
|
250
250
|
"openlit",
|
251
251
|
SERVICE_NAME:
|
252
252
|
application_name,
|
253
|
-
SemanticConvetion.
|
253
|
+
SemanticConvetion.DB_SYSTEM_NAME:
|
254
254
|
SemanticConvetion.DB_SYSTEM_QDRANT,
|
255
255
|
DEPLOYMENT_ENVIRONMENT:
|
256
256
|
environment,
|
257
257
|
SemanticConvetion.GEN_AI_OPERATION:
|
258
258
|
SemanticConvetion.GEN_AI_OPERATION_TYPE_VECTORDB,
|
259
|
-
SemanticConvetion.
|
259
|
+
SemanticConvetion.DB_OPERATION_NAME:
|
260
260
|
db_operation
|
261
261
|
}
|
262
262
|
|
openlit/otel/metrics.py
CHANGED
@@ -18,6 +18,18 @@ else:
|
|
18
18
|
# Global flag to check if the meter provider initialization is complete.
|
19
19
|
METER_SET = False
|
20
20
|
|
21
|
+
_DB_CLIENT_OPERATION_DURATION_BUCKETS = [
|
22
|
+
0.001,
|
23
|
+
0.005,
|
24
|
+
0.01,
|
25
|
+
0.05,
|
26
|
+
0.1,
|
27
|
+
0.5,
|
28
|
+
1,
|
29
|
+
5,
|
30
|
+
10
|
31
|
+
]
|
32
|
+
|
21
33
|
_GEN_AI_CLIENT_OPERATION_DURATION_BUCKETS = [
|
22
34
|
0.01,
|
23
35
|
0.02,
|
@@ -167,6 +179,12 @@ def setup_meter(application_name, environment, meter, otlp_endpoint, otlp_header
|
|
167
179
|
unit="s",
|
168
180
|
explicit_bucket_boundaries_advisory=_GEN_AI_SERVER_TFTT,
|
169
181
|
),
|
182
|
+
"db_client_operation_duration": meter.create_histogram(
|
183
|
+
name=SemanticConvetion.DB_CLIENT_OPERATION_DURATION,
|
184
|
+
description="DB operation duration",
|
185
|
+
unit="s",
|
186
|
+
explicit_bucket_boundaries_advisory=_DB_CLIENT_OPERATION_DURATION_BUCKETS,
|
187
|
+
),
|
170
188
|
|
171
189
|
# Extra
|
172
190
|
"genai_requests": meter.create_counter(
|
openlit/semcov/__init__.py
CHANGED
@@ -177,28 +177,41 @@ class SemanticConvetion:
|
|
177
177
|
GEN_AI_EVAL_ANSWER_RELEVANCY = "gen_ai.eval.answer_relevancy"
|
178
178
|
GEN_AI_EVAL_GROUNDEDNESS = "gen_ai.eval.groundedness"
|
179
179
|
|
180
|
-
#
|
180
|
+
# VectorDB Metrics (OTel Semconv)
|
181
|
+
DB_CLIENT_OPERATION_DURATION = "db.client.operation.duration"
|
182
|
+
|
183
|
+
# Vector DB Attributes (OTel Semconv)
|
184
|
+
DB_SYSTEM_NAME = "db.system.name"
|
185
|
+
DB_COLLECTION_NAME = "db.collection.name"
|
186
|
+
DB_NAMESPACE = "db.namespace"
|
187
|
+
DB_OPERATION_NAME = "db.operation.name"
|
188
|
+
DB_QUERY_TEXT = "db.query.text"
|
189
|
+
DB_RESPONSE_RETURNED_ROWS = "db.response.returned_rows"
|
190
|
+
|
191
|
+
|
192
|
+
# Vector DB Attributes (Extras)
|
193
|
+
DB_SDK_VERSION = "db.sdk.version"
|
181
194
|
DB_OPERATION_API_ENDPOINT = "db.operation.api_endpoint"
|
182
195
|
DB_REQUESTS = "db.total.requests"
|
183
|
-
DB_SYSTEM = "db.system"
|
184
|
-
DB_COLLECTION_NAME = "db.collection.name"
|
185
|
-
DB_OPERATION = "db.operation"
|
186
196
|
DB_OPERATION_ID = "db.operation.id"
|
187
197
|
DB_OPERATION_STATUS = "db.operation.status"
|
188
198
|
DB_OPERATION_COST = "db.operation.cost"
|
189
199
|
DB_OPERATION_CREATE_INDEX = "create_index"
|
200
|
+
DB_OPERATION_GET_COLLECTION = "get_collection"
|
190
201
|
DB_OPERATION_CREATE_COLLECTION = "create_collection"
|
191
202
|
DB_OPERATION_UPDATE_COLLECTION = "update_collection"
|
192
203
|
DB_OPERATION_DELETE_COLLECTION = "delete_collection"
|
193
|
-
DB_OPERATION_INSERT = "
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
204
|
+
DB_OPERATION_INSERT = "INSERT"
|
205
|
+
DB_OPERATION_SELECT = "SELECT"
|
206
|
+
DB_OPERATION_QUERY = "QUERY"
|
207
|
+
DB_OPERATION_REPLACE = "findAndModify"
|
208
|
+
DB_OPERATION_FIND_AND_DELETE = "findAndDelete"
|
209
|
+
DB_OPERATION_DELETE = "DELETE"
|
210
|
+
DB_OPERATION_UPDATE = "UPDATE"
|
211
|
+
DB_OPERATION_UPSERT = "UPSERT"
|
212
|
+
DB_OPERATION_GET = "GET"
|
213
|
+
DB_OPERATION_ADD = "ADD"
|
214
|
+
DB_OPERATION_PEEK = "peePEEKk"
|
202
215
|
DB_ID_COUNT = "db.ids_count"
|
203
216
|
DB_VECTOR_COUNT = "db.vector_count"
|
204
217
|
DB_METADATA = "db.metadata"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: openlit
|
3
|
-
Version: 1.33.
|
3
|
+
Version: 1.33.16
|
4
4
|
Summary: OpenTelemetry-native Auto instrumentation library for monitoring LLM Applications and GPUs, facilitating the integration of observability into your GenAI-driven projects
|
5
5
|
License: Apache-2.0
|
6
6
|
Keywords: OpenTelemetry,otel,otlp,llm,tracing,openai,anthropic,claude,cohere,llm monitoring,observability,monitoring,gpt,Generative AI,chatGPT,gpu
|
@@ -1,5 +1,5 @@
|
|
1
1
|
openlit/__helpers.py,sha256=9K9nz_RunwtnFeAk591uOJZiY3J88HsYv7T2H8elHWA,10262
|
2
|
-
openlit/__init__.py,sha256=
|
2
|
+
openlit/__init__.py,sha256=iHGwg8XB2DhNVCktU3FLFqubAOiQVQCp1F7L7OHp6cg,23921
|
3
3
|
openlit/evals/__init__.py,sha256=nJe99nuLo1b5rf7pt9U9BCdSDedzbVi2Fj96cgl7msM,380
|
4
4
|
openlit/evals/all.py,sha256=oWrue3PotE-rB5WePG3MRYSA-ro6WivkclSHjYlAqGs,7154
|
5
5
|
openlit/evals/bias_detection.py,sha256=mCdsfK7x1vX7S3psC3g641IMlZ-7df3h-V6eiICj5N8,8154
|
@@ -24,16 +24,17 @@ openlit/instrumentation/anthropic/async_anthropic.py,sha256=DBHFdGKBhnI21Tuh_430
|
|
24
24
|
openlit/instrumentation/anthropic/utils.py,sha256=nfIOV7eTtAReNN5QN0oG6NaqftulGjbgMrALOaDHQ8A,11897
|
25
25
|
openlit/instrumentation/assemblyai/__init__.py,sha256=vW5ifDgwprOSsr2Xa94T8Us0Gm6ynimAPeB3a8VQKZw,1551
|
26
26
|
openlit/instrumentation/assemblyai/assemblyai.py,sha256=TJvzWXtedpRvDybbfpvHURUxndtpVBlpy1AsQHdoiwY,6393
|
27
|
-
openlit/instrumentation/astra/__init__.py,sha256
|
28
|
-
openlit/instrumentation/astra/astra.py,sha256=
|
29
|
-
openlit/instrumentation/astra/async_astra.py,sha256=
|
27
|
+
openlit/instrumentation/astra/__init__.py,sha256=-JG3_YHQQaOQUr4XtFzqfaYiQKqviAAmikd3YS9H9XM,8252
|
28
|
+
openlit/instrumentation/astra/astra.py,sha256=JH2-7RJBbk6nM9kBEVgbxCXXnzgTuGT0KoBhVGBGeIs,1607
|
29
|
+
openlit/instrumentation/astra/async_astra.py,sha256=mMG22exgduREIe-7s2TdqLM1Ub8wP_ttcIS8wJH5P1Y,1625
|
30
|
+
openlit/instrumentation/astra/utils.py,sha256=-Af5R_g8-x9XeQiepLBW3Qa3Beji4EMxppDtiE_nmzM,4933
|
30
31
|
openlit/instrumentation/azure_ai_inference/__init__.py,sha256=T45ideMzIPWFzVhWIjalVGEBP562ESWfCA9diZAoTtw,2573
|
31
32
|
openlit/instrumentation/azure_ai_inference/async_azure_ai_inference.py,sha256=xI0GDqKmsbSp58IHalpNvEapM_h65oGYDbe24UVyXqg,29974
|
32
33
|
openlit/instrumentation/azure_ai_inference/azure_ai_inference.py,sha256=dgQ8GuSO-j0J6K77tcwK0mZSK3JnIdmT60kjwAV1dt8,29870
|
33
34
|
openlit/instrumentation/bedrock/__init__.py,sha256=ZdCBjgwK92cclnbFfF90NC6AsRreom3nT3CklbM7EmM,1555
|
34
35
|
openlit/instrumentation/bedrock/bedrock.py,sha256=jBDzm005Y9rbcTLxo-yShOtRb65NCDFyUYtggi0XRF0,12264
|
35
36
|
openlit/instrumentation/chroma/__init__.py,sha256=4ZeHY1OInRKQbb4qg8BVvGJtWN1XdzW6mosqi7-6ruE,3353
|
36
|
-
openlit/instrumentation/chroma/chroma.py,sha256=
|
37
|
+
openlit/instrumentation/chroma/chroma.py,sha256=Ar0IYfNtCzFbtBl_irn6xpsKlyAPu5TZ_LYpttW1ixk,10583
|
37
38
|
openlit/instrumentation/cohere/__init__.py,sha256=TIRq1obu-zqBji0HhMbFGfI2q5m-zw0nWbToKeZqpg4,2905
|
38
39
|
openlit/instrumentation/cohere/async_cohere.py,sha256=OhhDrQNr6Kc3iNx1oG2FK9WphtDCi1Rdcq0vxowKB1M,30657
|
39
40
|
openlit/instrumentation/cohere/cohere.py,sha256=e_GIwa1wrwWaU62wRYjg5veAFSiildWA9gtDOD-mNek,30540
|
@@ -45,7 +46,7 @@ openlit/instrumentation/crawl4ai/crawl4ai.py,sha256=sQ5rL4QSorlBK37Y80vxIIbnMCaq
|
|
45
46
|
openlit/instrumentation/crewai/__init__.py,sha256=Yh-evzhxG-x3E2oRf71S1NIx_36JGu4TeIqFl1-2H5w,1834
|
46
47
|
openlit/instrumentation/crewai/crewai.py,sha256=1HBF04j-WZR5dxZCeFyaq3viaX8GsRR3wotW9wRzgOA,7201
|
47
48
|
openlit/instrumentation/dynamiq/__init__.py,sha256=LuIYSQpQH5Pk5Ngl_3Jy3bImGjZgh61La6sbVJfC1Io,2391
|
48
|
-
openlit/instrumentation/dynamiq/dynamiq.py,sha256=
|
49
|
+
openlit/instrumentation/dynamiq/dynamiq.py,sha256=nG7nNU52PilyxWPJ9d-U9GOWlpvMD8gop0R9nlEQDyU,5290
|
49
50
|
openlit/instrumentation/elevenlabs/__init__.py,sha256=LNbHWxnkq3ZPOnXKP01Wo0ger-YwC0G2rNzquivYMGQ,2691
|
50
51
|
openlit/instrumentation/elevenlabs/async_elevenlabs.py,sha256=eEr-0SIz28JhvJc4zYlcN9o9kNHoUskYVVd8RYclHWM,6822
|
51
52
|
openlit/instrumentation/elevenlabs/elevenlabs.py,sha256=5L1mpOYt8zRx5GWC5DzFMmKKE1zFVLKhvl9FNp__NcM,6805
|
@@ -80,7 +81,7 @@ openlit/instrumentation/llamaindex/llamaindex.py,sha256=MWPM_R1tAaEekMagCwMKpV87
|
|
80
81
|
openlit/instrumentation/mem0/__init__.py,sha256=IadP3bKgz2HCbnrh9S7AW24uDauGkzsIWeOQaGkOCc4,2447
|
81
82
|
openlit/instrumentation/mem0/mem0.py,sha256=ZKMU9W2n_mlWhmiQkGMrwR8OqAZuek6tRbdCDyakDIU,5335
|
82
83
|
openlit/instrumentation/milvus/__init__.py,sha256=qQqI-mOXEIsXGYwLyUGLEECcIHCm_6_KQZq0vFL90LY,2991
|
83
|
-
openlit/instrumentation/milvus/milvus.py,sha256=
|
84
|
+
openlit/instrumentation/milvus/milvus.py,sha256=wBTBwA1Taz8j1BXWFVgXMpPNjyAAkP79pmi34HAA3tI,9173
|
84
85
|
openlit/instrumentation/mistral/__init__.py,sha256=5hh5s2-kudMbfkWD6Lhe5IQvrlZ5qA-Sv3laeXwyaPA,3060
|
85
86
|
openlit/instrumentation/mistral/async_mistral.py,sha256=8EDNnLHKei8vdlw4SeOpl6hiYSo7t2M2IlF0EwAvoaM,31099
|
86
87
|
openlit/instrumentation/mistral/mistral.py,sha256=U3X2DplgJwULmAtNzy6ZnxvXOI0Rv75PbPiHPi84hh4,30995
|
@@ -91,18 +92,20 @@ openlit/instrumentation/ollama/__init__.py,sha256=JjxSqEegmRoRqIVz7ZAq9dLyXPZ2Dq
|
|
91
92
|
openlit/instrumentation/ollama/async_ollama.py,sha256=LhDQPy3wLyNO9JWksUEeCx-DK9oIV3K98Cgwnp4RfKg,6538
|
92
93
|
openlit/instrumentation/ollama/ollama.py,sha256=wVyaX0quoiiCj1J3tyTiQx5Du5CmaWmt9e_lpCr7s6A,6434
|
93
94
|
openlit/instrumentation/ollama/utils.py,sha256=zXsWNqfnZLssrcb-GNbWeZeqTKVzQb1bes8vzgl-gbQ,14549
|
94
|
-
openlit/instrumentation/openai/__init__.py,sha256=
|
95
|
-
openlit/instrumentation/openai/async_openai.py,sha256=
|
96
|
-
openlit/instrumentation/openai/openai.py,sha256=
|
95
|
+
openlit/instrumentation/openai/__init__.py,sha256=FiL4OHDhs957spa3k9sNC_VLt0-txtwbnujQwnevQ5I,5564
|
96
|
+
openlit/instrumentation/openai/async_openai.py,sha256=AMievEMil486B9ibV0Nm54xkxAiHA-XzWWKAGQ4himI,71523
|
97
|
+
openlit/instrumentation/openai/openai.py,sha256=d-I-RyJMNcz1m0vdkEW-l6G0WaUNCavT9BvB_EGEFYg,71266
|
98
|
+
openlit/instrumentation/openai_agents/__init__.py,sha256=tRTSIrUtkXc_lfQnVanXmQLd2Sy9RqBNTHF5FhhZx7o,1530
|
99
|
+
openlit/instrumentation/openai_agents/openai_agents.py,sha256=teVgsn7lIKCGPmdl9RrgPavhdcCXjh3vMeGKskrd2vo,2666
|
97
100
|
openlit/instrumentation/phidata/__init__.py,sha256=tqls5-UI6FzbjxYgq_qqAfALhWJm8dHn2NtgqiQA4f8,1557
|
98
101
|
openlit/instrumentation/phidata/phidata.py,sha256=-BU_g3FpGcttOt-W-QIER5qquCRORob2UFLdaOW3F_s,4819
|
99
102
|
openlit/instrumentation/pinecone/__init__.py,sha256=0guSEPmObaZiOF8yHExpOGY-qW_egHXfZGog3rKGi8M,2596
|
100
|
-
openlit/instrumentation/pinecone/pinecone.py,sha256=
|
103
|
+
openlit/instrumentation/pinecone/pinecone.py,sha256=ElslpN5SEjsjrdPAlOUjcrctFOWC6bPn4ywg0Z8gcoY,8807
|
101
104
|
openlit/instrumentation/premai/__init__.py,sha256=uyw3sn5iHuO1Clg7iLs6LYpOWg1ahJp_orb2tySshZE,1836
|
102
105
|
openlit/instrumentation/premai/premai.py,sha256=rK039lmhuCLNgOB5Ap_Negz18mth6nrRlzwn1eX457g,27960
|
103
106
|
openlit/instrumentation/qdrant/__init__.py,sha256=5prYH46yQt2hSA5zgg7kKM6P_F_7s9OQtfRE_lqsaVc,8970
|
104
|
-
openlit/instrumentation/qdrant/async_qdrant.py,sha256=
|
105
|
-
openlit/instrumentation/qdrant/qdrant.py,sha256=
|
107
|
+
openlit/instrumentation/qdrant/async_qdrant.py,sha256=CVzQ3wWXPKATsOEyHSagJrqSKonLeMAoSwnsq5rDDDM,15168
|
108
|
+
openlit/instrumentation/qdrant/qdrant.py,sha256=C-p0wY1e5Pfqxt0pCkiU_LJSQl1YFTVAFeU-ndnPIKg,15590
|
106
109
|
openlit/instrumentation/reka/__init__.py,sha256=39ZKj44PPUue8feG3bivAejfL66yD23pCJQ8hHnQKbY,1884
|
107
110
|
openlit/instrumentation/reka/async_reka.py,sha256=3ZBOlOtcAbyzE1A0XRUxdqxQr-sStrRiyaoUop7rqRc,9413
|
108
111
|
openlit/instrumentation/reka/reka.py,sha256=EkOrmAa9quIhmPcA-BcHfiGSXN93wWh_87aH9pYyULk,9395
|
@@ -117,10 +120,10 @@ openlit/instrumentation/vertexai/vertexai.py,sha256=-wrsYOpFxHOikT4lsBHG58r0Aa_e
|
|
117
120
|
openlit/instrumentation/vllm/__init__.py,sha256=8Su4DEpxdT2wr4Qr17heakzoGSbuq6ey1MmSVR_vbOA,1508
|
118
121
|
openlit/instrumentation/vllm/vllm.py,sha256=MD02lonL6QP0GYUF9sZx-ZC0R-je442ufiE1bH5dNeU,7754
|
119
122
|
openlit/otel/events.py,sha256=VrMjTpvnLtYRBHCiFwJojTQqqNpRCxoD4yJYeQrtPsk,3560
|
120
|
-
openlit/otel/metrics.py,sha256=
|
123
|
+
openlit/otel/metrics.py,sha256=Iwx6baEiCZPNqsFf92K5mDWU8are8DOF0uQAuNZsCKg,6826
|
121
124
|
openlit/otel/tracing.py,sha256=tjV2bEbEDPUB1Z46gE-UsJsb04sRdFrfbhIDkxViZc0,3103
|
122
|
-
openlit/semcov/__init__.py,sha256=
|
123
|
-
openlit-1.33.
|
124
|
-
openlit-1.33.
|
125
|
-
openlit-1.33.
|
126
|
-
openlit-1.33.
|
125
|
+
openlit/semcov/__init__.py,sha256=lM0Y3wMYYmCvfcNGD3k0xSn1XZUiGw-bKgCuwcGsOp8,13302
|
126
|
+
openlit-1.33.16.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
127
|
+
openlit-1.33.16.dist-info/METADATA,sha256=epse0c3md_EmHgIFIkCpRBNK2xUk7t_e-gQ9O7fyJDY,23471
|
128
|
+
openlit-1.33.16.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
129
|
+
openlit-1.33.16.dist-info/RECORD,,
|
File without changes
|
File without changes
|