本文公众号文章链接:https://mp.weixin.qq.com/s/d-HTKCldEn4CSdQU0uqd6w
本文csdn博客文章链接:https://blog.youkuaiyun.com/screscent/article/details/79759481
go-metrics是一个go语言的metrics库。其README中说的为:This library provides a metrics package which can be used to instrument code, expose application metrics, and profile runtime performance in a flexible manner.
如果不了解说明是metrics的,可以自行去网上搜索看下。
源码目录为

README中的说明:
通过MetricsSink接口提供了如下库。
-
StatsiteSink : Sinks to a statsite instance (TCP)
-
StatsdSink: Sinks to a StatsD / statsite instance (UDP)
-
PrometheusSink: Sinks to a Prometheus metrics endpoint (exposed via HTTP for scrapes)
-
InmemSink : Provides in-memory aggregation, can be used to export stats
-
FanoutSink : Sinks to multiple sinks. Enables writing to multiple statsite instances for example.
-
BlackholeSink : Sinks to nowhere
那下面进行源码分析:
一、MetricsSink
github.com/armon/go-metrics/sink.go

上面有四种类型的数据Gauge、Emitkey、IncrCounter、AddSample。

提供了一个黑洞操作的MetricSink。其实就是空的处理

FanoutSink是封装了一个[]MetricSink,接口函数,都是遍历各个MetricSink操作。

以上为网络上的提供了三个MetricSink的封装。
二、StatsiteSink
github.com/armon/go-metrics/statsite.go
StatsiteSink的结构体很简

本文详细分析了go-metrics库,包括MetricsSink接口及其实现如StatsiteSink、StatsdSink、PrometheusSink和InmemSink。重点讨论了StatsiteSink的TCP连接与数据推送,InmemSink的数据结构与操作,以及如何在接收到信号时打印InmemSink信息。此外,还介绍了go-metrics在实际应用中的配置和使用,包括启用RuntimeMetrics进行运行时性能监控。
最低0.47元/天 解锁文章
422

被折叠的 条评论
为什么被折叠?



