📘 .NET 日志 & 全链路监控
实战·30章
🗂️ 共
30
章节
第 01 章
日志系统概述
基础
为什么需要日志?日志级别 Trace/Debug/Info/Warn/Error/Fatal,框架选型 NLog/Serilog/Log4Net
第 02 章
NLog 入门
入门
NuGet安装,配置文件详解 targets/rules,第一个控制台日志输出
第 03 章
NLog 进阶
进阶
结构化日志,布局渲染器,异步日志,日志归档与滚动策略
第 04 章
NLog 实战
ASP.NET Core
集成NLog,依赖注入配置,请求日志中间件
第 05 章
Serilog 入门
入门
NuGet安装,LoggerConfiguration,Sinks概念,输出到控制台和文件
第 06 章
Serilog 进阶
结构化
结构化数据与Destructuring,Enrichers,appsettings.json集成
第 07 章
Serilog 实战
ASP.NET Core
集成Serilog.AspNetCore,请求日志与异常日志
第 08 章
日志最佳实践
规范
记录什么/不该记录,敏感信息脱敏,日志性能优化
第 09 章
集中式日志管理
ELK/EFK
为什么集中式?ELK/EFK架构,Docker搭建ELK
第 10 章
Serilog + Elasticsearch
检索
写入Elasticsearch,Kibana查看日志,KQL查询入门
第 11 章
日志告警与监控
告警
基于日志告警策略,ElastAlert/Kibana Alerting,监控大盘设计
第 12 章
全链路监控概述
概念
什么是全链路监控?Trace/Span/Context,OpenTelemetry标准
第 13 章
OpenTelemetry 入门
架构
API/SDK/Collector,安装OpenTelemetry NuGet包
第 14 章
分布式上下文传播
W3C
W3C TraceContext,Baggage传播,HTTP/gRPC传递TraceId
第 15 章
OpenTelemetry 手动埋点
Span
创建Span,属性与事件,Span嵌套与父子关系
第 16 章
OpenTelemetry 自动埋点
Instrumentation
使用Instrumentation库,自动追踪HTTP/数据库/消息队列
第 17 章
OpenTelemetry + Jaeger
Jaeger
配置OTLP Exporter,Docker启动Jaeger,UI查看Trace
第 18 章
OpenTelemetry + Zipkin
Zipkin
配置Zipkin Exporter,Zipkin UI,对比Jaeger与Zipkin
第 19 章
OpenTelemetry Collector
Collector
Receiver/Processor/Exporter,部署Collector,批处理与过滤
第 20 章
.NET Activity API
Activity
System.Diagnostics.Activity,ActivitySource/Listener,与OpenTelemetry关系
第 21 章
自定义 Instrumentation
埋点
创建自定义ActivitySource,业务代码埋点,第三方库集成
第 22 章
数据库追踪
EF Core / ADO.NET
追踪EF Core查询,ADO.NET/SqlClient,SQL语句与执行时间
第 23 章
消息队列追踪
RabbitMQ / Kafka
生产者与消费者链路串联,消息上下文注入
第 24 章
HTTP 客户端追踪
HttpClient
追踪HttpClient请求,注入TraceId,下游服务解析
第 25 章
日志与Trace关联
关联
日志输出TraceId/SpanId,从日志跳转到Trace,从Trace查看日志
第 26 章
监控指标 Metrics
Prometheus
OpenTelemetry Metrics,Counter/Histogram/Gauge,Prometheus Exporter
第 27 章
Prometheus + Grafana
大盘
搭建Prometheus,配置Grafana数据源,创建监控大盘,告警规则
第 28 章
健康检查与探针
K8s
ASP.NET Core健康检查中间件,自定义检查,Kubernetes存活/就绪探针
第 29 章
实战案例一
三合一
微服务日志+全链路监控整合,3个微服务Demo,日志+Trace+Metrics
第 30 章
实战案例二
性能优化
通过Trace定位慢调用,日志分析错误根因,Metrics发现资源瓶颈