IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> prometheus指标收集之pod实例、jvm -> 正文阅读

[系统运维]prometheus指标收集之pod实例、jvm

工作中使用kub-prometheus整理的一些指标项

k8s版本和prometheus版本可能会有不同,官网提供的标准指标说明,但指代的不是很明确,官方地址官网指标说明

pod指标

配置的最大内存:kube_pod_container_resource_limits_memory_bytes{namespace=“qiaofeng-namespace”,pod=“example-app-5467f47778-ktzgn”}

配置的最大cpu:kube_pod_container_resource_limits_cpu_cores{namespace=“qiaofeng-namespace”,pod=“example-app-5467f47778-ktzgn”}

内存使用率:sum(container_memory_working_set_bytes{namespace=“qiaofeng-namespace”,pod=“example-app-5467f47778-ktzgn”})by(pod)/sum(container_spec_memory_limit_bytes{namespace=“qiaofeng-namespace”,pod=“example-app-5467f47778-ktzgn”})by (pod)*100

cpu利用率:node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=“qiaofeng-namespace”,container=“example-app”,pod=“example-app-5467f47778-ktzgn”}*100

一、cpu/内存/负载

  1. cpu
  • 配置的最大cpu:kube_pod_container_resource_limits_cpu_cores{namespace=“qiaofeng-namespace”,pod=“example-app-5467f47778-ktzgn”}
  • cpu使用率:

node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=“qiaofeng-namespace”,container=“example-app”,pod=“example-app-5467f47778-ktzgn”}*100

  1. 内存
  • 配置的最大内存(0表示没有配置):kube_pod_container_resource_limits_cpu_cores{namespace=“qiaofeng-namespace”,pod=“example-app-5467f47778-ktzgn”}
  • 内存使用率: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate{namespace=“qiaofeng-namespace”,container=“example-app”,pod=“example-app-5467f47778-ktzgn”}*100
  1. 系统平均负载–(低版本的k8s好像没这个指标)
  • 1m间隔:container_cpu_load_average_10s{}

  • 10m间隔:container_cpu_load_average_10s{}

  • 15m间隔:container_cpu_load_average_10s{}

    建议根据查询的步长来选择间隔时长

三、网络

  1. 网络接收(流入)
  • 接收字节的累积计数变化量:idelta(container_network_receive_bytes_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])
  • 接收数据包的累积计数变化量:idelta(container_network_receive_packets_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])
  • 接收时遇到的错误累计数变化量:idelta(container_network_receive_errors_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])
  • 接收时丢弃的数据包的累积变化量:idelta(container_network_receive_packets_dropped_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])
  1. 网络传输(流出)
  • 传输字节的累积计数变化量:idelta(container_network_transmit_bytes_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])

  • 传输数据包的累积计数变化量:idelta(container_network_transmit_packets_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])

  • 传输时遇到的错误累积计数变化量:idelta(container_network_transmit_errors_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])

  • 传输时丢弃的数据包的累积计数变化量:idelta(container_network_transmit_packets_dropped_total{interface=“eth0”,namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}[1m])

  1. 线程数
  • 容器内运行的线程数:container_threads{namespace=“qiaofeng-namespace”,pod=“example-app-5849f9c9b-l7k8z”}
  • 容器最大线程数:没读到该指标

