Postgres (с адаптером хранения Prometheus) pg_stat_database показывает нулевые значения - PullRequest
0 голосов
/ 24 мая 2018

Мы используем расширение временных рядов Адаптер хранения Prometheus вместе с Postgres для хранения данных Prometheus в Postgres.

У нас есть экспортер Prometheus для экспорта метрик Postgres.И он пытается получить количество операций чтения / записи в БД.Поскольку значения не отображаются, я сделал следующее.

postgres=# select * from pg_stat_database;
 datid |  datname  | numbackends | xact_commit | xact_rollback | blks_read | blks_hit | tup_returned | tup_fetched | tup_inserted | tup_updated | tup_deleted | conflicts | temp_files | temp_bytes | deadlocks | blk_read_time | blk_write_time | stats_reset
-------+-----------+-------------+-------------+---------------+-----------+----------+--------------+-------------+--------------+-------------+-------------+-----------+------------+------------+-----------+---------------+----------------+-------------
     1 | template1 |           0 |           0 |             0 |         0 |        0 |            0 |           0 |            0 |           0 |           0 |         0 |          0 |          0 |         0 |             0 |              0 |
 12291 | template0 |           0 |           0 |             0 |         0 |        0 |            0 |           0 |            0 |           0 |           0 |         0 |          0 |          0 |         0 |             0 |              0 |
 12292 | postgres  |          12 |           0 |             0 |         0 |        0 |            0 |           0 |            0 |           0 |           0 |         0 |          0 |          0 |         0 |             0 |              0 |
(3 rows)

В частности, такие вещи, как tup_fetched, tup_inserted и т. Д., Показывают нулевые значения в базе данных 'postgres'.

Но я использовал следующий запрос, чтобы найти текущие запросы в БД.

postgres=# select  pg_stat_activity.datname, pg_stat_activity.usename, pg_stat_activity.query from pg_stat_activity;
 datname  |      usename      |                                                   query
----------+-------------------+-----------------------------------------------------------------------------------------------------------
          | postgres          |
 postgres | psqladmin         | COMMIT
 postgres | psqladmin         | COMMIT
 postgres | psqladmin         | COMMIT
 postgres | psqladmin         | COMMIT
 postgres | psqladmin         | COMMIT
 postgres | psqladmin         | select * from pg_stat_database;
 postgres | postgres_exporter | SELECT * FROM pg_stat_database;
 postgres | psqladmin         | COMMIT
 postgres | psqladmin         | COMMIT
 postgres | postgres          | select  pg_stat_activity.datname, pg_stat_activity.usename, pg_stat_activity.query from pg_stat_activity;
 postgres | psqladmin         | COMMIT
 postgres | psqladmin         | COMMIT
          |                   |
          |                   |
          |                   |
(16 rows)

К сожалению, я не мог видеть ни слова ЗАПИСЬ, скажем, но COMMIT, как вы можете видеть.Я полагаю, это вставки?Но в любом случае мы можем увидеть некоторые запросы выбора.Так почему бы не tup_fetched или tup_returned ненулевой?

Кто-нибудь сталкивался с этой ситуацией.Есть идеи по решению этой проблемы?

...