你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Spring Apps 的指标
注意
基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:✅ 基本计划/标准计划 ✅ 企业计划
Azure 指标资源管理器是 Microsoft Azure 门户的一个组件,可用于绘制图表、以直观的形式关联趋势以及研究指标的上升和下降。 使用指标资源管理器调查资源的运行状况和利用率。
在 Azure Spring Apps 实例中,可以在以下页面上查看指标:
应用程序概述页,其中显示了快速状态图表。 若要查看此页,请从导航窗格中选择“应用”,然后选择一个应用。
通用指标页,其中显示了可用于 Azure Spring Apps 实例中所有应用的通用指标。 对于企业计划,它还会显示 Tanzu Spring Cloud Gateway 的常见指标。 若要查看此页,请从导航窗格中选择“指标”。 可以在常用指标页中构建你自己的图表,然后将它们固定到你的仪表板。
应用程序概览页
在导航窗格中选择“应用”,然后从列表中选择一个应用。 应用概述页显示指标图表,使你能够执行应用程序的快速状态检查。
Azure Spring Apps 提供以下五个图表,其中的指标每分钟更新一次:
- Http 服务器错误:向应用发出的 HTTP 请求的错误计数
- 数据输入:应用接收的字节数
- 数据输出:应用发送的字节数
- 请求:应用接收的请求数
- 平均响应时间:应用的平均响应时间
对于图表,你可以选择一小时到七天的时间范围。
常用指标页
在导航窗格中选择“指标”以访问常见指标。 从“指标”下拉列表中选择要使用的指标。
有关指标详细信息,请参阅用户指标选项部分。
接下来,为每个指标选择聚合类型:
聚合类型指示如何按时间对图表中的指标点进行聚合。 每分钟有一个原始指标点,一分钟内的预聚合类型由指标类型预定义。
- 总和:将所有值的和显示为目标输出。
- 平均值:将时段中的“平均”值用作目标输出。
- 最大值/最小值:将时段中的“最大/最小”值用作目标输出。
还可以将时间范围从过去 30 分钟调整为过去 30 天或某个自定义时间范围。
默认视图包括某个 Azure Spring Apps 服务的应用程序的所有指标。 可以在显示中筛选一个应用或实例的指标。 选择“添加筛选器”,将属性设置为“应用”,然后在“值”文本框中选择要监视的目标应用程序 。
你可以使用两种类型的筛选器(属性):
- 应用:按应用名称筛选
- 实例:按应用实例筛选
- 部署:按部署名称筛选
你还可以使用“应用拆分”选项,该选项将为一个应用绘制多个行:
提示
可以在指标页中构建你自己的图表,然后将其固定到“仪表板”。 一开始,为图表命名。 接下来,选择“固定到右上角的仪表板”。 现在可以在门户“仪表板”中检查应用程序了。
用户指标选项
注意
对于 Spring Boot 应用程序,若要查看 Spring Boot Actuator 中的指标,请添加 spring-boot-starter-actuator
依赖项。 有关详细信息,请参阅使用 Spring Boot Actuator 管理和监视应用的添加执行器依赖项部分。
下表显示了可用的指标和详细信息。
错误
名称 | Spring Boot Actuator 指标名称 | 计价单位 | 说明 |
---|---|---|---|
tomcat.global.error |
tomcat.global.error |
计数 | 已处理的请求中发生的错误数。 |
性能
名称 | Spring Boot Actuator 指标名称 | 计价单位 | 说明 |
---|---|---|---|
system.cpu.usage |
system.cpu.usage |
百分比 | [已过时] 整个系统最近的 CPU 使用率。 此指标已弃用,因为准确度不可靠。 请改用 App CPU Usage 。 此值为 [0.0,1.0] 区间中的一个双精度值。 如果值为 0.0,则表示在所观察的最近一段时间内所有 CPU 都处于空闲状态,而如果值为 1.0,则表示在所观察的最近一段时间内所有 CPU 都一直在主动运行。 |
process.cpu.usage |
应用 CPU 使用率百分比 | 百分比 | [已过时] Java 虚拟机进程最近的 CPU 使用率。 此指标已弃用,因为准确度不可靠。 请改用 App CPU Usage 。 此值为 [0.0,1.0] 区间中的一个双精度值。 如果值为 0.0,则表示在所观察的最近一段时间内,任何 CPU 都未运行 JVM 进程中的线程,而如果值为 1.0,则表示在所观察的最近一段时间内,所有 CPU 都一直在主动运行 JVM 中的线程。 JVM 中的线程包括应用程序线程以及 JVM 内部线程。 |
应用 CPU 使用情况 | 百分比 | 核心中使用的 CPU 时间与总 CPU 时间限制的比率。 它表示 k8s 容器消耗的 CPU 资源的比例,主要用于 JVM 进程。 此值为 [0.0,1.0] 区间中的一个双精度值。 如果值为 0.0,则表示在所观察的最近一段时间内,任何 CPU 都未运行 JVM 进程中的线程,而如果值为 1.0,则表示在所观察的最近一段时间内,所有 CPU 都一直在主动运行 JVM 中的线程。 JVM 中的线程包括应用程序线程以及 JVM 内部线程。 | |
应用 CPU 使用率(已弃用) | 百分比 | 已弃用的应用 CPU 使用率指标。 请改为使用新的应用 CPU 使用率指标。 | |
应用内存使用情况 | 百分比 | 针对分配给此应用的内存的 JVM 进程的最近内存使用率。 此值为 [0.0,1.0] 区间中的一个双精度值。 如果值为 0.0,则表示在所观察的最近一段时间内,JVM 进程中的线程未分配任何内存;如果值为 1.0,则表示在所观察的最近一段时间内,所有内存都一直由 JVM 进程中的线程分配。 JVM 中的线程包括应用程序线程以及 JVM 内部线程。 | |
jvm.memory.committed |
jvm.memory.committed |
字节 | 表示保证可供 JVM 使用的内存量。 JVM 可能会向系统释放内存,其提交的值可能小于初始值。 提交的值将始终大于或等于使用的值。 |
jvm.memory.used |
jvm.memory.used |
字节 | 表示当前使用的内存量(字节)。 |
jvm.memory.max |
jvm.memory.max |
字节 | 表示可用于内存管理的最大内存量。 使用的和提交的内存量将始终少于或等于最大内存量(如果已定义最大内存量)。 如果在进行内存分配时尝试提高使用的内存,使得使用的内存 > 提交的内存,则即使使用的内存 <= 最大内存(例如,当系统的虚拟内存较低时),内存分配也可能会失败。 |
jvm.gc.max.data.size |
jvm.gc.max.data.size |
字节 | 自 Java 虚拟机启动以来旧代内存池的峰值内存使用量。 |
jvm.gc.live.data.size |
jvm.gc.live.data.size |
字节 | 完全垃圾回收 (GC) 后的旧代内存池大小。 |
jvm.gc.memory.promoted |
jvm.gc.memory.promoted |
字节 | 从 GC 之前到 GC 之后这段时间,旧代内存池大小正增加的计数。 |
jvm.gc.memory.allocated |
jvm.gc.memory.allocated |
字节 | 运行一个 GC 之后,在运行下一个 GC 之前,新代内存池大小增加的递增量。 |
jvm.gc.pause.total.count |
jvm.gc.pause (total-count) |
计数 | 此 JMV 启动后的总 GC 计数,包括新代和旧代 GC。 |
jvm.gc.pause.total.time |
jvm.gc.pause (total-time) |
毫秒 | 此 JMV 启动后消耗的总 GC 时间,包括新代和旧代 GC。 |
性能 (.NET)
名称 | Spring Boot Actuator 指标名称 | 计价单位 | 说明 |
---|---|---|---|
CPU 使用率 | cpu-usage |
百分比 | 进程的 CPU 使用率相对于所有系统 CPU 资源的百分比 [0-100]。 |
工作集 | working-set |
兆字节 | 进程所使用的工作集数量。 |
GC 堆大小 | gc-heap-size |
兆字节 | 垃圾回收器报告的堆总大小。 |
第 0 代 GC 计数 | gen-0-gc-count |
计数 | 每秒第 0 代垃圾回收数。 |
第 1 代 GC 计数 | gen-1-gc-count |
计数 | 每秒第 1 代垃圾回收数。 |
第 2 代 GC 计数 | gen-2-gc-count |
计数 | 每秒第 2 代垃圾回收数。 |
GC 所占时间 | timein-gc |
百分比 | 自上次垃圾回收后垃圾回收中的时间百分比。 |
Gen 0 heap size(第 0 代堆大小) | gen-0-size |
字节 | 第 0 代堆大小。 |
Gen 1 heap size(第 1 代堆大小) | gen-1-size |
字节 | 第 1 代堆大小。 |
Gen 2 heap size(第 2 代堆大小) | gen-2-size |
字节 | 第 2 代堆大小。 |
LOH 堆大小 | loh-size |
字节 | 大型对象堆堆大小。 |
分配速率 | alloc-rate |
字节 | 每秒分配的字节数。 |
程序集计数 | assembly-count |
计数 | 已加载的程序集数。 |
异常计数 | exception-count |
计数 | 每秒异常数。 |
线程池线程计数 | threadpool-thread-count |
计数 | 线程池线程数。 |
监视器锁争用计数 | monitor-lock-contention-count |
计数 | 尝试获取监视器锁时每秒发生争用的次数。 |
线程池队列长度 | threadpool-queue-length |
计数 | 线程池工作项队列长度。 |
线程池已完成项计数 | threadpool-completed-items-count |
计数 | 线程池已完成工作项计数。 |
活动计时器计数 | active-timer-count |
计数 | 当前处于活动状态的计时器数。 活动计时器是注册为在将来某个时间点计时且尚未取消的计时器。 |
有关详细信息,请参阅调查性能计数器 (dotnet-counters)。
请求
名称 | Spring Boot Actuator 指标名称 | 计价单位 | 说明 |
---|---|---|---|
tomcat.global.sent |
tomcat.global.sent |
字节 | Tomcat Web 服务器发送的数据量。 |
tomcat.global.received |
tomcat.global.received |
字节 | Tomcat Web 服务器接收的数据量。 |
tomcat.global.request.total.count |
tomcat.global.request (total-count) |
Count | Tomcat Web 服务器处理的请求总数。 |
tomcat.global.request.max |
tomcat.global.request.max |
毫秒 | Tomcat Web 服务器用于处理请求的最长时间。 |
请求 (.NET)
名称 | Spring Boot Actuator 指标名称 | 计价单位 | 说明 |
---|---|---|---|
每秒请求数 | requests-per-second |
计数 | 请求速率。 |
请求总数 | total-requests |
计数 | 总请求数。 |
当前请求数 | current-requests |
计数 | 当前请求的数目。 |
失败的请求 | failed-requests |
计数 | 失败的请求数。 |
有关详细信息,请参阅调查性能计数器 (dotnet-counters)。
会话
名称 | Spring Boot Actuator 指标名称 | 计价单位 | 说明 |
---|---|---|---|
tomcat.sessions.active.max |
tomcat.sessions.active.max |
计数 | 同时处于活动状态的会话的最大数量。 |
tomcat.sessions.alive.max |
tomcat.sessions.alive.max |
毫秒 | 过期会话处于活动状态的最长时间(秒)。 |
tomcat.sessions.created |
tomcat.sessions.created |
Count | 已创建的会话数。 |
tomcat.sessions.expired |
tomcat.sessions.expired |
Count | 已过期的会话数。 |
tomcat.sessions.rejected |
tomcat.sessions.rejected |
计数 | 由于达到了最大活动会话数而未创建的会话数。 |
tomcat.sessions.active.current |
tomcat.sessions.active.current |
Count | Tomcat 会话活动计数。 |
流入量
显示名称 | Azure 指标名称 | 计价单位 | 说明 |
---|---|---|---|
接收的字节数 | IngressBytesReceived |
字节 | Azure Spring Apps 从客户端接收的字节计数。 |
发送的字节数 | IngressBytesSent |
字节 | Azure Spring Apps 发送到客户端的字节计数。 |
请求 | IngressRequests |
Count | Azure Spring Apps 从客户端接收的请求计数。 |
失败的请求数 | IngressFailedRequests |
Count | Azure Spring Apps 从客户端接收的失败请求计数。 |
响应状态 | IngressResponseStatus |
计数 | Azure Spring Apps 返回的 HTTP 响应状态。 可以进一步对响应状态代码分布进行归类来显示 2xx、3xx、4xx 和 5xx 类别的响应。 |
响应时间 | IngressResponseTime |
秒 | Azure Spring Apps 返回的 HTTP 响应时间。 |
入口吞吐量(字节/秒) | IngressBytesReceivedRate |
每秒字节数 | Azure Spring Apps 每秒从客户端接收的字节数。 |
出口吞吐量(字节/秒) | IngressBytesSentRate |
每秒字节数 | Azure Spring Apps 每秒发送到客户端的字节数。 |
网关
下表仅适用于企业计划中的 Tanzu Spring Cloud Gateway。
显示名称 | Azure 指标名称 | 计价单位 | 说明 |
---|---|---|---|
jvm.gc.live.data.size |
GatewayJvmGcLiveDataSizeBytes |
字节 | 完全 GC 后的旧代内存池大小。 |
jvm.gc.max.data.size |
GatewayJvmGcMaxDataSizeBytes |
字节 | 旧代内存池的最大大小。 |
jvm.gc.memory.promoted |
GatewayJvmGcMemoryPromotedBytesTotal |
字节 | 从 GC 之前到 GC 之后这段时间,旧代内存池大小正增加的计数。 |
jvm.gc.pause.max.time |
GatewayJvmGcPauseSecondsMax |
秒 | GC 暂停最长时间。 |
jvm.gc.pause.total.count |
GatewayJvmGcPauseSecondsCount |
计数 | GC 暂停计数。 |
jvm.gc.pause.total.time |
GatewayJvmGcPauseSecondsSum |
秒 | GC 暂停总时间。 |
jvm.memory.committed |
GatewayJvmMemoryCommittedBytes |
字节 | 分配给 JVM 的内存(字节)。 |
jvm.memory.used |
GatewayJvmMemoryUsedBytes |
字节 | 已使用的内存(字节)。 |
请求的最长时间 | GatewayHttpServerRequestsMilliSecondsMax |
毫秒 | 请求的最长时间。 |
process.cpu.usage |
GatewayProcessCpuUsage |
百分比 | JVM 进程的最近 CPU 使用率。 |
请求计数 | GatewayHttpServerRequestsSecondsCount |
计数 | 请求数量。 |
system.cpu.usage |
GatewaySystemCpuUsage |
百分比 | 整个系统的最近 CPU 使用率。 |
受限请求计数 | GatewayRatelimitThrottledCount |
计数 | 受限请求的计数。 |