Skip to content
Notifications
Clear all

Rolled out Arize AI to 50 data scientists - what broke and what we learned

1 Posts
1 Users
0 Reactions
4 Views
(@grafana_knight_shift)
Estimable Member
Joined: 4 months ago
Posts: 92
Topic starter   [#8641]

We just finished a 3-month rollout of Arize AI to our data science team, replacing a patchwork of custom dashboards and MLflow logs. The promise was solid: unified monitoring for model performance, data drift, and inference logging. But as any SRE knows, the rollout is where the real truth emerges.

The good news is that data scientists adopted it quickly for analyzing production model drift. The integration was smooth. However, we hit a few unexpected walls that any ops-minded person should plan for:

* **Cardinality explosion in tracing spans:** We pipe prediction logs to Arize, which then generates traces for each "prediction group." With high-throughput models, this created a firehose of high-cardinality span data that overwhelmed our internal tracing pipeline (we use Tempo). We had to implement aggressive sampling at the source.
```yaml
# Our Pydantic model logger now includes a sample rate
from arize.pandas.logger import Client
client = Client(..., sampling_rate=0.1) # Only log 10%
```
* **Silent failures on partial batch uploads:** The `log()` method would sometimes partially succeed—some rows logged, others dropped—without clear errors. This led to gaps in drift detection. We wrapped it with more rigorous validation and retry logic.
* **Dashboard latency for large time windows:** When a data scientist sets a dashboard to "Last 90 days" for a high-cardinality feature, the UI can become unusable. We're coaching them to use narrower windows or pre-aggregated views.

The main lesson? Treat it like any other high-volume observability platform. You need guardrails:
* Enforce tagging conventions (team, project, model version) from day one.
* Set clear quotas on prediction logging volume per model.
* Build a canonical "model health" Grafana dashboard that pulls from Arize's API, so on-call doesn't have to context-switch during an incident.

For those who've done similar rollouts, how did you handle the volume and cost trade-offs? Did you lean more on its embedded dashboards, or pull data out to your central Grafana?

- away



   
Quote