mirror of
https://github.com/prometheus-community/postgres_exporter
synced 2025-04-22 06:55:41 +00:00
Merge branch 'master' into feature/test_postgres_12
This commit is contained in:
commit
28ba87da97
@ -1,9 +1,6 @@
|
|||||||
FROM debian:7.11-slim
|
FROM debian:10-slim
|
||||||
RUN useradd -u 20001 postgres_exporter
|
RUN useradd -u 20001 postgres_exporter
|
||||||
|
|
||||||
FROM scratch
|
|
||||||
|
|
||||||
COPY --from=0 /etc/passwd /etc/passwd
|
|
||||||
USER postgres_exporter
|
USER postgres_exporter
|
||||||
|
|
||||||
ARG binary
|
ARG binary
|
||||||
|
38
README-RDS.md
Normal file
38
README-RDS.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Using Postgres-Exporter with AWS:RDS
|
||||||
|
|
||||||
|
### When using postgres-exporter with Amazon Web Services' RDS, the
|
||||||
|
rolname "rdsadmin" and datname "rdsadmin" must be excluded.
|
||||||
|
|
||||||
|
I had success running docker container 'wrouesnel/postgres_exporter:latest'
|
||||||
|
with queries.yaml as the PG_EXPORTER_EXTEND_QUERY_PATH. errors
|
||||||
|
mentioned in issue#335 appeared and I had to modify the
|
||||||
|
'pg_stat_statements' query with the following:
|
||||||
|
`WHERE t2.rolname != 'rdsadmin'`
|
||||||
|
|
||||||
|
Running postgres-exporter in a container like so:
|
||||||
|
```
|
||||||
|
DBNAME='postgres'
|
||||||
|
PGUSER='postgres'
|
||||||
|
PGPASS='psqlpasswd123'
|
||||||
|
PGHOST='name.blahblah.us-east-1.rds.amazonaws.com'
|
||||||
|
docker run --rm --detach \
|
||||||
|
--name "postgresql_exporter_rds" \
|
||||||
|
--publish 9187:9187 \
|
||||||
|
--volume=/etc/prometheus/postgresql-exporter/queries.yaml:/var/lib/postgresql/queries.yaml \
|
||||||
|
-e DATA_SOURCE_NAME="postgresql://${PGUSER}:${PGPASS}@${PGHOST}:5432/${DBNAME}?sslmode=disable" \
|
||||||
|
-e PG_EXPORTER_EXCLUDE_DATABASES=rdsadmin \
|
||||||
|
-e PG_EXPORTER_DISABLE_DEFAULT_METRICS=true \
|
||||||
|
-e PG_EXPORTER_DISABLE_SETTINGS_METRICS=true \
|
||||||
|
-e PG_EXPORTER_EXTEND_QUERY_PATH='/var/lib/postgresql/queries.yaml' \
|
||||||
|
wrouesnel/postgres_exporter
|
||||||
|
```
|
||||||
|
|
||||||
|
### Expected changes to RDS:
|
||||||
|
+ see stackoverflow notes
|
||||||
|
(https://stackoverflow.com/questions/43926499/amazon-postgres-rds-pg-stat-statements-not-loaded#43931885)
|
||||||
|
+ you must also use a specific RDS parameter_group that includes the following:
|
||||||
|
```
|
||||||
|
shared_preload_libraries = "pg_stat_statements,pg_hint_plan"
|
||||||
|
```
|
||||||
|
+ lastly, you must reboot the RDS instance.
|
||||||
|
|
@ -94,8 +94,9 @@ The following environment variables configure the exporter:
|
|||||||
URI may contain the username and password to connect with.
|
URI may contain the username and password to connect with.
|
||||||
|
|
||||||
* `DATA_SOURCE_URI`
|
* `DATA_SOURCE_URI`
|
||||||
an alternative to `DATA_SOURCE_NAME` which exclusively accepts the raw URI
|
an alternative to `DATA_SOURCE_NAME` which exclusively accepts the hostname
|
||||||
without a username and password component.
|
without a username and password component. For example, `my_pg_hostname` or
|
||||||
|
`my_pg_hostname?sslmode=disable`.
|
||||||
|
|
||||||
* `DATA_SOURCE_URI_FILE`
|
* `DATA_SOURCE_URI_FILE`
|
||||||
The same as above but reads the URI from a file.
|
The same as above but reads the URI from a file.
|
||||||
|
@ -97,6 +97,7 @@ func (p *Platform) ReleaseBase() string {
|
|||||||
var platforms []Platform = []Platform{
|
var platforms []Platform = []Platform{
|
||||||
{"linux", "amd64", ""},
|
{"linux", "amd64", ""},
|
||||||
{"linux", "386", ""},
|
{"linux", "386", ""},
|
||||||
|
{"linux", "arm64", ""},
|
||||||
{"darwin", "amd64", ""},
|
{"darwin", "amd64", ""},
|
||||||
{"darwin", "386", ""},
|
{"darwin", "386", ""},
|
||||||
{"windows", "amd64", ".exe"},
|
{"windows", "amd64", ".exe"},
|
||||||
|
@ -134,7 +134,7 @@ pg_database:
|
|||||||
description: "Disk space used by the database"
|
description: "Disk space used by the database"
|
||||||
|
|
||||||
pg_stat_statements:
|
pg_stat_statements:
|
||||||
query: "SELECT t2.rolname, t3.datname, queryid, calls, total_time / 1000 as total_time_seconds, min_time / 1000 as min_time_seconds, max_time / 1000 as max_time_seconds, mean_time / 1000 as mean_time_seconds, stddev_time / 1000 as stddev_time_seconds, rows, shared_blks_hit, shared_blks_read, shared_blks_dirtied, shared_blks_written, local_blks_hit, local_blks_read, local_blks_dirtied, local_blks_written, temp_blks_read, temp_blks_written, blk_read_time / 1000 as blk_read_time_seconds, blk_write_time / 1000 as blk_write_time_seconds FROM pg_stat_statements t1 join pg_roles t2 on (t1.userid=t2.oid) join pg_database t3 on (t1.dbid=t3.oid)"
|
query: "SELECT t2.rolname, t3.datname, queryid, calls, total_time / 1000 as total_time_seconds, min_time / 1000 as min_time_seconds, max_time / 1000 as max_time_seconds, mean_time / 1000 as mean_time_seconds, stddev_time / 1000 as stddev_time_seconds, rows, shared_blks_hit, shared_blks_read, shared_blks_dirtied, shared_blks_written, local_blks_hit, local_blks_read, local_blks_dirtied, local_blks_written, temp_blks_read, temp_blks_written, blk_read_time / 1000 as blk_read_time_seconds, blk_write_time / 1000 as blk_write_time_seconds FROM pg_stat_statements t1 JOIN pg_roles t2 ON (t1.userid=t2.oid) JOIN pg_database t3 ON (t1.dbid=t3.oid) WHERE t2.rolname != 'rdsadmin'"
|
||||||
master: true
|
master: true
|
||||||
metrics:
|
metrics:
|
||||||
- rolname:
|
- rolname:
|
||||||
|
Loading…
Reference in New Issue
Block a user