go-statsd:具有零分配开销,出色的性能和重新连接的Go statsd客户端库

时间:2024-02-24 10:02:09
【文件属性】:

文件名称:go-statsd:具有零分配开销,出色的性能和重新连接的Go statsd客户端库

文件大小:21KB

文件格式:ZIP

更新时间:2024-02-24 10:02:09

golang monitoring statsd statsite zero-allocation

进入statsd客户端库,分配开销为零,性能出色,并且自动重新连接。 客户端对每个发送的指标零内存分配: 缓冲区环,每个缓冲区是UDP数据包 从池中取出缓冲区,填充度量,然后传递给网络传递并返回到池中 缓冲区已满或刷新周期到来时(例如,每100ms)刷新一次 单独的goroutine处理网络操作:发送UDP数据包和重新连接UDP套接字 度量标准序列化时,将使用零分配操作来避免reflect和临时缓冲区 零内存分配 由于度量可以由应用程序以很高的速率发送(例如,每个请求发送数百个度量),因此发送度量不会引起任何额外的GC或CPU压力非常重要。 go-statsd使用缓冲池,并在构建statsd数据包时尝试避免分配。 重新连接到statsd 对于具有动态DNS statsd的基于现代容器的平台,服务器在重新安排容器时可能会更改其地址。 由于statsd数据包是通过UDP传递的,因此客户端没有简便的方法来确定数据包无处可去。 go-statsd支持可配置的重新连接间隔,该间隔可强制DNS解析。 客户端重新连接时,指标仍在处理和缓冲中。 删除指标 当缓冲池耗尽时, go-statsd开


【文件预览】:
go-statsd-master
----options.go(8KB)
----.gitignore(280B)
----README.md(6KB)
----tags.go(4KB)
----LICENSE(1KB)
----go.mod(43B)
----statsd.go(3KB)
----.golangci.yml(245B)
----buffers.go(2KB)
----loops.go(4KB)
----tags_test.go(3KB)
----.travis.yml(354B)
----client_test.go(14KB)
----Makefile(219B)
----client.go(11KB)

网友评论