Connect your system
Open the town, then Data → Connect a source. Two steps: which
provider, then where it is. Everything can be changed afterwards.
Where your credential goes
Signed in, the credential is encrypted and stored against your
account, and our server does the fetching — so it survives a reload and
a team can share a town without sharing a key with a person. Some
providers, Grafana Cloud among them, only work this way: they send no
CORS headers, so a browser cannot call them directly.
Signed out, the key is held in that tab's memory and nowhere
else. You retype it after a reload. That is not a crippled mode — for
someone pointing at a Prometheus on their own laptop it is the right
one — but it only works where the provider allows cross-origin requests.
Prometheus Signed in or out
Also Mimir, Thanos, Victoria Metrics — anything speaking the Prometheus query API.
- URL
- The base that
/api/v1/query hangs off, usually http://your-prometheus:9090
- Credential
- None, unless you have put something in front of it
Browsing signed out, Prometheus needs --web.cors.origin
set or it will refuse the browser. Signed in, our server does the
fetching and this does not arise.
Grafana Cloud Signed in only
Grafana Cloud sends no CORS headers, so it cannot be read from a browser directly.
- URL
- The query endpoint from the Prometheus card’s Details page in the Cloud Portal
- Credential
instanceID:token — with the colon, which is what sends HTTP Basic
-
Cloud Portal → your stack → Details on the Prometheus
card. The query endpoint URL and your numeric instance ID
are both on that page.
-
Generate an access policy token with the
metrics:read
scope. Copy it — it is shown once. If you lose it, delete it
under Security → Access Policies and make another; the value
cannot be retrieved.
-
In Trace Town, choose Prometheus, paste the query endpoint, and
enter
instanceID:token as the credential. Use the
Show button to check it before connecting.
- Sign in and save the connection.
SigNoz Signed in or out
Self-hosted or cloud. Brings its own logs, so there is nothing else to point at.
- URL
- The query service, usually port
8080
- Credential
- A read-only API key, or a session token
- Sent as
- Pick one. If it is refused, try the other
SigNoz accepts two authentication schemes and which one a route wants
varies by version. A 403 is more often the key’s account
lacking the admin role than a wrong key.
Loki For logs
A companion, not a source of its own — pair it with a metrics provider that keeps no logs.
- URL
- Your Loki endpoint, added beside the Prometheus one
- Credential
- Reuses the metrics credential
What your services need to emit
Standard OpenTelemetry, and nothing bespoke. Trace Town reads whichever
of these it finds:
http.server.request.duration the service itself — rate, errors, latency
http.client.request.duration service to service, and to third parties
db.client.operation.duration service to datastore
messaging.client.sent.messages service to broker
messaging.client.consumed.messages broker to worker
If your collector runs the spanmetrics connector, that is
found automatically and preferred — it covers every service that emits a
span rather than only the ones serving HTTP, which is the difference
between seeing your queue workers and not.
Set service.namespace on your services and the town zones
itself into neighbourhoods with a signpost at the edge of each. It is the
single highest-value attribute you can add.