New Relic APM(應用效能監控)介紹

2020-08-13 10:47:51

New Relic介紹

New Relic 是國外知名的、老牌、資深監控服務商。
這麼好的東西,之前免費使用了幾個月,有義務宣傳一下。
Google上搜尋一下「apm 監控 推薦」,第一個是知乎的:有什麼知名的開源apm(Application Performance Management)工具嗎?

爲什麼選擇 New Relic:

  • 監控是必須的,不然就好比摸着石頭過河,哪裏有坑,踩下去了才知道!!!
  • 可一直免費試用,當日高階版功能更加強大,現已轉到收費版,獲得的收益非常可觀
  • 非侵入式安裝,無需在程式碼裡埋點,只需簡單的安裝即可。大部分語言都支援,最喜歡這點了,簡直無敵了
  • 功能強大,報表豐富,讓效能低下的地方無所遁形,error 也可直觀的統計到,對你的應用效能瞭如指掌

如果你還在猶豫,那麼你應該是少一個翻牆工具了(貌似不用翻牆也是可以存取的),是否好用,也就只有用過之後才知道。 :-)

APM介紹

APMApplication Performance Monitoring 應用效能監控
是什麼:是 New Relic 公司的一款應用程式效能監控軟體分析產品,可以提供有關Web應用程式效能方面的實時、趨勢以及終端使用者體驗滿意度等方面數據。 通過端對端的事務跟蹤和各種色彩的圖表和報告,APM可做到深達的程式碼級別的視覺化數據。

您的開發人員/操作團隊不需要猜測效能問題是來自應用程式本身、CPU可用性、數據庫載入還是其他無法預期的事情上。使用New Relic APM,您可以在影響終端使用者之前快速識別潛在的問題。

安裝 Java Agent

支援語言:Ruby、PHP、Java、.Net、Python、NodeJs、Go
這裏介紹 Java 版本:快捷安裝Java Agent文件

  1. 獲取 License Key,點選檢視就可以了
  2. 下載 Java Agent,預設是最新的版本
  3. 安裝 Agent (Linux or Mac)
  4. 設定 newrelic.yml
  5. 重新啓動 Tomcat
  6. 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 主介面詳解:
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 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張截圖: Summary Trace details Database queries

APM-DataBases介紹

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、記憶體、磁碟、系統負載等

後話

由於可使用免費版,就特別適合個人和中小型企業使用,這點不得不佩服老外做得很好。