服务指标¶
每个 Knative 服务都有一个代理容器,它代理到应用程序容器的连接。队列代理性能会报告许多指标。
使用以下指标,您可以衡量请求是否在代理端排队(需要背压)以及在应用程序端为请求提供服务时实际延迟了多少。
队列代理指标¶
请求端点。
指标名称 | 描述 | 类型 | 标签 | 单位 | 状态 |
---|---|---|---|---|---|
revision_request_count |
路由到队列代理的请求数 | 计数器 | configuration_name container_name namespace_name pod_name response_code response_code_class revision_name service_name |
无量纲 | 稳定 |
revision_request_latencies |
响应时间(毫秒) | 直方图 | configuration_name container_name namespace_name pod_name response_code response_code_class revision_name service_name |
毫秒 | 稳定 |
revision_app_request_count |
路由到用户容器的请求数 | 计数器 | configuration_name container_name namespace_name pod_name response_code response_code_class revision_name service_name |
无量纲 | 稳定 |
revision_app_request_latencies |
响应时间(毫秒) | 直方图 | configuration_name namespace_name pod_name response_code response_code_class revision_name service_name |
毫秒 | 稳定 |
revision_queue_depth |
服务和等待队列中当前项数,或在并发性无限制的情况下不报告 | 仪表 | configuration_name event-display container_name namespace_name pod_name response_code_class revision_name service_name |
无量纲 | 稳定 |
注意
如果修订版本并发性硬限制设置为大于 1 的值,则将导出 revision_queue_depth
指标。
公开队列代理指标¶
队列代理在端口 9091 上公开请求端点的指标。当 observability
配置图中的 metrics.request-metrics-backend-destination
设置为 prometheus
(默认值)时,Prometheus 可以抓取这些指标。后端可以更改为 opencensus
,它使用推送模型并需要一个目标地址,可以在同一个配置图中通过 metrics.opencensus-address
设置。用户可以使用 metrics.request-metrics-reporting-period-seconds
控制两个后端的报告周期。如果 metrics.request-metrics-reporting-period-seconds
完全没有设置,则报告周期取决于全局报告周期的值,即 metrics.reporting-period-seconds
,它会影响控制平面和数据平面。如果两个属性都不可用,则报告周期默认情况下对 Prometheus 后端为 5 秒,对 Opencensus 后端为 60 秒。
以下是如何连接到 OpenTelemetry 收集器 的可观察性配置图的示例配置
metrics.request-metrics-backend-destination: "opencensus"
metrics.opencensus-address: "otel-collector.metrics:55678"
metrics.request-metrics-reporting-period-seconds: "1"
注意
报告周期为 1 秒,以便我们尽快推送指标,但这可能会使目标指标后端不堪重负。将值设置为零或负值默认为 10 秒(并不意味着没有延迟),这是 Opencensus 指标客户端库定义的默认报告周期。后者被 Knative Serving 用于导出指标。