PostgreSQL 语句 metricset
编辑PostgreSQL 语句 metricset
编辑这是 PostgreSQL 模块的 statement
metricset。
此模块从 pg_stat_statements
视图收集信息,该视图跟踪服务器执行的所有 SQL 语句的计划和执行统计信息。
pg_stat_statements
由 PostgreSQL 中的附加模块包含。此模块需要额外的共享内存,并且默认情况下处于禁用状态。
您可以通过将此模块作为共享预加载库添加到配置中来启用它。
shared_preload_libraries = 'pg_stat_statements' pg_stat_statements.max = 10000 pg_stat_statements.track = all
在服务器中预加载此库将增加 PostgreSQL 服务器的内存使用量。请谨慎使用。
服务器启动此模块后,它将开始收集有关所有执行语句的统计信息。要使这些统计信息在 pg_stat_statements
视图中可用,需要在服务器中执行以下语句
CREATE EXTENSION pg_stat_statements;
您可以在 官方文档 中阅读有关此模块可用选项的更多信息。
Filebeat 的 PostgreSQL 模块还可以从其日志中收集有关服务器中执行的语句的信息。您可以选择哪个更适合您的需求。一个重要的区别是 Metricbeat 模块在语句执行多次时收集聚合信息,但无法知道每个语句何时执行。此信息可以从日志中获取。
有关 metricset 中每个字段的描述,请参阅 导出字段 部分。
这是一个此 metricset 生成的示例文档
{ "@timestamp": "2017-10-12T08:05:34.853Z", "event": { "dataset": "postgresql.statement", "duration": 115000, "module": "postgresql" }, "metricset": { "name": "statement", "period": 10000 }, "postgresql": { "statement": { "database": { "oid": 13395 }, "query": { "calls": 132, "id": -3489238739385425370, "memory": { "local": { "dirtied": 0, "hit": 0, "read": 0, "written": 0 }, "shared": { "dirtied": 0, "hit": 924, "read": 0, "written": 0 }, "temp": { "read": 0, "written": 0 } }, "rows": 396, "text": "SELECT d.datname as \"Name\",\n pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n d.datcollate as \"Collate\",\n d.datctype as \"Ctype\",\n pg_catalog.array_to_string(d.datacl, $1) AS \"Access privileges\"\nFROM pg_catalog.pg_database d\nORDER BY 1", "time": { "max": { "ms": 0.325369 }, "mean": { "ms": 0.07867374242424244 }, "min": { "ms": 0.053835 }, "stddev": { "ms": 0.037920252272212004 }, "total": { "ms": 10.384934000000003 } } }, "user": { "id": 10 } } }, "service": { "address": "192.168.128.2:5432", "type": "postgresql" } }