Advanced Interdisciplinary Projects Lab(AIPLab) 討論區

Please login or register.

請輸入帳號, 密碼以及預計登入時間

新聞:

[慶賀]恭喜張清貿醫師升任北榮傳醫科主治醫師-20170201

作者 主題: 使用 Elastic Stack 來監控和調優 Golang 應用程式  (閱讀 5 次)

admin

  • 管理員
  • Hero Member
  • *****
  • 文章: 1725
    • 檢視個人資料
使用 Elastic Stack 來監控和調優 Golang 應用程式
« 於: 二月 04, 2018, 10:59:48 pm »
https://www.elastic.co/cn/blog/monitor-and-optimize-golang-application-by-using-elastic-stack

Golang 因為其語法簡單,上手快且方便部署被開發者所青睞。今天在這裡就給大家介紹一下如果使用 Elastic Stack 來分析 Golang 程式的記憶體使用情況,方便對 Golang 程式做長期監控進而調優和診斷,甚至發現一些潛在的記憶體洩露等問題。
Elastic Stack 包含 Elasticsearch、Logstash 和 Beats 這幾個開源軟體,而 Beats 又包含 Filebeat、Packetbeat、Winlogbeat、Metricbeat 和新出的 Heartbeat。今天主要用到 Elasticsearch、Metricbeat 和 Kibana。
Metricbeat 是一個專門用來獲取伺服器或應用服務內部運行指標資料的收集程式,也是 Golang 寫的,部署包才10M 左右,記憶體資源佔用和 CPU 開銷也較小,對目標伺服器的部署環境也沒有依賴。目前除了可以監控伺服器本身的資源使用情況外,還支援常見的應用伺服器和服務:
•   Apache Module
•   Couchbase Module
•   Docker Module
•   HAProxy Module
•   kafka Module
•   MongoDB Module
•   MySQL Module
•   Nginx Module
•   PostgreSQL Module
•   Prometheus Module
•   Redis Module
•   System Module
•   ZooKeeper Module
如果你的應用不在上述列表,其實Metricbeat 是可以擴展的。本文接下來所用的 Golang Module 就是為 Metricbeat 添加的擴展模組,目前已經 merge 進入 Metricbeat 的 master 分支,預計會在 6.0 版本發佈。想瞭解是如何擴展這個模組的可以查看 代碼路徑 和 PR地址。

已記錄
 

SimplePortal Classic 2.0.5