prometheus tips
目录:
监控指标
数据抓取相关
scrape_duration_seconds
: 每次抓取的耗时,为了保持PrometheusServer能按照预设的抓取频率稳定搜集数据,抓取耗时不应该超过抓取数据的周期。scrape_samples_scraped
: 每次抓取的数据点数。
本地内存与磁盘写入相关
process_resident_memory_bytes
: 内存使用大小process_virtual_memory_bytes
: 虚拟内存使用go_memstats_gc_sys_bytes
: 用于GC元数据的字节数go_memstats_heap_alloc_bytes
: 分配并仍在使用的堆字节数go_memstats_sys_bytes
: 从系统获得的字节数prometheus_tsdb_storage_blocks_bytes
: 当前本地存储所有数据块的字节数。该指标对应本地磁盘数据文件夹下chunks文件的总大小(不包括WAL大小)。prometheus_remote_storage_samples_in_total
: 写入数据样本总数,如果监控流量一定,这是一个随时间增长的prometheus_tsdb_blocks_loaded
:该指标显示当前数据blocks个数。Block数量下降的时刻是Prometheus进程进行了数据块合并操作(compaction),合并操作可以通过prometheus_tsdb_compaction_populating_block指标监测到
失败监控指标(正常情况下为0)
prometheus_target_scrape_pools_failed_total
: 失败的抓取池总数prometheus_target_scrape_pools_failed_total
: 失败的scrape循环重新加载的总数prometheus_rule_evaluation_failures_total
: 规则评估失败的总数prometheus_tsdb_checkpoint_creations_failed_total
: 失败的检查点创建总数prometheus_tsdb_checkpoint_deletions_failed_total
: 失败的检查点删除总数prometheus_tsdb_compactions_failed_total
: 失败的数据块合并压缩总数prometheus_tsdb_head_truncations_failed_total
: 失败的头部数据块删减总数prometheus_tsdb_reloads_failures_total
: 无法从本地磁盘重新加载块数据的次数prometheus_tsdb_wal_truncations_failed_total
: 失败的WAL删减总数prometheus_tsdb_wal_corruptions_total
: WAL损坏的总数prometheus_notifications_dropped_total
: 发送到Alertmanager时由于错误而丢弃的警报总数
ALERTS_FOR_STATE和ActiveAt
在prometheus中,报警由三部分组成
- 条件
- for时间
- webhook组成
如果for为24h,而prometheus处于报警处于condition=true状态23h的时候重启了,再次启动的时候会再次等待24小时触发
所以在时间序列中存储这个状态
- 在每次评估告警规则的过程中,我们将历史的告警的ActiveAt(什么时候condition第一次变成了true)记录在一个名称为
ALERTS_FOR_STATE
的时间序列中,其中包括该告警的所有标签。这和其他时间序列一样,但只存储在本地 - 当Prometheus被重新启动时,会有一个工作运行,用于恢复第二次评估后的警报状态。我们等到第二次评估时,这样我们就有足够的采集数据来了解当前的活跃报警
- 对于每一个当前处于活跃状态的报警,作业寻找其对应的ALERTS_FOR_STATE时间序列、时间戳和series的最后一个样本的值给我们提供了Prometheus什么时候宕机的信息,以及报警最后活跃的时间
如果for持续时间是D,报警在X开始激活,而Prometheus在Y崩溃,那么警报必须等待D-(Y-X)持续时间,而不是D