我正在努力了解statsd中的gauge的概念。请解释它的工作原理,以及一些有用的示例。
doc我不太清楚
设置仪表值。
stat:要设置的量规的名称。值:当前的值
量规。 rate:采样率,0到1之间的一个浮点数。只会发送
记录此时间百分比。 statsd服务器不使用
采样率考虑到量规。小心使用。增量:是否或
不要将其视为增量值或绝对值。见规
输入以获取更多详细信息。
最佳答案
量表仅反映系统的状态,或者根本不希望汇总的某些指标。
让我给你一些例子。
1)在您的程序中,您可以使用一些特定于语言的API来知道此过程正在使用多少内存。就像在Golang中,我们可以做到:
var stat runtime.MemStats
runtime.ReadMemStats(&stat)
heapAlloc := memStat.HeapAlloc
heapInuse := memStat.HeapInuse
heapObjects := memStat.HeapObjects
statsd.Gauge("machine01.memory.heap.alloc", heapAlloc)
statsd.Gauge("machine01.memory.heap.inuse", heapInuse)
statsd.Gauge("machine01.memory.heap.objects, heapObjects)
为简单起见,您可以在代码调用运行时API时将这些指标视为内存使用情况。因此,您可以使用量规将其发送到StatsD,因为它们中的每一个都能在10秒内完美显示内存使用情况,这是StatsD中的默认刷新周期。而且,您不需要对这些指标使用任何聚合方法,因为聚合(例如sum)没有任何意义。
除了上述情况外,它还有许多用例,例如CPU使用率,操作系统的系统负载,进程中的线程数,服务器中的联机连接数,交易中当前的活动交易数。系统。
2)有时,我们还可以使用仪表跟踪发生事件的时间。喜欢,
res, err := something()
if err != nil {
statsd.Gauge("machine01.something.error", time.Now().Unix())
}
因此,一旦发生错误,您可以通过查看Graphite仪表板的行来感知。而且,您可以通过查看线的形状来分析并获得出现的频率。
关于python - 统计量规的用例是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52021949/