Skip to content

Commit 0fc33e7

Browse files
committed
more lint
1 parent 5fe637b commit 0fc33e7

File tree

8 files changed

+31
-33
lines changed

8 files changed

+31
-33
lines changed

util/opentelemetry-util-genai/src/opentelemetry/util/genai/embedding_invocation.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,19 @@ def __init__(
5252
metric_attributes: dict[str, Any] | None = None,
5353
) -> None:
5454
"""Use handler.start_embedding(provider) or handler.embedding(provider) instead of calling this directly."""
55+
_operation_name = GenAI.GenAiOperationNameValues.EMBEDDINGS.value
5556
super().__init__(
5657
tracer,
5758
metrics_recorder,
5859
logger,
60+
operation_name=_operation_name,
61+
span_name=f"{_operation_name} {request_model}"
62+
if request_model
63+
else _operation_name,
64+
span_kind=SpanKind.CLIENT,
5965
attributes=attributes,
6066
metric_attributes=metric_attributes,
6167
)
62-
self._operation_name = GenAI.GenAiOperationNameValues.EMBEDDINGS.value
6368
self.provider = provider # e.g., azure.ai.openai, openai, aws.bedrock
6469
self.request_model = request_model
6570
self.server_address = server_address
@@ -70,12 +75,6 @@ def __init__(
7075
self.input_tokens = input_tokens
7176
self.dimension_count = dimension_count
7277
self.response_model_name = response_model_name
73-
self._span_name = (
74-
f"{self._operation_name} {request_model}"
75-
if request_model
76-
else self._operation_name
77-
)
78-
self._span_kind = SpanKind.CLIENT
7978
self._start()
8079

8180
def _get_metric_attributes(self) -> dict[str, Any]:

util/opentelemetry-util-genai/src/opentelemetry/util/genai/inference_invocation.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,19 @@ def __init__( # pylint: disable=too-many-locals
8383
metric_attributes: dict[str, Any] | None = None,
8484
) -> None:
8585
"""Use handler.start_inference(provider) or handler.inference(provider) instead of calling this directly."""
86+
_operation_name = GenAI.GenAiOperationNameValues.CHAT.value
8687
super().__init__(
8788
tracer,
8889
metrics_recorder,
8990
logger,
91+
operation_name=_operation_name,
92+
span_name=f"{_operation_name} {request_model}"
93+
if request_model
94+
else _operation_name,
95+
span_kind=SpanKind.CLIENT,
9096
attributes=attributes,
9197
metric_attributes=metric_attributes,
9298
)
93-
self._operation_name = GenAI.GenAiOperationNameValues.CHAT.value
9499
self.provider = provider
95100
self.request_model = request_model
96101
self.input_messages: list[InputMessage] = (
@@ -116,12 +121,6 @@ def __init__( # pylint: disable=too-many-locals
116121
self.seed = seed
117122
self.server_address = server_address
118123
self.server_port = server_port
119-
self._span_name = (
120-
f"{self._operation_name} {request_model}"
121-
if request_model
122-
else self._operation_name
123-
)
124-
self._span_kind = SpanKind.CLIENT
125124
self._start()
126125

127126
def _get_message_attributes(self, *, for_span: bool) -> dict[str, Any]:
@@ -237,7 +236,7 @@ def _apply_finish(self, error: Error | None = None) -> None:
237236
attributes.update(self._get_message_attributes(for_span=True))
238237
attributes.update(self.attributes)
239238
self.span.set_attributes(attributes)
240-
self._metrics_recorder.record(self)
239+
self._metrics_recorder.record(self) # pyright: ignore[reportOptionalMemberAccess]
241240
self._emit_event()
242241

243242
def _emit_event(self) -> None:
@@ -252,7 +251,7 @@ def _emit_event(self) -> None:
252251
attributes = self._get_attributes()
253252
attributes.update(self._get_message_attributes(for_span=False))
254253
attributes.update(self.attributes)
255-
self._logger.emit(
254+
self._logger.emit( # pyright: ignore[reportOptionalMemberAccess]
256255
LogRecord(
257256
event_name="gen_ai.client.inference.operation.details",
258257
attributes=attributes,
@@ -296,8 +295,8 @@ def __init__( # pylint: disable=too-many-locals
296295
if tracer is not None:
297296
super().__init__(
298297
tracer,
299-
metrics_recorder,
300-
logger,
298+
metrics_recorder, # pyright: ignore[reportArgumentType]
299+
logger, # pyright: ignore[reportArgumentType]
301300
provider,
302301
request_model=request_model,
303302
input_messages=input_messages,
@@ -324,7 +323,7 @@ def __init__( # pylint: disable=too-many-locals
324323
# Old-style: data container, started later via handler.start_llm()
325324
# _tracer/_metrics_recorder/_logger are set by _start_with_handler() in that case
326325
self._operation_name = GenAI.GenAiOperationNameValues.CHAT.value
327-
self._tracer = None # type: ignore[assignment] # pyright: ignore[reportUnnecessaryTypeIgnoreComment]
326+
self._tracer = None
328327
self._metrics_recorder = None
329328
self._logger = None
330329
self.attributes = {} if attributes is None else attributes

util/opentelemetry-util-genai/src/opentelemetry/util/genai/tool_invocation.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,21 +63,22 @@ def __init__(
6363
metric_attributes: dict[str, Any] | None = None,
6464
) -> None:
6565
"""Use handler.start_tool(name) or handler.tool(name) instead of calling this directly."""
66+
_operation_name = GenAI.GenAiOperationNameValues.EXECUTE_TOOL.value
6667
super().__init__(
6768
tracer,
6869
metrics_recorder,
6970
logger,
71+
operation_name=_operation_name,
72+
span_name=f"{_operation_name} {name}" if name else _operation_name,
7073
attributes=attributes,
7174
metric_attributes=metric_attributes,
7275
)
73-
self._operation_name = "execute_tool"
7476
self.name = name
7577
self.arguments = arguments
7678
self.tool_call_id = tool_call_id
7779
self.tool_type = tool_type
7880
self.tool_description = tool_description
7981
self.tool_result = tool_result
80-
self._span_name = f"execute_tool {name}" if name else "execute_tool"
8182
self._start()
8283

8384
def _apply_finish(self, error: Error | None = None) -> None:

util/opentelemetry-util-genai/src/opentelemetry/util/genai/types.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,13 +271,16 @@ def __init__(
271271
metrics_recorder: InvocationMetricsRecorder | None = None,
272272
logger: Logger | None = None,
273273
*,
274+
operation_name: str,
275+
span_name: str,
276+
span_kind: SpanKind = SpanKind.CLIENT,
274277
attributes: dict[str, Any] | None = None,
275278
metric_attributes: dict[str, Any] | None = None,
276279
) -> None:
277280
self._tracer = tracer
278281
self._metrics_recorder = metrics_recorder
279282
self._logger = logger
280-
self._operation_name: str = ""
283+
self._operation_name: str = operation_name
281284
self.attributes: dict[str, Any] = (
282285
{} if attributes is None else attributes
283286
)
@@ -288,8 +291,8 @@ def __init__(
288291
"""Additional attributes to set on metrics. Must be low cardinality. Not set on spans or events."""
289292
self.span: Span = _INVALID_SPAN
290293
self._span_context: Context
291-
self._span_name: str = ""
292-
self._span_kind: SpanKind = SpanKind.CLIENT
294+
self._span_name: str = span_name
295+
self._span_kind: SpanKind = span_kind
293296
self._context_token: ContextToken | None = None
294297
self._monotonic_start_s: float | None = None
295298

util/opentelemetry-util-genai/src/opentelemetry/util/genai/utils.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from __future__ import annotations
16-
1715
import json
1816
import logging
1917
import os

util/opentelemetry-util-genai/src/opentelemetry/util/genai/workflow_invocation.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,25 +60,24 @@ def __init__(
6060
metric_attributes: dict[str, Any] | None = None,
6161
) -> None:
6262
"""Use handler.start_workflow(name) or handler.workflow(name) instead of calling this directly."""
63+
_operation_name = "invoke_workflow"
6364
super().__init__(
6465
tracer,
6566
metrics_recorder,
6667
logger,
68+
operation_name=_operation_name,
69+
span_name=f"{_operation_name} {name}" if name else _operation_name,
70+
span_kind=SpanKind.INTERNAL,
6771
attributes=attributes,
6872
metric_attributes=metric_attributes,
6973
)
70-
self._operation_name = "invoke_workflow"
7174
self.name = name
7275
self.input_messages: list[InputMessage] = (
7376
[] if input_messages is None else input_messages
7477
)
7578
self.output_messages: list[OutputMessage] = (
7679
[] if output_messages is None else output_messages
7780
)
78-
self._span_name = (
79-
f"invoke_workflow {name}" if name else "invoke_workflow"
80-
)
81-
self._span_kind = SpanKind.INTERNAL
8281
self._start()
8382

8483
def _get_messages_for_span(self) -> dict[str, Any]:

util/opentelemetry-util-genai/tests/test_handler_metrics.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__ import annotations
22

3-
# pylint: disable=too-many-function-args,unexpected-keyword-arg
43
from typing import Any, Dict, List
54
from unittest.mock import patch
65

util/opentelemetry-util-genai/tests/test_toolcall.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def test_toolcall_operation_name():
7373
"""ToolInvocation operation_name is fixed to execute_tool"""
7474
handler = _make_handler()
7575
tc = handler.start_tool("my_tool")
76-
assert tc.operation_name == "execute_tool"
76+
assert tc._operation_name == "execute_tool"
7777
tc.stop()
7878

7979

0 commit comments

Comments
 (0)