APM & Logging Services Part.2- New Relic Query Language

Introduction
New Relic是一套APM (Application Performance Monitoring),可以記錄transaction,哪些end points或web page被使用過以及被使用的頻率; 它也可以儲存error message,exception messages; 或是web site的在某時間區間的throughput; 以及Infrastructure: 機器CPU,IO,memory的狀態,功能非常多 。
本篇將簡短地介紹而New Relic的NRQL,這個功能是屬於INSIGHTS功能的一環,它可以像前一篇所介紹的Kibana提供客製化的query並劃出圖表,或是統計數值,例如我的網站在不同種類的device的訪問比例為何? 與去年同期的比較為何?
Enjoy it!

Insight: New Relic Query Language (NRQL)
從New Relic上方的Nav bar中選擇INSIGHTS,進到NRQL的console畫面 。

NRQL是New Relic提供的一個與SQL十分相似的查詢語法,可用來查詢New Relic Insights Events database:

這邊記錄一些實用的查詢templates:
- 查詢web page在不同種類的device上unique session的訪問數量,例如一天前
查詢語句:
SELECT
filter(uniquecount(session), WHERE deviceType = 'Desktop' and appName = 'Prod') as 'Desktop',
filter(uniquecount(session), WHERE deviceType = 'Mobile' and appName = 'Prod') as 'Mobile' from PageView since 7 day ago查詢結果如下,可以看到Desktop的訪問次數有173,而行動裝置的訪問次數為0。

- 查詢不同services的events數量百分比
查詢語句:
SELECT percentage(count(*), WHERE appName = 'Prod1') as 'WW', percentage(count(*), WHERE appName = 'Prod2') as 'China' from PageView since 7 day ago查詢結果如下,可以看到worldwide的service的events比例有67.85%,而China的service的events比例有0.07%。

- 查詢不同services的訪問次數
查詢語句:
SELECT count(*) FROM PageView FACET appName IN ('Prod1', 'Prod2')查詢結果:

- 查詢service在目前一周與前一周同期的status code為302 (暫時轉址)的Response
查詢語句:
SELECT count(*) from Transaction where appName = 'Prod1' AND `response.status` = 302 limit 1 since 1 week ago COMPARE WITH 1 week ago TIMESERIES 1 day查詢結果:

- 查詢SyntheticCheck的執行時間:
查詢語句:
SELECT average(duration) FROM SyntheticCheck SINCE 1 week ago TIMESERIES 1 hour查詢結果:

- Page view 與 Transaction的差異
前者是用戶透過瀏覽器訪問的次數,後者包含了end points被訪問的次數,因此雖然查詢語句相同,若來源不同結果也會有差異,例如:
Page view的查詢語句:
SELECT PageView FROM Transaction WHERE appName = 'Prod1' limit 1 since 1 week ago COMPARE WITH 1 week ago TIMESERIES 1 day查詢結果:

Transaction的查詢語句:
SELECT count(*) FROM Transaction WHERE appName = 'Prod1' limit 1 since 1 week ago COMPARE WITH 1 week ago TIMESERIES 1 day查詢結果:

Insight: Data Explorer
如果對欄位還不熟悉,New Relic也提供現成的查詢並提供視覺化的結果以供使用,選擇Data Explorer後可以看到來源與欄位都可以從選單中選擇:

選擇CountryCode後可以分析不同國家的Page view event count:

Summary
這算是我第二次寫關於工具的文章,基本上官方文件都有非常詳細的說明, 雖然我們只用了其中一小部分,但這一小部分也許也是大多人會常使用的, 便有值得寫成文章的價值。
謝謝你耐心地讀到Summary,我是Sean HS, 是位軟體工程師。 這片文章是我在研究過程時的筆記,若有錯誤之處,期待您的見解,與您交流討論。






