Elastic APM
Elastic APM
簡介
APM = Application Performance Management
企業可以使用 APM 實時監控應用效能和當前工作負載,從而更好做出擴容決定保證系統穩定,閒時可以做對應的伺服器縮容,降低總體執行成本。
與伺服器效能指標監控不同,APM 的探針可以部署在程式碼執行時裡面,可收集到更加接近應用程式的效能資料,大部分 APM sdk 還可以監控到 SQL 請求,Redis 請求,對外 HTTP 請求,模板渲染細節等資料。
現在市場上的 APM 都做成了 SaaS 服務。國外領先的 APM 有 NewRelic 和 DataDog 等。國內有 OneAPM。
Elastic 開源出了一款 APM,資料儲存用 ElasticSearch,使用者只需要安裝一個 apm-server,然後在應用裡面安裝對應語言版本的 elastic-apm
包,便可以快速搭建一套開源的 APM 服務。
Elastic APM 打著以開發者為中心的旗號,官網是如下強調的
Elastic APM 支援 Java、Go、Node.js、Python、Ruby 和 Real User Monitoring (JavaScript),未來還會支援更多程式語言。如果沒有發現自己想要的,您既可自行構建,也可求助於開源社群。 -- https://www.elastic.co/cn/solutions/apm
具體 Elastic APM 有什麼功能大家在官網或者試用一下就知道了,這裡就不詳細說了。
以前在做 Ruby 應用效能優化的時候,用的都是 stackprof
和 rbspy
之流,stackprof
能收集 Ruby 程式的 CPU wall time,新建物件數量等資訊,rbspy
能線上收集一個 Ruby 程式的當前呼叫棧(用 ptrace),可以生成火焰圖,清晰看出具體耗時最長的函式。
而在使用了 Elastic APM 之後,每個路徑的耗時對比清晰可見,APM 的每一個 HTTP Service 首頁都給出了響應時間(均值,95%,99%),狀態碼數量等資訊,簡單直接的給出了需要做效能調優的功能。
Elastic APM 通過探針可以收集到常用類庫的執行資訊,目前的 Ruby elastic-apm gem 可以支援 Active Record,Sequel SQL,Redis,Mongo,NET::HTTP,tilt::Template,json 等等。
通過使用 Elastic APM,我們發現了友好速搭官網首頁執行了 89 次 SQL 查詢,看程式碼發現是前端渲染模板的時候在迴圈裡呼叫了兩次 SQL 請求。通過優化,整個頁面現在只需要 2 個 SQL 請求,目前 99% 的 response time 在 40ms 以內。大家可以訪問 https://youhaosuda.com/ 或者搜尋 友好速搭 感受一下火箭般的瀏覽速度。
Elastic APM 還會記錄應用內的異常,可以簡單使用現有的 Grafana,通過增加 Elasticsearch 資料來源,可以直觀看到對應服務的異常數量,Grafana 可以設定告警發到 Slack 或者 Bearychat。
Web 產品的響應速度也是產品特性之一。亞馬遜統計過,每快 100ms 的響應時間可以節省 1% 的銷售成本,通過友好速搭建立的網站,全球毫秒級載入,而且現在還可以通過 Elastic APM 實時監控網站效能狀況,用最敏捷的方式解決效能瓶頸。
友好速搭是國內領先的電商服務和雲技術提供方。依託技術、營銷、企業服務三大業務,為高階零售品牌打造個性化交易系統,並快速連結行業資源與精準流量,使品牌價值最大化。
相關文章
- elastic APM 簡單使用AST
- APM for .NET評測系列:OneAPM vs SCOM
- elastic學習-elastic stack 基礎安全(transport層)AST
- elastic metricbeat使用AST
- Elastic Stack 簡介AST
- Elastic Search Java ApiASTJavaAPI
- Elastic Job學習AST
- Elastic_Dev_ToolsASTdev
- Ubuntu安裝APMServerUbuntuServer
- 資料加密方式:APM加密
- Elastic stack(基於7.0.0)AST
- Elastic Stack基礎概念AST
- elastic search服務搭建AST
- elastic search 原理介紹AST
- Kibana 啟用 PHP APMPHP
- elasticsearch APM功能全解 一Elasticsearch
- APM Java agent 引數配置Java
- Golang 的 Elastic 連結庫GolangAST
- Elastic Search 索引 API 介紹AST索引API
- SnapMotion for Mac(影片截圖工具)Mac
- SnapMotion for Mac影片截圖工具Mac
- OneAPM 工作兩年總結
- search(4)- elastic4s-ElasticDslAST
- Elastic AMP監控.NET程式效能AST
- Elasticsearch 5.0和ELK/Elastic Stack指南Elasticsearch
- 讀噹噹elastic-job後感AST
- APM系統SkyWalking介紹
- Seata 新特性,APM 支援 SkyWalking
- 圖片合成工具類(BitmapMergeUtils)
- 如何使用SnapMotion的手動模式?模式
- 影片截圖軟體SnapMotion for MacMac
- Elastic Search 7.x 叢集配置AST
- 雲硬碟(Elastic Volume Service,EVS)硬碟AST
- 彈性公網IP(Elastic IP,EIP)AST
- Elastic 探祕之遺落的珍珠AST
- Laravel6 使用 Elastic7.10LaravelAST
- docker安裝elastic search和kibanaDockerAST
- 掌門教育自研APM實際分享