更新时间:2023-05-26 GMT+08:00

普罗语句说明

AOM对接了PromQL(Prometheus Query Language)语言,该语言内置了丰富的函数,用户可使用该内置函数对指标数据筛选和聚合。 按普罗语句添加指标时,用户可通过普罗语句自定义汇聚指标。

普罗语句语法

普罗语句语法详情可登录prometheus官网查看。

普罗语句查询举例说明

  • 示例一:集群下指定pod占所在节点(不含控制节点)的内存使用率
    • 定义变量:
      • pod中容器内存实际占用量(同一个Pod下可能会有多个容器/实例):aom_container_memory_used_megabytes
      • node内存实际总量:aom_node_memory_total_megabytes
    • 查询逻辑:
      • 针对指标aom_container_memory_used_megabytes,使用聚合函数sum,按照nodeIP和podID进行指定node下指定pod当前的内存实际占用量计算。
      • 针对指标aom_node_memory_total_megabytes,使用聚合函数sum,按照nodeIP计算出指定node的内存总量。
      • 两者均采用(by nodeIP)进行过滤,以使获得的指标值具有相同的指标维度。(仅value不同)
      • 将上述两者获得的指标值进行“/”运算,即可获得pod的内存实际使用率。
    • pod的内存实际使用率的普罗语句如下所示:

      sum(aom_container_memory_used_megabytes{podID="****1461-41d8-****-bfeb-fc1213****",nodeIP="***.***.***.***"}) by (nodeIP) / sum(aom_node_memory_total_megabytes{nodeIP="***.***.***.***"}) by (nodeIP)

  • 示例二:集群下指定pod占所在节点(不含控制节点)的cpu使用率
    • 定义变量:
      • pod中容器的cpu实际使用量:aom_container_cpu_used_core
      • node的cpu实际总量:aom_node_cpu_limit_core
    • 查询逻辑:
      • 针对指标aom_container_cpu_used_core,使用聚合函数sum,按照nodeIP和podID计算指定node下指定pod当前使用的cpu使用率。
      • 针对指标aom_node_cpu_limit_core,使用聚合函数sum,按照nodeIP计算出指定node的cpu总量。
      • 两者均采用(by nodeIP)进行过滤,以使获得的指标值具有相同的指标维度。(仅value不同)
      • 将上述两者获得的指标值进行“/”运算,即可获得pod的内存实际使用率。
    • pod的cpu实际使用率的promQL如下所示:

      sum(aom_container_cpu_used_core{nodeIP="***.***.***.***",podID="****1461-41d8-****-bfeb-***13******"}) by (nodeIP) / sum(aom_node_cpu_limit_core{nodeIP="***.***.***.***"}) by (nodeIP)

  • 示例三:集群下运行的Pod内存配额申请值 / 集群下该Pod所在节点的内存可分配量
    • 定义变量:
      • pod中给容器分配的内存总量:aom_container_memory_request_megabytes
      • node内存实际总量:aom_node_memory_total_megabytes
    • 查询逻辑:
      • 针对指标aom_container_memory_request_megabytes,使用聚合函数sum,按照nodeIP和podID计算指定node下指定pod当前被分配的内存总量。
      • 针对指标aom_node_memory_total_megabytes,使用聚合函数sum,按照nodeIP计算出指定node的内存总量。
      • 两者均采用(by nodeIP)进行过滤,以使获得的指标值具有相同的指标维度。(仅value不同)
      • 将上述两者获得的指标值进行“/”运算,即可获得pod的内存实际分配率。
    • pod的内存实际分配率的promQL如下所示:

      sum(aom_container_memory_request_megabytes{podID="****1461-41d8-4403-****-f***35*****",nodeIP="***.***.***.***"}) by (nodeIP) / sum(aom_node_memory_total_megabytes{nodeIP="***.***.***.***"}) by (nodeIP)

  • 示例四:集群下运行的Pod的cpu配额申请值 / 集群下该Pod所在节点的cpu可分配量
    • 定义变量:
      • pod中容器的cpu实际分配总量:aom_container_cpu_limit_core
      • node的cpu实际分配总量:aom_node_cpu_limit_core
    • 查询逻辑:
      • 针对指标aom_container_cpu_limit_core,使用聚合函数sum,按照nodeIP和podID计算指定node下指定pod当前使用的cpu分配量。
      • 针对指标aom_node_cpu_limit_core,使用聚合函数sum,按照nodeIP计算出指定node的cpu总量。
      • 两者均采用(by nodeIP)进行过滤,以使获得的指标值具有相同的指标维度。(仅value不同)
      • 将上述两者获得的指标值进行“/”运算,即可获得pod的cpu实际分配率。
    • pod的cpu实际分配率的promQL如下所示:

      sum(aom_container_cpu_limit_core{podID="*****461-41d8-****-bfeb-****135*****",nodeIP="***.***.***.***"}) by (nodeIP) / sum(aom_node_cpu_limit_core{nodeIP="***.***.***.***"}) by (nodeIP)

