1

go可以通过 github.com/prometheus/client_golang 所提供的api给prometheus暴露一指标信息,prometheus通过采集这些指标达到对应用服务的监控记录、告警等操作。

Gin框架引入:

func main () {
    r := mux.NewRouter()
    // prometheus metrics 
    r.Handle("/metrics", promhttp.Handler())
    http.ListenAndServe(":8082", r)
}

指标对应含义:

metrics含义
go_gc_duration_seconds持续时间秒
go_gc_duration_seconds_sumgc-持续时间-秒数-总和
go_memstats_alloc_bytesGo内存统计分配字节
go_memstats_alloc_bytes_totalGo内存统计分配字节总数
go_memstats_buck_hash_sys_bytes用于剖析桶散列表的堆空间字节
go_memstats_frees_total内存释放统计
go_memstats_gc_cpu_fraction垃圾回收占用服务CPU工作的时间总和
go_memstats_gc_sys_bytes圾回收标记元信息使用的内存字节
go_memstats_heap_alloc_bytes服务分配的堆内存字节数
go_memstats_heap_idle_bytes申请但是未分配的堆内存或者回收了的堆内存(空闲)字节数
go_memstats_heap_inuse_bytes正在使用的堆内存字节数
go_memstats_heap_objects堆内存块申请的量
go_memstats_heap_released_bytes返回给OS的堆内存
go_memstats_heap_sys_bytes系统分配的作为运行栈的内存
go_memstats_last_gc_time_seconds持续时间秒
go_gc_duration_seconds垃圾回收器最后一次执行时间
go_memstats_lookups_total被runtime监视的指针数
go_memstats_mallocs_total服务malloc的次数
go_memstats_mcache_inuse_bytesmcache结构体申请的字节数(不会被视为垃圾回收)
go_memstats_mcache_inuse_bytesmcache结构体申请的字节数(不会被视为垃圾回收)
go_memstats_mcache_sys_bytes操作系统申请的堆空间用于mcache的字节数
go_memstats_mspan_inuse_bytes用于测试用的结构体使用的字节数
go_memstats_next_gc_bytes垃圾回收器检视的内存大小
go_memstats_other_sys_bytesgolang系统架构占用的额外空间
go_memstats_stack_inuse_bytes正在使用的栈字节数
go_memstats_stack_sys_bytes系统分配的作为运行栈的内存
go_memstats_sys_bytes服务现在系统使用的内
go_threads线程
go_goroutines协程数量
go_infogo编译器版本
process_cpu_seconds_total进程用户和系统 CPU 总时间(以秒为单位)。
process_max_fds进程打开文件描述符的最大数量。
process_open_fds进程打开文件描述符的数量。
process_resident_memory_bytes进程驻留内存大小(以字节为单位)。
process_start_time_seconds进程的开始时间,以秒为单位(时间戳)。
process_virtual_memory_bytes进程以字节为单位的虚拟内存大小。
process_virtual_memory_max_bytes可用的最大虚拟内存量(以字节为单位)。
promhttp_metric_handler_requests_in_flight当前提供的抓取次数。
promhttp_metric_handler_requests_total按 HTTP 状态代码的抓取总数。

goper
413 声望26 粉丝

go 后端开发


« 上一篇
http.2.0
下一篇 »
TCPDump使用