
Prometheus 中的 Bucket(桶)是什么?
Bucket 是 Histogram 指标的分桶区间,每个桶记录"小于等于 le 边界的观测数",暴露为 xxx_bucket{le="0.5"} 序列。本文讲清桶的累积语义、histogram_quantile 计算原理与桶边界设计方法。
聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

Bucket 是 Histogram 指标的分桶区间,每个桶记录"小于等于 le 边界的观测数",暴露为 xxx_bucket{le="0.5"} 序列。本文讲清桶的累积语义、histogram_quantile 计算原理与桶边界设计方法。

Prometheus 规则(Rule)分录制规则与告警规则两种:录制规则预计算重查询生成新指标,告警规则按表达式触发告警送 Alertmanager。本文讲解规则文件写法、评估机制与两类规则的选用。

Target 是 Prometheus 定时抓取的指标端点(IP:端口+路径),来自 static_configs 或服务发现,可在 Targets 页查看健康状态。本文讲清 Target 与 Job 的关系、up 指标与常见异常状态。

job 标签来自 scrape_config 的 job_name,标识一组同类抓取目标(如所有 node exporter),与 instance 标签一起构成 Prometheus 最基本的两个维度。

Prometheus 告警生命周期:Inactive(未触发)→ Pending(表达式为真但未满足 for 时长)→ Firing(触发,送 Alertmanager)→ 恢复 Resolved。

Counter 只增不减(重启归零),记录累计量如请求总数;Gauge 可增可减,记录瞬时值如内存占用。查询方式也因此不同:Counter 用 rate() 看速率,Gauge 直接看值。一文讲清选型。

Fluentd 给日志添加字段的三种方式:record_transformer 插件加静态字段或主机名、rewrite_tag_filter 改写 tag 路由、以及 filter 中条件添加。本文给出完整配置示例。

Filebeat 支持多配置文件:--config 指定主文件,用 filebeat.config.inputs / modules 的 glob 加载目录下的多个片段,或用 -c 与 --path.config 组合。

可以——Fluentd 配置中用 "#{ENV['VAR_NAME']}" 内嵌 Ruby 表达式引用环境变量。本文给出语法示例、常见用途(密钥、地址、环境区分)与容器部署中的配合方式。

Elasticsearch 动态映射默认把字符串同时建成 text+keyword 双字段。

Fluentd 没有 if-else 语法,条件逻辑通过 rewrite_tag_filter 按字段值改写 tag 分流,或用 grep 过滤器按正则筛选,也可用 record_transformer 的 Ruby 表达式做条件赋…
![Elasticsearch 报 "No handler for type [keyword] declared on field" 错误怎么办? cover](/learn/images/learn-covers/log-monitoring.jpg)
该错误表示 ES 版本不认识 keyword 类型——keyword 是 ES 5.x 引入的,旧版本用 string + not_analyzed。升级集群或改写 mapping 即可解决。本文给出两种修法与版本对照。