Skip to content

Commit f77c3d5

Browse files
Deprecate hosted Fireworks tracing gateway (tracing.fireworks.ai) integrations (#462)
The hosted Fireworks tracing gateway at https://tracing.fireworks.ai has been shut down. Deprecate the SDK features that depend on it; they will be removed in a future release. - RemoteRolloutProcessor, GithubActionRolloutProcessor, FireworksTracingAdapter and FireworksTracingHttpHandler emit a DeprecationWarning when constructed, and `ep logs` warns when it selects the Fireworks backend. - FireworksTracingHttpHandler is no longer attached automatically when FIREWORKS_API_KEY is set; set FW_TRACING_GATEWAY_BASE_URL (or GATEWAY_URL) to opt in. - The TypeScript FireworksTransport, logger and createRolloutLogger are marked @deprecated, and the transport warns once when it sends to the hosted URL. - The Fireworks Tracing Tests workflow runs only on workflow_dispatch, since its end-to-end tests need the hosted gateway. - Add deprecation notes to the README, the TypeScript README and the CHANGELOG. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 9b642d9 commit f77c3d5

14 files changed

Lines changed: 231 additions & 15 deletions

‎.github/workflows/fireworks-tracing-tests.yml‎

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
name: Fireworks Tracing Tests
22

3+
# These end-to-end tests run against the hosted Fireworks tracing gateway (https://tracing.fireworks.ai),
4+
# which was shut down on October 28, 2026, so they no longer run on push or pull_request.
35
on:
4-
push:
5-
branches: [main]
6-
paths-ignore:
7-
- "docs/**"
8-
- "*.md"
9-
pull_request: # Run on all pull requests
10-
paths-ignore:
11-
- "docs/**"
12-
- "*.md"
136
workflow_dispatch: # Allow manual triggering
147

158
jobs:

‎CHANGELOG.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
- (Your new features here)
1212

1313
### Changed
14-
- (Your changes in existing functionality here)
14+
- `FireworksTracingHttpHandler` is no longer attached automatically by `init_external_logging_from_env()` (used by `@evaluation_test`) when `FIREWORKS_API_KEY` is set; set `FW_TRACING_GATEWAY_BASE_URL` (or `GATEWAY_URL`) to opt in.
1515

1616
### Deprecated
17-
- (Your soon-to-be removed features here)
17+
- The hosted Fireworks tracing gateway (https://tracing.fireworks.ai) was shut down on October 28, 2026. These features depend on it, now emit a `DeprecationWarning`, and will be removed in a future release: `RemoteRolloutProcessor`, `GithubActionRolloutProcessor`, `FireworksTracingAdapter`, `FireworksTracingHttpHandler`, and the Fireworks backend of `ep logs`. In the TypeScript package, `FireworksTransport`, `logger`, and `createRolloutLogger` are marked `@deprecated`, and `FireworksTransport` warns once when it sends to the hosted URL. Until removal they only work with a self-hosted gateway that implements the same API, configured explicitly.
1818

1919
### Removed
2020
- (Your now removed features here)

‎README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ Eval Protocol makes this possible in two ways:
1818

1919
The result: RL that works out-of-the-box for existing production agents.
2020

21+
> **Deprecation notice:** The hosted Fireworks tracing gateway (https://tracing.fireworks.ai) was shut down on October 28, 2026. SDK features that depend on it (`RemoteRolloutProcessor`, `GithubActionRolloutProcessor`, `FireworksTracingAdapter`, `FireworksTracingHttpHandler`, and the Fireworks backend of `ep logs`) are deprecated and will be removed in a future release. See the [changelog](CHANGELOG.md).
22+
2123
## Who This Is For
2224

2325
- **Applied AI teams** adding RL to existing production agents.

‎eval_protocol/adapters/fireworks_tracing.py‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
import asyncio
99
import json
1010
import logging
11+
import warnings
1112
import aiohttp
1213
import requests
1314
from datetime import datetime
1415
from typing import Any, Dict, List, Optional, Protocol
1516
import os
1617

18+
from eval_protocol.hosted_tracing_gateway import hosted_gateway_deprecation_message
1719
from eval_protocol.models import EvaluationRow, InputMetadata, ExecutionMetadata, Message
1820
from eval_protocol.tracing import PayloadType, decode_payloads
1921
from .base import BaseAdapter
@@ -267,6 +269,10 @@ def get_final_generation_in_span_dict(trace: Dict[str, Any], span_name: str) ->
267269
class FireworksTracingAdapter(BaseAdapter):
268270
"""Adapter to pull data from Langfuse via Fireworks tracing proxy.
269271
272+
DEPRECATED: The hosted Fireworks tracing gateway (https://tracing.fireworks.ai) was shut down on
273+
October 28, 2026. This adapter depends on it and will be removed in a future release. Until then,
274+
it only works with a self-hosted gateway that implements the same API, set via ``base_url``.
275+
270276
This adapter uses the Fireworks tracing proxy API which handles retry logic
271277
and rate limiting internally, simplifying the client-side implementation.
272278
@@ -305,6 +311,11 @@ def __init__(
305311
timeout: Request timeout in seconds (default: 300)
306312
api_key: Optional API key. If not provided, falls back to FIREWORKS_API_KEY environment variable.
307313
"""
314+
warnings.warn(
315+
hosted_gateway_deprecation_message("FireworksTracingAdapter", "base_url"),
316+
DeprecationWarning,
317+
stacklevel=2,
318+
)
308319
self.project_id = project_id
309320
self.base_url = base_url.rstrip("/")
310321
self.timeout = timeout

‎eval_protocol/cli_commands/logs.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
"""
44

55
import sys
6+
import warnings
67
from pathlib import Path
78

89
import os
10+
from ..hosted_tracing_gateway import hosted_gateway_deprecation_message
911
from ..utils.logs_server import serve_logs
1012
from ..event_bus.sqlite_event_bus_database import DatabaseCorruptedError, _backup_and_remove_database
1113

@@ -114,6 +116,14 @@ def logs_command(args):
114116
or os.environ.get("GATEWAY_URL")
115117
or "https://tracing.fireworks.ai"
116118
)
119+
if use_fireworks:
120+
warnings.warn(
121+
hosted_gateway_deprecation_message(
122+
"The Fireworks backend of 'ep logs'", "FW_TRACING_GATEWAY_BASE_URL or GATEWAY_URL"
123+
),
124+
DeprecationWarning,
125+
stacklevel=2,
126+
)
117127

118128
max_retries = 2
119129
for attempt in range(max_retries):
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""Deprecation notice for features built on the hosted Fireworks tracing gateway."""
2+
3+
4+
def hosted_gateway_deprecation_message(feature: str, configured_via: str) -> str:
5+
"""Build the deprecation warning for a feature that depends on the hosted tracing gateway.
6+
7+
Args:
8+
feature: User-facing name of the deprecated feature, e.g. "RemoteRolloutProcessor".
9+
configured_via: Parameters or environment variables that point the feature at a self-hosted gateway.
10+
"""
11+
return (
12+
"The hosted Fireworks tracing gateway (https://tracing.fireworks.ai) was shut down on October 28, 2026. "
13+
f"{feature} depends on it and is deprecated; it will be removed in a future release. "
14+
"Until then, it only works with a self-hosted gateway that implements the same API, "
15+
f"set via {configured_via}."
16+
)

‎eval_protocol/log_utils/fireworks_tracing_http_handler.py‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
import logging
22
import os
33
import threading
4+
import warnings
45
from datetime import datetime, timezone
56
from typing import Optional, Any, Dict, List, cast
67

78
import requests
89

10+
from eval_protocol.hosted_tracing_gateway import hosted_gateway_deprecation_message
11+
912

1013
class FireworksTracingHttpHandler(logging.Handler):
11-
"""Logging handler that posts structured logs to tracing.fireworks gateway /logs endpoint."""
14+
"""Logging handler that posts structured logs to tracing.fireworks gateway /logs endpoint.
15+
16+
DEPRECATED: The hosted Fireworks tracing gateway (https://tracing.fireworks.ai) was shut down on
17+
October 28, 2026. This handler depends on it and will be removed in a future release. Until then,
18+
it only works with a self-hosted gateway that implements the same API, set via ``gateway_base_url``
19+
or ``FW_TRACING_GATEWAY_BASE_URL``.
20+
"""
1221

1322
def __init__(self, gateway_base_url: Optional[str] = None, rollout_id_env: str = "EP_ROLLOUT_ID") -> None:
23+
warnings.warn(
24+
hosted_gateway_deprecation_message(
25+
"FireworksTracingHttpHandler", "gateway_base_url or FW_TRACING_GATEWAY_BASE_URL"
26+
),
27+
DeprecationWarning,
28+
stacklevel=2,
29+
)
1430
super().__init__()
1531
self.gateway_base_url = (
1632
gateway_base_url or os.getenv("FW_TRACING_GATEWAY_BASE_URL") or "https://tracing.fireworks.ai"

‎eval_protocol/log_utils/init.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ def init_external_logging_from_env() -> None:
3939
# Ensure we do not add duplicate handlers if already present
4040
existing_handler_types = {type(h).__name__ for h in root_logger.handlers}
4141

42-
# Fireworks tracing: prefer if FIREWORKS_API_KEY is present; default base URL if not provided
42+
# Fireworks tracing: only when FIREWORKS_API_KEY and a gateway URL are both set
4343
fw_key = _get_env("FIREWORKS_API_KEY")
4444
# Allow remote validation gateway to act as tracing base when provided
45-
fw_url = _get_env("FW_TRACING_GATEWAY_BASE_URL") or _get_env("GATEWAY_URL") or "https://tracing.fireworks.ai"
46-
if fw_key and "FireworksTracingHttpHandler" not in existing_handler_types:
45+
fw_url = _get_env("FW_TRACING_GATEWAY_BASE_URL") or _get_env("GATEWAY_URL")
46+
if fw_key and fw_url and "FireworksTracingHttpHandler" not in existing_handler_types:
4747
fw_handler = FireworksTracingHttpHandler(gateway_base_url=fw_url)
4848
fw_handler.setLevel(logging.INFO)
4949
fw_handler.addFilter(ContextRolloutIdFilter())

‎eval_protocol/pytest/github_action_rollout_processor.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import asyncio
22
import os
33
import time
4+
import warnings
45
from typing import Any, Dict, List, Optional
56
import json
67
import requests
78
from datetime import datetime, timezone, timedelta
9+
from eval_protocol.hosted_tracing_gateway import hosted_gateway_deprecation_message
810
from eval_protocol.models import EvaluationRow, Status
911
from eval_protocol.data_loader.dynamic_data_loader import DynamicDataLoader
1012

@@ -24,6 +26,11 @@ class GithubActionRolloutProcessor(RolloutProcessor):
2426
- Traces are fetched later via Fireworks tracing proxy using rollout_id tags
2527
2628
NOTE: GHA has a rate limit of 5000 requests per hour.
29+
30+
DEPRECATED: The hosted Fireworks tracing gateway (https://tracing.fireworks.ai) was shut down on
31+
October 28, 2026. This processor depends on it and will be removed in a future release. Until then,
32+
it only works with a self-hosted gateway that implements the same API, set via ``model_base_url``
33+
or ``EP_MODEL_BASE_URL``.
2734
"""
2835

2936
def __init__(
@@ -39,6 +46,11 @@ def __init__(
3946
max_find_workflow_retries: int = 5,
4047
github_token: Optional[str] = None,
4148
):
49+
warnings.warn(
50+
hosted_gateway_deprecation_message("GithubActionRolloutProcessor", "model_base_url or EP_MODEL_BASE_URL"),
51+
DeprecationWarning,
52+
stacklevel=2,
53+
)
4254
self.owner = owner
4355
self.repo = repo
4456
self.workflow_id = workflow_id

‎eval_protocol/pytest/remote_rollout_processor.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import asyncio
22
import time
3+
import warnings
34
from typing import List, Optional
45

56
import aiohttp
67

78
from eval_protocol.models import EvaluationRow, Status
89
from eval_protocol.adapters.fireworks_tracing import FireworksTracingAdapter
910
from eval_protocol.exceptions import exception_for_status_code
11+
from eval_protocol.hosted_tracing_gateway import hosted_gateway_deprecation_message
1012

1113
from .rollout_processor import RolloutProcessor
1214
from .types import RolloutProcessorConfig
@@ -25,6 +27,11 @@ class RemoteRolloutProcessor(RolloutProcessor):
2527
2628
Fetches traces from the Fireworks tracing proxy using rollout_id tags.
2729
30+
DEPRECATED: The hosted Fireworks tracing gateway (https://tracing.fireworks.ai) was shut down on
31+
October 28, 2026. This processor depends on it and will be removed in a future release. Until then,
32+
it only works with a self-hosted gateway that implements the same API, set via ``model_base_url``
33+
or ``EP_MODEL_BASE_URL``.
34+
2835
See https://evalprotocol.io/tutorial/remote-rollout-processor for documentation.
2936
"""
3037

@@ -37,6 +44,11 @@ def __init__(
3744
timeout_seconds: float = 120.0,
3845
include_payloads: bool = False,
3946
):
47+
warnings.warn(
48+
hosted_gateway_deprecation_message("RemoteRolloutProcessor", "model_base_url or EP_MODEL_BASE_URL"),
49+
DeprecationWarning,
50+
stacklevel=2,
51+
)
4052
# Prefer constructor-provided configuration. These can be overridden via
4153
# config.kwargs at call time for backward compatibility.
4254
self._remote_base_url = remote_base_url

0 commit comments

Comments
 (0)