Skip to main content

Observability FAQ

  • 基础设施 - Operational
  • 数据源
  • 业务

概念

  • 时间分桶聚合 / time bucketing / time-bin aggregation
    • histogram(cast(__TIMESTAMP__...), interval ...) GROUP BY time
  • rate normalization / 按桶宽归一化
    • count(*) / bucket_minutes
  • gap
    • gap filling:时间序列补洞 / 补桶
    • fill mode:填充模式
    • missing data handling:缺失点处理
    • NULL:缺失 bucket 保持空洞;适合 latency percentile、错误率这类不想伪造数据的面板。
    • 0:缺失 bucket 补 0;适合 request count / RPM / error count,但会掩盖数据源断采。
    • previous:用上一个值补;适合 gauge/state,比如 circuit breaker state、pod count、配置状态,不适合 RPM/error count。
    • 不填:通常等价于不做 gap fill,由 datasource/Grafana 默认处理。
    • previous -> forward fill / LOCF(Last Observation Carried Forward,沿用上一个值)
  • null-unsafe optional dimension filter
    • 筛选的时候需要考虑空值、ALL

数据规模

规模量级
小规模< GB/天
中规模GB/天 < TB/天
大规模TB/天, PB/天

长期存储

  • 30 天 - 常规,符合一些政策合规
  • 90 天 - 中长期分析、计量、对账
  • 180 天 - 长期趋势分析
    • 建议下采样
  • 通常做下采样

采集间隔

intervalfor
1s ~ 5s高频调试、压测、短期 profiling;成本高,不适合作为全局默认
10s较敏感的服务级 SLI / SLO、核心网关、低延迟告警
15sPrometheus 常见默认/标准间隔,适合大多数服务指标
30s普通业务服务、成本和精度折中
60s基础设施、低频变化指标、成本敏感场景
5m云账单、容量、资产、配额等慢变化指标
15m+成本、用量、报表类离线指标
  • scrape_interval:采集目标指标的间隔,越短时序点越多,存储和查询成本越高。
  • evaluation_interval:Prometheus rule / alert 评估间隔,通常等于或略大于 scrape_interval
  • Dashboard 查询的 step 通常不应小于采集间隔;长时间范围应自动放大 step 或使用 recording rule / downsample。
  • 告警窗口应至少覆盖多个采样点,例如 rate(x[5m]) 配合 15s30s 采集更稳定。

fluent vs filebeat

Grafana vs Kibana

常用 label

Prometheus scraper

labelfor
job抓取任务名,通常对应 scrape config / ServiceMonitor 名称
instance抓取目标实例,通常是 host:port
scrape_job部分系统额外保留的抓取任务标签,避免和业务 job 冲突
__name__指标名称,PromQL 内部 label,例如 http_requests_total
endpointKubernetes Service 端口名或 scrape endpoint
service服务名,常用于关联业务服务或 K8s Service
namespaceKubernetes namespace
podKubernetes Pod 名称
container容器名称

Kubernetes

labelfor
cluster集群名,多集群监控中常用
namespace命名空间
nodeKubernetes Node 名称
podPod 名称
container容器名称
deploymentDeployment 名称
statefulsetStatefulSet 名称
daemonsetDaemonSet 名称
replicasetReplicaSet 名称
job_nameKubernetes Job 名称;常避免和 Prometheus job 混淆
cronjobCronJob 名称
serviceKubernetes Service 名称
ingressIngress 名称
persistentvolumeclaimPVC 名称
resource资源类型,例如 cpumemoryephemeral_storage
unit单位,例如 corebyte

node_exporter

labelfor
instance节点 exporter 地址,通常是 node:9100
jobnode_exporter 抓取任务名
device磁盘、网卡、块设备名称,例如 sdaeth0
mountpoint文件系统挂载点,例如 //data
fstype文件系统类型,例如 ext4xfstmpfs
cpuCPU 核编号
modeCPU 模式,例如 idleusersystemiowait
interface网络接口名,部分指标使用 device 表示网卡
address网络地址或监听地址,取决于具体 collector

HTTP / API

labelfor
methodHTTP method,例如 GETPOST
route低基数路由模板,例如 /api/users/:id;优先于原始 path
path原始请求路径,可能高基数,metric 中慎用
statusHTTP 状态码,例如 200500
status_codeHTTP 状态码,OpenTelemetry/部分 SDK 常用
handler处理器名称或框架路由 handler
host请求 Host
schemehttp / https
protocol协议版本,例如 HTTP/1.1HTTP/2grpc

RPC / gRPC

labelfor
rpc_systemRPC 系统,例如 grpcconnect_rpc
rpc_serviceRPC service 名称
rpc_methodRPC method 名称
grpc_codegRPC 状态码,例如 OKUnavailable
peer_service对端服务名,常用于依赖调用分析
client调用方服务或客户端标识
server被调用方服务或服务端标识

OpenTelemetry resource

labelfor
service.name服务名,OTel 资源属性核心字段
service.namespace服务命名空间
service.instance.id服务实例 ID;可能较高基数
service.version服务版本
deployment.environment部署环境,例如 devstagingprod
telemetry.sdk.languageSDK 语言,例如 gojavapython
telemetry.sdk.nameSDK 名称
telemetry.sdk.versionSDK 版本

Trace / Log correlation

labelfor
trace_idTrace ID;日志里常用,metric label 中慎用
span_idSpan ID;日志里常用,metric label 中慎用
severity日志级别,例如 infowarnerror
level日志级别,常见于日志系统
loggerlogger 名称
source日志来源,例如 stdoutstderr、文件路径
filename源文件或日志文件名

Database / Queue

labelfor
db_system数据库类型,例如 postgresqlmysqlredis
db_name数据库名
db_operation操作类型,例如 SELECTINSERTGET
db_table表名;分表场景可能高基数
queue队列名
topic消息 topic
partition分区编号
consumer_group消费组

Cloud / Region

labelfor
cloud.provider云厂商,例如 awsgcpazure
cloud.region云区域,例如 us-east-1asia-east1
cloud.availability_zone可用区
region区域,非 OTel 系统常用简写
zone可用区,非 OTel 系统常用简写
account_id云账号 ID;多账号成本/监控常用
project_idGCP project 或内部项目 ID

Alerting

labelfor
alertname告警规则名称
severity告警等级,例如 criticalwarninginfo
team负责团队
owner负责人或 owner
service影响服务
runbook_urlRunbook 链接,通常作为 annotation 更常见
dashboard_urlDashboard 链接,通常作为 annotation 更常见
tip

Prometheus label 是高基数字段时会显著增加时序数量;避免把 user_idrequest_idtrace_id、原始 path 这类高基数字段作为 metric label。HTTP 指标优先使用路由模板 route,不要直接使用完整 URL。