Home

See what your queries are doing

See who queried what, what failed, and which sources are slow. Keep a safe query history for people and agents, then send the signals to the monitoring tools you already use.

Off by default

Start quiet. Add visibility when it matters.

Pawrly can stay quiet for local experiments. When a workspace is shared with teammates, scripts, or agents, turn on activity history and monitoring so you can see what ran, where it came from, and whether it worked.
enable
# inspect one run
pawrly --log-format json sql "SELECT 1"
# watch a shared workspace
pawrly --otel-endpoint http://localhost:4317 serve
# expose metrics directly
pawrly --prometheus-listen 127.0.0.1:9090 serve
Audit

Ask what happened

When activity logging is on, every query leaves a row: who ran it, where it came from, whether it failed, how long it took, and how many rows came back. You can inspect that history with SQL instead of searching through logs.
system.activity
SELECT interface, status,
count(*) AS n,
avg(duration_ms) AS avg_ms
FROM system.activity
WHERE at > now() - INTERVAL '1 hour'
GROUP BY 1, 2
ORDER BY n DESC;
Leak-safe

Keep history without keeping secrets

Query history is useful only if it is safe to keep. Pawrly can preserve the shape of a query while removing the sensitive values inside it.

Store full SQL when you want it, replace literal values with $REDACTED, or keep only the statement type and the tables touched. Parameter values stay out of the activity log.

pawrly.yaml
observability:
activity:
enabled: true
sinks: [tracing, table]
redact_sql: literals # keep the query shape, remove values
store: ~/.pawrly/activity # keep history across restarts
retention: 30d
Export

Use the monitoring stack you already have

Send query counts, durations, row counts, source errors, and request traces to Grafana, Datadog, or the monitoring system your team already trusts. Pawrly exports through OpenTelemetry and Prometheus when you need those integrations.
signals
queries_total{status="ok"} 1284
query_duration_ms{p95="true"} 84
source_requests_total{kind="http"} 942
source_errors_total{source="stripe"} 3

One binary. One config. Every source.

Start with one config file, then query APIs, files, MCP tools, and databases from the same command. Add MCP when you want agents to use that same workspace.