elastic APM 簡單使用

C&Z發表於2020-10-28

首先,不要以為這個APM功能是一個不務正業、心血來潮的新功能。其實今天elastic的APM來源於之前的opbeat。而Opbeat是由一個丹麥初創團隊於2013年成立的老公司了,專門運維軟體的開發,而其主打產品即是APM運維軟體。被elastic收購之後,opbeat已經於2018年5月份,正式關閉網站和社群,轉到了elastic APM上:

APM的四大元件

  • APM agents
  • APM Server
  • Elasticsearch
  • Kibana APM UI

APM支援的java版本

APM agent是一系列開源庫,使用與伺服器端相同的語言編寫,目前支援node、python、ruby、js,java和golang。您可以像安裝任何其他庫一樣將它們安裝到伺服器端中。apm agent會檢測程式碼並在執行時收集效能資料和錯誤。此資料可 緩衝一小段時間併傳送到APM伺服器。

 

APM Server是一個用Go編寫的開源應用程式,通常在專用伺服器上執行。它預設偵聽埠8200,並通過JSON HTTP API從代理接收資料。然後,它根據該資料建立文件並將其儲存在Elasticsearch中。

 

Elasticsearch是一個高度可擴充套件的開源全文搜尋和分析引擎。它允許你快速,近實時地儲存,搜尋和分析大量資料。Elasticsearch用於儲存APM效能指標並利用其聚合。

 

Kibana是一個開源分析和視覺化平臺,旨在與Elasticsearch協同工作。你可使用Kibana搜尋,檢視Elasticsearch中儲存的資料並與之進行互動。你還可以使用Kibana中的專用APM UI或可以通過 APM Kibana UI直接載入的預構建的開源Kibana dashboard來視覺化APM資料。(basic license就授權了APM功能)

Java versions

Vendor

Supported versions

Notes

Oracle JDK

7u60+, 8u40+, 9, 10, 11

--module-path has not been tested yet

Open JDK

7u60+, 8u40+, 9, 10, 11

--module-path has not been tested yet

IBM J9 VM

8 service refresh 5+

 

如果使用不支援的版本將會報以下錯誤

Failed ot start agent - JVM version not supported: 1.8.0_31

更多的版本支援請檢視:

https://www.elastic.co/guide/en/apm/agent/java/current/supported-technologies-details.html

APM agents

每個agent都有一個配置列表,具體的配置列表如下

Go Agent

Configuration reference

Java Agent

Configuration reference

.NET Agent

Configuration reference

Node.js Agent

Configuration reference

Python Agent

Configuration reference

Ruby Agent

Configuration reference

Real User Monitoring (RUM) Agent

Configuration reference

java在jar包中使用agent

最新版代理jar包下載

https://search.maven.org/search?q=a:elastic-apm-agent

如下

java -javaagent:[jar 代理的jar包] -Delastic.apm.service_name=[應用的名稱] -Delastic.apm.environment=[環境名稱,如,prod,test] -Delastic.apm.service_node_name=[多個例項節點名稱] -Delastic.apm.server_urls=[APM server 所在的服務] -jar example.jar

更多的核心配置請檢視

https://www.elastic.co/guide/en/apm/agent/java/current/config-core.html#config-environment