Bindplane

The Bindplane Developer Hub

Welcome to the Bindplane developer hub. You'll find comprehensive guides and documentation to help you start working with Bindplane as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

PostgreSQL

Least Privileged User

To help automate the creation of a least-privileged user (LPU) for your PostgreSQL instance, run the following script on the database you plan to monitor. If you're monitoring multiple databases, run the script on the postgres database.

CREATE SCHEMA bluemedora;
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE OR REPLACE FUNCTION bluemedora.pg_stat_statements() RETURNS SETOF pg_stat_statements AS
$$
SELECT * FROM public.pg_stat_statements;
$$ LANGUAGE sql VOLATILE SECURITY DEFINER;

CREATE OR REPLACE FUNCTION public.explain_this (
      l_query text,
      out explain json
    )
RETURNS SETOF json AS
$$
BEGIN
  RETURN QUERY EXECUTE 'explain (format json) ' || l_query;
END;
$$
LANGUAGE 'plpgsql'
VOLATILE
RETURNS NULL ON NULL INPUT
SECURITY DEFINER
COST 100 ROWS 1000;

CREATE USER bluemedora WITH PASSWORD 'tmppassword';
GRANT SELECT ON pg_database TO bluemedora;
GRANT SELECT ON pg_stat_bgwriter TO bluemedora;
GRANT SELECT ON pg_stat_database TO bluemedora;
GRANT SELECT ON pg_stat_user_indexes TO bluemedora;
GRANT SELECT ON pg_stat_user_tables TO bluemedora;
GRANT SELECT ON pg_statio_all_sequences TO bluemedora;
GRANT SELECT ON pg_statio_user_indexes TO bluemedora;
GRANT SELECT ON pg_statio_user_tables TO bluemedora;
GRANT SELECT ON pg_tables TO bluemedora;
GRANT SELECT ON pg_tablespace TO bluemedora;
GRANT SELECT ON pg_user TO bluemedora;
GRANT SELECT ON pg_stat_replication TO bluemedora;
GRANT SELECT ON pg_stat_database_conflicts TO bluemedora;
GRANT SELECT ON pg_trigger TO bluemedora;
GRANT SELECT ON pg_stat_activity TO bluemedora;
GRANT SELECT ON pg_stat_statements TO bluemedora;
GRANT USAGE ON SCHEMA bluemedora TO bluemedora;
GRANT EXECUTE ON FUNCTION public.explain_this(l_query text, out explain text) TO bluemedora;

Connection Parameters

Name
Required?
Description

Host

Required

The hostname or IP address of the PostgreSQL instance to connect to.

Port

The port for communication to the PostgreSQL instance.

Username

Required

Password

SSL Configuration

The SSL mode to use when connecting to the target. Can be configured to not use SSL (No SSL), use SSL but do not verify the target's certificate (No Verify), and use SSL and verify the target's certificate (Verify).

Database

Comma-separated list of database(s) to monitor. Leave blank to monitor all databases.

Query Count

The number of queries to collect. Enter 0 to disable query monitoring.

Order Queries By

Enter how you want your queries ordered. Options include: Calls, Average Time, Total Time, and All.

Show Query Text

Whether to show query text. If disabled, just the query ID will be shown.

Function Count

Enter the number of queries to collect. Enter 0 to disable function monitoring.

Order Functions By

Enter how you want your functions ordered. Options include: Calls, Average Time, Total Time, and All.

Metrics

Configuration

Name
Description

Additional Info

Additional, more detailed, description of the parameter

Boot Value

Parameter value assumed at server startup if the parameter is not otherwise set

Category

Logical group of the parameter

Context

Context required to set the parameter's value

Current value

Current value of the parameter

Description

A brief description of the parameter

Maximum Value

Maximum allowed value of the parameter (null for non-numeric values)

Minimum Value

Minimum allowed value of the parameter (null for non-numeric values)

Name

Run-time configuration parameter name

Reset Value

Value that RESET would reset the parameter to in the current session

Source

Source of the current parameter value

Unit

Implicit unit of the parameter

Value Type

Parameter type (bool, enum, integer, real, or string)

Database

Name
Description

Active Connections (Sessions)

Number of backends currently connected to this database

Active Sessions (Sessions)

Backends that are currently executing a query

Block Reads (Reads)

Number of disk blocks read in this database

Buffer Hit Ratios (%)

Ratio of read buffer hits to total reads

Buffer Hits (Reads)

Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache)

Deadlocks (Locks)

Number of deadlocks detected in this database

Disabled Sessions (Sessions)

Backends that have track_activities disabled

