第 1 章 可插拔发现 API
您可以使用可插拔发现 API 端点 /api/v4/discovery
,将外部插件注册到 Cryostat,并提供有关可发现应用程序目标的信息到 Cryostat。
作为可插拔发现 API 的替代选择,您可以使用 Cryostat 代理作为 Cryostat 发现插件。Cryostat 代理作为 Java Instrumentation Agent 实施,该代理充当 JVM 上运行的应用程序的插件。Cryostat 代理提供了一个 HTTP API,它提供比 JMX 端口更大的部署灵活性,因为代理的双角色作为发现插件。您可以将目标应用程序配置为使用代理的 HTTP API 来通过 Cryostat 检测和连接。有关将目标应用程序配置为使用 Cryostat 代理的更多信息,请参阅配置 Java 应用程序。
1.1. 可插拔发现 API 概述
您可以使用可插拔发现 API 端点 /api/v4/discovery
将外部插件注册到 Cryostat,然后提供有关可发现应用程序目标的信息到 Cryostat。在成功注册使用 Cryostat 后,插件可以取消注册,或持续将更新推送到 Cryostat 的相关目标应用程序。
注册操作的目的是增强 Cryostat 安全性,并保持插件和 Cryostat 之间的数据一致性。
可插拔发现 API 提供了比 Red Hat OpenShift 服务帐户机制将 Cryostat 集成到部署架构中更灵活的方法。
例如,您需要编写一个创建应用程序 IP 地址静态映射到端口号的插件程序。该插件可以使用可插拔的 Discovery API 将此信息传送到 Cryostat,以便 Cryostat 能够更好地与目标应用程序连接。
可插拔发现 API 使用以下端点来管理从 /api/v4/discovery
endpoint 和 Cryostat 发送的请求:
- Discovery registation 端点
- 发现注册检查端点
-
发现
GET
端点 -
发现
POST
端点 - 发现取消注册端点
有关这些发现端点的更多信息,请参阅后续文档部分。
在使用 API 的端点与 Cryostat 交互前,您必须确保客户端(即插件的源)满足以下先决条件:
- 接受 JSON 响应。
- 可以将 HTTP 请求发送到 Cryostat。
-
可以在
POST
请求的 Authorization 标头中输入正确的 Cryostat 凭证。 -
可以从 Cryostat 接收
GET
和POST
请求。 -
通过将
POST
请求发送到 Cryostat 来发布 JSON 中可发现目标的信息。
如果您需要使用 Cryostat 注册自己的发现插件程序,您可以使用 Cryostat CR 中的 spec.targetDiscoveryOptions.disableBuiltInDiscovery
Options.disableBuiltInDiscovery 字段禁用 Cryostat 内置发现机制。禁用内置发现机制有助于减少在 Cryostat web 控制台中打开的重复定义(如果插件和 Cryostat 都可以访问相同的目标应用程序信息)。
如果 Cryostat 检测到两个类似的定义指向同一 JVM,则 Cryostat 会将任何存档记录存储在每个定义访问的同一存储位置。
您还可以考虑保留 Cryostat 内置发现实现的设置,然后完成以下操作之一:
- 创建将服务 locator 附加到实施的程序。
- 修改目标应用程序,以将目标信息直接发送到实施。
之前列出的操作超出了 配置高级 Cryostat 配置 文档的范围。