Métrica
Coletas customizadas

Habilitando e Monitorando pg_stat_statements no PostgreSQL com Telegraf

este documento explica como habilitar o pg stat statements e configurar o telegraf para monitorar as consultas lentas no postgresql introdução o módulo pg stat statements fornece um meio de rastrear estatísticas de planejamento e execução de todas as instruções sql executadas por um servidor postgresql habilitando pg stat statements 1\ modificar a configuração do postgresql o módulo pg stat statements deve ser carregado adicionando pg stat statements a shared preload libraries no arquivo postgresql conf, pois requer memória compartilhada adicional para habilitar pg stat statements, modifique a seguinte configuração no arquivo de configuração do postgresql (por exemplo, /etc/postgresql/12/main/postgresql conf) shared preload libraries = 'pg stat statements' pg stat statements track = all 2\ reiniciar o postgresql após alterar a configuração do postgresql, reinicie o serviço para que a mudança tenha efeito command sudo systemctl restart postgresql 3\ criar a extensão pg stat statements para cada banco de dados o pg stat statements rastreia apenas as estatísticas do banco de dados onde a extensão é criada portanto, crie a extensão para cada banco de dados command create extension if not exists pg stat statements; 4\ verificar pg stat statements para verificar se pg stat statements está funcionando, execute a seguinte consulta command select count( ) from pg stat statements; monitorando com telegraf 1\ configuração do telegraf adicione as seguintes configurações ao arquivo de configuração do telegraf para monitorar o postgresql postgresql input plugin \[inputs] \[\[inputs postgresql]] address = "host=127 0 0 1 dbname=postgres user=\<db user> password=\<db password> sslmode=disable" databases = \[ "postgres",] postgresql extensible input plugin \[\[inputs postgresql extensible]] address = "host=127 0 0 1 dbname=postgres user=\<db user> password=\<db password> sslmode=disable" databases = \[ "postgres",] \[\[inputs postgresql extensible query]] sqlquery = "select userid, query, calls, total time, min time, max time, mean time, stddev time, rows from public pg stat statements where mean time/1000 > 0 8;" version = 901 withdbname = false measurement = "pg slow queries" tagvalue = "query, userid"