第 8 章 Observability(可观察性)


8.1. 管理员指标

8.1.1. Serverless 管理员指标

指标 (metrics) 可以让集群管理员监控 OpenShift Serverless 集群组件和工作负载的执行情况。

您可以通过在 OpenShift Container Platform Web 控制台 Administrator 视角中导航到 Dashboards 来查看 OpenShift Serverless 的不同指标。

8.1.1.1. 先决条件

  • 如需有关为集群启用指标的信息,请参阅 OpenShift Container Platform 文档中有关管理指标的内容。
  • 您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
  • 在 OpenShift Container Platform web 控制台中,您可以访问 Administrator 视角。
警告

如果使用 mTLS 启用 Service Mesh,则 Knative Serving 的指标会被默认禁用,因为 Service Mesh 会防止 Prometheus 提取指标。

有关解决这个问题的详情,请参阅在使用带有 mTLS 的 Service Mesh 时启用 Knative Serving 指标

提取指标不会影响 Knative 服务的自动扩展,因为提取请求不会通过激活器。因此,如果没有 pod 正在运行,则不会进行提取。

8.1.2. Serverless 控制器指标

以下指标由实施控制器逻辑的任何组件提供。这些指标显示协调操作的详细信息,以及将协调请求添加到工作队列的工作队列行为。

指标名称描述类型Tags单位

work_queue_depth

工作队列的深度。

量表

reconciler

整数(无单位)

reconcile_count

协调操作的数量。

计数

reconciler, success

整数(无单位)

reconcile_latency

协调操作的延迟。

Histogram

reconciler, success

Milliseconds

workqueue_adds_total

由工作队列处理的添加操作总数。

计数

name

整数(无单位)

workqueue_queue_latency_seconds

在请求之前,项目保留在工作队列中的时长。

Histogram

name

workqueue_retries_total

工作队列处理的重试总数。

计数

name

整数(无单位)

workqueue_work_duration_seconds

处理和从工作队列中项目所需的时间。

Histogram

name

workqueue_unfinished_work_seconds

未完成的工作队列项目的时间长度。

Histogram

name

workqueue_longest_running_processor_seconds

在处理中的、未完成的工作队列项的最长时间。

Histogram

name

8.1.3. Webhook 指标

Webhook 指标报告有关操作的有用信息。例如,如果大量操作失败,这可能表示用户创建的资源出现问题。

指标名称描述类型Tags单位

request_count

路由到 webhook 的请求数。

计数

admission_allowed, kind_group, kind_kind, kind_version, request_operation, resource_group, resource_namespace, resource_resource, resource_version

整数(无单位)

request_latencies

Webhook 请求的响应时间。

Histogram

admission_allowed, kind_group, kind_kind, kind_version, request_operation, resource_group, resource_namespace, resource_resource, resource_version

Milliseconds

8.1.4. Knative Eventing 指标

集群管理员可查看 Knative Eventing 组件的以下指标。

通过聚合 HTTP 代码的指标,事件可以分为两类:成功事件 (2xx) 和失败的事件 (5xx) 。

8.1.4.1. 代理入口指标

您可以使用以下指标调试代理 ingress,请参阅它的执行方式,以及哪些事件由 ingress 组件分配。

指标名称描述类型Tags单位

event_count

代理接收的事件数。

计数

broker_name, event_type, namespace_name, response_code, response_code_class, unique_name

整数(无单位)

event_dispatch_latencies

将事件发送到频道的时间。

Histogram

broker_name, event_type, namespace_name, response_code, response_code_class, unique_name

Milliseconds

8.1.4.2. 代理过滤指标

您可以使用以下指标调试代理过滤器,查看它们的执行方式,以及过滤器正在分配哪些事件。您还可以测量事件的过滤操作的延迟。

指标名称描述类型Tags单位

event_count

代理接收的事件数。

计数

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

整数(无单位)

event_dispatch_latencies

将事件发送到频道的时间。

Histogram

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

Milliseconds

event_processing_latencies

将事件分配给触发器订阅者前处理事件所需的时间。

Histogram

broker_name, container_name, filter_type, namespace_name, trigger_name, unique_name

Milliseconds

8.1.4.3. InMemoryChannel 分配程序指标

您可以使用以下指标调试 InMemoryChannel 频道,查看它们的运行方式,并查看频道正在分配哪些事件。

指标名称描述类型Tags单位

event_count

InMemoryChannel 频道发送的事件数量。

计数

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

整数(无单位)

event_dispatch_latencies

InMemoryChannel 频道分配事件的时间。

Histogram

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

Milliseconds

8.1.4.4. 事件源指标

您可以使用以下指标验证事件是否从事件源发送到连接的事件接收器(sink)。

指标名称描述类型Tags单位

event_count

事件源发送的事件数。

计数

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

整数(无单位)

retry_event_count

事件源在最初发送失败后发送的重试事件数量。

计数

event_source, event_type, name, namespace_name, resource_group, response_code, response_code_class, response_error, response_timeout

整数(无单位)

8.1.5. Knative Serving 指标

集群管理员可查看 Knative Serving 组件的以下指标。

8.1.5.1. 激活器指标

您可以使用以下指标了解应用在流量通过激活器时如何响应。

指标名称描述类型Tags单位

request_concurrency