Fastpath Function Call Sessions (Sessions)

Backends that are currently executing a fast-path function

ID

OID of the database

Idle in (Aborted) Transaction Sessions (Sessions)

Backends that are currently in a transaction, not executing a query, and a statement in the transaction has caused an error

Idle In Transaction Sessions (Sessions)

Backends that are currently in a transaction, but not executing a query

Idle Sessions (Sessions)

Backends that are currently awaiting a new client command

Latest Stats Reset

Time at which these statistics were last reset

Name

Name of the database

Queries Canceled Due to Conflicts

Number of queries canceled due to conflicts with recovery in this database. (Conflicts occur only on standby servers, see pg_stat_database_conflicts for details.)

Queries Canceled Due to Deadlocks

Number of queries in this database that have been canceled due to deadlocks

Queries Canceled Due to Dropped Tablespaces

Number of queries in this database that have been canceled due to dropped tablespaces

Queries Canceled Due to Lock Timeouts

Number of queries in this database that have been canceled due to lock timeouts

Queries Canceled Due to Old Snapshots

Number of queries in this database that have been canceled due to old snapshots

Queries Canceled Due to Pinned Buffers

Number of queries in this database that have been canceled due to pinned buffers

Rows Deleted (Rows)

Number of rows deleted by queries in this database

Rows Fetched (Rows)

Number of rows fetched by queries in this database

Rows Inserted (Rows)

Number of rows inserted by queries in this database

Rows Returned (Rows)

Number of rows returned by queries in this database

Rows Updated (Rows)

Number of rows updated by queries in this database

Sequence Blocks Hit (Blocks)

Number of disk blocks read from all sequences in this database

Sequence Blocks Read (Blocks)

Number of buffer hits from all sequences in this database

Size (Bytes)

Disk space used by the database

Tablespace Name

Name of the default tablespace for the database. Within this database, all tables for which pg_class.reltablespace is zero will be stored in this tablespace. In particular, all the non-shared system catalogs will be there.

Temporary Data Written (Bytes)

Total amount of data written to temporary files by queries in this database. All temporary files are counted, regardless of why the temporary file was created, and regardless of the log_temp_files setting.

Temporary Files Created

Number of temporary files created by queries in this database. All temporary files are counted, regardless of why the temporary file was created (e.g., sorting or hashing), and regardless of the log_temp_files setting.

Time Spent Reading Data (Milliseconds)

Time spent reading data file blocks by backends in this database

Time Spent Writing Data (Milliseconds)

Time spent writing data file blocks by backends in this database

Transactions Committed (Transactions)

Number of transactions in this database that have been committed

Transactions Rolled Back (Transactions)

Number of transactions in this database that have been rolled back

Waiting Sessions (Sessions)

Backends that are currently waiting on a lock

Function

Name
Description

Average Time (Milliseconds)

Average time spent in this function and all other functions called by it

Calls (Calls)

Number of times this function has been called

Database Name

Name of the database the function is in

ID

OID of the function

Name

Name of the function

Rank

Current rank of the function as ordered by consumer request (order_functions_by parameter)

Schema Name

Name of the schema the function is in

Self Time (Milliseconds)

Total time spent in this function itself, not including other functions called by it

Total Time (Milliseconds)

Total time spent in this function and all other functions called by it

Index

Name
Description

Block Reads (Reads)

Number of disk blocks read from this index

Buffer Hits (Reads)

Number of buffer hits for this index

Entries Returned (Rows)

Number of index entries returned by scans on this index

ID

OID of the index

Name

Name of the index

Scans (Scans)

Number of index scans initiated on this index

Schema Name

Name of the schema the index is in

Table ID

OID of the table for the index

Table Name

Name of the table for the index

Table Rows Fetched (Fetches)

Number of live table rows fetched by simple index scans using this index

Instance

Name
Description

Buffers Allocated

Number of buffers allocated

Buffers Written by Backend

Number of buffers written directly by a backend

Buffers Written by Background Writer

Number of buffers written by the background writer

Buffers Written During Checkpoint

Number of buffers written during checkpoints

Estimated Replication Delay (Seconds)

Time since last replayed transaction timestamp from the replication master

Host

Host name of instance

Last Replay Timestamp

Get time stamp of last transaction replayed during recovery. This is the time at which the commit or abort WAL record for that transaction was generated on the primary. If no transactions have been replayed during recovery, this function returns NULL. Otherwise, if recovery is still in progress this will increase monotonically. If recovery has completed then this value will remain static at the value of the last transaction applied during that recovery

Last WAL File Archive Failed

Name of the WAL file of the last failed archival operation

