在实际服务中,您经常需要根据当前服务并发请求数来进行业务指标判断,而Knative正是通过queue-proxy容器实现了对请求指标的采集。本文介绍如何结合Prometheus呈现Knative服务中Pod请求指标。

步骤一:安装Prometheus监控组件

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,选择市场 > 应用目录
  3. 应用目录页面的阿里云应用页签中,单击ack-arms-prometheus
  4. 应用目录 - ack-arms-prometheus页面,单击参数
  5. 参数页签,配置集群ID参数cluster_id
    说明

    ACK自动匹配目标集群ID。在控制台左侧导航栏选择集群 > 集群进入集群列表,目标集群的名称下面的字符串即为集群ID。

  6. 应用目录 - ack-arms-prometheus右侧的创建面板中,选择目标集群,然后单击创建
    arms
    说明 命名空间发布名称默认为arms-prom

步骤二:设置queue-proxy采集Job规则

  1. 登录ARMS 控制台
  2. 在左侧导航栏中单击Prometheus监控
  3. Prometheus监控页面,单击操作列下的设置
  4. 单击Prometheus设置页签,在Prometheus.yaml文件中添加以下内容,然后单击保存
    global:  
      scrape_interval: 30s
      scrape_timeout: 10s
      evaluation_interval: 30s
    scrape_configs:
    - job_name: queue-proxy
      scrape_interval: 3s
      scrape_timeout: 3s
      kubernetes_sd_configs:
      - role: pod
      relabel_configs:
      # Rename metadata labels to be reader friendly
      - source_labels: [__meta_kubernetes_pod_label_serving_knative_dev_revision, __meta_kubernetes_pod_container_port_name]
        action: keep
        regex: .+;http-autometric
      - source_labels: [__meta_kubernetes_namespace]
        target_label: namespace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: pod
      - source_labels: [__meta_kubernetes_service_name]
        target_label: service
  5. 单击指标页签,查看queue-proxy相关指标。
    指标

步骤三:获取Pod请求并发数

  1. 在集群配置左侧导航栏,单击大盘列表
  2. 在插件名称下,单击Prometheus
  3. Prometheus页面左侧,单击Explore图标。explore
  4. Metrics指标下拉框中,选择queue-proxy指标进行查询。
    本文举例查询Pod每秒请求并发数指标queue_requests_per_secondmetrics
    您可以通过设置namespace、revision以及Pod名称查询Pod每秒请求连接数。示例如下。
    queue_requests_per_second{destination_configuration="helloworld-go",destination_namespace="default",destination_pod="helloworld-go-ttf52-deployment-5778d86bd6-dnxw2"}
    请求数