路由到激活器的并发请求数,或者报告周期内平均并发请求数。

量表

configuration_name, container_name, namespace_name, pod_name, revision_name, service_name

整数(无单位)

request_count

要激活的请求数。这些是从活动器处理程序实现的请求。

计数

configuration_name, container_name, namespace_name, pod_name, response_code, response_code_class, revision_name, service_name,

整数(无单位)

request_latencies

已实现的路由请求的响应时间(毫秒)。

Histogram

configuration_name, container_name, namespace_name, pod_name, response_code, response_code_class, revision_name, service_name

Milliseconds

8.1.5.2. 自动缩放器指标

自动缩放器组件会公开多个与每个修订版本自动扩展行为相关的指标。例如,在任何给定时间,您可以监控自动扩展尝试为服务分配的目标 pod 数量,在 stable 窗口中每秒请求平均数量,或者如果您使用 Knative pod 自动缩放器 (KPA) ,自动扩展是否处于 panic 模式。

指标名称描述类型Tags单位

desired_pods

自动缩放器尝试为服务分配的 pod 数量。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

excess_burst_capacity

过量激增容量在稳定窗口中提供。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

stable_request_concurrency

每个通过稳定窗口观察到的 pod 的平均请求数。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

panic_request_concurrency

每个观察到的 pod 的平均请求数通过 panic 窗口。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

target_concurrency_per_pod

自动缩放器尝试发送到每个容器集的并发请求数。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

stable_requests_per_second

通过 stable 窗口中每个观察到的 pod 的平均请求数每秒数。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

panic_requests_per_second

每个通过 panic 窗口观察到的 pod 平均请求数每秒数。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

target_requests_per_second

自动缩放器针对每个 Pod 的目标请求数。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

panic_mode

如果自动扩展器处于 panic 模式,则这个值为 1,如果自动扩展器没有处于 panic 模式,则代表 0

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

requested_pods

自动缩放器从 Kubernetes 集群请求的 pod 数量。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

actual_pods

分配且当前具有就绪状态的 pod 数量。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

not_ready_pods

处于未就绪状态的 pod 数量。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

pending_pods

当前待处理的 pod 数量。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

terminating_pods

当前终止的 pod 数量。

量表

configuration_name, namespace_name, revision_name, service_name

整数(无单位)

8.1.5.3. Go 运行时指标

每个 Knative Serving control plane 进程会发出多个 Go 运行时内存统计 (MemStats) 。

注意

每个指标的 name 标签是一个空标签。

指标名称描述类型Tags单位

go_alloc

分配的堆对象的字节数。这个指标与 heap_alloc 相同。

量表

name

整数(无单位)

go_total_alloc

为堆对象分配的累积字节。

量表

name

整数(无单位)

go_sys

从操作系统获得的内存总量。

量表

name

整数(无单位)

go_lookups

运行时执行的指针查找数量。

量表

name

整数(无单位)

go_mallocs

分配的堆对象的累计数。

量表

name

整数(无单位)

go_frees

已释放的堆对象的累计数。

量表

name

整数(无单位)

go_heap_alloc

分配的堆对象的字节数。

量表

name

整数(无单位)

go_heap_sys

从操作系统获得的堆内存字节数。

量表

name

整数(无单位)

go_heap_idle

空闲、未使用的字节数。

量表

name

整数(无单位)

go_heap_in_use

当前正在使用的字节数。

量表

name

整数(无单位)

go_heap_released

返回到操作系统的物理内存字节数。

量表

name

整数(无单位)

go_heap_objects

分配的堆对象数量。

量表

name

整数(无单位)

go_stack_in_use

堆栈中当前正在使用的字节数。

量表

name

整数(无单位)

go_stack_sys

从操作系统获得的堆栈内存字节数。

量表

name

整数(无单位)

go_mspan_in_use

分配的 mspan 结构的字节数。

量表

name

整数(无单位)

go_mspan_sys

从操作系统获得的用于 mspan 结构的内存字节数。

量表

name

整数(无单位)

go_mcache_in_use

分配的 mcache 结构的字节数。

量表

name

整数(无单位)

go_mcache_sys

从操作系统获取的用于 mcache 结构的内存字节数。

量表

name

整数(无单位)

go_bucket_hash_sys

分析 bucket 哈希表中的内存字节数。

量表

name

整数(无单位)

go_gc_sys

垃圾回收元数据中的字节内存数量。

量表

name

整数(无单位)

go_other_sys

其它非堆运行时分配的内存字节数。

量表

name

整数(无单位)

go_next_gc

下一个垃圾回收周期的目标堆大小。

量表

name

整数(无单位)

go_last_gc

最后一次垃圾回收完成的时间(Epoch 或 Unix 时间)。

量表

name

Nanoseconds

go_total_gc_pause_ns

自程序启动以来,垃圾回收的 stop-the-world 暂停的累积时间。

量表

name

Nanoseconds

go_num_gc

完成的垃圾回收周期数量。

量表

name

整数(无单位)

go_num_forced_gc

由于应用调用垃圾回收功能而强制执行的垃圾回收周期数量。

量表

name

整数(无单位)

go_gc_cpu_fraction

程序启动后,被垃圾收集器使用的程序可用 CPU 时间的比例。

量表

name

整数(无单位)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.