123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import uuid
- from typing import Any, Optional
- class BaseTelemetryEvent:
- def __init__(self, event_type: str, properties: dict[str, Any]):
- self.event_type = event_type
- self.properties = properties
- self.event_id = str(uuid.uuid4())
- class FeatureUsageEvent(BaseTelemetryEvent):
- def __init__(
- self,
- user_id: str,
- feature: str,
- properties: Optional[dict[str, Any]] = None,
- ):
- super().__init__(
- "FeatureUsage",
- {
- "user_id": user_id,
- "feature": feature,
- "properties": properties or {},
- },
- )
- class ErrorEvent(BaseTelemetryEvent):
- def __init__(
- self,
- user_id: str,
- endpoint: str,
- error_message: str,
- properties: Optional[dict[str, Any]] = None,
- ):
- super().__init__(
- "Error",
- {
- "user_id": user_id,
- "endpoint": endpoint,
- "error_message": error_message,
- "properties": properties or {},
- },
- )
|