go语言和pod指标和含义
1. Go Metrics
go_memstats_heap_inuse_bytes: 正在使用的堆内存字节数。
go_memstats_heap_idle_bytes: 等待使用的堆内存字节数。
process_resident_memory_bytes: 驻留内存大小(以字节为单位)。
process_virtual_memory_bytes: 虚拟内存大小(以字节为单位)。
go_memstats_heap_alloc_bytes: 已分配并仍在使用的堆内存字节数。
go_memstats_alloc_bytes: 已分配并仍在使用的字节数。
promhttp_metric_handler_requests_in_flight: 当前正在服务的抓取次数。
go_gc_duration_seconds: GC调用持续时间的摘要。
go_memstats_heap_sys_bytes:从系统获取的堆内存字节数。
go_memstats_heap_released_bytes: 释放给操作系统的堆内存字节数。
go_goroutines: 目前存在的goroutine数量。
go_memstats_alloc_bytes_total: 已分配的字节数,即使已释放。
go_memstats_heap_objects: 已分配的对象数量。
process_open_fds: 操作系统线程创建的数量。
go_threads: 打开的文件描述符数量。
以下是可能造成这些指标异常的一些业务场景:
go_memstats_heap_inuse_bytes, go_memstats_heap_alloc_bytes, go_memstats_alloc_bytes, go_memstats_heap_objects: 如果这些值持续过高,可能表示内存泄漏或者过多的内存分配。这可能发生在处理大量数据或高并发请求的后端应用程序中,特别是如果处理过程中存在大量对象创建和销毁的操作。
go_memstats_heap_idle_bytes, go_memstats_heap_released_bytes: 如果这些值持续过低,可能表示内存管理问题,例如内存分配过于频繁,或者没有及时释放不再使用的内存。这可能发生在有大量短期对象创建和销毁的程序中,或者程序没有正确管理其内存使用的情况。
process_resident_memory_bytes, process_virtual_memory_bytes: 如果这两个值持续过高,可能表示程序正在使用大量的内存或者磁盘空间。这可能发生在处理大量数据或高并发请求的后端应用程序中,特别是如果处理过程中需要加载大量数据到内存中的情况。
promhttp_metric_handler_requests_in_flight: 如果这个值过高,可能表示服务正在处理大量的请求,或者请求的处理时间过长。这可能发生在高并发或者数据处理量过大的情况下。
go_gc_duration_seconds: 如果这个值过高,可能表示垃圾回收的效率不高,可能会导致程序的暂停时间过长。这可能发生在有大量对象被创建和销毁的情况下,或者程序使用了过多的内存。
go_goroutines, go_threads: 如果这两个值过高,可能表示程序正在创建过多的线程或者goroutine。这可能会导致系统的CPU或者内存过载,影响程序的性能。这可能发生在需要处理大量并发任务的情况下,例如处理大量用户请求或者进行大量并发数据库操作等。
2. Pod
CPU Usage:CPU 使用率,表示 Pod 的 CPU 资源使用情况。如果这个指标异常,可能是因为某些任务需要大量的 CPU 资源,而 Pod 的分配不足。例如,如果你的应用是一个 CPU 密集型应用,而分配的 CPU 资源不足,这个指标可能会异常。
Memory Usage (w/o cache):内存使用情况,不包括缓存。如果这个指标异常,可能是因为应用需要的内存超过了分配给 Pod 的内存。例如,如果你的应用需要大量的内存,而分配的内存不足,这个指标可能会异常。
CPU Resources Quota:CPU 资源配额,表示分配给 Pod 的 CPU 资源量。如果这个指标异常,可能是因为配额不足,Pod 无法满足应用的 CPU 需求。
Receive Bandwidth:接收带宽,表示 Pod 在单位时间内接收的数据量。如果这个指标异常,可能是因为网络带宽不足,Pod 接收的数据超过了网络的能力。例如,如果你的应用需要大量的数据传输,而网络带宽不足,这个指标可能会异常。
Transmit Bandwidth:传输带宽,表示 Pod 在单位时间内发送的数据量。如果这个指标异常,可能是因为网络带宽不足,Pod 发送的数据超过了网络的能力。
Memory Resource Quota - Limit:内存资源配额限制,表示分配给 Pod 的内存资源的最大限制。如果这个指标异常,可能是因为限制过高或过低,无法满足应用的内存需求。
Rate of Received Packets:接收数据包速率,表示单位时间内接收到的数据包数量。如果这个指标异常,可能是因为网络延迟或丢包,导致接收的数据包速率异常。
Rate of Transmitted Packets:传输数据包速率,表示单位时间内发送的数据包数量。如果这个指标异常,可能是因为网络延迟或丢包,导致传输的数据包速率异常。
Current Network Usage:当前网络使用情况,表示当前 Pod 的网络使用情况。如果这个指标异常,可能是因为网络拥塞或配置问题,导致网络使用异常。
Rate of Received Packets Dropped:接收数据包丢包速率,表示单位时间内接收到的丢包数量。如果这个指标异常,可能是因为网络延迟或丢包,导致接收的数据包丢包速率异常。
Rate of Transmitted Packets Dropped:传输数据包丢包速率,表示单位时间内发送的丢包数量。如果这个指标异常,可能是因为网络延迟或丢包,导致传输的数据包丢包速率异常。
Read/Write Bytes per Second:每秒读写字节数,表示 Pod 每秒读取和写入的数据量。如果这个指标异常,可能是因为磁盘 I/O 不足或配置问题,导致读写速度异常。