常用的普罗命令

常用的查询指标的普罗命令如表1所示,用户可根据实际修改其中的IP地址、ID等参数信息。

表1 常用的普罗命令

指标

标签定义

PromQL

主机CPU使用率

{nodeIP="",hostID=""}

aom_node_cpu_usage{nodeIP="192.168.57.93",hostID="ca76b63f-dbf8-4b60-9c71-7b9f13f5ad61"}

主机应用请求吞吐量

{aomApplicationID="",aomApplicationName=""}

http_requests_throughput{aomApplicationID="06dc9f3b0d8cb867453ecd273416ce2a",aomApplicationName="root"}

主机应用请求成功率

{appName="",serviceID="",clusterId=""}

http_requests_success_rate{aomApplicationID="06dc9f3b0d8cb867453ecd273416ce2a",aomApplicationName="root"

主机组件CPU使用率

{appName="",serviceID="",clusterId=""}

aom_process_cpu_usage{appName="icagent",serviceID="2d29673a69cd82fabe345be5f0f7dc5f",clusterId="00000000-0000-0000-0000-00000000"}

主机进程线程数

{processCmd=""}{processID=""}{processName=""}

aom_process_thread_count{processCmd="cdbc06c2c05b58d598e9430fa133aff7_b14ee84c-2b78-4f71-9ecc-2d06e053172c_ca4d29a846e9ad46a187ade88048825e",processName="icwatchdog"}

集群磁盘使用率

{clusterId="",clusterName=""}

aom_cluster_disk_usage{clusterId="4ba8008c-b93c-11ec-894a-0255ac101afc",clusterName="servicestage-test"}

集群虚拟内存使用率

{clusterId="",clusterName=""}

aom_node_virtual_memory_usage{nodeIP="192.168.10.4",clusterId="af3cc895-bc5b-11ec-a642-0255ac101a0b",nameSpace="default"}

集群可用虚拟内存

{clusterId="",clusterName=""}

aom_cluster_virtual_memory_free_megabytes{clusterId="4ba8008c-b93c-11ec-894a-0255ac101afc",clusterName="servicestage-test"}

工作负载文件系统使用率

{appName="",serviceID="",clusterId="",nameSpace=""}

aom_container_filesystem_usage{appName="icagent",serviceID="cfebc2222b1ce1e29ad827628325400e",clusterId="af3cc895-bc5b-11ec-a642-0255ac101a0b",nameSpace="kube-system"}

POD内核占用

{podID="",podName=""}

aom_container_cpu_used_core{podID="573663db-4f09-4f30-a432-7f11bdb8fb2e",podName="icagent-bkm6q"}

容器上行Bps

{containerID="",containerName=""}

aom_container_network_transmit_bytes{containerID="16bf66e9b62c08493ef58ff2b7056aae5d41496d5a2e4bac908c268518eb2cbc",containerName="coredns"}