48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from ddtrace import tracer
|
|
from ddtrace.trace import TraceFilter, Span
|
|
from ddtrace.ext import http
|
|
import re
|
|
from skyvern.forge.sdk.forge_log import setup_logger
|
|
|
|
|
|
class FilterHeartbeat(TraceFilter):
|
|
_HB_URL = re.compile(r"http://.*/heartbeat$")
|
|
|
|
def process_trace(self, trace: list[Span]) -> list[Span] | None:
|
|
for span in trace:
|
|
url = span.get_tag(http.URL)
|
|
if span.parent_id is None and url is not None and self._HB_URL.match(url):
|
|
# drop the full trace chunk
|
|
return None
|
|
return trace
|
|
|
|
|
|
tracer.configure(trace_processors=[FilterHeartbeat()])
|
|
setup_logger()
|
|
|
|
|
|
from skyvern.forge import app # noqa: E402, F401
|
|
from skyvern.library import Skyvern # noqa: E402
|
|
from skyvern.core.code_generations.skyvern_page import RunContext, SkyvernPage # noqa: E402
|
|
from skyvern.core.code_generations.run_initializer import setup # noqa: E402
|
|
from skyvern.core.code_generations.workflow_wrappers import ( # noqa: E402
|
|
workflow, # noqa: E402
|
|
task_block, # noqa: E402
|
|
file_download_block, # noqa: E402
|
|
email_block, # noqa: E402
|
|
wait_block, # noqa: E402
|
|
) # noqa: E402
|
|
|
|
|
|
__all__ = [
|
|
"Skyvern",
|
|
"SkyvernPage",
|
|
"RunContext",
|
|
"setup",
|
|
"workflow",
|
|
"task_block",
|
|
"file_download_block",
|
|
"email_block",
|
|
"wait_block",
|
|
]
|