搜索

第 2 章 新功能

download PDF

Cryostat 2.4 引入了新的功能,它增强了对 Cryostat 产品的使用。

ARM64 架构支持

Cryostat 2.4 引进了对在 Red Hat OpenShift Container Platform 4.11 或 ARM64 (aarch64)架构上运行的版本中使用 Cryostat 的支持。

基于 MBean 自定义触发器的动态 JFR 记录

在 Cryostat 2.4 中,您可以启用 Cryostat 代理来根据 MBean 自定义触发器动态启动 JFR 记录。

自定义触发器条件基于 MBean 计数器,可覆盖一系列运行时、内存、线程和操作系统指标。您可以包含一个或多个 MBean 计数器类型,作为 JFR 记录的自定义触发器条件的一部分。您还可以指定一个持续时间或时间段作为触发器条件的一部分,这意味着满足条件前必须在指定持续时间内保留条件值。每个自定义触发器定义还必须包含 Cryostat 代理可用于记录的事件模板。

Cryostat 代理支持智能触发器,持续侦听指定 MBean 计数器的值。如果指定计数器的当前值与指定持续时间的自定义触发器中配置的值匹配,则会触发。如果发生触发,Cryostat 代理会在那个点上根据给定的事件模板动态启动 JFR 记录。

注意

如果没有满足与此记录关联的自定义触发器条件,则不会动态启动 JFR 记录。

对 JFR 写入操作的代理 HTTP API 支持

Cryostat 2.4 代理提供了一个 HTTP API,Cryostat 服务器可以使用它作为应用程序的 JMX 端口的替代选择。通过将正确配置的 Cryostat 2.4 代理附加到您部署的工作负载应用程序,您可以使用完整的 Cryostat 功能集,而无需目标应用程序公开 JMX 端口。

此功能增强可让 Cryostat 代理接受按需请求,以便为具有代理 HTTP 连接的任何目标 JVM 启动、停止和删除 JFR 记录。这会取代之前发行版本中的行为,其中 Cryostat 代理提供了只读 HTTP API,该 API 仅支持有限的 JFR 操作集合。

注意

默认情况下,Cryostat 代理不会启用根据服务器的按需请求来启动和停止 JFR 记录。如果您希望 Cryostat 代理为这些类型的请求提供服务,您必须在目标应用程序的配置中将 cryostat.agent.api.writes-enabled 属性设为 true

双 HTTP 和 JMX 发现注册

如果 Cryostat 2.4 代理检测到目标应用程序上也配置了 JMX,代理会使用代理 HTTP API 定义和 JMX URL 定义将其发布到 Cryostat 服务器。在这种情况下,您可以使用您喜欢的任何配置选项。

没有依赖项的标准代理 JAR 文件

在 Cryostat 2.4 中,您可以选择使用包含代理代码的标准 JAR 文件部署 Cryostat 代理。如需更多信息,请参阅 选择代理 JAR 文件分发

选择代理 JAR 文件分发

Cryostat 2.4 分发 Cryostat 代理的 JAR 文件的两个不同变体。根据您的设置要求,您可以使用以下类型的代理 JAR 文件:

  • 一个自包含的 all-in-one "shaded" JAR 文件,其中包含代理代码及其所有依赖项

    这为现有应用程序中包含的 Cryostat 代理提供了最方便的形式,因为您只需要包含一个额外的代理 JAR 文件。

  • 包含没有依赖项的代理代码的标准 JAR 文件

    如果您知道代理和工作负载应用程序之间存在依赖项冲突,并且您要应用自己的策略来解决所有依赖项冲突,则这非常有用。

这会取代之前版本中的行为,它仅以全体"shaded" JAR 文件形式提供代理的一个分发。

代理可以注册到的服务器主机或 IP 地址范围的默认限制

Cryostat 2.4 引入了一个新的 cryostat.agent.baseuri-range 系统属性,可让您针对 Cryostat 代理向其公告自己的资源位置(URL)设置限制。Cryostat 代理可以使用 cryostat.agent.baseuri-range 属性来检查您在 cryostat.agent.baseuri 属性中指定的 URL 是否在可接受的主机名或 IP 地址范围内。

此功能有助于保护用户意外配置服务器的基本 URI,否则这可能会导致代理广告其自身到不正确的服务或您控制外的服务。服务器 URL 的错误配置可能会导致 Cryostat 代理实例的数据泄漏到集群外的服务,或者数据通过开放互联网路由。

根据您要应用的安全限制级别,您可以将 cryostat.agent.baseuri-range 属性设置为以下值:

  • loopback

    这提供了最高级别的限制。只有在服务器 URL 有地址(如 localhost127.0.0.1)时,代理才会连接到服务器

  • link_local

    这提供了第二个最高级别的限制。只有在服务器 URL 在本地链路范围内有地址或已在最高限制级别的地址时,代理才会连接到服务器。

  • site_local

    这提供了第三个最高级别的限制。只有在服务器 URL 具有 IPv6 "site-local" 或 IPv4 "private" 地址或已在更高限制级别的地址时,代理才会连接到服务器。

  • dns_local

    这提供了第四大的限制级别。只有服务器 URL 有带有 .local.localhost 后缀的地址或已在更高限制级别的地址时,代理才会连接到服务器。

    注意

    这是默认设置。这个限制级别适用于 Red Hat OpenShift Container Platform 中的 Cryostat 服务器和代理部署,因为 Cryostat 服务器通常被内部 OpenShift Service 地址引用,如 https://cryostat.my-namespace.svc.cluster.local

  • public

    这会删除任何限制。此设置与之前版本中的行为匹配代理可以连接到任何配置的主机或 IP 地址。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.