Я пытаюсь включить статистику запросов на своем сервере для использования с гемом pg_hero Rails. Я делаю следующее:
Сначала я настроил сборщик в postgresql .conf, надеясь, что он загрузится автоматически:
track_activities = on
track_counts = on
track_io_timing = off
track_functions = none
track_activity_query_size = 1024
stats_temp_directory = 'pg_stat_tmp'
Расширение не загружается автоматически, возможно, эта конфигурация не ' ничего не делай. Так или иначе, тогда я делаю:
# create the extension
# CREATE extension pg_stat_statements;
postgres | /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/create_pg_stats.sh
postgres | CREATE EXTENSION
, который, кажется, работает, без ошибок. Затем я пытаюсь предоставить привилегии пользователю:
postgres | 2020-05-01 14:05:27.533 UTC [154] STATEMENT: GRANT EXECUTE ON FUNCTION pg_stat_statements_reset() TO ro;
postgres | ERROR: function pg_stat_statements_reset() does not exist
postgres | Granting read only privileges on 'entertastic_test' to ro
Не уверен, как функция не существует, когда я только что создал расширение? В любом случае, сервер затем падает:
postgres | 2020-05-01 14:18:21.206 UTC [31] LOG: could not open temporary statistics file "pg_stat_tmp/global.tmp": No such file or directory
postgres | 2020-05-01 14:18:21.259 UTC [1] LOG: could not open file "postmaster.pid": No such file or directory
postgres | 2020-05-01 14:18:21.259 UTC [1] LOG: performing immediate shutdown because data directory lock file is invalid
postgres | 2020-05-01 14:18:21.259 UTC [1] LOG: received immediate shutdown request
postgres | 2020-05-01 14:18:21.259 UTC [1] LOG: could not open file "postmaster.pid": No such file or directory
postgres | 2020-05-01 14:18:21.261 UTC [31] LOG: could not open temporary statistics file "pg_stat/global.tmp": No such file or directory
postgres | 2020-05-01 14:18:21.262 UTC [30] WARNING: terminating connection because of crash of another server process
postgres | 2020-05-01 14:18:21.262 UTC [30] DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
postgres | 2020-05-01 14:18:21.262 UTC [30] HINT: In a moment you should be able to reconnect to the database and repeat your command.
postgres | 2020-05-01 14:18:21.268 UTC [1] LOG: could not write pg_stat_statement file "pg_stat/pg_stat_statements.stat.tmp": No such file or directory
postgres | 2020-05-01 14:18:21.286 UTC [1] LOG: database system is shut down
У него есть все привилегии для каталога данных, поэтому не уверен, почему он не создает файл / не обращается к нему.
Работает ли этот материал вообще? Я что-то не так делаю?