splunk-otel-util-genai 0.1.3__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.
- opentelemetry/util/genai/__init__.py +17 -0
- opentelemetry/util/genai/_fsspec_upload/__init__.py +39 -0
- opentelemetry/util/genai/_fsspec_upload/fsspec_hook.py +184 -0
- opentelemetry/util/genai/attributes.py +60 -0
- opentelemetry/util/genai/callbacks.py +24 -0
- opentelemetry/util/genai/config.py +184 -0
- opentelemetry/util/genai/debug.py +183 -0
- opentelemetry/util/genai/emitters/__init__.py +25 -0
- opentelemetry/util/genai/emitters/composite.py +186 -0
- opentelemetry/util/genai/emitters/configuration.py +324 -0
- opentelemetry/util/genai/emitters/content_events.py +153 -0
- opentelemetry/util/genai/emitters/evaluation.py +519 -0
- opentelemetry/util/genai/emitters/metrics.py +308 -0
- opentelemetry/util/genai/emitters/span.py +774 -0
- opentelemetry/util/genai/emitters/spec.py +48 -0
- opentelemetry/util/genai/emitters/utils.py +961 -0
- opentelemetry/util/genai/environment_variables.py +200 -0
- opentelemetry/util/genai/handler.py +1002 -0
- opentelemetry/util/genai/instruments.py +44 -0
- opentelemetry/util/genai/interfaces.py +58 -0
- opentelemetry/util/genai/plugins.py +114 -0
- opentelemetry/util/genai/span_context.py +80 -0
- opentelemetry/util/genai/types.py +440 -0
- opentelemetry/util/genai/upload_hook.py +119 -0
- opentelemetry/util/genai/utils.py +182 -0
- opentelemetry/util/genai/version.py +15 -0
- splunk_otel_util_genai-0.1.3.dist-info/METADATA +70 -0
- splunk_otel_util_genai-0.1.3.dist-info/RECORD +31 -0
- splunk_otel_util_genai-0.1.3.dist-info/WHEEL +4 -0
- splunk_otel_util_genai-0.1.3.dist-info/entry_points.txt +5 -0
- splunk_otel_util_genai-0.1.3.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# Copyright The OpenTelemetry Authors
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT = (
|
|
16
|
+
"OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT"
|
|
17
|
+
)
|
|
18
|
+
"""
|
|
19
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT
|
|
20
|
+
|
|
21
|
+
Enable capture of GenAI message content. When set to a truthy value (``true``,
|
|
22
|
+
``1``, ``yes``, ``on``) the emitter pipeline records prompt and completion
|
|
23
|
+
content according to :envvar:`OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT_MODE`.
|
|
24
|
+
Unset or falsey values disable content capture entirely.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT_MODE = (
|
|
28
|
+
"OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT_MODE"
|
|
29
|
+
)
|
|
30
|
+
"""
|
|
31
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT_MODE
|
|
32
|
+
|
|
33
|
+
Controls where captured message content is emitted. Accepted case-insensitive values:
|
|
34
|
+
|
|
35
|
+
``SPAN_ONLY`` – emit content on spans only.
|
|
36
|
+
``EVENT_ONLY`` – emit content as log events only.
|
|
37
|
+
``SPAN_AND_EVENT`` (default) – emit content on spans and as log events.
|
|
38
|
+
``NONE`` – disable content emission (equivalent to disabling capture entirely).
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
OTEL_INSTRUMENTATION_GENAI_UPLOAD_HOOK = (
|
|
43
|
+
"OTEL_INSTRUMENTATION_GENAI_UPLOAD_HOOK"
|
|
44
|
+
)
|
|
45
|
+
"""
|
|
46
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_UPLOAD_HOOK
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH = (
|
|
50
|
+
"OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH"
|
|
51
|
+
)
|
|
52
|
+
"""
|
|
53
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH
|
|
54
|
+
|
|
55
|
+
An :func:`fsspec.open` compatible URI/path for uploading prompts and responses. Can be a local
|
|
56
|
+
path like ``/path/to/prompts`` or a cloud storage URI such as ``gs://my_bucket``. For more
|
|
57
|
+
information, see
|
|
58
|
+
|
|
59
|
+
* `Instantiate a file-system
|
|
60
|
+
<https://filesystem-spec.readthedocs.io/en/latest/usage.html#instantiate-a-file-system>`_ for supported values and how to
|
|
61
|
+
install support for additional backend implementations.
|
|
62
|
+
* `Configuration
|
|
63
|
+
<https://filesystem-spec.readthedocs.io/en/latest/features.html#configuration>`_ for
|
|
64
|
+
configuring a backend with environment variables.
|
|
65
|
+
* `URL Chaining
|
|
66
|
+
<https://filesystem-spec.readthedocs.io/en/latest/features.html#url-chaining>`_ for advanced
|
|
67
|
+
use cases.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
# ---- Evaluation configuration ----
|
|
71
|
+
OTEL_INSTRUMENTATION_GENAI_EVALS_EVALUATORS = (
|
|
72
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALS_EVALUATORS"
|
|
73
|
+
)
|
|
74
|
+
"""
|
|
75
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_EVALS_EVALUATORS
|
|
76
|
+
|
|
77
|
+
Comma-separated list describing evaluator configuration. Each entry selects an evaluator
|
|
78
|
+
registered under the ``opentelemetry_util_genai_evaluators`` entry-point group. Optional
|
|
79
|
+
per-type overrides may be supplied using the syntax::
|
|
80
|
+
|
|
81
|
+
EvaluatorName(TypeName(metric,metric2(config=value)))
|
|
82
|
+
|
|
83
|
+
Examples::
|
|
84
|
+
|
|
85
|
+
Deepeval
|
|
86
|
+
Deepeval,NLTK
|
|
87
|
+
Deepeval(LLMInvocation(bias,toxicity))
|
|
88
|
+
Deepeval(LLMInvocation(bias(threshold=1),toxicity))
|
|
89
|
+
|
|
90
|
+
If no configuration is provided, each evaluator defaults to its declared metric set per
|
|
91
|
+
GenAI invocation type.
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
OTEL_INSTRUMENTATION_GENAI_EVALS_RESULTS_AGGREGATION = (
|
|
95
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALS_RESULTS_AGGREGATION"
|
|
96
|
+
)
|
|
97
|
+
"""
|
|
98
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_EVALS_RESULTS_AGGREGATION
|
|
99
|
+
|
|
100
|
+
When set to ``true``/``1``/``yes`` aggregate results from all evaluators for a sampled
|
|
101
|
+
invocation into a single list before forwarding to the handler. Otherwise, results are
|
|
102
|
+
forwarded per-evaluator.
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
OTEL_INSTRUMENTATION_GENAI_EVALS_INTERVAL = (
|
|
106
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALS_INTERVAL"
|
|
107
|
+
)
|
|
108
|
+
"""
|
|
109
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_EVALS_INTERVAL
|
|
110
|
+
|
|
111
|
+
Polling interval (seconds) for the evaluation worker loop. Defaults to ``5.0`` seconds.
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
OTEL_INSTRUMENTATION_GENAI_COMPLETION_CALLBACKS = (
|
|
115
|
+
"OTEL_INSTRUMENTATION_GENAI_COMPLETION_CALLBACKS"
|
|
116
|
+
)
|
|
117
|
+
"""
|
|
118
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_COMPLETION_CALLBACKS
|
|
119
|
+
|
|
120
|
+
Comma-separated list of completion callback entry point names to enable. When unset,
|
|
121
|
+
every available callback exposed via the ``opentelemetry_util_genai_completion_callbacks`` group
|
|
122
|
+
is loaded. Names are compared case-insensitively.
|
|
123
|
+
"""
|
|
124
|
+
|
|
125
|
+
OTEL_INSTRUMENTATION_GENAI_DISABLE_DEFAULT_COMPLETION_CALLBACKS = (
|
|
126
|
+
"OTEL_INSTRUMENTATION_GENAI_DISABLE_DEFAULT_COMPLETION_CALLBACKS"
|
|
127
|
+
)
|
|
128
|
+
"""
|
|
129
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_DISABLE_DEFAULT_COMPLETION_CALLBACKS
|
|
130
|
+
|
|
131
|
+
Disable automatic loading of default completion callbacks (evaluators, persistence hooks, etc.).
|
|
132
|
+
Truthiness is evaluated using the standard ``1/true/yes/on`` parsing. When set, no completion callbacks
|
|
133
|
+
are registered automatically.
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
OTEL_INSTRUMENTATION_GENAI_EMITTERS = "OTEL_INSTRUMENTATION_GENAI_EMITTERS"
|
|
137
|
+
"""
|
|
138
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_EMITTERS
|
|
139
|
+
|
|
140
|
+
Comma-separated list of generators names to run (e.g. ``span,traceloop_compat``).
|
|
141
|
+
|
|
142
|
+
Select telemetry flavor (composed emitters). Accepted baseline values (case-insensitive):
|
|
143
|
+
|
|
144
|
+
* ``span`` (default) - spans only
|
|
145
|
+
* ``span_metric`` - spans + metrics
|
|
146
|
+
* ``span_metric_event`` - spans + metrics + content events
|
|
147
|
+
|
|
148
|
+
Additional extender emitters:
|
|
149
|
+
* ``traceloop_compat`` - adds a Traceloop-compatible LLM span (requires installing ``opentelemetry-util-genai-emitters-traceloop``). If specified *alone*, only the compat span is emitted. If combined (e.g. ``span,traceloop_compat``) both semconv and compat spans are produced.
|
|
150
|
+
|
|
151
|
+
Invalid or unset values fallback to ``span``.
|
|
152
|
+
"""
|
|
153
|
+
|
|
154
|
+
OTEL_INSTRUMENTATION_GENAI_EMITTERS_SPAN = (
|
|
155
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_SPAN"
|
|
156
|
+
)
|
|
157
|
+
OTEL_INSTRUMENTATION_GENAI_EMITTERS_METRICS = (
|
|
158
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_METRICS"
|
|
159
|
+
)
|
|
160
|
+
OTEL_INSTRUMENTATION_GENAI_EMITTERS_CONTENT_EVENTS = (
|
|
161
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_CONTENT_EVENTS"
|
|
162
|
+
)
|
|
163
|
+
OTEL_INSTRUMENTATION_GENAI_EMITTERS_EVALUATION = (
|
|
164
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_EVALUATION"
|
|
165
|
+
)
|
|
166
|
+
"""
|
|
167
|
+
.. envvar:: OTEL_INSTRUMENTATION_GENAI_EMITTERS_<CATEGORY>
|
|
168
|
+
|
|
169
|
+
Optional category-specific overrides applied after builtin and entry-point emitters
|
|
170
|
+
are registered. Accepts comma-separated emitter names with optional directives such
|
|
171
|
+
as ``replace:`` (replace entire category) or ``append:``/``prepend:`` (explicit
|
|
172
|
+
positioning). Categories: ``SPAN``, ``METRICS``, ``CONTENT_EVENTS``, ``EVALUATION``.
|
|
173
|
+
"""
|
|
174
|
+
|
|
175
|
+
OTEL_INSTRUMENTATION_GENAI_EVALUATION_SAMPLE_RATE = (
|
|
176
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALUATION_SAMPLE_RATE"
|
|
177
|
+
)
|
|
178
|
+
OTEL_GENAI_EVALUATION_EVENT_LEGACY = "OTEL_GENAI_EVALUATION_EVENT_LEGACY"
|
|
179
|
+
|
|
180
|
+
__all__ = [
|
|
181
|
+
# existing
|
|
182
|
+
"OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT",
|
|
183
|
+
"OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT_MODE",
|
|
184
|
+
"OTEL_INSTRUMENTATION_GENAI_UPLOAD_HOOK",
|
|
185
|
+
"OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH",
|
|
186
|
+
# evaluation
|
|
187
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALS_EVALUATORS",
|
|
188
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALS_RESULTS_AGGREGATION",
|
|
189
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALS_INTERVAL",
|
|
190
|
+
# generator selection
|
|
191
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS",
|
|
192
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_SPAN",
|
|
193
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_METRICS",
|
|
194
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_CONTENT_EVENTS",
|
|
195
|
+
"OTEL_INSTRUMENTATION_GENAI_EMITTERS_EVALUATION",
|
|
196
|
+
"OTEL_INSTRUMENTATION_GENAI_EVALUATION_SAMPLE_RATE",
|
|
197
|
+
"OTEL_GENAI_EVALUATION_EVENT_LEGACY",
|
|
198
|
+
"OTEL_INSTRUMENTATION_GENAI_COMPLETION_CALLBACKS",
|
|
199
|
+
"OTEL_INSTRUMENTATION_GENAI_DISABLE_DEFAULT_COMPLETION_CALLBACKS",
|
|
200
|
+
]
|