Remove ddtrace dependency from OSS (#4049)
This commit is contained in:
committed by
GitHub
parent
e98c613c7c
commit
62a7bd2886
@@ -23,7 +23,6 @@ dependencies = [
|
|||||||
"greenlet==3.0.3 ; python_version >= '3.11' and python_version < '3.12'",
|
"greenlet==3.0.3 ; python_version >= '3.11' and python_version < '3.12'",
|
||||||
"pillow>=10.1.0,<11",
|
"pillow>=10.1.0,<11",
|
||||||
"starlette-context>=0.3.6,<0.4",
|
"starlette-context>=0.3.6,<0.4",
|
||||||
"ddtrace>=2.3.2,<3",
|
|
||||||
"pydantic>=2.5.2,<3",
|
"pydantic>=2.5.2,<3",
|
||||||
"pydantic-settings>=2.1.0,<3",
|
"pydantic-settings>=2.1.0,<3",
|
||||||
"fastapi>=0.115.4,<0.116",
|
"fastapi>=0.115.4,<0.116",
|
||||||
@@ -70,6 +69,7 @@ dependencies = [
|
|||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
cloud = [
|
cloud = [
|
||||||
|
"ddtrace>=2.3.2,<3",
|
||||||
"stripe>=9.7.0,<10",
|
"stripe>=9.7.0,<10",
|
||||||
"temporalio>=1.6.0,<2",
|
"temporalio>=1.6.0,<2",
|
||||||
"dramatiq[asyncio]>=1.18.0,<2",
|
"dramatiq[asyncio]>=1.18.0,<2",
|
||||||
|
|||||||
@@ -2,31 +2,36 @@ import re
|
|||||||
import typing
|
import typing
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from ddtrace import tracer
|
|
||||||
from ddtrace.ext import http
|
|
||||||
from ddtrace.trace import TraceFilter, Span
|
|
||||||
|
|
||||||
from skyvern.forge.sdk.forge_log import setup_logger
|
from skyvern.forge.sdk.forge_log import setup_logger
|
||||||
from skyvern.utils import setup_windows_event_loop_policy
|
from skyvern.utils import setup_windows_event_loop_policy
|
||||||
|
|
||||||
if typing.TYPE_CHECKING:
|
if typing.TYPE_CHECKING:
|
||||||
from skyvern.library import Skyvern # noqa: E402
|
from skyvern.library import Skyvern # noqa: E402
|
||||||
|
|
||||||
|
try:
|
||||||
|
from ddtrace import tracer
|
||||||
|
from ddtrace.ext import http
|
||||||
|
from ddtrace.trace import TraceFilter, Span
|
||||||
|
|
||||||
class FilterHeartbeat(TraceFilter):
|
class FilterHeartbeat(TraceFilter):
|
||||||
_HB_URL = re.compile(r"http://.*/heartbeat$")
|
_HB_URL = re.compile(r"http://.*/heartbeat$")
|
||||||
|
|
||||||
def process_trace(self, trace: list[Span]) -> list[Span] | None:
|
def process_trace(self, trace: list[Span]) -> list[Span] | None:
|
||||||
for span in trace:
|
for span in trace:
|
||||||
url = span.get_tag(http.URL)
|
url = span.get_tag(http.URL)
|
||||||
if span.parent_id is None and url is not None and self._HB_URL.match(url):
|
if span.parent_id is None and url is not None and self._HB_URL.match(url):
|
||||||
# drop the full trace chunk
|
# drop the full trace chunk
|
||||||
return None
|
return None
|
||||||
return trace
|
return trace
|
||||||
|
|
||||||
|
_DDTRACE_AVAILABLE = True
|
||||||
|
except ImportError:
|
||||||
|
_DDTRACE_AVAILABLE = False
|
||||||
|
|
||||||
|
|
||||||
setup_windows_event_loop_policy()
|
setup_windows_event_loop_policy()
|
||||||
tracer.configure(trace_processors=[FilterHeartbeat()])
|
if _DDTRACE_AVAILABLE:
|
||||||
|
tracer.configure(trace_processors=[FilterHeartbeat()])
|
||||||
setup_logger()
|
setup_logger()
|
||||||
|
|
||||||
# noinspection PyUnresolvedReferences
|
# noinspection PyUnresolvedReferences
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ from typing import Annotated
|
|||||||
import structlog
|
import structlog
|
||||||
from asyncache import cached
|
from asyncache import cached
|
||||||
from cachetools import TTLCache
|
from cachetools import TTLCache
|
||||||
from ddtrace import tracer
|
|
||||||
from fastapi import Header, HTTPException, status
|
from fastapi import Header, HTTPException, status
|
||||||
from jose import jwt
|
from jose import jwt
|
||||||
from jose.exceptions import JWTError
|
from jose.exceptions import JWTError
|
||||||
@@ -18,6 +17,13 @@ from skyvern.forge.sdk.db.client import AgentDB
|
|||||||
from skyvern.forge.sdk.models import TokenPayload
|
from skyvern.forge.sdk.models import TokenPayload
|
||||||
from skyvern.forge.sdk.schemas.organizations import Organization, OrganizationAuthToken, OrganizationAuthTokenType
|
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()
|
LOG = structlog.get_logger()
|
||||||
|
|
||||||
AUTHENTICATION_TTL = 60 * 60 # one hour
|
AUTHENTICATION_TTL = 60 * 60 # one hour
|
||||||
@@ -60,12 +66,12 @@ async def get_current_org(
|
|||||||
curr_ctx.organization_id = organization.organization_id
|
curr_ctx.organization_id = organization.organization_id
|
||||||
curr_ctx.organization_name = organization.organization_name
|
curr_ctx.organization_name = organization.organization_name
|
||||||
|
|
||||||
# Tag datadog span immediately
|
if _DDTRACE_AVAILABLE:
|
||||||
span = tracer.current_span()
|
span = tracer.current_span()
|
||||||
if span:
|
if span:
|
||||||
span.set_tag("organization_id", organization.organization_id)
|
span.set_tag("organization_id", organization.organization_id)
|
||||||
if organization.organization_name:
|
if organization.organization_name:
|
||||||
span.set_tag("organization_name", organization.organization_name)
|
span.set_tag("organization_name", organization.organization_name)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
4
uv.lock
generated
4
uv.lock
generated
@@ -4764,7 +4764,6 @@ dependencies = [
|
|||||||
{ name = "azure-storage-blob" },
|
{ name = "azure-storage-blob" },
|
||||||
{ name = "cachetools" },
|
{ name = "cachetools" },
|
||||||
{ name = "curlparser" },
|
{ name = "curlparser" },
|
||||||
{ name = "ddtrace" },
|
|
||||||
{ name = "email-validator" },
|
{ name = "email-validator" },
|
||||||
{ name = "fastapi" },
|
{ name = "fastapi" },
|
||||||
{ name = "fastmcp" },
|
{ name = "fastmcp" },
|
||||||
@@ -4814,6 +4813,7 @@ dependencies = [
|
|||||||
|
|
||||||
[package.dev-dependencies]
|
[package.dev-dependencies]
|
||||||
cloud = [
|
cloud = [
|
||||||
|
{ name = "ddtrace" },
|
||||||
{ name = "dramatiq" },
|
{ name = "dramatiq" },
|
||||||
{ name = "redis" },
|
{ name = "redis" },
|
||||||
{ name = "stripe" },
|
{ name = "stripe" },
|
||||||
@@ -4855,7 +4855,6 @@ requires-dist = [
|
|||||||
{ name = "azure-storage-blob", specifier = ">=12.26.0" },
|
{ name = "azure-storage-blob", specifier = ">=12.26.0" },
|
||||||
{ name = "cachetools", specifier = ">=5.3.2,<6" },
|
{ name = "cachetools", specifier = ">=5.3.2,<6" },
|
||||||
{ name = "curlparser", specifier = ">=0.1.0,<0.2" },
|
{ name = "curlparser", specifier = ">=0.1.0,<0.2" },
|
||||||
{ name = "ddtrace", specifier = ">=2.3.2,<3" },
|
|
||||||
{ name = "email-validator", specifier = ">=2.2.0,<3" },
|
{ name = "email-validator", specifier = ">=2.2.0,<3" },
|
||||||
{ name = "fastapi", specifier = ">=0.115.4,<0.116" },
|
{ name = "fastapi", specifier = ">=0.115.4,<0.116" },
|
||||||
{ name = "fastmcp", specifier = ">=2.10.1,<3" },
|
{ name = "fastmcp", specifier = ">=2.10.1,<3" },
|
||||||
@@ -4905,6 +4904,7 @@ requires-dist = [
|
|||||||
|
|
||||||
[package.metadata.requires-dev]
|
[package.metadata.requires-dev]
|
||||||
cloud = [
|
cloud = [
|
||||||
|
{ name = "ddtrace", specifier = ">=2.3.2,<3" },
|
||||||
{ name = "dramatiq", extras = ["asyncio"], specifier = ">=1.18.0,<2" },
|
{ name = "dramatiq", extras = ["asyncio"], specifier = ">=1.18.0,<2" },
|
||||||
{ name = "redis", specifier = ">=5.0.3,<6" },
|
{ name = "redis", specifier = ">=5.0.3,<6" },
|
||||||
{ name = "stripe", specifier = ">=9.7.0,<10" },
|
{ name = "stripe", specifier = ">=9.7.0,<10" },
|
||||||
|
|||||||
Reference in New Issue
Block a user