jvm指标项

  1. 应用基本信息
  • 项目运行状态:up{namespace="$namespace", service="$service", pod="$pod"}
  • 项目运行时长(毫秒):java_lang_Runtime_Uptime{namespace="$namespace", service="$service", pod="$pod"}
  • 项目start时刻(秒): process_start_time_seconds{namespace="$namespace", service="$service", pod="$pod"}
  • jdk版本:jvm_info{namespace="$namespace", service="$service", pod="$pod"}
  1. 堆内存
  • 配置的最大堆内内存(Max Heap): jvm_memory_bytes_max{namespace="$namespace", service="$service", pod="$pod", area="heap"}
  • 配置的最大堆外内存,没配置返回-1(Max NoHeap): jvm_memory_bytes_max{namespace="$namespace", service="$service", pod="$pod",area="nonheap"}
  • 已使用堆内内存(Used_Heap) : jvm_memory_bytes_used{namespace="$namespace", service="$service", pod="$pod",area="heap"}
  • 已使用堆外内存(Used_Heap) : jvm_memory_bytes_used{namespace="$namespace", service="$service", pod="$pod",area="noheap"}
  1. jvm cpu
  • 获取所在操作系统cpu百分比(system cpu Ratio): java_lang_OperatingSystem_SystemCpuLoad{namespace="$namespace", service="$service", pod="$pod"} * 100
  • ***应用所使用的cpu百分比(process cpu Ratio): java_lang_OperatingSystem_ProcessCpuLoad{namespace="$namespace", service="$service", pod="$pod"} * 100
  • ***应用所操作系统的cpu核数(System Cpus Count): java_lang_OperatingSystem_AvailableProcessors{namespace="$namespace", service="$service", pod="$pod"}
  • ***应用所在操作系统的cpu使用率(System Cpus Ratio): java_lang_OperatingSystem_SystemCpuLoad{namespace="$namespace", service="$service", pod="$pod"}
  1. jvm Total gc
  • YGC 总次数(Total YGC):jvm_gc_collection_seconds_count{namespace="$namespace", service="$service", pod="$pod",gc="Copy"}
  • FGC 总次数(Total FGC):jvm_gc_collection_seconds_count{namespace="$namespace", service="$service", pod="$pod",gc="MarkSweepCompact"}
  1. jvm Count gcTime
  • YGCT 总耗时-秒级别(Count YGCT):jvm_gc_collection_seconds_sum{namespace="$namespace", service="$service", pod="$pod",gc="Copy"}
  • FGCT总耗时-秒级别(Count FGCT):jvm_gc_collection_seconds_sum{namespace="$namespace", service="$service", pod="$pod",gc="MarkSweepCompact"}
  1. jvm Increment Gc Count 增量信息,
  • 某时段发生的YGC总次数(Increment YGC Count ): idelta(jvm_gc_collection_seconds_count{namespace="$namespace", service="$service", pod="$pod",gc="Copy"}[1m])
  • 某时段发生的FGC总次数(Increment FGC Count)-数据粒度前端传: idelta(jvm_gc_collection_seconds_count{namespace="$namespace", service="$service", pod="$pod",gc="MarkSweepCompact"}[1m])
  • 某个时间段YGC增量的总时长) ( Increment YGC Time): idelta(jvm_gc_collection_seconds_sum{namespace="$namespace", service="$service", pod="$pod",gc="Copy"}[1m])
  • 某个时间段FGC增量的总时长) ( Increment FGC Time): idelta(jvm_gc_collection_seconds_sum{namespace="$namespace", service="$service", pod="$pod",gc="Copy"}[1m])
  1. Threads 线程
  • 线程数峰值-感觉没啥用: jvm_threads_peak{namespace="$namespace",service="$service",pod="$pod"}

  • 当前线程数: jvm_threads_current{namespace="$namespace",service="$service",pod="$pod"}

  • jvm后台线程数守护线程数:jvm_threads_daemon{namespace="$namespace",service="$service",pod="$pod"}

  • 死锁线程数量: jvm_threads_deadlocked{namespace="$namespace",service="$service",pod="$pod"}

  • 获取某个状态的线程数–可以单开一个坐标轴,包含

  • 在这里插入图片描述

  1. classes
  • 获取当前jvm已加载数量:jvm_classes_loaded
  • 从jvm运行开始加载的类的数量,这是一个Counter指标,递增:jvm_classes_loaded_total
  • 获取每段时间加载的类数量: idelta(jvm_classes_loaded_total{namespace="$namespace", service="$service", pod="$pod"}[1m])
  • jvm运行后卸载的类数量,这是一个Counter指标: jvm_classes_unloaded_total{namespace="$namespace", service="$service", pod="$pod"}
  • 获取每段时间卸载类数量:idelta(jvm_classes_unloaded_total{namespace="$namespace", service="$service", pod="$pod"}[1m])

9)堆外内存之nio缓存内存(DirectByteBuffer)

获取分配的缓冲区大小:jvm_buffer_pool_capacity_bytes{pool=“direct”}

获取已经使用缓存区大小:jvm_buffer_pool_used_buffers{pool=“direct”}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:35:20  更:2022-03-06 13:38:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:12:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码