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.
Files changed (31) hide show
  1. opentelemetry/util/genai/__init__.py +17 -0
  2. opentelemetry/util/genai/_fsspec_upload/__init__.py +39 -0
  3. opentelemetry/util/genai/_fsspec_upload/fsspec_hook.py +184 -0
  4. opentelemetry/util/genai/attributes.py +60 -0
  5. opentelemetry/util/genai/callbacks.py +24 -0
  6. opentelemetry/util/genai/config.py +184 -0
  7. opentelemetry/util/genai/debug.py +183 -0
  8. opentelemetry/util/genai/emitters/__init__.py +25 -0
  9. opentelemetry/util/genai/emitters/composite.py +186 -0
  10. opentelemetry/util/genai/emitters/configuration.py +324 -0
  11. opentelemetry/util/genai/emitters/content_events.py +153 -0
  12. opentelemetry/util/genai/emitters/evaluation.py +519 -0
  13. opentelemetry/util/genai/emitters/metrics.py +308 -0
  14. opentelemetry/util/genai/emitters/span.py +774 -0
  15. opentelemetry/util/genai/emitters/spec.py +48 -0
  16. opentelemetry/util/genai/emitters/utils.py +961 -0
  17. opentelemetry/util/genai/environment_variables.py +200 -0
  18. opentelemetry/util/genai/handler.py +1002 -0
  19. opentelemetry/util/genai/instruments.py +44 -0
  20. opentelemetry/util/genai/interfaces.py +58 -0
  21. opentelemetry/util/genai/plugins.py +114 -0
  22. opentelemetry/util/genai/span_context.py +80 -0
  23. opentelemetry/util/genai/types.py +440 -0
  24. opentelemetry/util/genai/upload_hook.py +119 -0
  25. opentelemetry/util/genai/utils.py +182 -0
  26. opentelemetry/util/genai/version.py +15 -0
  27. splunk_otel_util_genai-0.1.3.dist-info/METADATA +70 -0
  28. splunk_otel_util_genai-0.1.3.dist-info/RECORD +31 -0
  29. splunk_otel_util_genai-0.1.3.dist-info/WHEEL +4 -0
  30. splunk_otel_util_genai-0.1.3.dist-info/entry_points.txt +5 -0
  31. 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
+ ]