Last WAL File Archive Failed Time

Time of the last failed archival operation

Last WAL File Archive Time

Time of the last successful archive operation

Last WAL File Archived

Name of the last WAL file successfully archived

Latest Stats Reset

Time at which these statistics were last reset

Name

IP Address and port on which the server accepted the monitoring connection

Requested Checkpoints Performed (Checkpoints)

Number of requested checkpoints that have been performed

Scheduled Checkpoints Performed (Checkpoints)

Number of scheduled checkpoints that have been performed

Server IP

IP address on which the server accepted the monitoring connection

Server Port

Port on which the server accepted the monitoring connection

Time Synchronizing Checkpoint Files to Disk (Milliseconds)

Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk

Time Writing Checkpoint Files to Disk (Milliseconds)

Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk

Times Backend Executed Own fsync

Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)

Times Background Writer Stopped Due to too Many Buffers

Number of times the background writer stopped a cleaning scan because it had written too many buffers

Version

PostgreSQL version information

WAL File Archives Failed

Number of failed attempts for archiving WAL files

WAL Files Archived

Number of WAL files that have been successfully archived

Query

Name
Description

Average Time (Milliseconds)

Average time spent in the statement per execution

Calls (Calls)

Number of times executed

Database Name

Name of the database in which the statement was executed

ID

Internal hash code, computed from the statement's parse tree

Local Block Cache Hits (Reads)

Total number of local block cache hits by the statement

Local Blocks Dirtied (Blocks)

Total number of local blocks dirtied by the statement

Local Blocks Read (Blocks)

Total number of local blocks read by the statement

Local Blocks Written (Blocks)

Total number of local blocks written by the statement

Rank

Current rank of the statement as ordered by consumer request (order_queries_by parameter). If order_queries_by is set to 'all', then this metric is ambiguous.

Rows (Rows)

Total number of rows retrieved or affected by the statement

Shared Block Cache Hits (Reads)

Total number of shared block cache hits by the statement

Shared Blocks Dirtied (Blocks)

Total number of shared blocks dirtied by the statement

Shared Blocks Read (Blocks)

Total number of shared blocks read by the statement

Shared Blocks Written (Blocks)

Total number of shared blocks written by the statement

Text

Text of a representative statement or query ID

Total Time (Milliseconds)

Total time spent in the statement

Total Time Reading Blocks (Milliseconds)

Total time the statement spent reading blocks (if track_io_timing is enabled, otherwise zero)

Total Time Writing Blocks (Milliseconds)

Total time the statement spent writing blocks (if track_io_timing is enabled, otherwise zero)

Username

Name of the user who executed the statement

Query Plan

Name
Description

Plan

JSON representation of the query execution plan.

Replication

Name
Description

Application Name

Name of the application that is connected to this WAL sender

Client Hostname

Host name of the connected client, as reported by a reverse DNS lookup of client_addr. This field will only be non-null for IP connections, and only when log_hostname is enabled.

Client IP

IP address of the client connected to this WAL sender. If this field is null, it indicates that the client is connected via a Unix socket on the server machine.

Client Port

TCP port number that the client is using for communication with this WAL sender, or -1 if a Unix socket is used

Delay (Bytes)

Amount of data that has not been replayed into database on the standby server

Last Transaction Log Position Flushed to Disk

Last transaction log position flushed to disk by this standby server

Last Transaction Log Position Replayed into Database

Last transaction log position replayed into the database on this standby server

Last Transaction Log Position Sent

Last transaction log position sent on this connection

Last Transaction Log Position Written to Disk

Last transaction log position written to disk by this standby server

Oldest Transaction ID Seen for Process

This standby's xmin horizon reported by hot_standby_feedback

PID

Process ID of a WAL sender process

Priority of Standby Server

Priority of this standby server for being chosen as the synchronous standby

Process Start Time

Time when this process was started, i.e., when the client connected to this WAL sender

State

Current WAL Sender State

Synchronous State of Server

Synchronous state of this standby server

User ID

OID of the user logged into this WAL sender process

Username

Name of the user logged into this WAL sender process

Sequence

Name
Description

Blocks Read (Blocks)

Number of disk blocks read from this sequence

Buffer Hits (Reads)

Number of buffer hits for this sequence

Database Name

Name of the database the sequence is in

ID

OID of the sequence

Name

Name of the sequence

Schema Name

Name of the schema the sequence is in

Session

Name
Description

Application Name

Name of the application that is connected to this backend

Backend Connect Time

Time when this process was started, i.e., when the client connected to the server

Backend is currently waiting on a lock

True if this backend is currently waiting on a lock

Backend Transaction ID

