2026-10-22 16:01:56
Elastic APM 是一款基于 Elastic Stack 构建的开源应用性能监控系统,能够全面监控应用程序性能并自动收集错误信息,帮助开发者快速定位和修复性能问题。
核心功能
APM Agent
以开源库形式存在,使用与服务相同的语言编写(如 Java、Node.js、Go 等),需安装到服务中。
功能:检测服务代码,在运行时收集性能数据和错误,缓冲后发送至 APM Server。
支持语言:
Java:Servlet API、Spring MVC、Spring Boot
Node.js:Express、hapi、Koa、Restify
Go:Gorilla、Gin
Python:Django、Flask
Ruby:Rails
RUM:捕获用户与客户端(如 Web 浏览器)的交互。
APM Server
用 Go 编写的开源应用,通常运行在专用服务器上,默认监听端口 8200。
功能:通过 JSON HTTP API 接收 Agent 数据,创建文档并存储至 Elasticsearch。
部署方式:通过 Docker 快速部署,示例命令:
docker run -d --name apm-server --link elasticsearch:elasticsearch -v `pwd`/apm-server.yml:/usr/share/apm-server/apm-server.yml -p 8200:8200 -e "TZ=Asia/Shanghai" docker.elastic.co/apm/apm-server:6.6.2Elasticsearch
高可扩展的开源全文搜索和分析引擎,用于快速存储、搜索和分析 APM 数据。
功能:存储性能指标并支持聚合分析,为 Kibana 提供数据基础。
Kibana
开源分析和可视化平台,与 Elasticsearch 协同工作。
功能:通过可视化界面展示 Elasticsearch 中的 APM 数据,支持交互式探索。
访问地址:

部署 Elasticsearch 和 Kibana
参考教程:
配置 APM Server
编辑 apm-server.yml 文件,设置监听地址和 Elasticsearch 连接信息:
apm-server: host: "0.0.0.0:8200"output.elasticsearch: hosts: ["elasticsearch:9200"] username: "admin" password: "Passw0rd"启动 APM Server
使用 Docker 命令启动(需提前配置好 apm-server.yml)。
下载 Java Agent 库
从
启动 Spring Boot 应用
通过 -javaagent 参数加载 Agent,并配置服务名称、应用包和 APM Server 地址:
java -javaagent:/path/to/elastic-apm-agent-<version>.jar -Delastic.apm.service_name=my-cool-service -Delastic.apm.application_packages=org.example,org.another.example -Delastic.apm.server_urls=成功日志:输出 Elastic APM server is available 和 Starting Elastic APM 表示启动成功。
访问服务并查看数据
访问 Spring Boot 接口(如

如有疑问或建议,欢迎留言讨论;如需进一步了解,可关注民工哥知乎技术专栏获取更多开源技术文章。