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
- elastic學習-elastic stack 基礎安全(transport層)AST
- MASW之APM告警
- elastic metricbeat使用AST
- Kibana 啟用 PHP APMPHP
- Elastic_Dev_ToolsASTdev
- Elastic Stack 簡介AST
- elasticsearch APM功能全解 一Elasticsearch
- APM Java agent 引數配置Java
- APM系統SkyWalking介紹
- 雲原生時代的 APM
- Seata 新特性,APM 支援 SkyWalking
- Elastic stack(基於7.0.0)AST
- elastic search 原理介紹AST
- elastic search服務搭建AST
- Elastic Stack基礎概念AST
- APM呼叫鏈產品對比
- 雲硬碟(Elastic Volume Service,EVS)硬碟AST
- Golang 的 Elastic 連結庫GolangAST
- search(4)- elastic4s-ElasticDslAST
- Elastic AMP監控.NET程式效能AST
- docker安裝elastic search和kibanaDockerAST
- Laravel6 使用 Elastic7.10LaravelAST
- 掌門教育自研APM實際分享
- Elastic 探祕之遺落的珍珠AST
- Elastic Search 7.x 叢集配置AST
- 彈性公網IP(Elastic IP,EIP)AST
- 使用 Elastic GPU 管理 Kubernetes GPU 資源ASTGPU
- 數字轉型遇阻 ,Riverbed重塑APM工具
- Kustomize 生產實戰-注入監控 APM Agent
- elastic-job-lite 資料結構分析AST資料結構
- search(9)- elastic4s logback-appenderASTAPP
- Elastic認證叢集環境準備AST
- search(11)- elastic4s-模糊查詢AST
- search(5)- elastic4s-構建索引AST索引
- 彈性負載均衡(Elastic Load Balance,ELB)負載AST
- 【Elastic-2】SpringBoot整合ELK、SpringBoot寫ESASTSpring Boot
- Elastic公司CEO Shay Banon發文宣佈AST