以下为PromeQL
的执行模板。其中:
5m
是写死的,用于检索指定范围的数据执行指标检索,根据业务场景需要适当调整范围。#LABELS#
用于Label
过滤,不同的指标过滤的Label
条件不同。#GROUPBY#
用于操作语句对结果数据进行分组,便于操作符两边的Label
能够对应,对应才能够执行操作,也便于上层获取#GROUPBY#
指定的Label
。需要依赖node-exporter
。
NodeCpuUsageRate
100*( 1 - (avg by (#GROUPBY#) (irate(node_cpu_seconds_total{job="node-exporter", mode="idle" #LABELS#}[5m]))) ) |
NodeCpuUsage
sum(irate(node_cpu_seconds_total{ job="node-exporter", mode="idle" #LABELS#}[5m] )) by (#GROUPBY#) |
NodeMemoryUsageRate
100*( 1 - ( avg( ( avg_over_time(node_memory_MemFree_bytes{job="node-exporter"#LABELS#}[5m]) + avg_over_time(node_memory_Cached_bytes{job="node-exporter"#LABELS#}[5m]) + avg_over_time(node_memory_Buffers_bytes{job="node-exporter"#LABELS#}[5m]) ) / avg_over_time(node_memory_MemTotal_bytes{job="node-exporter"#LABELS#}[5m]) ) by (#GROUPBY#) ) ) |
NodeMemoryUsage
avg( node_memory_MemTotal_bytes{job="node-exporter"#LABELS#} - node_memory_MemFree_bytes{job="node-exporter"#LABELS#} - ( node_memory_Cached_bytes{job="node-exporter"#LABELS#} + node_memory_Buffers_bytes{job="node-exporter"#LABELS#} ) ) by (#GROUPBY#) |
NodeStorageUsageRate
100*sum( 1 - ( node_filesystem_avail_bytes{job="node-exporter", mountpoint="/", fstype!="rootfs"#LABELS#} / node_filesystem_size_bytes{job="node-exporter", mountpoint="/", fstype!="rootfs"#LABELS#} ) ) by (#GROUPBY#) |
NodeStorageUsage
sum( node_filesystem_size_bytes{job="node-exporter", mountpoint="/",fstype!="rootfs" #LABELS#} - node_filesystem_avail_bytes{job="node-exporter", mountpoint="/",fstype!="rootfs" #LABELS#} ) by (#GROUPBY#) |
NodeBytesSent
sum(irate(node_network_transmit_bytes_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])) by (#GROUPBY#) |
NodeBytesReceived
sum(irate(node_network_receive_bytes_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])) by (#GROUPBY#) |
NodeBytesSentBandWidth
sum(irate(node_network_transmit_bytes_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])/128) by (#GROUPBY#) |
NodeBytesReceivedBandWidth
sum(irate(node_network_receive_bytes_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])/128) by (#GROUPBY#) |
NodeStorageReadIOPS
sum(rate(node_disk_read_time_seconds_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])) by (#GROUPBY#) |
NodeStorageWriteIOPS
sum(rate(node_disk_writes_completed_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])) by (#GROUPBY#) |
NodeStorageReadFlow
sum(rate(node_disk_read_bytes_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])) by (#GROUPBY#) |
NodeStorageWriteFlow
sum(rate(node_disk_written_bytes_total{ job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS# }[5m])) by (#GROUPBY#) |
NodeNetstatTCP
node_netstat_Tcp_CurrEstab{job="node-exporter", device!~"lo|nbd.*|sr.*|docker.*" #LABELS#} |
需要依赖cadvisor
、kube-state
的exporter
。
PodCpuUsageRate
100* sum(irate(container_cpu_usage_seconds_total{#LABELS#}[5m])) by (#GROUPBY#) / sum(container_spec_cpu_quota{#LABELS#}/container_spec_cpu_period{#LABELS#}) by (#GROUPBY#) |
PodCpuUsage
sum(rate(container_cpu_usage_seconds_total{#LABELS#}[5m])) by (#GROUPBY#) |
PodMemoryUsageRate
sum(container_memory_working_set_bytes{#LABELS#}) by (#GROUPBY#) / sum(container_spec_memory_limit_bytes{#LABELS#}) by (#GROUPBY#) <= 1 |
PodMemoryUsage
avg(container_memory_working_set_bytes{#LABELS#}) by (#GROUPBY#) |
PodStorageUsageRate
100* sum( container_fs_usage_bytes{#LABELS#} / (container_fs_limit_bytes{#LABELS#} !=0 ) ) by (#GROUPBY#) |
PodStorageUsage
avg(container_fs_usage_bytes{#LABELS#}) by (#GROUPBY#) |
PodBytesSent
sum(rate(container_network_transmit_bytes_total{#LABELS#}[5m])) by (#GROUPBY#) |
PodBytesReceived
sum(rate(container_network_receive_bytes_total{#LABELS#}[5m])) by (#GROUPBY#) |
PodBytesSentBandWidth
sum(rate(container_network_transmit_bytes_total{#LABELS#}[5m])/128) by (#GROUPBY#) |
PodBytesReceivedBandWidth
sum(rate(container_network_receive_bytes_total{#LABELS#}[5m])/128) by (#GROUPBY#) |
PodStorageReadIOPS
sum(rate(container_fs_reads_total{#LABELS#}[5m])) by (#GROUPBY#) |
PodStorageWriteIOPS
sum(rate(container_fs_writes_total{#LABELS#}[5m])) by (#GROUPBY#) |
PodStorageReadFlow
sum(rate(container_network_tcp_usage_total{#LABELS#}[5m])) by (#GROUPBY#) |
PodStorageWriteFlow
sum(rate(container_fs_reads_bytes_total{#LABELS#}[5m])) by (#GROUPBY#) |
PodNetstatTCP
sum(rate(container_fs_writes_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerCpuUsageRate
100* sum(irate(container_cpu_usage_seconds_total{#LABELS#}[5m])) by (#GROUPBY#) / sum(container_spec_cpu_quota{#LABELS#}/container_spec_cpu_period{#LABELS#}) by (#GROUPBY#) |
ContainerCpuUsage
sum(rate(container_cpu_usage_seconds_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerMemoryUsageRate
sum(container_memory_working_set_bytes{#LABELS#}) by (#GROUPBY#) / sum(container_spec_memory_limit_bytes{#LABELS#}) by (#GROUPBY#) <= 1 |
ContainerMemoryUsage
avg(container_memory_working_set_bytes{#LABELS#}) by (#GROUPBY#) |
ContainerStorageUsageRate
100* sum( container_fs_usage_bytes{#LABELS#} / (container_fs_limit_bytes{#LABELS#} != 0 ) ) by (#GROUPBY#) |
ContainerStorageUsage
avg(container_fs_usage_bytes{#LABELS#}) by (#GROUPBY#) |
ContainerBytesSent
sum(rate(container_network_transmit_bytes_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerBytesReceived
sum(rate(container_network_receive_bytes_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerBytesSentBandWidth
sum(rate(container_network_transmit_bytes_total{#LABELS#}[5m])/128) by (#GROUPBY#) |
ContainerBytesReceivedBandWidth
sum(rate(container_network_receive_bytes_total{#LABELS#}[5m])/128) by (#GROUPBY#) |
ContainerStorageReadIOPS
sum(rate(container_fs_reads_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerStorageWriteIOPS
sum(rate(container_fs_writes_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerStorageReadFlow
sum(rate(container_network_tcp_usage_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerStorageWriteFlow
sum(rate(container_fs_reads_bytes_total{#LABELS#}[5m])) by (#GROUPBY#) |
ContainerNetstatTCP
sum(rate(container_fs_writes_total{#LABELS#}[5m])) by (#GROUPBY#) |