Files
GITEA-MCP/.venv/lib/python3.11/site-packages/opentelemetry/metrics/_internal/observation.py
T
2026-10-21 13:04:35 +01:00

52 lines
1.3 KiB
Python

# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
from opentelemetry.context import Context
from opentelemetry.util.types import Attributes
class Observation:
"""A measurement observed in an asynchronous instrument
Return/yield instances of this class from asynchronous instrument callbacks.
Args:
value: The float or int measured value
attributes: The measurement's attributes
context: The measurement's context
"""
def __init__(
self,
value: float,
attributes: Attributes = None,
context: Context | None = None,
) -> None:
self._value = value
self._attributes = attributes
self._context = context
@property
def value(self) -> float | int:
return self._value
@property
def attributes(self) -> Attributes:
return self._attributes
@property
def context(self) -> Context | None:
return self._context
def __eq__(self, other: object) -> bool:
return (
isinstance(other, Observation)
and self.value == other.value
and self.attributes == other.attributes
and self.context == other.context
)
def __repr__(self) -> str:
return f"Observation(value={self.value}, attributes={self.attributes}, context={self.context})"