Postgres on Instances
Overview#
PostgreSQL on instances is monitored using sfAgent configured with postgres plugin
Metrics plugin#
Collects metric data organized in following documentTypes in metrics index:
- serverDetails
- databaseDetails
- tableDetails
- IndexDetails
- queryDetails
Logger plugin#
Collects general logs and slow query logs. General logs are sent to log index under documentType: postgres-general and slow queries logs are parsed and data is sent metrics index in documentType: postgres-slowquery
Pre-requisites#
Enable PostgreSQL general logs#
Logging needs to be configured in the postgresql.conf file. This file can be located by executing the command shown below:
postgres=# show config_file; config_file ---------------------------------- /data/pgsql/data/postgresql.conf (1 row) In postgresql.conf file, uncomment and configure the variables shown below:
log_min_messages = warning # set level as appropriate log_line_prefix = '< %m > ' Enable Slow Query Logs#
Configuring log_min_duration_statement = 200 will log any query which takes more than 200ms to execute which. Set the value to appropriate value
Set access permissions#
Username used for DB access should have appropriate permissions
grant SELECT ON pg_stat_database to <username>; grant pg_monitor to <username>; note
root user has these permissions by default
Configuration#
Refer to sfAgent section for steps to install and automatically generate plugin configurations. User can also manually add the configuration shown below to config.yaml under /opt/sfagent/ directory
key: <profile_key> tags: Name: <name> appName: <app_name> projectName: <project_name> metrics: plugins: - name: postgres enabled: true interval: 60 config: documentsTypes: - databaseDetails - indexDetails - queryDetails - serverDetails - tableDetails host: 127.0.0.1 password: <password> port: 5432 user: <username> logging: plugins: - name: postgres-general enabled: true config: log_level: - error - warning - info - log log_path: /var/log/postgresql/postgresql-10-main.log - name: postgres-slowquery enabled: true config: log_path: /var/log/postgresql/postgresql-10-main.log Viewing data and dashboards#
- Data generated by plugin can be viewed in
browse datapage inside the respective application underplugin=postgresanddocumentType=serverDetails,databaseDetails,tableDetails,IndexDetails,queryDetails,postgres-slowquery - Dashboard for this data can be instantiated by Importing dashboard template
PostgreSQLto the application dashboard