首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

從 Tomcat 日誌中提取 Solr 慢查詢:一鍵腳本實戰

     編輯:Java 相關知識

問題背景

Tomcat 日誌記錄了 Solr 查詢詳情,包含 QTime(查詢耗時毫秒)。需快速篩選超過閾值(如 800ms)的慢查詢進行優化。

日誌樣本

182460138 [http-nio-8080-exec-13] INFO org.apache.solr.core.SolrCore - [collection1] webapp=/solr4 path=/select params={...} hits=36428 status=0 QTime=25

Linux 一鍵提取腳本

NOW=$(date +"%Y-%m-%d")
LOGFILE="slow_query.$NOW.log"
touch /var/log/tomcat6/$LOGFILE
# 閾值 800ms,提取 QTime >= 800 的記錄
cat /var/log/tomcat6/catalina.out | grep 'QTime' | awk -F 'QTime=' 'int($NF) >= 800' > /var/log/tomcat6/$LOGFILE

腳本解析

  • grep 'QTime':過濾包含查詢時間的行
  • awk -F 'QTime=':以 QTime= 為分隔符,取最後一欄($NF)為耗時值
  • int($NF) >= 800:轉整數比較,滿足條件輸出整行
  • 結果重定向到帶日期的日誌文件,便於歸檔分析

該腳本可直接加入 crontab 定時執行,實現慢查詢自動巡檢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved