簡體   English   中英

在節點 js 中發出應用程序級別的指標

[英]Emitting application level metrics in node js

我想從我的節點應用程序發出指標來監控到達某個代碼分支的頻率。 例如,我想知道有多少次服務調用沒有返回預期的響應。 此外,我希望能夠為每個服務調用發出它所花費的時間等。

我希望我將在代碼中使用一個客戶端,它將向服務器發送指標,然后我將能夠在服務器的儀表板中查看指標。 我對可以在自己的基礎架構上托管的開源解決方案更感興趣。

請注意,我對 CPU、memory 使用率等系統指標不感興趣。

實施普遍的日志記錄,然后使用Elasticsearch + Kibana 之類的東西在儀表板中顯示它們。

還有其他指標儀表板系統,例如 Grafana、Graphite、Tableu 等。其中很多都發送與標簽相關的指標,例如計數 function 調用、CPU 負載等。我喜歡 Kibana 解決方案的主要原因是它不是基於指標,而是從您的日志文件中提取指標。

您真正需要對代碼做的唯一一件事就是確保您的日志帶有時間戳。

Google for Kibana 或“ELK stack”(ELK 代表 Elasticsearch + Logstash + Kibana)了解如何設置。 我第一次設置它只花了幾個小時就得到了結果。

Node 有幾個記錄器,可以配置為向 ELK 發送日志事件。 此外,ELK 的 Logstash(或現代“Beats”)部分可以攝取任何日志文件並使用正則表達式解析它們以將數據轉發到 Elasticsearch,因此您無需修改軟件。

ELK 解決方案可以簡單配置,或者您可以花費數周時間調整您的數據解析和圖表以獲得更多見解 - 它非常靈活,您如何使用它取決於您。

指標與日志(意見):

你想要的當然是指標。 但僅靠指標並不能說明什么。 您最終想要的是能夠分析您的系統以進行調試和優化。 這就是日志記錄的優勢所在。

使用從 Kibana 等日志中提取指標的解決方案,您可以深入了解指標背后的另一層。 您可以查詢它以查找導致指標的事件。 這在正在運行的系統上並不容易做到,因為您通常必須模擬系統的輸入以獲得類似的指標來確定正在發生的事情。 但是使用 Kibana,您可以分析已經發生的歷史事件!

這是幾年前我為監控 web 服務(包括它收到的所有電子郵件)所做的 Kibana 設置的舊屏幕截圖:

Kibana 截圖

請注意上面的屏幕截圖 - 除了我從系統中提取的圖表和指標外,我還在儀表板底部顯示解析的日志,以便我可以近乎實時地查看正在發生的事情。 這是 email 收到的儀表板,我們用來監控訂閱、投訴、點擊率等內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM