OTEL backend for metrics/traces/logs (#4632)
Co-authored-by: Benji Visser <benji@093b.org> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@ from cachetools import TTLCache
|
||||
from fastapi import Header, HTTPException, status
|
||||
from jose import jwt
|
||||
from jose.exceptions import JWTError
|
||||
from opentelemetry import trace
|
||||
from pydantic import ValidationError
|
||||
|
||||
from skyvern.config import settings
|
||||
@@ -17,13 +18,6 @@ from skyvern.forge.sdk.db.agent_db import AgentDB
|
||||
from skyvern.forge.sdk.models import TokenPayload
|
||||
from skyvern.forge.sdk.schemas.organizations import Organization, OrganizationAuthToken, OrganizationAuthTokenType
|
||||
|
||||
try:
|
||||
from ddtrace import tracer
|
||||
|
||||
_DDTRACE_AVAILABLE = True
|
||||
except ImportError:
|
||||
_DDTRACE_AVAILABLE = False
|
||||
|
||||
LOG = structlog.get_logger()
|
||||
|
||||
AUTHENTICATION_TTL = 60 * 60 # one hour
|
||||
@@ -66,12 +60,16 @@ async def get_current_org(
|
||||
curr_ctx.organization_id = organization.organization_id
|
||||
curr_ctx.organization_name = organization.organization_name
|
||||
|
||||
if _DDTRACE_AVAILABLE:
|
||||
span = tracer.current_span()
|
||||
if span:
|
||||
span.set_tag("organization_id", organization.organization_id)
|
||||
if organization.organization_name:
|
||||
span.set_tag("organization_name", organization.organization_name)
|
||||
# Set organization info on OTEL span for tracing
|
||||
if settings.OTEL_ENABLED:
|
||||
try:
|
||||
span = trace.get_current_span()
|
||||
if span:
|
||||
span.set_attribute("organization_id", organization.organization_id)
|
||||
if organization.organization_name:
|
||||
span.set_attribute("organization_name", organization.organization_name)
|
||||
except Exception:
|
||||
pass # Silently ignore OTEL errors
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user