可观测性体系建设——给系统装上体检仪、行车记录仪和追踪器
文章目录
医院体检中心的智能大屏实时滚动着各项健康指标,高速公路上的摄像头记录着每辆车的行驶轨迹,快递包裹上的条形码随时可查物流状态。建设可观测性体系就是给系统同时配备这三类工具,让我们既能看实时状态,又能查历史记录,还能追踪问题根源。
一、指标埋点:给系统做全身体检
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();
<