常见问题
编辑常见问题
编辑此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将致力于修复任何问题,但技术预览中的功能不受正式 GA 功能的支持 SLA 的约束。
代理的工作原理是什么?
编辑代理会自动检测已知的框架和库,并记录有趣的事件,例如 HTTP 请求。为此,它利用 JVM 检测类字节码的功能。这意味着对于受支持的技术,不需要更改代码。
代理会在有趣的事件之前和之后自动安全地注入少量代码,以测量其持续时间和元数据,例如与 HTTP 相关的信息,包括 URL、参数和标头。
这些事件称为 Span,它们会被发送到 APM 服务器,APM 服务器会将其转换为适合 Elasticsearch 的格式,并将其发送到 Elasticsearch 集群。然后,您可以使用 Kibana 中的 APM 应用程序来深入了解应用程序中的延迟问题和错误原因。
检测发生在编译时,使用 Android Gradle 插件检测 API。
代理是否正在进行字节码检测?
编辑是的
字节码检测有多安全?
编辑Elastic APM 使用流行的字节码检测库 Byte Buddy,它负责处理实际字节码的繁重工作,并让我们能够使用纯 Java 编写检测。
Byte Buddy 广泛用于流行的开源项目中,例如 Hibernate、Jackson、Mockito,并且也常用作 APM 供应商。它由一位 Java Champion 创建,荣获 Dukes Choice 奖,目前每年下载量超过 7500 万次。
与其他字节码检测库不同,Byte Buddy 的设计使得不可能破坏已检测类的字节码。它还尊重同时应用于应用程序的其他转换。
如何配置 SSL/TLS?
编辑请注意,Elastic Agent 不在内部处理 SSL/TLS 配置,因此,管理这些类型配置的推荐方法是将其作为应用程序网络安全配置的一部分来进行,如 Android 的官方 安全指南 中所述。下面我们展示了一组常见的用例以及每个用例可以执行的操作的快速提示,但是,每个用例可能都不同,因此,如果您需要更多详细信息,请参考 Android 的 官方文档。
连接到 Elastic Cloud
编辑如果您的 Elastic Stack 托管在 Elastic Cloud 中,则无需在您的应用程序中添加任何 SSL/TLS 配置更改,它应该可以开箱即用。
连接到本地服务器
编辑如果您的 Elastic Stack 托管在本地,则取决于您的主机用于签署其证书的 CA 类型,如果它是一个普遍信任的 CA,则您无需担心更改应用程序的 SSL/TLS 配置,因为它应该可以很好地开箱即用,但是,如果您的 CA 是未知的/私有的或您的服务器使用自签名证书,则您需要配置您的应用程序以通过遵循 Android 的指南 来信任自定义 CA。
调试目的
编辑如果您正在运行本地服务器并且需要在不使用 https 的情况下连接到它以运行快速测试,则可以暂时 启用明文流量,在 AndroidManifest.xml
文件中,位于 <application>
标签内。如下所示
<application ... android:usesCleartextTraffic="true"> ... </application>
您应该只为调试目的启用明文流量,而不是为生产代码启用。
如果启用明文流量对于您的调试用例不是一个有效的选项,您应该参考 Android 关于 配置用于调试的 CA 的指南。
有关 Android 如何处理网络安全的更多信息,请参考官方的 Android 文档。
如果代理不支持我正在使用的技术怎么办?
编辑该代理构建在 OpenTelemetry 之上。您可以使用其公共 API 创建自定义 span 和事务。