community.general.postgresql_user_obj_stat_info – Gather statistics about PostgreSQL user objects

Note

This plugin is part of the community.general collection (version 1.3.6).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.postgresql_user_obj_stat_info.

New in version 0.2.0: of community.general

Synopsis

  • Gathers statistics about PostgreSQL user objects.

Requirements

The below requirements are needed on the host that executes this module.

  • psycopg2

Parameters

Parameter Choices/Defaults Comments
ca_cert
string
Specifies the name of a file containing SSL certificate authority (CA) certificate(s).
If the file exists, the server's certificate will be verified to be signed by one of these authorities.

aliases: ssl_rootcert
db
string
Name of database to connect.

aliases: login_db
filter
list / elements=string
Limit the collected information by comma separated string or YAML list.
Allowable values are functions, indexes, tables.
By default, collects all subsets.
Unsupported values are ignored.
login_host
string
Host running the database.
login_password
string
The password used to authenticate with.
login_unix_socket
string
Path to a Unix domain socket for local connections.
login_user
string
Default:
"postgres"
The username used to authenticate with.
port
integer
Default:
5432
Database port to connect to.

aliases: login_port
schema
string
Restrict the output by certain schema.
session_role
string
Switch to session_role after connecting. The specified session_role must be a role that the current login_user is a member of.
Permissions checking for SQL commands is carried out as though the session_role were the one that had logged in originally.
ssl_mode
string
    Choices:
  • allow
  • disable
  • prefer ←
  • require
  • verify-ca
  • verify-full
Determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server.
Default of prefer matches libpq default.
trust_input
boolean
added in 0.2.0 of community.general
    Choices:
  • no
  • yes ←
If no, check the value of session_role is potentially dangerous.
It makes sense to use no only when SQL injections via session_role are possible.

Notes

Note

  • size and total_size returned values are presented in bytes.

  • For tracking function statistics the PostgreSQL track_functions parameter must be enabled. See https://www.postgresql.org/docs/current/runtime-config-statistics.html for more information.

  • The default authentication assumes that you are either logging in as or sudo’ing to the postgres account on the host.

  • To avoid “Peer authentication failed for user postgres” error, use postgres user as a become_user.

  • This module uses psycopg2, a Python PostgreSQL database adapter. You must ensure that psycopg2 is installed on the host before using this module.

  • If the remote host is the PostgreSQL server (which is the default case), then PostgreSQL must also be installed on the remote host.

  • For Ubuntu-based systems, install the postgresql, libpq-dev, and python-psycopg2 packages on the remote host before using this module.

  • The ca_cert parameter requires at least Postgres version 8.4 and psycopg2 version 2.4.3.

See Also

See also

community.general.postgresql_info

The official documentation on the community.general.postgresql_info module.

community.general.postgresql_ping

The official documentation on the community.general.postgresql_ping module.

PostgreSQL statistics collector reference

Complete reference of the PostgreSQL statistics collector documentation.

Examples

- name: Collect information about all supported user objects of the acme database
  community.general.postgresql_user_obj_stat_info:
    db: acme

- name: Collect information about all supported user objects in the custom schema of the acme database
  community.general.postgresql_user_obj_stat_info:
    db: acme
    schema: custom

- name: Collect information about user tables and indexes in the acme database
  community.general.postgresql_user_obj_stat_info:
    db: acme
    filter: tables, indexes

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
functions
dictionary
always
User function statistics.

Sample:
{'public': {'inc': {'calls': 1, 'funcid': 26722, 'self_time': 0.23, 'total_time': 0.23}}}
indexes
dictionary
always
User index statistics

Sample:
{'public': {'test_id_idx': {'...': None, 'idx_scan': 0, 'idx_tup_fetch': 0, 'idx_tup_read': 0, 'relname': 'test', 'size': 8192}}}
tables
dictionary
always
User table statistics.

Sample:
{'public': {'test': {'...': None, 'analyze_count': 3, 'n_dead_tup': 0, 'n_live_tup': 0, 'seq_scan': 2, 'size': 0, 'total_size': 8192}}}


Authors

  • Andrew Klychkov (@Andersson007)

  • Thomas O’Donnell (@andytom)