应用程序跟踪和 APM 入门编辑

本指南介绍如何

  • 收集应用程序性能监控 (APM) 数据
  • 将 APM 数据发送到 Elastic Stack
  • 实时探索和可视化数据

如有反馈和问题,请在 论坛 中联系我们。

先决条件编辑

要按照本指南中的步骤操作,您需要一个包含以下内容的 Elastic Stack 部署:

  • 用于存储和搜索数据的 Elasticsearch
  • 用于可视化和管理数据的 Kibana
  • 对 Fleet 和 Integrations 具有 所有 权限的 Kibana 用户。由于许多 Integrations 资产在空间之间共享,因此用户需要在所有空间中都拥有 Kibana 权限。
  • Integrations Server(默认包含在每个 Elasticsearch Service 部署中)

要快速入门,请启动我们托管的 Elasticsearch Service 的部署。Elasticsearch Service 在 AWS、GCP 和 Azure 上可用。免费试用

步骤 1:配置 APM 集成编辑

Elastic Cloud 运行 Integrations Server 的托管版本,其中包括 APM 集成。

  1. 在 Kibana 中,导航到 Fleet > 代理策略 并选择 Elastic Cloud 代理策略。这是 Elastic Cloud 上托管的 Elastic 代理的默认代理策略。

    Elastic Cloud agent policy
  2. 操作 列的 Elastic APM 旁边,选择 编辑集成 以配置 APM 集成。

    Edit the APM integration
  3. 记下 APM 服务器正在侦听的预定义 URL,您将在下一步中用到它。
  4. 如果您对配置进行了任何更改,请单击 保存并继续

步骤 2:安装 APM 代理编辑

APM 代理使用与您的服务相同的语言编写。要监控新服务,您必须安装代理并使用服务名称、APM 服务器主机和密钥令牌对其进行配置。

  • 服务名称:APM 集成将每个 APM 代理配置中定义的已检测服务的名称映射到其数据存储在 Elasticsearch 中的索引。服务名称不区分大小写,并且必须唯一。例如,您不能拥有一个名为 Foo 的服务和另一个名为 foo 的服务。特殊字符将从服务名称中删除,并替换为下划线 (_)。
  • APM 服务器 URL:APM 服务器侦听事件的主机和端口。这应与设置 APM 集成时定义的主机和端口匹配。
  • 密钥令牌:APM 代理和 APM 服务器通信的身份验证方法。这应与设置 APM 集成时定义的密钥令牌匹配。

如果需要更改 APM 服务器 URL 或密钥令牌以匹配您的 APM 代理,您可以编辑 APM 集成设置。

使用 -javaagent JVM 选项手动设置和配置代理。不需要更改应用程序代码,但这需要重新启动应用程序。有关此设置方法的更多信息,请参见下文。

1. 下载 APM 代理

Elastic APM Java 代理入门的第一个步骤是检索代理 JAR 的副本。Java 代理版本发布到 Maven 中央存储库。为了获得副本,您可以

  • 从 Maven 中央存储库下载 最新代理以前的版本
  • 使用 curl 下载

    curl -o 'elastic-apm-agent.jar' -L 'https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&g=co.elastic.apm&a=elastic-apm-agent&v=LATEST'

2. 添加 -javaagent 标志

启动应用程序时,添加 JVM 标志 -javaagent:/path/to/elastic-apm-agent-<version>.jar

3. 配置

不同的应用程序服务器有不同的设置 -javaagent 标志和系统属性的方法。启动您的应用程序(例如 Spring Boot 应用程序或其他嵌入式服务器)并添加 -javaagent JVM 标志。使用 -D 前缀使用系统属性配置代理

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_url=http://127.0.0.1:8200 -jar my-application.jar

有关更多信息,请参阅 使用 -javaagent 标志进行手动设置

备用设置方法

  • 使用 apm-agent-attach-cli.jar 自动设置
    自动设置代理,而无需更改 JVM 或应用程序服务器的配置。此方法不需要更改应用程序代码或 JVM 选项,并且允许附加到正在运行的 JVM。有关此设置方法的更多信息,请参阅 Java 代理文档
  • 用于自附加的编程 API 设置
    通过一行代码更改和额外的 apm-agent-attach 依赖项设置代理。此方法不需要更改 JVM 选项,并且代理工件嵌入在打包的应用程序二进制文件中。有关此设置方法的更多信息,请参阅 Java 代理文档

步骤 3:查看您的数据编辑

返回 Kibana,在“可观察性”下,选择“APM”。您应该会看到应用程序性能监控数据流入 Elastic Stack!

内置的 apm_user 角色与 APM 集成不兼容,因为它只提供对 apm-* 索引的读取访问权限。有关用户需要访问的索引列表,请参阅 APM 数据流

APM app with data

没有看到任何数据?查看我们的 常见问题 列表以获取有用提示。

下一步是什么?编辑

  • 现在数据正在流入 Elastic Stack,请将您的调查提升到更深的层次!使用 Elastic 可观察性 来统一您的日志、指标、正常运行时间和应用程序性能数据。
  • 想要保护您的端点免受安全威胁?试试 Elastic 安全。添加端点保护只是您添加到代理策略的另一个集成!
  • 您的眼睛是否因为盯着屏幕墙而感到疲惫?创建警报 并在池畔啜饮您最喜欢的饮料时发现问题。
  • 希望 Elastic 来完成繁重的工作?使用机器学习来 检测异常
  • 一切都按您的意愿工作了吗?通过在您的基础架构中部署 Elastic 代理,将您的代理策略推广到其他主机!