版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章:系统监控与可观测性洞悉系统运行的脉搏目录01.可观测性:不止于监控02.三大支柱:日志、指标与追踪03.实战案例:构建可观测性系统04.常见问题与故障排查05.总结与课后任务01.可观测性:不止于监控重新审视监控,建立全新认知什么是可观测性?监控(Monitoring)“白盒”思维,基于已知假设主动告警,回答“是否正常?”。例如:CPU使用率是否超过80%?可观测性(Observability)“黑盒”思维,通过数据反推内部状态,回答“发生了什么?为什么?”。例如:为什么用户支付失败?核心目标让系统的内部状态可被外部数据推断。监控vs可观测性:核心差异对比项监控(Monitoring)可观测性(Observability)思维模式白盒,基于已知黑盒,探索未知核心问题是否正常?(Isitworking?)发生了什么?为什么?(What'swrong?Why?)数据类型主要是指标(Metrics)指标、日志、追踪三位一体目标告警、通知根因分析、故障排查场景已知故障模式未知故障模式02.三大支柱:日志、指标与追踪支柱一:日志(Logs)-系统的“黑匣子”定义对离散事件的记录,包含时间戳、事件描述和上下文。作用用于事后复盘和问题定位,是故障排查的“第一现场”。最佳实践结构化:使用JSON格式,便于机器解析。含上下文:如trace_id,user_id等。事件驱动:使用可枚举事件名。示例:结构化日志{"timestamp":"2024-05-20T12:00:00Z","level":"ERROR","service":"payment-service","trace_id":"abc123","event":"cess.failed","error":"Insufficientfunds"}支柱二:指标(Metrics)-系统的“体检表”定义可聚合的、数值化的时间序列数据。作用用于监控系统宏观状态、趋势分析和设置告警。常见类型Counter:只增不减,如`http_requests_total`Gauge:可增可减,如`cpu_usage_percent`Histogram:统计分布,如请求延迟分布指标趋势监控示例支柱三:追踪(Traces)-系统的“导航仪”定义记录一个请求在分布式系统中的完整调用链路。核心概念TraceID全局唯一的请求ID,贯穿整个调用链路。SpanID链路中的每个操作步骤,包含名称、时间、标签等。作用用于性能瓶颈分析和分布式系统问题定位。分布式追踪链路示意图三大支柱的联动:从发现到定位可观测性的真正价值在于三大支柱的联动。通过`trace_id`将指标、日志和追踪数据关联起来,形成一个完整的故障排查闭环。1.发现异常2.定位问题3.深入分析03实战案例:构建可观测性系统可观测性技术栈选型环节主流技术说明指标(Metrics)Prometheus+GrafanaPrometheus负责采集和存储,Grafana负责可视化和告警。日志(Logs)ELKStack/LokiELK功能强大,Loki轻量高效,与Prometheus生态集成良好。追踪(Traces)Jaeger/Zipkin均支持OpenTelemetry标准,用于分布式链路追踪。数据采集OpenTelemetry开源的统一可观测性框架,提供API和SDK,支持多语言,实现数据的标准化采集。实战:Python应用接入OpenTelemetry下面我们来看一个具体的例子,如何在一个PythonFlask应用中接入OpenTelemetry,实现对HTTP请求的自动追踪。1.安装依赖pipinstallopentelemetry-apiopentelemetry-sdkopentelemetry-exporter-otlpopentelemetry-instrumentation-flaskopentelemetry-instrumentation-requests2.初始化配置#设置TracerProvidertrace.set_tracer_provider(TracerProvider())#添加OTLPExportertrace.get_tracer_provider().add_span_processor(...)#自动埋点Flask应用FlaskInstrumentor().instrument_app(app)设置TracerProvider初始化TracerProvider,它是OpenTelemetry中负责创建和管理Tracer的核心组件。配置OTLPExporter指定数据导出方式,将采集到的追踪数据发送到Collector或Jaeger等后端服务。应用自动埋点使用Instrumentor对Flask应用进行“instrument”,无需修改业务代码即可自动追踪HTTP请求。这就是OpenTelemetry“自动埋点”的魅力所在。04.常见问题与故障排查常见问题与解决方案Q1:数据量太大,存储成本过高?A:1.对日志进行采样和过滤,保留关键日志。2.使用压缩率高的存储(如Loki)。3.设置数据retentionpolicy自动清理。Q2:指标太多,导致“基数爆炸”?A:1.避免将高基数维度(如user_id)作为标签。2.使用聚合标签或删除不必要标签。3.定期审查和清理无用指标。Q3:链路追踪上下文传递失败?A:1.确保服务正确集成OpenTelemetry。2.异步调用时,手动传递`trace_id`和`span_id`。Q4:告警太多,导致“告警疲劳”?A:1.基于SLO设置告警。2.使用分组和抑制规则。3.对告警分级(P0,P1,P2),优先处理高优问题。通过优化数据策略、指标设计、追踪集成和告警规则,构建高效、可靠的可观测性体系。05.总结与课后任务本章总结可观测性定义理解系统内部状态的能力,通过三大支柱(日志、指标、追踪)实现。三大支柱详解日志是“黑匣子”,指标是“体检表”,追踪是“导航仪”,各司其职,共同保障系统稳定。标准化关键:OpenTelemetry实现可观测性标准化的关键,能够统一数据采集和导出,打破工具链壁垒。最终目标实现告警降噪与快速排障,提升系统可靠性与运维效率。课后实操任务:为你的Flask应用添加可观测性任务要求创建一个简单的Flask应用(或使用你已有的项目)。接入OpenTelemetry,实现对HTTP请求的自动追踪。使用Prometheus客户端库,自定义一个业务指标(如`user_registrations_total`)。配置结构化日志,确保每条日志都包含`trace_id`。使用DockerCompose启动Prometheus、Grafana和Jaeger。在Grafana中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 喀什地区疏勒县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 海南藏族自治州同德县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 昌都地区八宿县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 阿坝藏族羌族自治州红原县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 晋城市泽州县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 攀枝花市仁和区2025-2026学年第二学期五年级语文期中考试卷(部编版含答案)
- 福州市晋安区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 梅州市兴宁市2025-2026学年第二学期五年级语文第五单元测试卷(部编版含答案)
- 乌兰察布盟卓资县2025-2026学年第二学期四年级语文第六单元测试卷(部编版含答案)
- 七夕营销策划方案
- NCCN临床实践指南:头颈部肿瘤(2026.V1)解读课件
- 2026年安全员之C证(专职安全员)考试题库500道附参考答案【完整版】
- T CWEA水利水电工程钢筋机械连接施工规范
- 《用事实说话-透明化沟通的8项原则》读书笔记
- 《海洋工程设计基础》课件-第二章 海洋平台载荷
- (2025年)细选事业单位公共科目综合基础知识(管理岗)考试题库及答案
- 我国城市流浪犬猫安置的现状与分析
- 停业损失补偿协议书
- 桥梁结构健康监测技术研究
- 2025浙江单招试卷真题及答案
- 《头戴式电子助视器》
评论
0/150
提交评论