Query Interfaces
Icelake supports multiple query interfaces for different use cases.
New here? The Quickstart walks through the full Icelake + Grafana setup end to end in 5 minutes.
Grafana Prometheus Data Source
Section titled “Grafana Prometheus Data Source”Connect Grafana to Icelake’s Prometheus-compatible query API:
- Add a new Prometheus data source in Grafana
- Set the URL to
https://api.icelake.eu/prom - Enable Basic auth — user = your client ID, password = your API key (
ilk_…)
Supports PromQL for metric queries with full label matching.
Grafana Loki Data Source
Section titled “Grafana Loki Data Source”Connect Grafana to Icelake’s Loki-compatible query API:
- Add a new Loki data source in Grafana
- Set the URL to
https://api.icelake.eu/loki - Enable Basic auth — user = your client ID, password = your API key (
ilk_…)
Supports LogQL for log queries with label filtering, line filtering, and aggregations.
pgwire SQL
Section titled “pgwire SQL”Connect any PostgreSQL client to Icelake’s SQL interface. Auth is cleartext password over the postgres wire protocol — username is your client ID, password is your API key (ilk_…):
psql "postgresql://your-client-id:ilk_your-api-key-here@sql.icelake.eu:5432/icelake?sslmode=require"Query your data with standard SQL powered by DuckDB. Supports:
SELECTqueries across metrics, logs, and custom datasets- Time-based filtering with
WHERE timestamp > NOW() - INTERVAL '1 hour' - Aggregations, joins, and window functions
EXPLAINfor query planning
For a guided notebook flow with JupySQL, pandas, and matplotlib, see Jupyter Notebooks.
REST SQL API
Section titled “REST SQL API”Execute SQL queries via HTTP:
curl -X POST https://api.icelake.eu/api/v1/sql \ -u "your-client-id:ilk_your-api-key-here" \ -H "Content-Type: application/json" \ -d '{"query": "SELECT * FROM metrics LIMIT 10"}'Loki Query API
Section titled “Loki Query API”Query logs programmatically via the Loki-compatible HTTP API:
curl "https://api.icelake.eu/loki/api/v1/query_range" \ -u "your-client-id:ilk_your-api-key-here" \ --data-urlencode 'query={job="myapp"}' \ --data-urlencode 'start=2026-03-13T00:00:00Z' \ --data-urlencode 'end=2026-03-13T23:59:59Z'Related docs
Section titled “Related docs”- Quickstart — end-to-end Icelake + Grafana setup in 5 minutes
- Jupyter Notebooks — VS Code + JupySQL + matplotlib against pgwire
- Prometheus — the ingest side of the Prometheus query API
- Loki & LogQL — the ingest side of the Loki query API