如何在微服务架构中使用 Prometheus 进行监控?
Prometheus 在微服务架构中的监控实践:服务网格监控(Istio/Linkerd):利用 Sidecar 代理收集指标监控服务间调用关系追踪请求链路配置示例:scrape_configs: - job_name: 'istio-pilot' kubernetes_sd_configs: - role: endpoints namespaces: names: [istio-system] relabel_configs: - source_labels: [__meta_kubernetes_service_name] action: keep regex: istio-pilot分布式追踪集成:使用 OpenTelemetry 收集指标与 Jaeger/Zipkin 集成关联追踪和监控数据服务依赖关系监控:# 服务间调用延迟histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, source, target))# 服务错误率sum(rate(http_requests_total{status=~"5.."}[5m])) by (service)/ sum(rate(http_requests_total[5m])) by (service)金丝雀发布监控:使用标签区分版本对比新旧版本性能自动回滚告警配置示例:# 使用版本标签scrape_configs: - job_name: 'api' kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_label_version] target_label: versionSLA/SLO 监控:# 错误率 SLOsum(rate(http_requests_total{status=~"5.."}[30d])) by (service)/ sum(rate(http_requests_total[30d])) by (service) < 0.01# 延迟 SLOhistogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[30d])) by (le, service)) < 0.5最佳实践:统一命名规范:使用标准化的指标名称保持标签一致性文档化指标含义服务级别指标:RED 方法:Rate(请求率)、Errors(错误率)、Duration(延迟)USE 方法:Utilization(利用率)、Saturation(饱和度)、Errors(错误)自动化监控:通过注解自动发现服务使用 Operator 自动配置基础设施即代码告警策略:分级告警(P0/P1/P2/P3)告警抑制和聚合值班轮换和升级策略