New Relic介紹
New Relic 是國外知名的、老牌、資深監控服務商。
這麼好的東西,之前免費使用了幾個月,有義務宣傳一下。
Google上搜尋一下「apm 監控 推薦」,第一個是知乎的:有什麼知名的開源apm(Application Performance Management)工具嗎?
爲什麼選擇 New Relic:
- 監控是必須的,不然就好比摸着石頭過河,哪裏有坑,踩下去了才知道!!!
- 可一直免費試用,當日高階版功能更加強大,現已轉到收費版,獲得的收益非常可觀
- 非侵入式安裝,無需在程式碼裡埋點,只需簡單的安裝即可。大部分語言都支援,最喜歡這點了,簡直無敵了
- 功能強大,報表豐富,讓效能低下的地方無所遁形,error 也可直觀的統計到,對你的應用效能瞭如指掌
如果你還在猶豫,那麼你應該是少一個翻牆工具了(貌似不用翻牆也是可以存取的),是否好用,也就只有用過之後才知道。 :-)
APM介紹
APM:Application Performance Monitoring 應用效能監控
是什麼:是 New Relic 公司的一款應用程式效能監控軟體分析產品,可以提供有關Web應用程式效能方面的實時、趨勢以及終端使用者體驗滿意度等方面數據。 通過端對端的事務跟蹤和各種色彩的圖表和報告,APM可做到深達的程式碼級別的視覺化數據。
您的開發人員/操作團隊不需要猜測效能問題是來自應用程式本身、CPU可用性、數據庫載入還是其他無法預期的事情上。使用New Relic APM,您可以在影響終端使用者之前快速識別潛在的問題。
安裝 Java Agent
支援語言:Ruby、PHP、Java、.Net、Python、NodeJs、Go
這裏介紹 Java 版本:快捷安裝Java Agent文件
- 獲取 License Key,點選檢視就可以了
- 下載 Java Agent,預設是最新的版本
- 安裝 Agent (Linux or Mac)
- 設定 newrelic.yml
- 重新啓動 Tomcat
- 5分鐘後看數據
# 3.1 解壓到 tomcat 安裝目錄
unzip newrelic-java-3.38.0.zip -d /path/to/appserver/
# 3.2 一鍵安裝,忽悠安裝日誌,你會看到其實他把 bin/catalina.sh 增加了啓動參數,裏面搜尋 newrelic 就能找到了
# 如果是 copy tomcat的話,注意這裏可能需要改一下 tomcat 路徑
cd /path/to/appserver/newrelic
java -jar newrelic.jar install
# 4. 自定義app顯示名稱:app_name
vim /path/to/appserver/newrelic/newrelic.yml
APM-Overview介紹
選擇一個 app_name 應用進行檢視,預設進入到 Overview 主介面,如果多個 agent 裡的 app_name 名稱是一樣的,採集的數據合併到一起,比如 tomcat 叢集時,其實同屬於一個 app_name,每個 tomcat 有獨立的 jvm,可以在單獨選擇某一個 jvm 進行檢視。
全域性設定:
- APPS:預設當前應用名稱,可快速切換應用
- TIME PICKER:時段選擇,可自定義時間段
- JVMS:如果有多個 Agent 的 app_name 一致,這裏會出現所有叢集 JVM 列表,以 host_name:port 的形式,如果預設的看着不舒服,建議把 host_name 改一下,方便區分
Overview 主介面詳解:
- Web transactions time:JVM、Mysql、Web external、Response time 整體耗時報表
- Apdex score:apm 綜合打分,滿分1.0
- Throughtput:整體吞吐量,單位分鐘
- Transactions:請求呼叫等,這塊展示規則沒太搞明白 Top5
- Error rate:錯誤率,如果檢測到系統錯誤,這裏會提現處理,如果達到一定錯誤率,會有系統報警(郵件),報表背景將會是:淡紅色
- Host:JVM 報表,每個 jvm 具體情況,比如:
Host name |
Apdex |
Resp.time |
Throughtput |
Error Rate |
CPU usage |
Memory |
- Recent events:近期歷史事件,常見的就是報警了
APM-Transactions介紹
Transactions 主介面詳解:
- Type:Web、Non-Web(Java/Job/SpringController等,定時任務之類的)
- 排序:
- Most Time consuming:耗時最多的
- Slowest average response time:響應最慢的
- Adpex most dissatisfying:Adpex打分最不滿意的
- Highest throughput:吞吐量最高的
- Top 5 web Transactions:耗時最多的5個web請求百分比,可以選擇不同的報表展示方式
- Transaction traces:一般是有問題的請求事件會出現在這裏,點進去可以看到堆疊的東西,查詢sql之類的等
- Summary:彙總
- Trace details:跟蹤詳情
- Database queries:數據庫查詢
附上 Transaction traces 3張截圖:
APM-DataBases介紹
DataBases 主介面詳解:
- SORT BY:排序
- Most time consuming:秏時最多的
- Slowest query time:查詢最慢的
- Throughtput:吞吐量最大的(頻率最高的)
- MySQL overview:根據排序來展現的詳細報表,僅第一個根據排序變化
- Top database operations by time consumed:耗時最多的5個查詢
- Top database operations by query time:整體增刪改查耗時
- Top database operations by throughput:整體增刪改查吞吐量
APM-External services介紹
比如嵌入了第三方的API,呼叫時也會被記錄下來,比如:吞吐量、平均響應時長等資訊
APM-JVMs介紹
直接看圖吧
New Relic相關產品
主要產品:
- APM:應用效能監控
- Browser:瀏覽器監控:如果非常注重Web前端體驗的話,這個是個不錯的東東
- Synthetics:合併監控:通過建立一個新的監視器來監控世界各地的網站,關鍵業務交易和API終端
- Mobile:行動端監控:移動APP效能監控(iOS、Android、Titanium、Unity、tvOS)
- Plugins:外掛監控:貌似也是非常強大,比如:Nginx、Mysql、Memcached、Redis、MongoDB……
- Infrastructure:基礎設施監控:主機的網路IO、CPU、記憶體、磁碟、系統負載等
後話
由於可使用免費版,就特別適合個人和中小型企業使用,這點不得不佩服老外做得很好。