Top-level transaction identifier of this backend, if any.

Client Hostname

Host name of the connected client, as reported by a reverse DNS lookup of client_addr. This field will only be non-null for IP connections, and only when log_hostname is enabled.

Client IP

IP address of the client connected to this backend. If this field is null, it indicates either that the client is connected via a Unix socket on the server machine or that this is an internal process such as autovacuum.

Client Port

TCP port number that the client is using for communication with this backend, or -1 if a Unix socket is used

Current Backend State

Current overall state of this backend

Current Query Start Time

Time when the currently active query was started, or if state is not active, when the last query was started

Current Transaction Start Time

Time when this process' current transaction was started, or null if no transaction is active. If the current query is the first of its transaction, this column is equal to the query_start column.

Database ID

OID of the database this backend is connected to

Database Name

Name of the database this backend is connected to

Last State Change Time

Time when the state was last changed

Name

Name of the user and application connected to this backend

Oldest Transaction ID Seen for Backend

The current backend's xmin horizon.

PID

Process ID of the backend

Query Text

Text of this backend's most recent query. If state is active this field shows the currently executing query. In all other states, it shows the last query that was executed.

User ID

OID of the user logged into this backend

Username

Name of the user logged into this backend

Table

Name
Description

Analyzes by Auto Daemon

Number of times this table has been analyzed by the autovacuum daemon

Blocks Read (Blocks)

Number of disk blocks read from the table

Blocks Read from Indexes (Blocks)

Number of disk blocks read from all indexes on this table

Blocks Read from TOAST Table (Blocks)

Number of disk blocks read from this table's TOAST table (if any)

Blocks Read from TOAST Table Indexes (Blocks)

Number of disk blocks read from this table's TOAST table indexes (if any)

Buffer Hits from Indexes (Blocks)

Number of buffer hits in all indexes on this table

Buffer Hits from TOAST Table (Blocks)

Number of buffer hits in this table's TOAST table (if any)

Buffer Hits from TOAST Table Indexes (Blocks)

Number of buffer hits in this table's TOAST table indexes (if any)

Buffer Reads (Blocks)

Number of buffer hits for the table

Database Name

Name of the database the table is in

Dead Rows (Rows)

Estimated number of dead rows

ID

OID of the table

Index Scans (Scans)

Number of index scans initiated on this table

Last Analyze by Auto Daemon

Last time at which this table was analyzed by the autovacuum daemon

Last Manual Analyze

Last time at which this table was manually analyzed

Last Manual Vacuum

Last time at which this table was manually vacuumed (not counting VACUUM FULL)

Last Vacuum by Auto Daemon

Last time at which this table was vacuumed by the autovacuum daemon

Live Rows (Rows)

Estimated number of live rows

Manual Analyzes

Number of times this table has been manually analyzed

Manual Vacuums

Number of times this table has been manually vacuumed (not counting VACUUM FULL)

Name

Name of the Table

Rows Deleted (Rows)

Number of rows deleted

Rows Fetched by Index Scans (Rows)

Number of live rows fetched by index scans

Rows fetched by Sequential Scans (Rows)

Number of live rows fetched by sequential scans

Rows Hot Updated (Rows)

Number of rows HOT updated (i.e., with no separate index update required)

Rows Inserted (Rows)

Number of rows inserted

Rows Modified Since Last Analyzed (Rows)

Estimated number of rows modified since this table was last analyzed

Rows Updated (Rows)

Number of rows updated

Schema Name

Name of the schema the table is in

Sequential Scans (Scans)

Number of sequential scans initiated on this table

Size (Bytes)

Disk space used by the table

Tablespace Name

Name of tablespace containing table (null if default for database)

Vacuums By Auto Daemon

Number of times this table has been vacuumed by the autovacuum daemon

Tablespace

Name
Description

Location

Location (directory path) of the tablespace

Name

Name of the tablespace

Owner

Owner of the tablespace, usually the user who created it

Size (Bytes)

Size of the tablespace on disk

Users with Create Privileges

List of users who have CREATE privilege on this tablespace

Trigger

Name
Description

Enabled Status

Controls in which session_replication_role modes the trigger fires. O = trigger fires in "origin" and "local" modes, D = trigger is disabled, R = trigger fires in "replica" mode, A = trigger fires always.

Fire Type

Bit mask identifying trigger firing conditions

Function ID

OID of the function to be called

ID

OID of the trigger

Name

Trigger name (must be unique among triggers of same table)

Passed Arguments

Arguments Passed to Trigger

Table ID

OID of the table that the trigger is on

Table Name

Name of the table that the trigger is on