Knative Serving 指标¶
管理员可以根据每个 Serving 组件公开的指标来监控 Serving 控制平面。
注意
这些指标可能会随着我们从 OpenCensus 迁移到 OpenTelemetry 而发生变化。
队列代理¶
队列代理是每个 pod 的边车,用于强制执行容器并发性并向自动扩缩器提供指标。以下指标为您提供了关于排队请求和用户容器行为的见解。
kn.queueproxy.depth¶
仪表类型: Int64Gauge
单位 (UCUM): {request}
描述: 队列代理队列中当前项的数量
kn.queueproxy.app.duration¶
仪表类型: Float64Histogram
单位 (UCUM): s
描述: 任务执行的持续时间
激活器¶
以下指标可以帮助您了解当流量通过激活器时应用程序的响应情况。例如,当从零扩缩时,高请求延迟可能意味着请求花费了太多时间才能完成。
kn.revision.request.concurrency¶
仪表类型: Float64Gauge
单位 (UCUM): {request}
描述: 路由到激活器的并发请求
指标中包含以下属性
| 名称 | 类型 | 描述 |
|---|---|---|
k8s.namespace.name |
字符串 | 修订版本命名空间 |
kn.service.name |
字符串 | 与此修订版本关联的 Knative Service 名称 |
kn.configuration.name |
字符串 | 与此修订版本关联的 Knative Configuration 名称 |
kn.revision.name |
字符串 | 修订版本的名称 |
自动扩缩器¶
自动扩缩器组件公开了与其每个修订版本决策相关的许多指标。例如,在任何给定时间,您可以监控自动扩缩器希望为 Service 分配的所需 pod 数量、稳定窗口期间每秒请求的平均数量,或者自动扩缩器是否处于恐慌模式 (KPA)。
以下自动扩缩指标中包含以下属性
| 名称 | 类型 | 描述 |
|---|---|---|
k8s.namespace.name |
字符串 | 修订版本命名空间 |
kn.service.name |
字符串 | 与此修订版本关联的 Knative Service 名称 |
kn.configuration.name |
字符串 | 与此修订版本关联的 Knative Configuration 名称 |
kn.revision.name |
字符串 | 修订版本的名称 |
kn.autoscaler.scrape.duration¶
仪表类型: Float64Histogram
单位 (UCUM): s
描述: 抓取修订版本的持续时间
kn.revision.pods.desired¶
仪表类型: Int64Gauge
单位 (UCUM): {pod}
描述: 自动扩缩器希望分配的 pod 数量
kn.revision.capacity.excess¶
仪表类型: Float64Gauge
单位 (UCUM): {concurrency}
描述: 在稳定窗口期间观察到的过剩突发容量
kn.revision.concurrency.stable¶
仪表类型: Float64Gauge
单位 (UCUM): {concurrency}
描述: 在稳定窗口期间观察到的每个 pod 的平均请求计数
kn.revision.concurrency.panic¶
仪表类型: Float64Gauge
单位 (UCUM): {concurrency}
描述: 在恐慌窗口期间观察到的每个 pod 的平均请求计数
kn.revision.concurrency.target¶
仪表类型: Float64Gauge
单位 (UCUM): {concurrency}
描述: 每个 pod 的所需并发请求数
kn.revision.rps.stable¶
仪表类型: Float64Gauge
单位 (UCUM): {request}/s
描述: 在稳定窗口期间观察到的每个 pod 的平均每秒请求数
kn.revision.rps.panic¶
仪表类型: Float64Gauge
单位 (UCUM): {request}/s
描述: 在恐慌窗口期间观察到的每个 pod 的平均每秒请求数
kn.revision.pods.requested¶
仪表类型: Int64Gauge
单位 (UCUM): {pod}
描述: 自动扩缩器从 Kubernetes 请求的 pod 数量
kn.revision.pods.count¶
仪表类型: Int64Gauge
单位 (UCUM): {pod}
描述: 当前分配的 pod 数量
kn.revision.pods.not_ready.count¶
仪表类型: Int64Gauge
单位 (UCUM): {pod}
描述: 当前未就绪的 pod 数量
kn.revision.pods.pending.count¶
仪表类型: Int64Gauge
单位 (UCUM): {pod}
描述: 当前待处理的 pod 数量
kn.revision.pods.terminating.count¶
仪表类型: Int64Gauge
单位 (UCUM): {pod}
描述: 当前正在终止的 pod 数量
Webhook 指标¶
Webhook 指标报告有关操作的有用信息。例如,如果大量操作失败,这可能表明用户创建的资源存在问题。
http.server.request.duration¶
Knative 使用 OpenTelemetry otel-go/otelhttp 包实现了 HTTP 服务器的语义约定。
有关其导出的 HTTP 服务器指标的详细信息,请参阅 OpenTelemetry 文档。
指标中包含以下属性
| 名称 | 类型 | 描述 | 示例 |
|---|---|---|---|
kn.webhook.type |
字符串 | 指定调用的 webhook 类型 | admission、defaulting、validation、conversion |
kn.webhook.resource.group |
字符串 | 指定资源 Kubernetes 组名称 | |
kn.webhook.resource.version |
字符串 | 指定资源 Kubernetes 组版本 | |
kn.webhook.resource.kind |
字符串 | 指定资源 Kubernetes 组类型 | |
kn.webhook.subresource |
字符串 | 指定子资源 | "" (空)、status、scale |
kn.webhook.operation.type |
字符串 | 指定调用 webhook 的操作 | CREATE、UPDATE、DELETE |
kn.webhook.operation.status |
字符串 | 指定操作是否成功 | success、failed |
kn.webhook.handler.duration¶
仪表类型: 直方图
单位 ([UCUM): s
描述: 任务执行的持续时间。
指标中包含以下属性
| 名称 | 类型 | 描述 | 示例 |
|---|---|---|---|
kn.webhook.type |
字符串 | 指定调用的 webhook 类型 | admission、defaulting、validation、conversion |
kn.webhook.resource.group |
字符串 | 指定资源 Kubernetes 组名称 | |
kn.webhook.resource.version |
字符串 | 指定资源 Kubernetes 组版本 | |
kn.webhook.resource.kind |
字符串 | 指定资源 Kubernetes 组类型 | |
kn.webhook.subresource |
字符串 | 指定子资源 | "" (空)、status、scale |
kn.webhook.operation.type |
字符串 | 指定调用 webhook 的操作 | CREATE、UPDATE、DELETE |
kn.webhook.operation.status |
字符串 | 指定操作是否成功 | success、failed |
工作队列指标¶
Knative 控制器公开 client-go 工作队列指标
以下指标中包含以下属性
| 名称 | 类型 | 描述 |
|---|---|---|
名称 |
字符串 | 工作队列的名称 |
kn.workqueue.depth¶
仪表类型: Int64UpDownCounter
单位 (UCUM): {item}
描述: 队列中当前项的数量
kn.workqueue.adds¶
仪表类型: Int64Counter
单位 (UCUM): {item}
描述: 添加到队列中的项的数量
kn.workqueue.queue.duration¶
仪表类型
单位 (UCUM): s
描述: 项在工作队列中停留的时间
kn.workqueue.process.duration¶
仪表类型: Float64Histogram
单位 (UCUM): s
描述: 从工作队列处理一个项所需的时间(秒)
kn.workqueue.unfinished_work¶
仪表类型: Float64Gauge
单位 (UCUM): s
描述: 协调器已完成但正在进行中且未观察到持续时间的工时(秒)。大值表示线程卡住。可以通过观察此值增加的速度来推断卡住的线程数量。
kn.workqueue.longest_running_processor¶
仪表类型: Float64Gauge
单位 (UCUM): s
描述: 运行时间最长的工作线程已运行的时间
kn.workqueue.retries¶
仪表类型: Int64Counter
单位 (UCUM): {item}
描述: 重新添加到队列中的项的数量
Go 运行时¶
Knative 使用 OpenTelemetry otel-go/instrumentation/runtime 包实现了 Go 运行时指标的语义约定。
有关其导出的 Go 运行时指标的详细信息,请参阅 OpenTelemetry 文档。