Prerequisite
Your app must already be sending traces to a Better Stack OpenTelemetry (spans) source. If you export via the@langfuse/otel SDK or any OpenTelemetry exporter, point it at your Better Stack source’s ingesting host (https://<host>/v1/traces, Authorization: Bearer <source-token>). You can confirm spans are arriving in Better Stack under Live tail.
Connect
Create SQL API credentials
In Better Stack, go to Telemetry → Integrations → Connect remotely (the SQL API tab) and create a connection. Better Stack shows a username, a password (once - copy it now), and a Host. Copy all three.
Note your cluster endpoint
The Host is your region’s cluster endpoint, e.g.
https://eu-central-1a-connect.betterstackdata.com. Better Stack credentials are region-scoped, so this must be the cluster your source lives on - not the ingesting host you push to. In Glassray, pick it from the dropdown, or choose Other cluster (paste URL) and paste it.Find your source table
On the same page, the example query references your source’s tables like
t123456_my_app_spans. Glassray needs the base - the part before _spans (e.g. t123456_my_app). Enter it as the source table.Connect in Glassray
In the dashboard, go to Settings → Sources, add Better Stack, and paste the username, password, cluster endpoint, and source table. Click Test connection, then Save credentials.
Glassray verifies and syncs
Glassray runs a live query to verify the credentials and table, then starts pulling new traces on a cadence. Spans are grouped into traces by their trace id and render in the trace viewer.
Your Better Stack SQL API credentials are stored in WorkOS Vault, never in Glassray’s database. The connected source row only holds the source table, the cluster host, and a reference to the vaulted secret.