微服务性能优化:可观测性体系建设(6)

可观测性体系建设——给系统装上体检仪、行车记录仪和追踪器


文章目录

  • 可观测性体系建设——给系统装上体检仪、行车记录仪和追踪器
    • 一、指标埋点:给系统做全身体检
      • 1. 指标四象限法则
    • 二、日志管理:给系统安装行车记录仪
      • 1. 日志分级存储方案
    • 三、全链路追踪:给请求发放快递单号
      • 1. 追踪采样策略
      • 2. 跨服务追踪
    • 四、智能告警:给机房装上烟雾报警器
      • 1. 异常检测算法
      • 2. 告警分级策略
    • 五、实战案例:智慧城市交通系统的启示
    • 系统可观测三阶段
    • 下期预告


医院体检中心的智能大屏实时滚动着各项健康指标,高速公路上的摄像头记录着每辆车的行驶轨迹,快递包裹上的条形码随时可查物流状态。建设可观测性体系就是给系统同时配备这三类工具,让我们既能看实时状态,又能查历史记录,还能追踪问题根源。


一、指标埋点:给系统做全身体检

1. 指标四象限法则

就像体检分为血常规、心电图、B超等不同科室,我们按四个维度埋点:

// 业务指标:订单创建成功率(类似血压指标)
Counter orderSuccessCounter = Counter.builder("order.create.success")
    .description("成功创建订单数量")
    .tag("channel", "app") // 按渠道打标签
    .register(meterRegistry);

// 系统指标:CPU使用率(类似体温)
Gauge cpuUsageGauge = Gauge.builder("system.cpu.usage", 
        () -> ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage())
    .register(meterRegistry);

// 应用指标:JVM内存(类似肝功能)
Map<String, Double> memoryMetrics = new HashMap<>();
memoryMetrics.put("jvm.memory.used", 
    ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed() / 1024.0 / 1024);
Gauge.builder("jvm.memory", () -> memoryMetrics.get("jvm.memory.used"))
    .baseUnit("MB")
    .register(meterRegistry);

// 自定义指标:缓存命中率(类似骨密度检测)
MeterRegistry.cache("order_cache")
    .tag("type", "local")
    .hits(1200)
    .misses(300)
    .build();
<

你可能感兴趣的:(#,微服务,微服务,性能优化,架构)