Skip to content

radar Data Collection Reference

This reference describes every file that radar collects. radar writes all collected data to a single ZIP file named radar-{hostname}-{timestamp}.zip. The archive root contains a radar.out entry that identifies the radar binary that produced the archive. The version value in that entry comes from the build-time -X main.version stamp. The commit value comes from the version control information that Go embeds in the binary.

radar collects metadata and statistics from the operating system, the PostgreSQL instance, each database, and optional extensions and tools.

Collecting System Information

The following table describes the system data that radar collects:

Area Sources
Block devices and storage blockdev, df, diskstats, fstab, io-queue-depth, io-schedulers, iostat, lsblk, ls, mount, mounts, nfsiostat, swaps
CPU and performance cpuinfo, clocksource, energy_perf_bias, free, intel_pstate, loadavg, lscpu, mpstat, numactl, numastat, sar, scaling_available_governors, scaling_driver, scaling_governor, top, uptime, vmstat
Memory and kernel dmesg, ipcs, meminfo, pressure/cpu, pressure/io, pressure/memory, sysctl, transparent_hugepage
Operating system apt, dnf, dpkg, hostname, hosts, limits.conf, locale, locale.conf, localectl, lsmod, lspci, machine-id, os-release, ps, rpm, system-release, systemctl, systemd-detect-virt, timedatectl, tuned-adm, uname, yum
Network ifconfig, ip, netstat, resolv.conf, ss
Security fips-mode-setup, openssl, sestatus, update-crypto-policies
Cgroup v2 cpu.max, cpu.weight, cpuset.cpus.effective, io.max, memory.current, memory.max, memory.stat, memory.swap.max, pids.current, pids.max
Cgroup v1 cpu.cfs_period_us, cpu.cfs_quota_us, cpu.shares, cpuset.cpus, memory.limit_in_bytes, memory.stat, memory.usage_in_bytes
Cloud and hardware identity The DMI fields bios_vendor, chassis_asset_tag, product_name, and sys_vendor.
Container detection radar detects a container when /.dockerenv exists, when /proc/1/cgroup names docker, kubepods, containerd, or lxc, or when KUBERNETES_SERVICE_HOST is set; inside a container, radar also collects the container environment variables and the Kubernetes namespace.

For more information, see Collecting Cross-Platform System Data, Collecting Linux System Data, and Collecting macOS System Data.

Collecting PostgreSQL Instance Data

The following table describes the instance-wide PostgreSQL data that radar collects:

Area Sources
Configuration and files pg_db_role_setting, pg_file_settings, pg_hba.conf, pg_hba_file_rules, pg_ident.conf, pg_settings, pg_tablespace, postgresql.auto.conf, postgresql.conf, recovery.conf, recovery.done
Activity and monitoring pg_locks, pg_postmaster_start_time(), pg_prepared_xacts, pg_shmem_allocations, pg_stat_activity
Statistics views pg_stat_archiver, pg_stat_bgwriter, pg_stat_checkpointer (PG17+), pg_stat_database_conflicts, pg_stat_io (PG16+), pg_stat_slru, pg_stat_ssl, pg_stat_statements (if installed), pg_stat_wal (PG14+), pg_stat_wal_receiver
Replication and WAL pg_current_wal_lsn(), pg_replication_origin_status, pg_replication_slots, pg_stat_replication, pg_stat_replication_slots (PG14+, spill counters), pg_stat_subscription_stats (PG15+ apply and sync error counters, PG18+ conflict counters), pg_subscription
Progress tracking pg_stat_progress_analyze, pg_stat_progress_basebackup, pg_stat_progress_cluster, pg_stat_progress_copy, pg_stat_progress_create_index, pg_stat_progress_vacuum
Catalog pg_available_extension_versions, pg_database (including the datfrozenxid and datminmxid wraparound headroom and datconnlimit), pg_database_size(), pg_roles, pg_tablespace_size(), version()
Control file pg_control_checkpoint(), pg_control_init(), pg_control_recovery(), and pg_control_system() return the pg_controldata content as SQL.
Log directory pg_ls_logdir() lists the name, size, and modification time of each file; radar never reads log contents.

For more information, see Collecting PostgreSQL Instance Data.

Collecting Per-Database Data

The following table describes the data that radar collects from each database:

