{"id":3432,"date":"2025-03-22T23:31:28","date_gmt":"2025-03-22T15:31:28","guid":{"rendered":"http:\/\/viplao.com\/?p=3432"},"modified":"2025-03-22T23:31:29","modified_gmt":"2025-03-22T15:31:29","slug":"%e7%b3%bb%e7%bb%9f%e7%a8%b3%e5%ae%9a%e6%80%a7%e5%bb%ba%e8%ae%be%ef%bc%8812%ef%bc%89-%e7%ba%bf%e4%b8%8a%e7%9b%91%e6%8e%a7%e6%8c%87%e6%a0%87%e5%85%a8%e8%a7%a3%e7%ba%bf%e4%b8%8a%e9%97%ae","status":"publish","type":"post","link":"http:\/\/viplao.com\/index.php\/2025\/03\/22\/%e7%b3%bb%e7%bb%9f%e7%a8%b3%e5%ae%9a%e6%80%a7%e5%bb%ba%e8%ae%be%ef%bc%8812%ef%bc%89-%e7%ba%bf%e4%b8%8a%e7%9b%91%e6%8e%a7%e6%8c%87%e6%a0%87%e5%85%a8%e8%a7%a3%e7%ba%bf%e4%b8%8a%e9%97%ae\/","title":{"rendered":"\u7cfb\u7edf\u7a33\u5b9a\u6027\u5efa\u8bbe\uff0812\uff09 \u2013 \u7ebf\u4e0a\u76d1\u63a7\u6307\u6807\u5168\u89e3(\u7ebf\u4e0a\u95ee\u9898\u6392\u67e5\u6307\u5357)"},"content":{"rendered":"\n<p>\u524d\u8a00<br>\u672c\u6587\u5c06\u4ece \u57fa\u7840\u8bbe\u65bd\uff08CPU\u3001\u5185\u5b58\u3001\u7f51\u7edc\u3001\u78c1\u76d8\uff09\u3001 \u670d\u52a1\u5185\u90e8\uff08JVM\u3001\u7ebf\u7a0b\u6c60\u3001\u8fde\u63a5\u6c60\u7b49\uff09\u3001\u4e2d\u95f4\u4ef6\uff08MySQL\u3001Redis\u3001MQ\u7b49\uff09\u3001\u670d\u52a1\u6cbb\u7406\uff08\u6ce8\u518c\u4e2d\u5fc3\u3001\u7194\u65ad\u3001\u5206\u5e03\u5f0f\u4e8b\u52a1\u3001\u670d\u52a1\u95f4\u8c03\u7528\uff09\u3001\u4e1a\u52a1\u6307\u6807\uff08\u652f\u4ed8\u6210\u529f\u7387\u3001\u8f6c\u5316\u6f0f\u6597\uff09\u3001\u7528\u6237\u4f53\u9a8c\uff08\u9875\u9762\u6027\u80fd\u3001\u7528\u6237\u53cd\u9988\uff09 \u7b49\u5168\u7ef4\u5ea6\u51fa\u53d1\uff0c\u8bb2\u89e3\u7ebf\u4e0a\u5e94\u7528\u7684\u5168\u65b9\u9762\u76d1\u63a7\u53c2\u6570\uff0c\u5927\u5bb6\u8bbe\u8ba1\u7ebf\u4e0a\u670d\u52a1\u76d1\u63a7\u7684\u65f6\u5019\u53ef\u4ee5\u501f\u9274\u8fd9\u4e9b\u53c2\u6570\u548c\u601d\u8def\u3002\u7ebf\u4e0a\u95ee\u9898\u6392\u67e5\u4e5f\u53ef\u4ece\u8fd9\u4e9b\u89d2\u5ea6\u51fa\u53d1\u3002\u638c\u63e1\u8fd9\u4e9b\u5c06\u5168\u65b9\u9762\u63d0\u5347\u4f60\u5bf9\u5fae\u670d\u52a1\u6280\u672f\u7684\u7406\u89e3\u4ee5\u53ca\u7ebf\u4e0a\u95ee\u9898\u7684\u6392\u67e5\u5b9a\u4f4d\u548c\u5206\u6790\u80fd\u529b\u3002<\/p>\n\n\n\n<p>\u4e00\u3001\u4e3b\u673a\u8d44\u6e90\u76d1\u63a7\uff08\u6df1\u5ea6\u5f71\u54cd\u4e1a\u52a1\u7684\u5e95\u5c42\u6307\u6807\uff09<\/p>\n\n\n\n<ol>\n<li>CPU \u76f8\u5173<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>CPU \u4f7f\u7528\u7387\uff08%\uff09 \u5355\u6838\u6253\u6ee1\u5bfc\u81f4\u7ebf\u7a0b\u963b\u585e\uff0c\u8bf7\u6c42\u6392\u961f\u8d85\u65f6\u3002 node_cpu_seconds_total\uff08\u533a\u5206user\u3001system\u3001iowait\u7b49\u6a21\u5f0f\uff09 \u5355\u6838 &gt; 90% \u6301\u7eed 5 \u5206\u949f<br>CPU \u7528\u6237\u6001 \/ \u5185\u6838\u6001\u5360\u6bd4 \u7528\u6237\u6001\u8fc7\u9ad8\uff1a\u4e1a\u52a1\u4ee3\u7801\u5b58\u5728\u5bc6\u96c6\u8ba1\u7b97\uff1b\u5185\u6838\u6001\u8fc7\u9ad8\uff1a\u7cfb\u7edf\u8c03\u7528\u9891\u7e41\uff08\u5982\u7f51\u7edc\u3001IO \u64cd\u4f5c\uff09\u3002 sum(rate(node_cpu_seconds_total{mode=\u201cuser\u201d}[5m])) by (instance) \u7528\u6237\u6001 &gt; 70% \u6216\u5185\u6838\u6001 &gt; 30% \u6301\u7eed 5 \u5206\u949f<br>CPU \u8f6f\u4e2d\u65ad\uff08softirq\uff09 \u7f51\u7edc\u5305\u5904\u7406\uff08\u5982\u9ad8\u5e76\u53d1 HTTP \u8bf7\u6c42\uff09\u5bfc\u81f4\u5355\u6838\u8f6f\u4e2d\u65ad\u8fc7\u9ad8\uff0cRT \u7a81\u589e\u3002 node_softirq_seconds_total{type=\u201cNET_RX\u201d}\uff08\u63a5\u6536\u7f51\u7edc\u5305\u8f6f\u4e2d\u65ad\u8017\u65f6\uff09 \u5355\u6838 NET_RX \u8017\u65f6 &gt; 50ms \/ \u79d2<br>CPU Steal Time \u4e91\u670d\u52a1\u5668\u88ab\u5bbf\u4e3b\u673a\u62a2\u5360 CPU \u8d44\u6e90\uff08\u5e38\u89c1\u4e8e\u8d85\u5356\u5b9e\u4f8b\uff09\u3002 node_cpu_seconds_total{mode=\u201csteal\u201d} Steal Time &gt; 20% \u6301\u7eed 10 \u5206\u949f<br>\u4e0a\u4e0b\u6587\u5207\u6362\uff08\u6b21 \/ \u79d2\uff09 \u9ad8\u5e76\u53d1\u5bfc\u81f4\u7ebf\u7a0b\u9891\u7e41\u5207\u6362\uff0cCPU \u6d6a\u8d39\u5728\u8c03\u5ea6\u800c\u975e\u4e1a\u52a1\u5904\u7406\u3002 node_context_switches_total \u5355\u6838 &gt; 15,000 \u6b21 \/ \u79d2<br>CPU \u5355\u6838\u8f6f\u4e2d\u65ad\u5206\u5e03 \u7f51\u7edc\u6536\u5305\u8f6f\u4e2d\u65ad\uff08NET_RX\uff09\u96c6\u4e2d\u5728\u67d0\u6838\uff0c\u5bfc\u81f4\u4e1a\u52a1\u7ebf\u7a0b\u9965\u997f\u3002 node_softirq_seconds_total{type=\u201cNET_RX\u201d} by (cpu) \u5355\u6838\u8f6f\u4e2d\u65ad\u8017\u65f6 &gt; 50ms \/ \u79d2<\/li>\n\n\n\n<li>\u5185\u5b58\u76f8\u5173<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u5185\u5b58\u4f7f\u7528\u7387\uff08%\uff09 OOM \u5bfc\u81f4\u8fdb\u7a0b\u88ab Kill\uff0c\u670d\u52a1\u4e0d\u53ef\u7528\u3002 node_memory_MemTotal_bytes &#8211; node_memory_MemAvailable_bytes &gt; 90% \u6301\u7eed 5 \u5206\u949f<br>Swap \u4f7f\u7528\u91cf\uff08MB\uff09 \u7269\u7406\u5185\u5b58\u4e0d\u8db3\u89e6\u53d1 Swap\uff0c\u670d\u52a1\u54cd\u5e94\u5ef6\u8fdf\u98d9\u5347\u3002 node_memory_SwapTotal_bytes &#8211; node_memory_SwapFree_bytes &gt; 0\uff08\u76f4\u63a5\u544a\u8b66\uff0c\u7981\u6b62\u4f7f\u7528 Swap\uff09<br>Page Faults\uff08\u6b21 \/ \u79d2\uff09 \u9891\u7e41\u7f3a\u9875\u4e2d\u65ad\uff08\u5982 JVM \u672a\u9884\u70ed\u65f6\u5927\u91cf\u8bf7\u6c42\u6d8c\u5165\uff09\u3002 node_vmstat_pgfault\uff08\u6b21 \/ \u79d2\uff09 &gt; 1000 \u6b21 \/ \u79d2 \u6301\u7eed 2 \u5206\u949f<br>\u5185\u5b58\u6cc4\u6f0f\uff08\u6301\u7eed\u589e\u957f\uff09 \u672a\u91ca\u653e\u5806\u5916\u5185\u5b58\uff08\u5982 Netty \u7684 Direct Buffer\uff09\u3002 process_resident_memory_bytes\uff08\u8fdb\u7a0b RSS\uff09 \u6301\u7eed\u589e\u957f\u8d85\u8fc7 1 \u5c0f\u65f6\u65e0\u4e0b\u964d\u8d8b\u52bf<\/li>\n\n\n\n<li>\u78c1\u76d8 I\/O<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>I\/O \u7b49\u5f85\u65f6\u95f4\uff08ms\uff09 \u78c1\u76d8\u54cd\u5e94\u6162\u5bfc\u81f4\u6570\u636e\u5e93\u67e5\u8be2\u963b\u585e\u3002 rate(node_disk_io_time_seconds_total[5m]) &gt; 200ms\uff08\u673a\u68b0\u76d8\uff09 \/ &gt; 50ms\uff08SSD\uff09<br>I\/O \u961f\u5217\u6df1\u5ea6 \u9ad8\u5e76\u53d1\u5199\u5165\u5bfc\u81f4\u78c1\u76d8\u961f\u5217\u5806\u79ef\uff08\u5982 Kafka Broker \u65e5\u5fd7\u5199\u5165\uff09\u3002 node_disk_io_weighted_seconds_total &gt; 10\uff08\u6301\u7eed 5 \u5206\u949f\uff09<br>\u78c1\u76d8\u7a7a\u95f4\u4f7f\u7528\u7387\uff08%\uff09 \u65e5\u5fd7\u5199\u6ee1\u5bfc\u81f4\u670d\u52a1\u5d29\u6e83\u3002 (node_filesystem_size_bytes &#8211; node_filesystem_free_bytes) \/ node_filesystem_size_bytes &gt; 85%<br>Inode \u4f7f\u7528\u7387\uff08%\uff09 \u5c0f\u6587\u4ef6\u8fc7\u591a\u5bfc\u81f4\u65e0\u6cd5\u521b\u5efa\u65b0\u6587\u4ef6\uff08\u5982 Docker \u5bb9\u5668\u65e5\u5fd7\uff09\u3002 node_filesystem_files_free \/ node_filesystem_files &gt; 85%<br>\u78c1\u76d8 IOPS \u4e0e\u541e\u5410\u91cf \u5b58\u50a8\u5bc6\u96c6\u578b\u670d\u52a1\uff08\u5982 Elasticsearch\uff09\u56e0\u78c1\u76d8\u6027\u80fd\u4e0d\u8db3\u5bfc\u81f4\u5199\u5165\u963b\u585e\u3002 node_disk_reads_completed_total, node_disk_writes_completed_total IOPS &gt; \u78c1\u76d8\u6807\u79f0\u503c 80%<br>\u4e8c\u3001\u7f51\u7edc\u76d1\u63a7\uff08\u76f4\u63a5\u5f71\u54cd\u670d\u52a1\u901a\u4fe1\u7684\u6307\u6807\uff09<\/li>\n\n\n\n<li>TCP \u534f\u8bae\u5c42<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>TCP \u91cd\u4f20\u7387\uff08%\uff09 \u7f51\u7edc\u4e22\u5305\u5bfc\u81f4 RPC \u8c03\u7528\u8d85\u65f6\uff08\u5982\u8de8\u53ef\u7528\u533a\u8c03\u7528\uff09\u3002 (rate(node_netstat_tcp_retrans_segs[5m]) \/ rate(node_netstat_tcp_out_segs[5m])) * 100 &gt; 1% \u6301\u7eed 5 \u5206\u949f<br>TIME_WAIT \u8fde\u63a5\u6570 \u77ed\u8fde\u63a5\u9891\u7e41\u91ca\u653e\u5bfc\u81f4\u7aef\u53e3\u8017\u5c3d\u3002 node_sockstat_TCP_tw &gt; 30,000\uff08\u6839\u636e\u7cfb\u7edf\u7aef\u53e3\u8303\u56f4\u8c03\u6574\uff09<br>CLOSE_WAIT \u8fde\u63a5\u6570 \u670d\u52a1\u672a\u6b63\u786e\u5173\u95ed\u8fde\u63a5\uff0c\u5bfc\u81f4\u6587\u4ef6\u63cf\u8ff0\u7b26\u8017\u5c3d\u3002 node_sockstat_TCP_close &gt; 500\uff08\u9700\u7acb\u5373\u4eba\u5de5\u4ecb\u5165\uff09<br>TCP \u534a\u8fde\u63a5\u961f\u5217\u6ea2\u51fa SYN Flood \u653b\u51fb\u6216\u7a81\u53d1\u6d41\u91cf\u5bfc\u81f4\u65b0\u8fde\u63a5\u88ab\u4e22\u5f03\u3002 node_netstat_tcp_listen_overflows &gt; 10 \u6b21 \/ \u5206\u949f<br>TCP \u5b64\u513f\u8fde\u63a5\u6570\uff09 \u672a\u5173\u95ed\u7684 TCP \u8fde\u63a5\u5360\u7528\u6587\u4ef6\u63cf\u8ff0\u7b26\uff0c\u5bfc\u81f4\u65b0\u8fde\u63a5\u88ab\u62d2\u3002 node_netstat_tcp_orphans &gt; 1000\uff08\u68c0\u67e5\u8fde\u63a5\u6c60\u6cc4\u6f0f\uff09<\/li>\n\n\n\n<li>\u7f51\u7edc\u8bbe\u5907\u5c42<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u7f51\u5361\u4e22\u5305\u6570 \u5e26\u5bbd\u6253\u6ee1\u6216\u7f13\u51b2\u533a\u4e0d\u8db3\u5bfc\u81f4\u6570\u636e\u5305\u4e22\u5931\u3002 node_network_receive_drop_total\uff08\u63a5\u6536\u4e22\u5305\uff09 &gt; 100 \u6b21 \/ \u5206\u949f<br>\u5e26\u5bbd\u4f7f\u7528\u7387\uff08%\uff09 \u7f51\u7edc\u62e5\u585e\u5bfc\u81f4\u8bf7\u6c42\u5ef6\u8fdf\u589e\u52a0\u3002 (rate(node_network_receive_bytes_total[5m]) * 8) \/ \u7f51\u5361\u5e26\u5bbd\uff08bps\uff09 * 100 &gt; 80% \u6301\u7eed 5 \u5206\u949f<br>DNS \u89e3\u6790\u5ef6\u8fdf\uff08ms\uff09 DNS \u670d\u52a1\u5f02\u5e38\u5bfc\u81f4\u670d\u52a1\u95f4\u8c03\u7528\u5931\u8d25\u3002 dns_lookup_time_seconds{service=\u201corder-service\u201d}\uff08\u5ba2\u6237\u7aef\u57cb\u70b9\uff09 P99 &gt; 200ms<br>\u4e09\u3001JVM \u76d1\u63a7\uff08\u76f4\u63a5\u5f71\u54cd\u670d\u52a1\u7a33\u5b9a\u6027\uff09<\/li>\n\n\n\n<li>\u5185\u5b58\u533a\u57df<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u5806\u5185\u5b58\u4f7f\u7528\u7387\uff08%\uff09 \u5806\u5185\u5b58\u4e0d\u8db3\u89e6\u53d1 Full GC\uff0c\u5bfc\u81f4\u670d\u52a1\u6682\u505c\uff08Stop-The-World\uff09\u3002 jvm_memory_used_bytes{area=\u201cheap\u201d} \/ jvm_memory_max_bytes{area=\u201cheap\u201d} * 100 &gt; 80% \u6301\u7eed 5 \u5206\u949f<br>\u5143\u7a7a\u95f4\u4f7f\u7528\u7387\uff08%\uff09 \u7c7b\u52a0\u8f7d\u8fc7\u591a\u5bfc\u81f4 Metaspace OOM\uff08\u5982\u52a8\u6001\u4ee3\u7406\u7c7b\u672a\u91ca\u653e\uff09\u3002 jvm_memory_used_bytes{area=\u201cnonheap\u201d} \/ jvm_memory_max_bytes{area=\u201cnonheap\u201d} * 100 &gt; 85%<br>\u5806\u5916\u5185\u5b58\uff08Direct Buffer\uff09 Netty \u7b49\u6846\u67b6\u672a\u91ca\u653e Direct Buffer\uff0c\u5bfc\u81f4\u7269\u7406\u5185\u5b58\u8017\u5c3d\u3002 jvm_buffer_memory_used_bytes \u6301\u7eed\u589e\u957f\u8d85\u8fc7 1 \u5c0f\u65f6<br>G1 Mixed GC \u6682\u505c\u65f6\u95f4 Mixed GC \u8017\u65f6\u8fc7\u957f\u5bfc\u81f4\u670d\u52a1\u5361\u987f\uff08\u4f4e\u5ef6\u8fdf\u573a\u666f\u654f\u611f\uff09\u3002 jvm_gc_pause_seconds_sum{gc=\u201cG1 Mixed Generation\u201d} \u5355\u6b21 &gt; 500ms<\/li>\n\n\n\n<li>\u5783\u573e\u56de\u6536\uff08GC\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>Young GC \u9891\u7387\uff08\u6b21 \/ \u5206\u949f\uff09 \u77ed\u751f\u547d\u5468\u671f\u5bf9\u8c61\u8fc7\u591a\uff0c\u5bfc\u81f4 Young \u533a\u9891\u7e41\u56de\u6536\u3002 increase(jvm_gc_pause_seconds_count{gc=\u201cG1 Young Generation\u201d}[5m]) &gt; 50 \u6b21 \/ \u5206\u949f\uff08\u89c6\u5806\u5927\u5c0f\u8c03\u6574\uff09<br>Full GC \u8017\u65f6\uff08\u79d2 \/ \u6b21\uff09 \u8001\u5e74\u4ee3\u5185\u5b58\u4e0d\u8db3\u6216\u5185\u5b58\u6cc4\u6f0f\uff0c\u5f15\u53d1\u957f\u65f6\u95f4\u670d\u52a1\u505c\u987f\u3002 jvm_gc_pause_seconds_sum{gc=\u201cG1 Old Generation\u201d} \u5355\u6b21 &gt; 1 \u79d2 \u6216 \u6bcf\u5206\u949f\u7d2f\u8ba1 &gt; 5 \u79d2<br>GC \u6682\u505c\u603b\u65f6\u95f4\uff08%\uff09 GC \u7ebf\u7a0b\u5360\u7528\u8fc7\u591a CPU\uff0c\u5bfc\u81f4\u4e1a\u52a1\u7ebf\u7a0b\u9965\u997f\u3002 sum(jvm_gc_pause_seconds_sum) \/ (sum(jvm_uptime_seconds) * 1000) * 100 &gt; 10% \u6301\u7eed 10 \u5206\u949f<\/li>\n\n\n\n<li>\u7ebf\u7a0b\u4e0e\u9501<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u6b7b\u9501\u7ebf\u7a0b\u6570 \u7ebf\u7a0b\u7ade\u4e89\u8d44\u6e90\u5bfc\u81f4\u6b7b\u9501\uff0c\u63a5\u53e3\u5b8c\u5168\u65e0\u54cd\u5e94\u3002 jvm_threads_deadlock &gt; 0\uff08\u7acb\u5373\u544a\u8b66\uff09<br>BLOCKED \u7ebf\u7a0b\u6570 \u540c\u6b65\u4ee3\u7801\u5757\u6216\u9501\u7ade\u4e89\u6fc0\u70c8\uff0c\u63a5\u53e3 RT \u98d9\u5347\u3002 jvm_threads_states{state=\u201cBLOCKED\u201d} &gt; 10 \u6301\u7eed 2 \u5206\u949f<br>\u7ebf\u7a0b\u6c60\u961f\u5217\u79ef\u538b\u4efb\u52a1\u6570 \u5f02\u6b65\u4efb\u52a1\u5904\u7406\u80fd\u529b\u4e0d\u8db3\uff0c\u4efb\u52a1\u5806\u79ef\u5bfc\u81f4\u5185\u5b58\u6ea2\u51fa\u3002 executor_queue_size\uff08\u81ea\u5b9a\u4e49\u7ebf\u7a0b\u6c60\u6307\u6807\uff09 &gt; \u961f\u5217\u5bb9\u91cf 80%<br>\u56db\u3001\u7ebf\u7a0b\u6c60\u76d1\u63a7\uff08Web \/ \u5f02\u6b65\u4efb\u52a1 \/ \u8c03\u5ea6\u4efb\u52a1\uff09<\/li>\n\n\n\n<li>Tomcat \u7ebf\u7a0b\u6c60\uff08HTTP \u8bf7\u6c42\u5904\u7406\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u6d3b\u8dc3\u7ebf\u7a0b\u6570 \u7a81\u53d1\u6d41\u91cf\u5bfc\u81f4\u7ebf\u7a0b\u6c60\u6253\u6ee1\uff0c\u65b0\u8bf7\u6c42\u88ab\u62d2\u7edd\u3002 tomcat_threads_active &gt; \u6700\u5927\u7ebf\u7a0b\u6570 80%<br>\u7b49\u5f85\u961f\u5217\u79ef\u538b\u8bf7\u6c42\u6570 \u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\u8bf7\u6c42\u6392\u961f\uff0cRT \u7ebf\u6027\u589e\u957f\u3002 tomcat_servlet_request_seconds_max{uri=\u201c\/api\/order\u201d} &gt; 100\uff08\u961f\u5217\u5bb9\u91cf\u9700\u52a8\u6001\u8c03\u6574\uff09<br>\u8bf7\u6c42\u62d2\u7edd\u6b21\u6570 \u7ebf\u7a0b\u6c60\u548c\u961f\u5217\u5747\u6ee1\uff0c\u89e6\u53d1 Tomcat \u7684 maxConnections \u9650\u5236\u3002 tomcat_servlet_error_total{exception=\u201corg.apache.tomcat.util.threads.ThreadPoolExecutor$RejectPolicy\u201d} &gt; 10 \u6b21 \/ \u5206\u949f<br>\u8bf7\u6c42\u6392\u961f\u65f6\u95f4 \u7ebf\u7a0b\u6c60\u6ee1\u5bfc\u81f4\u8bf7\u6c42\u79ef\u538b\uff0c\u7528\u6237\u611f\u77e5\u5ef6\u8fdf\u3002 tomcat_servlet_request_seconds_max{phase=\u201cqueue\u201d} &gt; 500ms<\/li>\n\n\n\n<li>\u81ea\u5b9a\u4e49\u7ebf\u7a0b\u6c60\u2014\u6838\u5fc3\u76d1\u63a7\u6307\u6807\uff08DynamicTp \u96c6\u6210\uff09<br>\u6307\u6807 \u63cf\u8ff0 \u544a\u8b66\u9608\u503c \u5f71\u54cd\u573a\u666f<br>dynamic.tp.core.pool.size \u5f53\u524d\u6838\u5fc3\u7ebf\u7a0b\u6570\uff08\u968f\u6d41\u91cf\u52a8\u6001\u8c03\u6574\uff09 \u4f4e\u4e8e\u521d\u59cb\u503c 50% \u6216\u9ad8\u4e8e 200% \u7a81\u53d1\u6d41\u91cf\u4e0b\u7ebf\u7a0b\u4e0d\u8db3\u6216\u8fc7\u5ea6\u521b\u5efa<br>dynamic.tp.max.pool.size \u5f53\u524d\u6700\u5927\u7ebf\u7a0b\u6570\uff08\u52a8\u6001\u6269\u5bb9\u4e0a\u9650\uff09 \u6301\u7eed\u63a5\u8fd1\u6700\u5927\u503c\u8d85\u8fc7 10 \u5206\u949f \u7ebf\u7a0b\u6c60\u9891\u7e41\u6269\u5bb9\uff0c\u53ef\u80fd\u4efb\u52a1\u5904\u7406\u903b\u8f91\u5b58\u5728\u6027\u80fd\u95ee\u9898<br>dynamic.tp.queue.capacity \u4efb\u52a1\u961f\u5217\u5bb9\u91cf\uff08\u52a8\u6001\u8c03\u6574\u961f\u5217\u5927\u5c0f\uff09 \u961f\u5217\u4f7f\u7528\u7387 &gt; 80% \u6301\u7eed 5 \u5206\u949f \u4efb\u52a1\u5806\u79ef\u98ce\u9669\uff0c\u9700\u6269\u5bb9\u961f\u5217\u6216\u4f18\u5316\u4efb\u52a1\u5904\u7406\u901f\u5ea6<br>dynamic.tp.active.count \u6d3b\u8dc3\u7ebf\u7a0b\u6570\uff08\u6b63\u5728\u6267\u884c\u4efb\u52a1\u7684\u7ebf\u7a0b\uff09 \u6301\u7eed\u7b49\u4e8e\u6700\u5927\u7ebf\u7a0b\u6570\u8d85\u8fc7 3 \u5206\u949f \u7ebf\u7a0b\u6c60\u6ee1\u8f7d\uff0c\u4efb\u52a1\u5904\u7406\u80fd\u529b\u8fbe\u5230\u6781\u9650<br>dynamic.tp.task.count \u7d2f\u8ba1\u6267\u884c\u4efb\u52a1\u6570\u3002 \u73af\u6bd4\u7a81\u589e &gt; 300%\uff08\u5982\u5927\u4fc3\uff09 \u6d41\u91cf\u6d2a\u5cf0\u9700\u63d0\u524d\u6269\u5bb9<\/li>\n\n\n\n<li>\u81ea\u5b9a\u4e49\u7ebf\u7a0b\u6c60\u2014\u4efb\u52a1\u6267\u884c\u4e0e\u62d2\u7edd\uff08DynamicTp \u96c6\u6210\uff09<br>\u6307\u6807 \u63cf\u8ff0 \u544a\u8b66\u9608\u503c \u5f71\u54cd\u573a\u666f<br>dynamic.tp.reject.count \u4efb\u52a1\u62d2\u7edd\u6b21\u6570\uff08\u89e6\u53d1\u62d2\u7edd\u7b56\u7565\uff09 &gt; 0\uff08\u7acb\u5373\u544a\u8b66\uff09 \u7ebf\u7a0b\u6c60\u548c\u961f\u5217\u5747\u6ee1\uff0c\u4efb\u52a1\u4e22\u5931\u98ce\u9669<br>dynamic.tp.run.timeout \u4efb\u52a1\u6267\u884c\u8d85\u65f6\u6b21\u6570\uff08\u9700\u914d\u7f6e\u4efb\u52a1\u8d85\u65f6\u65f6\u95f4\uff09 \u8d85\u65f6\u7387 &gt; 1% \u6301\u7eed 2 \u5206\u949f \u4e0b\u6e38\u670d\u52a1\u54cd\u5e94\u6162\u6216\u4efb\u52a1\u903b\u8f91\u590d\u6742<br>dynamic.tp.avg.task.time \u4efb\u52a1\u5e73\u5747\u6267\u884c\u8017\u65f6\uff08\u533a\u5206\u4efb\u52a1\u7c7b\u578b\uff09 P99 &gt; \u4efb\u52a1\u8d85\u65f6\u65f6\u95f4\u7684 50% \u4efb\u52a1\u5904\u7406\u6027\u80fd\u4e0b\u964d\uff0c\u53ef\u80fd\u5f15\u53d1\u96ea\u5d29<\/li>\n\n\n\n<li>\u8c03\u5ea6\u4efb\u52a1\u7ebf\u7a0b\u6c60\uff08@Scheduled\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u4efb\u52a1\u6267\u884c\u95f4\u9694\u504f\u79bb\u7387 \u4efb\u52a1\u6267\u884c\u65f6\u95f4\u8fc7\u957f\uff0c\u5bfc\u81f4\u540e\u7eed\u4efb\u52a1\u5ef6\u8fdf\u5806\u79ef\u3002 scheduled_task_delay_seconds\uff08\u8bb0\u5f55\u8ba1\u5212\u65f6\u95f4\u4e0e\u5b9e\u9645\u6267\u884c\u65f6\u95f4\u5dee\uff09 \u5e73\u5747\u504f\u79bb &gt; \u4efb\u52a1\u95f4\u9694 50%<br>5.HTTP \u8bf7\u6c42\u76d1\u63a7\uff08Spring MVC\/WebFlux\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u63a5\u53e3 QPS\uff08\u6309 URI\uff09 \u6d41\u91cf\u7a81\u589e\u5bfc\u81f4\u670d\u52a1\u8fc7\u8f7d\uff0c\u9700\u52a8\u6001\u6269\u5bb9\u3002 http_server_requests_seconds_count{uri=\u201c\/api\/order\u201d} \u73af\u6bd4\u6628\u65e5\u540c\u4e00\u65f6\u6bb5\u589e\u957f &gt; 300%<br>\u63a5\u53e3 RT\uff08P99\u3001P95\u3001P90\uff09 \u6162\u67e5\u8be2\u6216\u590d\u6742\u903b\u8f91\u5bfc\u81f4\u7528\u6237\u4f53\u9a8c\u4e0b\u964d\u3002 http_server_requests_seconds{uri=\u201c\/api\/order\u201d, method=\u201cPOST\u201d} P99 &gt; 2 \u79d2<br>\u5f02\u5e38\u54cd\u5e94\u6bd4\u4f8b\uff085xx\uff09 \u4ee3\u7801 Bug \u6216\u4f9d\u8d56\u670d\u52a1\u6545\u969c\uff0c\u89e6\u53d1\u7194\u65ad\u964d\u7ea7\u3002 sum(increase(http_server_requests_seconds_count{status=~\u201c5\u2026\u201d}[5m])) \/ sum(increase(http_server_requests_seconds_count[5m])) &gt; 5%<br>\u4e94\u3001\u6570\u636e\u5e93\u4e0e\u4e2d\u95f4\u4ef6\u76d1\u63a7<br>1.\u6570\u636e\u5e93\u76d1\u63a7\uff08MySQL\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u8fde\u63a5\u6570\u4f7f\u7528\u7387\uff08%\uff09 \u8fde\u63a5\u6c60\u8017\u5c3d\u5bfc\u81f4\u8bf7\u6c42\u963b\u585e\uff0c\u670d\u52a1\u4e0d\u53ef\u7528\u3002 mysql_global_status_threads_connected \/ mysql_global_variables_max_connections * 100 &gt; 80%<br>\u8fde\u63a5\u6570\u4f7f\u7528\u7387\uff08%\uff09 \u7d22\u5f15\u7f3a\u5931\u6216 SQL \u672a\u4f18\u5316\u5bfc\u81f4\u63a5\u53e3\u8d85\u65f6\u3002 increase(mysql_global_status_slow_queries[5m]) &gt; 10 \u6b21 \/ \u5206\u949f<br>InnoDB \u884c\u9501\u7b49\u5f85\u65f6\u95f4\uff08ms\uff09 \u6b7b\u9501\u6216\u957f\u4e8b\u52a1\u5bfc\u81f4\u4e1a\u52a1\u63d0\u4ea4\u963b\u585e\u3002 mysql_innodb_row_lock_time_avg P99 &gt; 500ms<br>\u4e3b\u4ece\u5ef6\u8fdf\uff08\u79d2\uff09 \u4ece\u5e93\u5ef6\u8fdf\u8fc7\u9ad8\u5bfc\u81f4\u8bfb\u53d6\u810f\u6570\u636e\u3002 mysql_slave_status_seconds_behind_master &gt; 30 \u79d2<br>Buffer Pool \u547d\u4e2d\u7387\uff08%\uff09 \u9891\u7e41\u78c1\u76d8\u8bfb\u53d6\u5bfc\u81f4\u67e5\u8be2\u6027\u80fd\u4e0b\u964d\u3002 (1 &#8211; mysql_innodb_buffer_pool_reads \/ mysql_innodb_buffer_pool_read_requests) * 100 &lt; 95%<br>\u5de5\u5177\u96c6\u6210\uff1a<\/li>\n<\/ol>\n\n\n\n<p>Prometheus Exporter\uff1a\u4f7f\u7528 mysqld_exporter \u91c7\u96c6\u6307\u6807\u3002<br>SQL \u4f18\u5316\u5efa\u8bae\uff1a\u7ed3\u5408 pt-query-digest \u5206\u6790\u6162\u65e5\u5fd7\u3002<br>2.\u7f13\u5b58\u76d1\u63a7\uff08Redis\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u5185\u5b58\u4f7f\u7528\u7387\uff08%\uff09 \u5185\u5b58\u4e0d\u8db3\u89e6\u53d1\u9010\u51fa\u7b56\u7565\uff0c\u7f13\u5b58\u51fb\u7a7f\u5bfc\u81f4\u6570\u636e\u5e93\u538b\u529b\u6fc0\u589e\u3002 redis_memory_used_bytes \/ redis_memory_max_bytes * 100 &gt; 85%<br>\u7f13\u5b58\u547d\u4e2d\u7387\uff08%\uff09 \u70ed\u70b9 Key \u5931\u6548\u6216\u7f13\u5b58\u7a7f\u900f\uff0c\u5bfc\u81f4\u6570\u636e\u5e93\u8d1f\u8f7d\u5347\u9ad8\u3002 (redis_keyspace_hits_total \/ (redis_keyspace_hits_total + redis_keyspace_misses_total)) * 100 &lt; 90% \u8fde\u63a5\u6570\u4f7f\u7528\u7387\uff08%\uff09 \u5ba2\u6237\u7aef\u8fde\u63a5\u6c60\u6ee1\uff0c\u65e0\u6cd5\u6267\u884c\u65b0\u547d\u4ee4\u3002 redis_connected_clients \/ redis_maxclients * 100 &gt; 75%<br>\u6301\u4e45\u5316\u5ef6\u8fdf\uff08RDB\/AOF\uff09 \u6570\u636e\u4e22\u5931\u98ce\u9669\uff08\u5982\u4e3b\u4ece\u5207\u6362\u540e\u672a\u6301\u4e45\u5316\uff09\u3002 redis_rdb_last_bgsave_duration_sec\uff08RDB \u8017\u65f6\uff09\u3001redis_aof_last_rewrite_duration_sec\uff08AOF \u8017\u65f6\uff09 &gt; 60 \u79d2<br>\u5927 Key \u6570\u91cf \u5355 Key \u8fc7\u5927\u5bfc\u81f4\u7f51\u7edc\u963b\u585e\u6216\u547d\u4ee4\u6267\u884c\u8d85\u65f6\u3002 \u5b9a\u671f\u626b\u63cf redis-cli &#8211;bigkeys \u5b58\u5728 &gt; 1MB \u7684 Key<br>\u6301\u4e45\u5316 RDB \u5b50\u8fdb\u7a0b\u963b\u585e\u65f6\u95f4 \u6301\u4e45\u5316\u671f\u95f4\u4e3b\u7ebf\u7a0b\u963b\u585e\uff0c\u5bfc\u81f4\u547d\u4ee4\u6267\u884c\u8d85\u65f6\u3002 redis_rdb_bgsave_in_progress + redis_rdb_bgsave_time_sec RDB \u6267\u884c\u671f\u95f4\u547d\u4ee4\u5ef6\u8fdf &gt; 1 \u79d2<br>Cluster \u8282\u70b9\u5931\u8054\u4e8b\u4ef6 \u96c6\u7fa4\u8282\u70b9\u5b95\u673a\u5bfc\u81f4\u6570\u636e\u5206\u7247\u4e0d\u53ef\u7528\u3002 &gt; 0\uff08\u7acb\u5373\u5207\u6362\u5907\u4efd\u8282\u70b9\uff09<br>\u5de5\u5177\u96c6\u6210\uff1a<\/p>\n\n\n\n<p>Prometheus Exporter\uff1a\u4f7f\u7528 redis_exporter\u3002<br>\u5927 Key \u5206\u6790\uff1aredis-rdb-tools \u5206\u6790 RDB \u6587\u4ef6\u3002<br>3.\u6d88\u606f\u961f\u5217\uff08RocketMQ\/Kafka\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>Topic \u79ef\u538b\u91cf\uff08\u6761\uff09 \u6d88\u8d39\u8005\u5904\u7406\u80fd\u529b\u4e0d\u8db3\u5bfc\u81f4\u4e1a\u52a1\u5ef6\u8fdf\u3002 rocketmq_consumer_lag_total\uff08RocketMQ\uff09\u3001kafka_consumergroup_lag\uff08Kafka\uff09 &gt; 10,000 \u6761<br>\u751f\u4ea7\u8005\u53d1\u9001\u8017\u65f6\uff08P99\uff09 \u7f51\u7edc\u6296\u52a8\u6216 Broker \u8d1f\u8f7d\u9ad8\u5bfc\u81f4\u6d88\u606f\u5806\u79ef\u3002 rocketmq_producer_send_time_p99\u3001kafka_producer_request_latency_max &gt; 500ms<br>Broker \u78c1\u76d8\u4f7f\u7528\u7387\uff08%\uff09 \u78c1\u76d8\u5199\u6ee1\u5bfc\u81f4\u65b0\u6d88\u606f\u65e0\u6cd5\u5199\u5165\u3002 rocketmq_broker_disk_ratio\uff08RocketMQ\uff09\u3001kafka_log_size_bytes\uff08Kafka\uff09 &gt; 85%<br>\u6d88\u8d39\u8005\u7ebf\u7a0b\u6c60\u6d3b\u8dc3\u5ea6\uff08%\uff09 \u7ebf\u7a0b\u6c60\u6ee1\u5bfc\u81f4\u6d88\u606f\u6d88\u8d39\u5361\u987f\u3002 thread_pool_active_threads \/ thread_pool_max_threads * 100 &gt; 80%<br>\u5de5\u5177\u96c6\u6210\uff1a<\/p>\n\n\n\n<p>RocketMQ Dashboard\uff1a\u5185\u7f6e\u76d1\u63a7\u6307\u6807\u3002<br>Kafka Manager\uff1a\u76d1\u63a7 Topic \u5206\u533a\u72b6\u6001\u3002<br>4.\u641c\u7d22\u5f15\u64ce\uff08Elasticsearch\uff09<br>\u6307\u6807 \u5f71\u54cd\u573a\u666f \u76d1\u63a7\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u96c6\u7fa4\u5065\u5eb7\u72b6\u6001 \u5206\u7247\u672a\u5206\u914d\u5bfc\u81f4\u641c\u7d22\u670d\u52a1\u964d\u7ea7\u3002 elasticsearch_cluster_health_status\uff08GREEN\/YELLOW\/RED\uff09 \u72b6\u6001\u975e GREEN<br>\u7d22\u5f15\u5199\u5165\u5ef6\u8fdf\uff08ms\uff09 \u6570\u636e\u540c\u6b65\u5ef6\u8fdf\u5f71\u54cd\u4e1a\u52a1\u5b9e\u65f6\u6027\u3002 elasticsearch_indexing_latency_seconds P99 &gt; 1 \u79d2<br>JVM \u5806\u5185\u5b58\u4f7f\u7528\u7387\uff08%\uff09 \u5185\u5b58\u6ea2\u51fa\u5bfc\u81f4\u8282\u70b9\u5d29\u6e83\u3002 elasticsearch_jvm_memory_used_percent &gt; 85%<br>\u5206\u7247\u672a\u5206\u914d\u6570 \u8282\u70b9\u5b95\u673a\u6216\u78c1\u76d8\u4e0d\u8db3\u5bfc\u81f4\u6570\u636e\u4e0d\u53ef\u7528\u3002 elasticsearch_cluster_health_unassigned_shards &gt; 0<br>\u5de5\u5177\u96c6\u6210\uff1a<\/p>\n\n\n\n<p>Prometheus Exporter\uff1a\u4f7f\u7528 elasticsearch_exporter\u3002<br>Kibana Monitoring\uff1a\u5185\u7f6e\u96c6\u7fa4\u5065\u5eb7\u76d1\u63a7\u3002<br>\u516d\u3001\u5fae\u670d\u52a1\u4e13\u9879\u76d1\u63a7\u7ef4\u5ea6<br>1\u3001\u670d\u52a1\u6ce8\u518c\u4e0e\u53d1\u73b0\uff08Nacos\uff09<br>\u6838\u5fc3\u6307\u6807\uff1a<br>1.\u670d\u52a1\u5b9e\u4f8b\u5065\u5eb7\u72b6\u6001<br>\u76d1\u63a7\u9879\uff1anacos_monitor{name=\u201cipCount\u201d}\uff08\u5728\u7ebf\u5b9e\u4f8b\u6570\uff09\u3001nacos_monitor{name=\u201cfailedPush\u201d}\uff08\u63a8\u9001\u5931\u8d25\u6b21\u6570\uff09<br>\u544a\u8b66\u9608\u503c\uff1a\u5b9e\u4f8b\u6570\u7a81\u964d &gt; 30%\uff08\u5982 10 \u4e2a\u5b9e\u4f8b\u7a81\u7136\u6389\u7ebf 3 \u4e2a\uff09<br>\u6839\u56e0\u5b9a\u4f4d\uff1a\u7f51\u7edc\u5206\u533a\u3001Nacos Server \u96c6\u7fa4\u8111\u88c2\u3001\u5ba2\u6237\u7aef\u5fc3\u8df3\u7ebf\u7a0b\u963b\u585e\u3002<br>2.\u670d\u52a1\u8ba2\u9605\u5ef6\u8fdf<br>\u76d1\u63a7\u9879\uff1anacos_monitor{name=\u201cnotifyCost\u201d}\uff08\u670d\u52a1\u5217\u8868\u63a8\u9001\u8017\u65f6\uff09<br>\u544a\u8b66\u9608\u503c\uff1aP99 &gt; 500ms\uff08\u53ef\u80fd\u5bfc\u81f4\u670d\u52a1\u8c03\u7528\u62ff\u5230\u8fc7\u671f\u5b9e\u4f8b\u5217\u8868\uff09\u3002<br>3.\u914d\u7f6e\u4e2d\u5fc3\u63a8\u9001\u6210\u529f\u7387<br>\u76d1\u63a7\u9879\uff1anacos_config_push_failed_total\uff08\u914d\u7f6e\u63a8\u9001\u5931\u8d25\u6b21\u6570\uff09<br>\u573a\u666f\u5f71\u54cd\uff1a\u52a8\u6001\u7ebf\u7a0b\u6c60\u914d\u7f6e\u672a\u751f\u6548\u5bfc\u81f4\u7ebf\u7a0b\u6c60\u6ee1\uff0c\u8bf7\u6c42\u88ab\u62d2\u7edd\u3002<br>4.\u914d\u7f6e\u76d1\u542c\u957f\u8f6e\u8bad\u8d85\u65f6\u7387<br>\u76d1\u63a7\u9879\uff1anacos_config_long_polling_timeout_total<br>\u573a\u666f\u5f71\u54cd\uff1a\u5ba2\u6237\u7aef\u65e0\u6cd5\u53ca\u65f6\u611f\u77e5\u914d\u7f6e\u53d8\u66f4\uff0c\u5bfc\u81f4\u884c\u4e3a\u4e0d\u4e00\u81f4\u3002<br>2\u3001\u670d\u52a1\u95f4\u8c03\u7528\uff08OpenFeign + Sentinel\uff09<br>\u6838\u5fc3\u6307\u6807\uff1a<br>1.\u8c03\u7528\u6210\u529f\u7387\uff08\u6309\u670d\u52a1 \/ \u63a5\u53e3\uff09<br>\u76d1\u63a7\u9879\uff1afeign_client_requests_total{status!~\u201c5.<em>\u201d}\uff08\u975e 5xx \u8bf7\u6c42\u8ba1\u6570\uff09 \u8ba1\u7b97\u516c\u5f0f\uff1a1 &#8211; (sum(feign_client_requests_total{status=~\u201c5.<\/em>\u201d}) \/ sum(feign_client_requests_total))<br>\u544a\u8b66\u9608\u503c\uff1a\u6210\u529f\u7387 &lt; 99% \u6301\u7eed 2 \u5206\u949f\u3002 2.\u8c03\u7528\u94fe\u8def\u62d3\u6251 \u5de5\u5177\uff1aSkyWalking \u670d\u52a1\u4f9d\u8d56\u56fe \u5173\u952e\u573a\u666f\uff1a\u8bc6\u522b\u5faa\u73af\u4f9d\u8d56\uff08\u5982 A -&gt; B -&gt; C -&gt; A\uff09\u5bfc\u81f4\u96ea\u5d29\u3002<br>3.\u8c03\u7194\u65ad\u5668\u72b6\u6001\uff08Sentinel\uff09<br>\u76d1\u63a7\u9879\uff1a<br>sentinel_flow_pass_request{resource=\u201corderService\u201d}\uff08\u901a\u8fc7 QPS\uff09<br>sentinel_flow_block_request\uff08\u88ab\u62d2 QPS\uff09<br>sentinel_circuitbreaker_open\uff08\u7194\u65ad\u5668\u662f\u5426\u6253\u5f00\uff09<br>sentinel_requests_half_open_rejected_total\uff08\u7194\u65ad\u5668\u534a\u5f00\u72b6\u6001\u8bf7\u6c42\u62d2\u7edd\u7387\uff09<br>\u544a\u8b66\u7b56\u7565\uff1a\u7194\u65ad\u5668\u6253\u5f00\u7acb\u5373\u89e6\u53d1 P0 \u544a\u8b66\uff0c\u5e76\u901a\u77e5\u8d1f\u8d23\u4eba\u68c0\u67e5\u4e0b\u6e38\u670d\u52a1\u3002<br>3\u3001API \u7f51\u5173\uff08Spring Cloud Gateway\uff09<br>\u6838\u5fc3\u6307\u6807\uff1a<br>1.\u8def\u7531\u8bf7\u6c42\u5ef6\u8fdf\uff08\u6309\u8def\u7531 ID\uff09<br>\u76d1\u63a7\u9879\uff1ahttp_server_requests_seconds{uri=\u201c\/api\/order\/**\u201d}<br>\u544a\u8b66\u9608\u503c\uff1aP99 &gt; 1s\uff08\u76f4\u63a5\u5f71\u54cd\u7528\u6237\u4f53\u9a8c\uff09\u3002<br>2.\u9650\u6d41\u4e0e\u91cd\u8bd5<br>\u76d1\u63a7\u9879\uff1a<br>gateway_requests_retried_total\uff08\u91cd\u8bd5\u6b21\u6570\uff09<br>gateway_ratelimiter_remaining\uff08\u5269\u4f59\u4ee4\u724c\u6570\uff09<br>\u6839\u56e0\u5206\u6790\uff1a\u91cd\u8bd5\u6b21\u6570\u7a81\u589e\u53ef\u80fd\u56e0\u4e0b\u6e38\u670d\u52a1\u4e0d\u7a33\u5b9a\uff0c\u9700\u8054\u52a8\u7194\u65ad\u5668\u72b6\u6001\u3002<br>3.JWT \u9274\u6743\u5931\u8d25\u7387<br>\u76d1\u63a7\u9879\uff1agateway_jwt_auth_failed_total<br>\u544a\u8b66\u9608\u503c\uff1a\u5931\u8d25\u7387 &gt; 1%\uff08\u53ef\u80fd\u906d\u53d7 Token \u4f2a\u9020\u653b\u51fb\uff09\u3002<br>4\u3001\u5206\u5e03\u5f0f\u4e8b\u52a1\uff08Seata\uff09<br>\u6838\u5fc3\u6307\u6807\uff1a<br>1.\u5168\u5c40\u4e8b\u52a1\u63d0\u4ea4 \/ \u56de\u6eda\u7387<br>\u76d1\u63a7\u9879\uff1aseata_transaction_commit_total\u3001seata_transaction_rollback_total<br>\u544a\u8b66\u9608\u503c\uff1a\u56de\u6eda\u7387 &gt; 5%\uff08\u53ef\u80fd\u4e1a\u52a1\u903b\u8f91\u6216\u6570\u636e\u4e0d\u4e00\u81f4\uff09\u3002<br>2.\u4e8b\u52a1\u9501\u51b2\u7a81<br>\u76d1\u63a7\u9879\uff1aseata_lock_conflict_total<br>\u4f18\u5316\u5efa\u8bae\uff1a\u8c03\u6574\u4e1a\u52a1\u9501\u7c92\u5ea6\u6216\u4f7f\u7528\u4e50\u89c2\u9501\u3002<br>3.\u4e8b\u52a1\u6062\u590d\u91cd\u8bd5\u6b21\u6570<br>\u76d1\u63a7\u9879\uff1aseata_retry_commit_total\uff08\u4e8c\u9636\u6bb5\u63d0\u4ea4\u91cd\u8bd5\uff09<br>\u544a\u8b66\u9608\u503c\uff1a\u9891\u7e41\u91cd\u8bd5\u53ef\u80fd\u963b\u585e\u5168\u5c40\u9501\uff0c\u5bfc\u81f4\u4e8b\u52a1\u8868\u81a8\u80c0\u3002<br>5\u3001\u914d\u7f6e\u4e2d\u5fc3\uff08Nacos\uff09<br>\u6838\u5fc3\u6307\u6807\uff1a<br>1.\u914d\u7f6e\u76d1\u542c\u957f\u8f6e\u8be2\u5ef6\u8fdf<br>\u76d1\u63a7\u9879\uff1anacos_config_long_polling_time<br>\u544a\u8b66\u9608\u503c\uff1aP99 &gt; 30s\uff08\u5ba2\u6237\u7aef\u65e0\u6cd5\u53ca\u65f6\u611f\u77e5\u914d\u7f6e\u53d8\u66f4\uff09\u3002<br>2.\u914d\u7f6e\u7248\u672c\u4e00\u81f4\u6027<br>\u68c0\u67e5\u811a\u672c\uff1a\u5bf9\u6bd4\u5404\u8282\u70b9 curl http:\/\/nacos:8848\/nacos\/v1\/cs\/configs?dataId=xxx \u7684 md5 \u503c<br>\u573a\u666f\u5f71\u54cd\uff1a\u914d\u7f6e\u6f02\u79fb\u5bfc\u81f4\u670d\u52a1\u884c\u4e3a\u4e0d\u4e00\u81f4\uff08\u5982\u7ebf\u7a0b\u6c60\u5927\u5c0f\u4e0d\u540c\uff09\u3002<br>6\u3001\u65e5\u5fd7\u4e0e\u94fe\u8def\u8ffd\u8e2a<br>1.SkyWalking\uff1a<br>\u9519\u8bef\u65e5\u5fd7\u5173\u952e\u8bcd\uff08\u7ebf\u6761\u7c97\u7ec6\uff09<br>\u94fe\u8def\u8017\u65f6\u5206\u5e03\uff08\u5404 Span \u8017\u65f6\uff09<br>\u6162 SQL \u8ffd\u8e2a\uff08\u7ed3\u5408 ShardingSphere \u6216 MyBatis\uff09<\/p>\n\n\n\n<p>\u544a\u8b66\u9608\u503c\uff1a\u5b9e\u4f8b\u6570\u7a81\u964d &gt; 30%\uff08\u5982 10 \u4e2a\u5b9e\u4f8b\u7a81\u7136\u6389\u7ebf 3 \u4e2a\uff09<\/p>\n\n\n\n<p>\u6839\u56e0\u5b9a\u4f4d\uff1a\u7f51\u7edc\u5206\u533a\u3001Nacos Server \u96c6\u7fa4\u8111\u88c2\u3001\u5ba2\u6237\u7aef\u5fc3\u8df3\u7ebf\u7a0b\u963b\u585e\u3002<\/p>\n\n\n\n<p>2.\u65e5\u5fd7\u76d1\u63a7\uff1a<br>\u9519\u8bef\u65e5\u5fd7\u5173\u952e\u5b57\uff08ERROR\/Exception\uff09<br>\u65e5\u5fd7\u91cf\u7a81\u589e\u544a\u8b66\uff08\u5982\u6bcf\u79d2\u8d85\u8fc7 1000 \u6761\uff09<br>\u5de5\u5177\uff1aFilebeat + Elasticsearch + Kibana\u3001Loki + Grafana<\/p>\n\n\n\n<p>7\u3001\u5bb9\u5668\u5316\u90e8\u7f72\u76d1\u63a7\uff08Kubernetes\uff09<br>\u6838\u5fc3\u6307\u6807\uff1a<br>1.Pod \u91cd\u542f\u6b21\u6570<br>\u76d1\u63a7\u9879\uff1akube_pod_container_status_restarts_total<br>\u6839\u56e0\u5206\u6790\uff1aOOMKilled\uff08\u68c0\u67e5 JVM \u5806\u914d\u7f6e\uff09\u3001Liveness \u63a2\u9488\u5931\u8d25\u3002<br>2.\u6eda\u52a8\u53d1\u5e03\u5f02\u5e38<br>\u76d1\u63a7\u9879\uff1a<br>Deployment available_replicas &lt; desired_replicas \u65b0\u7248\u672c Pod \u542f\u52a8\u8017\u65f6\uff08kube_pod_start_time \u5bf9\u6bd4\uff09 3.HPA \u81ea\u52a8\u6269\u7f29\u5bb9 \u76d1\u63a7\u9879\uff1a \u5f53\u524d\u526f\u672c\u6570 kube_deployment_status_replicas \u89e6\u53d1\u6761\u4ef6\uff08\u5982 CPU &gt; 80%\uff09<br>8\u3001\u5b89\u5168\u4e0e\u5ba1\u8ba1<br>\u6838\u5fc3\u6307\u6807\uff1a<br>1.\u5f02\u5e38\u767b\u5f55\u5c1d\u8bd5<br>\u76d1\u63a7\u9879\uff1asecurity_authentication_failure_total<br>\u544a\u8b66\u9608\u503c\uff1a\u540c\u4e00 IP &gt; 5 \u6b21 \/ \u5206\u949f\uff08\u53ef\u80fd\u66b4\u529b\u7834\u89e3\uff09\u3002<br>2.\u654f\u611f\u63a5\u53e3\u8c03\u7528\u9891\u6b21<br>\u76d1\u63a7\u9879\uff1ahttp_server_requests_seconds{uri=\u201c\/admin\/**\u201d}\uff08\u7ba1\u7406\u7aef\u63a5\u53e3\uff09<br>\u544a\u8b66\u9608\u503c\uff1aQPS \u7a81\u589e &gt; 10 \u500d\u57fa\u7ebf\uff08\u672a\u6388\u6743\u8bbf\u95ee\u98ce\u9669\uff09\u3002<br>9\u3001\u5168\u94fe\u8def\u538b\u6d4b\u4e0e\u57fa\u7ebf<br>\u6838\u5fc3\u573a\u666f\uff1a<br>1.\u57fa\u7ebf\u6307\u6807\u91c7\u96c6<br>\u538b\u6d4b\u5de5\u5177\uff1aJMeter + SkyWalking<br>\u5173\u952e\u6570\u636e\uff1a\u5404\u670d\u52a1\u5728\u9884\u671f\u8d1f\u8f7d\u4e0b\u7684 CPU\u3001\u5185\u5b58\u3001RT\u3001QPS \u57fa\u51c6\u503c\u3002<br>2.\u5bb9\u91cf\u89c4\u5212\u9884\u8b66<br>\u8ba1\u7b97\u516c\u5f0f\uff1a(\u5f53\u524dQPS \/ \u538b\u6d4b\u6700\u5927QPS) * 100%<br>\u544a\u8b66\u9608\u503c\uff1a&gt; 70%\uff08\u63d0\u524d\u6269\u5bb9\uff09\u3002<br>10\u3001\u544a\u8b66\u4e0e\u81ea\u52a8\u5316\u54cd\u5e94<br>\u544a\u8b66\u5206\u7ea7\u793a\u4f8b\uff1a<br>\u7ea7\u522b \u573a\u666f \u54cd\u5e94\u52a8\u4f5c<br>P0 \u652f\u4ed8\u670d\u52a1\u4e0d\u53ef\u7528\uff08HTTP 5xx &gt; 50%\uff09 \u81ea\u52a8\u7194\u65ad\u975e\u6838\u5fc3\u529f\u80fd\uff0c\u77ed\u4fe1\u901a\u77e5\u8d1f\u8d23\u4eba<br>P1 \u8ba2\u5355\u79ef\u538b\uff08RocketMQ Backlog &gt; 10,000\uff09 \u81ea\u52a8\u6269\u5bb9\u6d88\u8d39\u8005 Pod\uff0c\u5e76\u89e6\u53d1\u65e5\u5fd7\u5206\u6790<br>P2 \u6570\u636e\u5e93\u6162\u67e5\u8be2\uff08RT &gt; 2s\uff09 \u90ae\u4ef6\u901a\u77e5 DBA\uff0c\u81ea\u52a8 Kill \u963b\u585e\u4f1a\u8bdd\uff08\u53ef\u9009\uff09<br>\u4e03\u3001\u4e1a\u52a1\u6307\u6807\u6269\u5c55\uff1a\u7528\u6237\u4f53\u9a8c\u4e0e\u4e1a\u52a1\u5065\u5eb7\u5ea6\u76d1\u63a7\uff08\u6df1\u5ea6\u573a\u666f\u5316\uff09<br>1.\u9875\u9762\u6027\u80fd\u76d1\u63a7<br>\u6307\u6807 \u76d1\u63a7\u76ee\u6807 \u91c7\u96c6\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u9996\u6b21\u5185\u5bb9\u6e32\u67d3\u65f6\u95f4\uff08FCP\uff09 \u7528\u6237\u611f\u77e5\u9875\u9762\u52a0\u8f7d\u901f\u5ea6\uff0c\u5f71\u54cd\u8df3\u51fa\u7387\u3002 \u524d\u7aef\u57cb\u70b9\uff08\u5982 Google Analytics \u6216\u81ea\u5b9a\u4e49 JS\uff09 P95 &gt; 2.5 \u79d2<br>\u6700\u5927\u5185\u5bb9\u6e32\u67d3\u65f6\u95f4\uff08LCP\uff09 \u8861\u91cf\u9875\u9762\u4e3b\u8981\u5185\u5bb9\u52a0\u8f7d\u5b8c\u6210\u65f6\u95f4\uff0c\u76f4\u63a5\u5f71\u54cd\u7528\u6237\u7559\u5b58\u3002 \u524d\u7aef\u6027\u80fd API\uff08PerformanceObserver\uff09 P95 &gt; 4 \u79d2<br>\u9996\u6b21\u8f93\u5165\u5ef6\u8fdf\uff08FID\uff09 \u9875\u9762\u53ef\u4ea4\u4e92\u65f6\u95f4\uff0c\u5f71\u54cd\u7528\u6237\u64cd\u4f5c\u6d41\u7545\u5ea6\u3002 \u6d4f\u89c8\u5668\u4e8b\u4ef6\u76d1\u542c\uff08first-input-delay\uff09 P95 &gt; 100ms<br>\u524d\u7aef\u9519\u8bef\u7387\uff08JS\/CSS\uff09 \u524d\u7aef\u8d44\u6e90\u52a0\u8f7d\u5931\u8d25\u5bfc\u81f4\u9875\u9762\u767d\u5c4f\u3002 \u524d\u7aef\u76d1\u63a7\uff08Sentry\uff09\u91c7\u96c6 window.onerror \u4e8b\u4ef6 &gt; 1% \u9875\u9762\u8bbf\u95ee\u91cf<br>\u8054\u52a8\u540e\u7aef\u6307\u6807\uff1a<br>\u5f53 FCP \u5f02\u5e38\u65f6\uff0c\u5173\u8054\u5206\u6790\u540e\u7aef API \u7684 RT\uff08\u5982\u5546\u54c1\u5217\u8868\u63a5\u53e3 GET \/api\/products \u7684 P99 \u5ef6\u8fdf\uff09\u3002<br>\u4f7f\u7528 TraceID \u8d2f\u7a7f\u524d\u540e\u7aef\u65e5\u5fd7\uff0c\u5b9a\u4f4d\u4ece\u70b9\u51fb\u5230\u63a5\u53e3\u54cd\u5e94\u7684\u5168\u94fe\u8def\u74f6\u9888\u3002<br>2.\u7528\u6237\u884c\u4e3a\u5206\u6790\uff08\u8f6c\u5316\u6f0f\u6597\u4e0e\u6d41\u5931\u70b9\uff09<br>\u7535\u5546\u793a\u4f8b\uff1a\u6d4f\u89c8\u5546\u54c1 -&gt; \u52a0\u5165\u8d2d\u7269\u8f66 -&gt; \u586b\u5199\u8ba2\u5355 -&gt; \u652f\u4ed8\u6210\u529f<br>\u6f0f\u6597\u9636\u6bb5 \u6307\u6807 \u76d1\u63a7\u65b9\u6cd5 \u4f18\u5316\u70b9<br>\u6d4f\u89c8\u5546\u54c1 UV \u2192 \u52a0\u8d2d\u7387 \u52a0\u8d2d\u7528\u6237\u6570 \/ \u6d4f\u89c8\u7528\u6237\u6570 \u00d7 100% \u524d\u7aef\u57cb\u70b9 + \u540e\u7aef\u4e8b\u4ef6\u65e5\u5fd7\uff08Kafka + Flink \u5b9e\u65f6\u8ba1\u7b97\uff09 &lt; \u884c\u4e1a\u5747\u503c 5% \u65f6\u68c0\u67e5\u5546\u54c1\u8be6\u60c5\u9875\u6027\u80fd\u6216\u63a8\u8350\u7b97\u6cd5 \u652f\u4ed8\u6210\u529f\u7387 \u6210\u529f\u652f\u4ed8\u8ba2\u5355\u6570 \/ \u521b\u5efa\u8ba2\u5355\u6570 \u00d7 100% \u652f\u4ed8\u670d\u52a1\u57cb\u70b9 + \u5bf9\u8d26\u7cfb\u7edf\uff08\u6bcf\u65e5\u6838\u5bf9\u7b2c\u4e09\u65b9\u652f\u4ed8\u56de\u8c03\uff09 &lt; 95% \u65f6\u68c0\u67e5\u98ce\u63a7\u62e6\u622a\u89c4\u5219\u6216\u652f\u4ed8\u6e20\u9053\u7a33\u5b9a\u6027 \u8d2d\u7269\u8f66\u653e\u5f03\u7387 \u653e\u5f03\u8d2d\u7269\u8f66\u7528\u6237\u6570 \/ \u52a0\u8d2d\u7528\u6237\u6570 \u00d7 100% \u7528\u6237\u884c\u4e3a\u65e5\u5fd7 + \u5b9a\u65f6\u4efb\u52a1\u626b\u63cf\u672a\u4ed8\u6b3e\u8ba2\u5355 &gt; 70% \u65f6\u89e6\u53d1\u4f18\u60e0\u5238\u63a8\u9001\u6216\u77ed\u4fe1\u63d0\u9192<br>\u6280\u672f\u5b9e\u73b0\uff1a<br>\u524d\u7aef\u57cb\u70b9 SDK\uff1a\u91c7\u96c6\u7528\u6237\u70b9\u51fb\u3001\u9875\u9762\u505c\u7559\u65f6\u957f\u3002<br>\u5b9e\u65f6\u8ba1\u7b97\u5f15\u64ce\uff1aFlink \u8ba1\u7b97\u8f6c\u5316\u7387\uff0c\u5f02\u5e38\u65f6\u89e6\u53d1\u544a\u8b66\u3002<br>\u53ef\u89c6\u5316\u5de5\u5177\uff1aTableau \u6216 Grafana \u5c55\u793a\u6f0f\u6597\u8d8b\u52bf\u3002<br>3.\u7528\u6237\u6ee1\u610f\u5ea6\u4e0e\u53cd\u9988\u76d1\u63a7<br>\uff081\uff09\u76f4\u63a5\u53cd\u9988\u6307\u6807<\/p>\n\n\n\n<p>\u6307\u6807 \u76d1\u63a7\u76ee\u6807 \u91c7\u96c6\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u7528\u6237\u8bc4\u5206\uff08NPS\uff09 \u51c0\u63a8\u8350\u503c\uff0c\u8861\u91cf\u7528\u6237\u5fe0\u8bda\u5ea6\u3002 \u95ee\u5377\u8c03\u67e5\uff08\u5e94\u7528\u5185\u5f39\u7a97\u6216\u90ae\u4ef6\uff09 + \u6570\u636e\u805a\u5408\uff08\u5982\u6bcf 1000 \u8ba2\u5355\u91c7\u6837 100 \u6761\uff09 NPS &lt; 30\uff08\u9700\u4ea7\u54c1\u7ecf\u7406\u4ecb\u5165\uff09 \u5ba2\u670d\u5de5\u5355\u5206\u7c7b\u7edf\u8ba1 \u9ad8\u9891\u95ee\u9898\u5b9a\u4f4d\uff08\u5982 \u201c\u652f\u4ed8\u5931\u8d25\u201d\u3001\u201c\u7269\u6d41\u5ef6\u8fdf\u201d\uff09\u3002 \u81ea\u7136\u8bed\u8a00\u5904\u7406\uff08NLP\uff09\u5206\u6790\u5de5\u5355\u5185\u5bb9\uff0c\u751f\u6210\u6807\u7b7e\u4e91 \u540c\u4e00\u95ee\u9898\u5de5\u5355\u91cf\u65e5\u73af\u6bd4\u589e\u957f &gt; 50%<br>\u5e94\u7528\u5546\u5e97\u8bc4\u8bba\u60c5\u611f\u5206\u6790 \u76d1\u63a7\u8d1f\u9762\u8bc4\u4ef7\u5173\u952e\u8bcd\uff08\u5982 \u201c\u5361\u987f\u201d\u3001\u201c\u95ea\u9000\u201d\uff09\u3002 \u722c\u53d6\u8bc4\u8bba + \u60c5\u611f\u5206\u6790\u6a21\u578b\uff08\u5982\u4f7f\u7528 Python \u7684 TextBlob\uff09 \u8d1f\u9762\u8bc4\u4ef7\u5360\u6bd4 &gt; 20%\uff08\u7248\u672c\u53d1\u5e03\u540e\u91cd\u70b9\u76d1\u63a7\uff09<br>\uff082\uff09 \u95f4\u63a5\u4f53\u9a8c\u6307\u6807<\/p>\n\n\n\n<p>\u6307\u6807 \u76d1\u63a7\u76ee\u6807 \u91c7\u96c6\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u9875\u9762\u8df3\u51fa\u7387 \u7528\u6237\u8fdb\u5165\u9875\u9762\u540e\u672a\u8fdb\u884c\u4efb\u4f55\u64cd\u4f5c\u76f4\u63a5\u79bb\u5f00\u3002 \u524d\u7aef\u57cb\u70b9\uff08\u8bb0\u5f55\u9875\u9762\u8bbf\u95ee\u4e0e\u540e\u7eed\u4e8b\u4ef6\uff09 &gt; 60%\uff08\u68c0\u67e5\u52a0\u8f7d\u901f\u5ea6\u6216\u5185\u5bb9\u5438\u5f15\u529b\uff09<br>\u7aef\u5230\u7aef\u6027\u80fd\u6570\u636e \u91c7\u96c6\u7528\u6237\u4f7f\u7528\u8fc7\u7a0b\u7684\u6027\u80fd\u6570\u636e RUM\u5408\u6210\u76d1\u63a7 + \u771f\u5b9e\u7528\u6237\u57cb\u70b9 &#8211;<br>\u7528\u6237\u75db\u82e6\u6307\u6570 \u8bc4\u4f30\u7528\u6237\u4f7f\u7528\u7684\u75db\u82e6\u7a0b\u5ea6 \u52a0\u8f7d\u65f6\u957f\/\u9519\u8bef\u6b21\u6570\/\u64cd\u4f5c\u8def\u5f84\u52a0\u6743\u8ba1\u7b97 &#8211;<br>\u5730\u7406\u70ed\u529b\u56fe \u5c55\u793a\u7528\u6237\u4f7f\u7528\u8fc7\u7a0b\u7684\u5730\u7406\u5206\u5e03 \u9ad8\u5fb7\u5730\u56feAPI\u96c6\u6210\u5f02\u5e38\u533a\u57df\u805a\u7c7b &#8211;<br>\u5173\u952e\u8def\u5f84\u7aef\u5230\u7aef\u8017\u65f6\uff08P99\uff09 \u7528\u6237\u6838\u5fc3\u8def\u5f84\uff08\u5982 \u201c\u52a0\u5165\u8d2d\u7269\u8f66\u2192\u652f\u4ed8\u6210\u529f\u201d\uff09\u6574\u4f53\u5ef6\u8fdf\u5f71\u54cd\u8f6c\u5316\u7387\u3002 \u94fe\u8def\u8ffd\u8e2a\uff08SkyWalking\uff09\u805a\u5408 trace_id \u5404\u9636\u6bb5\u8017\u65f6 &gt; \u884c\u4e1a\u57fa\u51c6 30%<br>4.\u4e1a\u52a1\u98ce\u9669\u4e0e\u5b89\u5168\u76d1\u63a7<br>\uff081\uff09\u98ce\u63a7\u4e0e\u5b89\u5168<\/p>\n\n\n\n<p>\u6307\u6807 \u76d1\u63a7\u76ee\u6807 \u91c7\u96c6\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u6b3a\u8bc8\u8ba2\u5355\u6bd4\u4f8b \u9632\u6b62\u9ed1\u4ea7\u5237\u5355\u6216\u76d7\u53f7\u652f\u4ed8\u3002 \u98ce\u63a7\u7cfb\u7edf\u5b9e\u65f6\u8bc4\u5206\uff08\u5982\u89c4\u5219\u5f15\u64ce + \u673a\u5668\u5b66\u4e60\u6a21\u578b\uff09 &gt; 5%\uff08\u81ea\u52a8\u62e6\u622a\u5e76\u901a\u77e5\u5b89\u5168\u56e2\u961f\uff09<br>\u654f\u611f\u64cd\u4f5c\u9891\u6b21 \u68c0\u6d4b\u5f02\u5e38\u884c\u4e3a\uff08\u5982\u540c\u4e00 IP \u6279\u91cf\u6ce8\u518c\u8d26\u53f7\uff09\u3002 \u5b9e\u65f6\u6d41\u5904\u7406\uff08Flink CEP \u590d\u6742\u4e8b\u4ef6\u5904\u7406\uff09 \u540c\u4e00\u8bbe\u5907 1 \u5c0f\u65f6\u5185\u6ce8\u518c &gt; 5 \u6b21<br>\u654f\u611f\u6570\u636e\u6cc4\u9732\u626b\u63cf \u76d1\u63a7\u4ee3\u7801\u4ed3\u5e93\u6216\u65e5\u5fd7\u4e2d\u7684\u5bc6\u94a5\u6cc4\u9732\uff08\u5982 API Key\u3001\u6570\u636e\u5e93\u5bc6\u7801\uff09\u3002 Git Hooks \u626b\u63cf + \u65e5\u5fd7\u5173\u952e\u5b57\u8fc7\u6ee4\uff08\u5982\u6b63\u5219\u5339\u914d password=.*\uff09 \u4efb\u4f55\u6cc4\u9732\u4e8b\u4ef6\uff08\u7acb\u5373\u64a4\u9500\u5bc6\u94a5\u5e76\u8f6e\u6362\u51ed\u8bc1\uff09<br>\uff082\uff09\u5408\u89c4\u6027\u76d1\u63a7<\/p>\n\n\n\n<p>\u6307\u6807 \u76d1\u63a7\u76ee\u6807 \u91c7\u96c6\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u7528\u6237\u9690\u79c1\u6388\u6743\u7387 GDPR\/CCPA \u5408\u89c4\u8981\u6c42\uff0c\u786e\u4fdd\u7528\u6237\u6570\u636e\u4f7f\u7528\u5408\u6cd5\u3002 \u6388\u6743\u8bb0\u5f55\u5165\u5e93\uff08\u5982 Redis \u7f13\u5b58\u6388\u6743\u72b6\u6001\uff09 \u672a\u6388\u6743\u7528\u6237\u8bbf\u95ee\u654f\u611f\u63a5\u53e3 &gt; 1 \u6b21<br>\u6570\u636e\u5b58\u50a8\u5730\u57df\u5408\u89c4 \u786e\u4fdd\u7528\u6237\u6570\u636e\u5b58\u50a8\u5728\u6307\u5b9a\u533a\u57df\uff08\u5982\u6b27\u76df\u6570\u636e\u4e0d\u51fa\u5883\uff09\u3002 \u5ba1\u8ba1\u65e5\u5fd7\uff08\u8bb0\u5f55\u6570\u636e\u5e93\u8bfb\u5199\u64cd\u4f5c\u7684\u5730\u7406\u4f4d\u7f6e\uff09 \u8de8\u5883\u6570\u636e\u8bbf\u95ee\u4e8b\u4ef6\uff08\u7acb\u5373\u963b\u65ad\u5e76\u544a\u8b66\uff09<br>5.\u6280\u672f\u9a71\u52a8\u4e1a\u52a1\u6307\u6807\uff08DevOps \u8054\u52a8\uff09<br>\uff081\uff09\u53d1\u5e03\u4e0e\u6545\u969c\u5173\u8054\u5206\u6790<\/p>\n\n\n\n<p>\u6307\u6807 \u76d1\u63a7\u76ee\u6807 \u91c7\u96c6\u65b9\u6cd5 \u544a\u8b66\u9608\u503c<br>\u7248\u672c\u53d1\u5e03\u540e\u9519\u8bef\u7387\u53d8\u5316 \u7070\u5ea6\u53d1\u5e03\u6216\u5168\u91cf\u4e0a\u7ebf\u540e\u76d1\u63a7\u5f02\u5e38\u6ce2\u52a8\u3002 \u5bf9\u6bd4\u53d1\u5e03\u524d\u540e 1 \u5c0f\u65f6\u7684\u9519\u8bef\u65e5\u5fd7\u91cf\uff08\u5982 Elasticsearch \u5bf9\u6bd4\u67e5\u8be2\uff09 \u9519\u8bef\u7387\u589e\u957f &gt; 200%\uff08\u81ea\u52a8\u56de\u6eda\uff09<br>\u529f\u80fd\u5f00\u5173\uff08Feature Flag\uff09\u4f7f\u7528\u7387 \u63a7\u5236\u65b0\u529f\u80fd\u9010\u6b65\u653e\u91cf\uff0c\u907f\u514d\u5168\u91cf\u6545\u969c\u3002 \u529f\u80fd\u5f00\u5173\u57cb\u70b9\uff08\u5982 Redis \u8bb0\u5f55\u5f00\u5173\u72b6\u6001\u4e0e\u8bbf\u95ee\u91cf\uff09 \u5f00\u542f\u540e\u63a5\u53e3\u9519\u8bef\u7387 &gt; 5%\uff08\u81ea\u52a8\u5173\u95ed\u5f00\u5173\uff09<br>\u516b\u3001\u603b\u7ed3<br>\u4e3a\u6709\u6548\u9884\u9632\u548c\u5feb\u901f\u5b9a\u4f4d\u5fae\u670d\u52a1\u7ebf\u4e0a\u95ee\u9898\uff0c\u672c\u6587\u63d0\u51fa\u4e86\u8986\u76d6 \u57fa\u7840\u8bbe\u65bd\uff08CPU \/ \u5185\u5b58\u3001\u7f51\u7edc\uff09\u3001\u4e2d\u95f4\u4ef6\uff08MySQL\/Redis\/MQ\uff09\u3001\u670d\u52a1\u6cbb\u7406\uff08\u7ebf\u7a0b\u6c60\u3001\u7194\u65ad\u9650\u6d41\uff09\u3001\u4e1a\u52a1\u6307\u6807\uff08\u652f\u4ed8\u6210\u529f\u7387\u3001\u8f6c\u5316\u6f0f\u6597\uff09\u3001\u7528\u6237\u4f53\u9a8c\uff08\u9875\u9762\u6027\u80fd\u3001\u7528\u6237\u53cd\u9988\uff09 \u7684\u5168\u65b9\u4f4d\u76d1\u63a7\u4f53\u7cfb\u3002\u901a\u8fc7 Prometheus \u91c7\u96c6\u6307\u6807\u3001Grafana \u53ef\u89c6\u5316\u3001DynamicTp \u52a8\u6001\u7ebf\u7a0b\u6c60\u7ba1\u7406\uff0c\u7ed3\u5408 \u5206\u7ea7\u544a\u8b66\uff08P0\/P1\/P2\uff09 \u548c \u81ea\u52a8\u5316\u6269\u7f29\u5bb9\uff0c\u53ef\u663e\u8457\u964d\u4f4e\u7a81\u53d1\u6545\u969c\u7387\uff0c\u5b9e\u73b0\u5206\u949f\u7ea7\u6839\u56e0\u5b9a\u4f4d\uff08\u5982\u7ebf\u7a0b\u6c60\u62d2\u7edd\u4efb\u52a1\u7a81\u589e\u2192\u5173\u8054\u6570\u636e\u5e93\u6162\u67e5\u8be2\uff09\uff0c\u6700\u7ec8\u63d0\u5347\u7cfb\u7edf\u7a33\u5b9a\u6027\u4e0e\u7528\u6237\u4f53\u9a8c\uff0c\u652f\u6491\u4e1a\u52a1\u5e73\u7a33\u8fd0\u884c<br>\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014<\/p>\n\n\n\n<p>\u539f\u6587\u94fe\u63a5\uff1ahttps:\/\/blog.csdn.net\/a103239\/article\/details\/146286005<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00\u672c\u6587\u5c06\u4ece \u57fa\u7840\u8bbe\u65bd\uff08CPU\u3001\u5185\u5b58\u3001\u7f51\u7edc\u3001\u78c1\u76d8\uff09\u3001 \u670d\u52a1\u5185\u90e8\uff08JVM\u3001\u7ebf\u7a0b\u6c60\u3001\u8fde\u63a5\u6c60\u7b49\uff09\u3001\u4e2d\u95f4\u4ef6\uff08&hellip; <a href=\"http:\/\/viplao.com\/index.php\/2025\/03\/22\/%e7%b3%bb%e7%bb%9f%e7%a8%b3%e5%ae%9a%e6%80%a7%e5%bb%ba%e8%ae%be%ef%bc%8812%ef%bc%89-%e7%ba%bf%e4%b8%8a%e7%9b%91%e6%8e%a7%e6%8c%87%e6%a0%87%e5%85%a8%e8%a7%a3%e7%ba%bf%e4%b8%8a%e9%97%ae\/\" class=\"more-link read-more\" rel=\"bookmark\">\u7ee7\u7eed\u9605\u8bfb <span class=\"screen-reader-text\">\u7cfb\u7edf\u7a33\u5b9a\u6027\u5efa\u8bbe\uff0812\uff09 \u2013 \u7ebf\u4e0a\u76d1\u63a7\u6307\u6807\u5168\u89e3(\u7ebf\u4e0a\u95ee\u9898\u6392\u67e5\u6307\u5357)<\/span><i class=\"fa fa-arrow-right\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[36],"views":1273,"_links":{"self":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts\/3432"}],"collection":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/comments?post=3432"}],"version-history":[{"count":1,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts\/3432\/revisions"}],"predecessor-version":[{"id":3433,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/posts\/3432\/revisions\/3433"}],"wp:attachment":[{"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/media?parent=3432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/categories?post=3432"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/viplao.com\/index.php\/wp-json\/wp\/v2\/tags?post=3432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}