Introducing Lightstep UQL to PromQL Translator
The Sunset of Lightstep and the Migration Challenge
The Sunset of Lightstep and the Migration Challenge
Lightstep is sunsetting. For teams that built their observability infrastructure around it, this means migrating thousands of telemetry queries, dashboards, and alerts to a new backend. At Zalando, we faced exactly this problem when transitioning to Dash0, our new PromQL-based telemetry vendor.
Lightstep is sunsetting. For teams that built their observability infrastructure around it, this means migrating thousands of telemetry queries, dashboards, and alerts to a new backend. At Zalando, we faced exactly this problem when transitioning to Dash0, our new PromQL-based telemetry vendor.
The task is straightforward but challenging: rewriting UQL (Unified Query Language) queries into PromQL. Doing this manually is slow and error-prone. Even with LLMs, the translations are unpredictable and often produce subtle bugs that break production alerts. When you're dealing with thousands of queries that monitor critical systems, you need automation that produces correct and consistent results.
The task is straightforward but challenging: rewriting UQL (Unified Query Language) queries into PromQL. Doing this manually is slow and error-prone. Even with LLMs, the translations are unpredictable and often produce subtle bugs that break production alerts. When you're dealing with thousands of queries that monitor critical systems, you need automation that produces correct and consistent results.
Introducing the Lightstep UQL to PromQL Translator
Introducing the Lightstep UQL to PromQL Translator
To solve this, I built a production-ready translator that converts Lightstep UQL queries to PromQL. The tool is written in Go and designed to be used in two ways: as a library (SDK) for translation in your own code, and as an HTTP server with a Web UI for interactive ad-hoc translation.
To solve this, I built a production-ready translator that converts Lightstep UQL queries to PromQL. The tool is written in Go and designed to be used in tw...