日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Histogram類型指標的Buckets配置

服務網格 ASM(Service Mesh)支持將不同類型的指標進行采集到Prometheus,例如Histogram,Counter等。其中Histogram是Prometheus中的一種重要的數據類型,用于收集和分析分布數據,特別是用于測量請求持續時間、響應大小等指標。Histogram允許記錄一組值及其分布,它不僅可以提供總計數和總值,還允許定義多個Buckets來統計不同范圍的值。本文將介紹如何配置ASM中Histogram類型指標的Buckets。

前提條件

已創建并添加集群到ASM實例,實例版本為1.19及以上。具體操作,請參見添加集群到ASM實例

通過注解配置指標Buckets

ASM支持工作負載級別的指標Buckets配置,您可以通過為部署的應用Pod添加sidecar.istio.io/statsHistogramBuckets注解,來配置指定Histogram類型指標的Buckets。

您可以通過添加注解對以下Histogram指標進行配置。

指標類型

指標名

Istio指標

  • istiocustom.istio_request_duration_milliseconds

  • istiocustom.istio_request_bytes

  • istiocustom.istio_response_bytes

Envoy指標

  • cluster_manager

  • listener_manager

  • server

  • cluster.xds-grpc

關于上述指標的詳細說明,請參見Istio Standard MetricsEnvoy Statistics

以下示例展示了為應用Pod配置Istio和Envoy的cluster.xds-grpcHistogram指標,將Buckets修改為[1,5,10]

kubectl patch pod <POD_NAME> -p '{"metadata":{"annotations":{"sidecar.istio.io/statsHistogramBuckets": {"istiocustom":[1,5,10],"cluster.xds-grpc":[1,5,10]}}}}'
重要

Istio采用前綴匹配的方式對指標名稱進行匹配,例如,配置istiocustom會對所有Istio Histogram類型指標生效。

示例演示

以下演示如何通過添加注解來修改Envoy的xds-grpc指標Buckets。

部署示例應用

  1. 使用以下內容,創建httpbin應用。具體操作,請參見部署httpbin應用

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: httpbin
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: httpbin
          version: v1
      template:
        metadata:
          labels:
            app: httpbin
            version: v1
        spec:
          containers:
          - image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/httpbin:0.1.0
            imagePullPolicy: IfNotPresent
            name: httpbin
            ports:
            - containerPort: 80
  2. 執行以下命令,查看httpbin應用的狀態。

    kubectl get pod

    預期輸出:

    NAME                      READY   STATUS    RESTARTS   AGE
    httpbin-fd686xxxx         2/2     Running   0          2m16s

查看并修改當前指標Buckets

  1. 執行以下命令,查看當前httpbin應用的指標Buckets。

    kubectl exec -it httpbin-fd686xxxx -c istio-proxy -- curl localhost:15000/stats/prometheus |grep envoy_cluster_upstream_cx_connect_ms_bucket

    預期輸出:

    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="0.5"} 10
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="1"} 10
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="5"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="10"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="25"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="50"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="100"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="250"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="500"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="1000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="2500"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="5000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="10000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="30000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="60000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="300000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="600000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="1800000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="3600000"} 11
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="+Inf"} 11

    可以看到此時xds-grpc指標的取值范圍為[0.5,1,5,10,25,50,100,250,500,1000,2500,5000,10000,30000,60000,300000,600000,1800000,3600000]

  2. 執行以下命令修改httpbin應用Pod的xds-grpc指標Buckets值。

    kubectl patch deployment httpbin -p '{"spec":{"template":{"metadata":{"annotations":{"sidecar.istio.io/statsHistogramBuckets":"{\"cluster.xds-grpc\":[1,5,10,25,50,100,250,500,1000,2500,5000,10000]}"}}}}}'
  3. 執行以下命令,查看Pod狀態。

    kubectl get pod

    預期輸出:

    NAME                       READY   STATUS    RESTARTS   AGE
    httpbin-85b555xxxx-xxxxx   2/2     Running   0          2m2s
  4. 執行以下命令,查看當前httpbin應用的指標Buckets。

    kubectl exec -it httpbin-85b555xxxx-xxxxx -c istio-proxy -- curl localhost:15000/stats/prometheus |grep envoy_cluster_upstream_cx_connect_ms_bucket

    預期輸出:

    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="1"} 0
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="5"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="10"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="25"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="50"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="100"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="250"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="500"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="1000"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="2500"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="5000"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="10000"} 1
    envoy_cluster_upstream_cx_connect_ms_bucket{cluster_name="xds-grpc",le="+Inf"} 1

    可以看到xds-grpc指標的取值范圍已改為[1,5,10,25,50,100,250,500,1000,2500,5000,10000]