datadog 中 Heroku Postgres 指标日志样本的 Grok 解析器?

问题描述 投票:0回答:1

Heroku 将 Postgres 指标日志作为“样本”发送到 DataDog。我想要一个可以从这些日志中提取数据的解析器,以便我可以将它们转换为 DataDog 指标。我有一个模式已经工作了一段时间,但最近崩溃了,因为 Heroku 于 2024 年 5 月 15 日添加了额外的指标

postgresql heroku datadog
1个回答
0
投票

我想出了如何让解析器更能容忍添加的新字段(因为我确信 Heroku 会再次这样做)。

在“高级设置”中,添加

_any_sample (?:(?:\s+sample#[^=]+=[^ ]+)?)+

我对其他示例类型(redis、heroku 内存)有一些规则

然后我对 Postgres 使用三种不同的规则:

  1. 一个针对关注者(具有“滞后提交”指标)
  2. 一个领先(没有“滞后提交”)
  3. 一个是最小的,以防他们删除/更改一些,这样我就不会失去一切

规则

serverMetrics source\=%{notSpace:source}\.1\s+dyno\=heroku\.*\.%{notSpace:dyno}\s+sample#load_avg_1m\=%{number:load_avg_1m}\s+sample#load_avg_5m\=%{number:load_avg_5m}\s+sample#load_avg_15m\=%{number:load_avg_15m}

memRuntimeMetrics source\=%{notSpace:source}\s+dyno\=%{notSpace:dyno}\s+sample#memory_total\=%{number:memory_total}MB\s+sample#memory_rss\=%{number:memory_rss}MB\s+sample#memory_cache\=%{number:memory_cache}MB\s+sample#memory_swap\=%{number:memory_swap}MB\s+sample#memory_pgpgin\=%{number:memory_pgpgin}pages\s+sample#memory_pgpgout\=%{number:memory_pgpgout}pages\s+sample#memory_quota\=%{number:memory_quota}MB

redisMetrics source\=%{notSpace:source}\s+addon\=%{notSpace:addon}\s+sample#active-connections\=%{number:active_connections}\s+sample#load-avg-1m\=%{number:load_avg_1m}\s+sample#load-avg-5m\=%{number:load_avg_5m}\s+sample#load-avg-15m\=%{number:load_avg_15m}\s+sample#read-iops\=%{number:read_iops}\s+sample#write-iops\=%{number:write_iops}\s+sample#memory-total\=%{number:memory_total}kB\s+sample#memory-free\=%{number:memory_free}kB\s+sample#memory-cached\=%{number:memory_cached}kB\s+sample#memory-redis\=%{number:memory_redis}bytes\s+sample#hit-rate\=%{number:hit_rate}\s+sample#evicted-keys\=%{number:evicted_keys}

postgresFollower source\=%{notSpace:source}\s+addon\=%{notSpace:addon}%{_any_sample} sample#current_transaction\=%{number:current_transaction}%{_any_sample} sample#db_size\=%{number:db_size}bytes%{_any_sample} sample#db-max-size\=%{number:db_max_size}bytes%{_any_sample} sample#db-size-percentage-used\=%{number:db_size_percentage_used}%{_any_sample} sample#tables\=%{number:tables}%{_any_sample} sample#active-connections\=%{number:active_connections}%{_any_sample} sample#waiting-connections\=%{number:waiting_connections}%{_any_sample} sample#max-connections\=%{number:max_connections}%{_any_sample} sample#connections-percentage-used\=%{number:connections_percentage_used}%{_any_sample} sample#index-cache-hit-rate\=%{number:index_cache_hit_rate}%{_any_sample} sample#table-cache-hit-rate\=%{number:table_cache_hit_rate}%{_any_sample} sample#load-avg-1m\=%{number:load_avg_1m}%{_any_sample} sample#load-avg-5m\=%{number:load_avg_5m}%{_any_sample} sample#load-avg-15m\=%{number:load_avg_15m}%{_any_sample} sample#read-iops\=%{number:read_iops}%{_any_sample} sample#write-iops\=%{number:write_iops}%{_any_sample} sample#max-iops\=%{number:max_iops}%{_any_sample} sample#iops-percentage-used\=%{number:iops_percentage_used}%{_any_sample} sample#tmp-disk-used\=%{number:tmp_disk_used}%{_any_sample} sample#tmp-disk-available\=%{number:tmp_disk_available}%{_any_sample} sample#memory-total\=%{number:memory_total}kB%{_any_sample} sample#memory-free\=%{number:memory_free}kB%{_any_sample} sample#memory-percentage-used\=%{number:memory_percentage_used}%{_any_sample} sample#memory-cached\=%{number:memory_cached}kB%{_any_sample} sample#memory-postgres\=%{number:memory_postgres}kB%{_any_sample} sample#follower-lag-commits\=%{number:follower_lag_commits}%{_any_sample} sample#wal-percentage-used\=%{number:wal_percentage_used}%{_any_sample} sample#rollback-from\=%{date("yyyy-MM-dd'T'HH:mmz"):rollback_from}%{_any_sample}

postgresLead source\=%{notSpace:source}\s+addon\=%{notSpace:addon}%{_any_sample} sample#current_transaction\=%{number:current_transaction}%{_any_sample} sample#db_size\=%{number:db_size}bytes%{_any_sample} sample#db-max-size\=%{number:db_max_size}bytes%{_any_sample} sample#db-size-percentage-used\=%{number:db_size_percentage_used}%{_any_sample} sample#tables\=%{number:tables}%{_any_sample} sample#active-connections\=%{number:active_connections}%{_any_sample} sample#waiting-connections\=%{number:waiting_connections}%{_any_sample} sample#max-connections\=%{number:max_connections}%{_any_sample} sample#connections-percentage-used\=%{number:connections_percentage_used}%{_any_sample} sample#index-cache-hit-rate\=%{number:index_cache_hit_rate}%{_any_sample} sample#table-cache-hit-rate\=%{number:table_cache_hit_rate}%{_any_sample} sample#load-avg-1m\=%{number:load_avg_1m}%{_any_sample} sample#load-avg-5m\=%{number:load_avg_5m}%{_any_sample} sample#load-avg-15m\=%{number:load_avg_15m}%{_any_sample} sample#read-iops\=%{number:read_iops}%{_any_sample} sample#write-iops\=%{number:write_iops}%{_any_sample} sample#max-iops\=%{number:max_iops}%{_any_sample} sample#iops-percentage-used\=%{number:iops_percentage_used}%{_any_sample} sample#tmp-disk-used\=%{number:tmp_disk_used}%{_any_sample} sample#tmp-disk-available\=%{number:tmp_disk_available}%{_any_sample} sample#memory-total\=%{number:memory_total}kB%{_any_sample} sample#memory-free\=%{number:memory_free}kB%{_any_sample} sample#memory-percentage-used\=%{number:memory_percentage_used}%{_any_sample} sample#memory-cached\=%{number:memory_cached}kB%{_any_sample} sample#memory-postgres\=%{number:memory_postgres}kB%{_any_sample} sample#wal-percentage-used\=%{number:wal_percentage_used}%{_any_sample} sample#rollback-from\=%{date("yyyy-MM-dd'T'HH:mmz"):rollback_from}%{_any_sample}

postgresMinimal source\=%{notSpace:source}\s+addon\=%{notSpace:addon}%{_any_sample} sample#current_transaction\=%{number:current_transaction}%{_any_sample} sample#db_size\=%{number:db_size}bytes%{_any_sample} sample#db-max-size\=%{number:db_max_size}bytes%{_any_sample} sample#db-size-percentage-used\=%{number:db_size_percentage_used}%{_any_sample} sample#tables\=%{number:tables}%{_any_sample} sample#active-connections\=%{number:active_connections}%{_any_sample} sample#waiting-connections\=%{number:waiting_connections}%{_any_sample} sample#max-connections\=%{number:max_connections}%{_any_sample} sample#connections-percentage-used\=%{number:connections_percentage_used}%{_any_sample} sample#index-cache-hit-rate\=%{number:index_cache_hit_rate}%{_any_sample} sample#table-cache-hit-rate\=%{number:table_cache_hit_rate}%{_any_sample} sample#load-avg-1m\=%{number:load_avg_1m}%{_any_sample} sample#load-avg-5m\=%{number:load_avg_5m}%{_any_sample} sample#load-avg-15m\=%{number:load_avg_15m}%{_any_sample} sample#read-iops\=%{number:read_iops}%{_any_sample} sample#write-iops\=%{number:write_iops}%{_any_sample} sample#max-iops\=%{number:max_iops}%{_any_sample} sample#iops-percentage-used\=%{number:iops_percentage_used}%{_any_sample} sample#tmp-disk-used\=%{number:tmp_disk_used}%{_any_sample} sample#tmp-disk-available\=%{number:tmp_disk_available}%{_any_sample} sample#memory-total\=%{number:memory_total}kB%{_any_sample} sample#memory-free\=%{number:memory_free}kB%{_any_sample} sample#memory-percentage-used\=%{number:memory_percentage_used}%{_any_sample} sample#memory-cached\=%{number:memory_cached}kB%{_any_sample} sample#memory-postgres\=%{number:memory_postgres}kB%{_any_sample} sample#wal-percentage-used\=%{number:wal_percentage_used}%{_any_sample}
© www.soinside.com 2019 - 2024. All rights reserved.