Area Sources
Tables pg_class and pg_stat_all_tables, including dead-tuple counters, vacuum and analyze timestamps, per-table relfrozenxid and relminmxid freeze ages, reloptions, reltoastrelid, and relpersistence. A separate freeze-age listing ranks tables by age rather than size, so the listing includes a small table near the wraparound threshold.
Indexes pg_index and pg_stat_all_indexes, including validity, scan counters, and size.
Other schema objects pg_namespace, pg_operator, pg_sequences, pg_type
Functions and procedures pg_proc
Triggers and partitioning pg_inherits, pg_partitioned_table, pg_trigger
Logical replication pg_publication, pg_publication_tables, pg_subscription_rel
Extensions pg_extension, pg_language, pg_statistic_ext, and pgstattuple; when pgstattuple is installed and --include pgstattuple enables the collector, pgstattuple_approx() measures bloat, with exact dead-tuple figures.
Statistics pg_stat_database, including conflicts, deadlocks, temporary files, and the statistics reset time.
Bloat estimate radar always collects a heuristic bloat estimate from pg_stats.

For more information, see Collecting Per-Database Data.

Collecting pg_statviz Data

When a database has the pg_statviz extension installed, radar collects its time-series statistics from pgstatviz.blocking, pgstatviz.buf, pgstatviz.conf, pgstatviz.conn, pgstatviz.db, pgstatviz.io, pgstatviz.lock, pgstatviz.repl, pgstatviz.slru, pgstatviz.snapshots, pgstatviz.wait, and pgstatviz.wal.

For more information, see Collecting pg_statviz Data.

Collecting PgBouncer Configuration

When PgBouncer is installed, radar collects the [pgbouncer] section of pgbouncer.ini and a listing of the configuration directory. radar replaces the values outside the [pgbouncer] section with <redacted by radar>, because [databases] connection strings routinely contain password=, and drops all comments. radar records userlist.txt as a directory entry only; the file holds credentials, and radar never collects its contents. radar reads the first of /etc/pgbouncer and /usr/local/etc/pgbouncer that exists; use --pgbouncer-conf to name another configuration directory.

For more information, see Collecting PgBouncer Configuration.

Collecting Spock Replication State

When a database has the Spock extension installed, radar collects the replication state from spock.channel_summary_stats, spock.lag_tracker, spock.local_node, spock.local_sync_status, spock.node, spock.pii, spock.progress, spock.replication_set, spock.replication_set_table, spock.subscription, and spock.tables.

radar also collects the counters, timestamps, conflict types, and apply error messages from spock.exception_log and spock.resolutions. radar excludes the jsonb and text images of the conflicting rows. radar does not collect spock.node_interface at all, because its if_dsn column holds the node password. radar keeps error_message; Spock stores no DETAIL, so the offending key of a constraint violation is absent. An error whose primary message embeds a value still includes that value.

For more information, see Collecting Spock Data.

Protecting Sensitive Data

radar collects metadata and statistics, and does not collect table contents or query result sets. A collected archive includes:

  • database and table names, schemas, and object definitions.
  • PostgreSQL configuration files and settings.
  • system configuration and resource utilization metrics.
  • active connection counts, database statistics, and query text.

Warning

A collected archive can contain passwords and other secrets. PostgreSQL configuration files and settings can hold connection passwords, such as a password in primary_conninfo on a standby, and query text and error messages can include values from user queries. Review the contents of an archive before you share it outside your organization.

Browsing the Collector Reference

The following table links to the reference page for each collector:

Page Description
Collecting Cross-Platform System Data Cross-platform system collectors work on both Linux and macOS.
Collecting Linux System Data Linux-specific system collectors run only on Linux and use sources such as systemd, /proc and /sys.
Collecting macOS System Data macOS-specific system collectors run only on macOS and use tools such as sysctl, system_profiler and diskutil.
Collecting PostgreSQL Instance Data PostgreSQL instance collectors gather instance-level PostgreSQL data.
Collecting Per-Database Data Per-database collectors gather schema and object data for each database.
Collecting pg_statviz Data The optional pg_statviz collectors gather time-series statistics for each database.
Collecting Spock Data The optional Spock collectors gather multi-master replication state for each database.
Collecting PgBouncer Configuration The optional PgBouncer collectors gather the pooler configuration when PgBouncer is installed.