Early access is open. Free plan during early access. Start free
Logthread

Integration

PostgreSQL

Connections, commits, rollbacks, deadlocks, cache reads, sizes and the server log.

  • Category: Databases
  • How data is sent: Logthread Agent
  • Runs on: Linux
  • Status: Beta

How it works#

  1. Answer a few questions. They only fill in the setup steps. Nothing on this page connects to your servers: Logthread never reaches into your network.
  2. Run one command on the PostgreSQL machine. The next page shows the command with this connector's ingest key filled in. It downloads the Logthread Agent from downloads.logthread.com and installs it as a service (Linux, as root with sudo). No other download. If the agent cannot run on that machine, run it on one that can reach PostgreSQL over your private network and set the server below.
  3. Data arrives. Everything is collected inside your environment. It is sent over outbound HTTPS (port 443) to ingest.logthread.com. Nothing is opened to the internet: no inbound ports, VPN or public access to your servers. The connection page shows what has arrived and turns Active with the first record.

What you answer#

QuestionAnswerNotes
Server (optional)Texthost:port the agent reads from, on your network. Default: localhost:5432 (the same machine).
Log files (optional)TextDefault: /var/log/postgresql/*.log.
Labels (optional)TextFor Fleet and filtering, for example env=prod.
Manage this agent from FleetYes or noChange its configuration from Logthread later without logging in to the host. Default: Yes.

Setup#

These are the steps for the default answers. In the app, they follow your answers, and the connector's ingest key replaces YOUR_INGEST_KEY.

Step 1. Create a monitoring role. pg_monitor can read statistics only. The log prefix lets the parser read time, process, user and database from each line.

As a superuser, in psql:

CREATE ROLE logthread_agent LOGIN;
\password logthread_agent  -- psql asks for it; choose a strong one
GRANT pg_monitor TO logthread_agent;  -- read-only statistics, no table data
-- The log prefix the parser reads (the Debian and Ubuntu default):
ALTER SYSTEM SET log_line_prefix = '%m [%p] %q%u@%d ';
SELECT pg_reload_conf();

Step 2. Install the Logthread Agent. On the database host: it installs the agent with the PostgreSQL and Linux host profiles. It asks for the password (hidden, not kept in your shell history) and writes it to a file only root can read.

curl -sSL https://downloads.logthread.com/agent/install.sh | sudo sh -s -- \
  --key YOUR_INGEST_KEY --profiles linux-host,postgres --fleet
printf 'Password of logthread_agent: '; stty -echo; read -r LT_PASSWORD; stty echo; echo
sudo tee -a /etc/logthread-agent/agent.env >/dev/null <<EOF
LOGTHREAD_POSTGRES_ENDPOINT=localhost:5432
LOGTHREAD_POSTGRES_USER=logthread_agent
LOGTHREAD_POSTGRES_PASSWORD=$LT_PASSWORD
EOF
unset LT_PASSWORD
sudo systemctl restart logthread-agent

Step 3. Wait for data. Metrics arrive within a minute. Server log lines arrive as PostgreSQL writes them (with logging to files, as distribution packages do).

Check that it works#

The connection page under Integrations counts what has arrived and turns Active with the first record. In Explore, search service:postgresql.

Then add#

Each is one click on the connection page and opens with your data, so you can check it before saving.

  • Dashboard: PostgreSQL: Connections, commits and rollbacks, deadlocks, cache reads, database size and server log errors.
  • Parser: postgres (Pipelines → Library)
  • Alert: PostgreSQL errors: service:postgresql severity:(error|fatal), at least 10 in 10 minutes

Set it up under Integrations in the app, or from an AI agent with MCP (add_integration). All integrations: Integrations guide. Next: find what it sends in Explore and live tail.