普罗语句说明
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内存配额申请值 / 集群下该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的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实际分配率。
- 定义变量:
常用的普罗命令
常用的查询指标的普罗命令如表1所示,用户可根据实际修改其中的IP地址、ID等参数信息。
指标 |
标签定义 |
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"} |