【Consul】Consul实践指导-telemetry

Consul Agent 能够搜集不同lib库和子系统运行时的性能指标。这些指标都是基于间隔10秒测试1分钟得到的结果。

本文中将telemetry翻译为“遥测”。

查看这些数据,必须向Consul进程发送信号:Unix平台,发送USR1信号,Windows平台发送BREAK信号。一旦Consul接收到信号,会把遥测信息发送到agent的stderr。

遥测信息可以帮助调试或深入了解Consul正在做什么。

另外,如果提供了telemetry配置选项(http://blog.csdn.net/younger_china/article/details/52243738),遥测信息将被传输到statsite或statsd服务器,它可以输出到其他存储设备中(?)。

下面是遥测输出信息:

[2014-01-29 10:56:50-0800 PST][G] 'consul-agent.runtime.num_goroutines': 19.000
[2014-01-29 10:56:50-0800 PST][G] 'consul-agent.runtime.alloc_bytes': 755960.000
[2014-01-29 10:56:50-0800 PST][G] 'consul-agent.runtime.malloc_count': 7550.000
[2014-01-29 10:56:50-0800 PST][G] 'consul-agent.runtime.free_count': 4387.000
[2014-01-29 10:56:50-0800 PST][G] 'consul-agent.runtime.heap_objects': 3163.000
[2014-01-29 10:56:50-0800 PST][G] 'consul-agent.runtime.total_gc_pause_ns': 1151002.000
[2014-01-29 10:56:50-0800 PST][G] 'consul-agent.runtime.total_gc_runs': 4.000
[2014-01-29 10:56:50-0800 PST][C] 'consul-agent.agent.ipc.accept': Count: 5 Sum: 5.000
[2014-01-29 10:56:50-0800 PST][C] 'consul-agent.agent.ipc.command': Count: 10 Sum: 10.000
[2014-01-29 10:56:50-0800 PST][C] 'consul-agent.serf.events': Count: 5 Sum: 5.000
[2014-01-29 10:56:50-0800 PST][C] 'consul-agent.serf.events.foo': Count: 4 Sum: 4.000
[2014-01-29 10:56:50-0800 PST][C] 'consul-agent.serf.events.baz': Count: 1 Sum: 1.000
[2014-01-29 10:56:50-0800 PST][S] 'consul-agent.memberlist.gossip': Count: 50 Min: 0.007 Mean:0.020 Max: 0.041 Stddev: 0.007 Sum: 0.989
[2014-01-29 10:56:50-0800 PST][S] 'consul-agent.serf.queue.Intent': Count: 10 Sum: 0.000
[2014-01-29 10:56:50-0800 PST][S] 'consul-agent.serf.queue.Event': Count: 10 Min: 0.000 Mean: 2.500Max: 5.000 Stddev: 2.121 Sum: 25.000

 

1.1.1 Key指标

当遥测被传送到外部存储时,时间间隔被定义为存储的刷新间隔。否则,间隔可以被假定为10秒时,传送可用通过上述描述的信号触发。

1.1.2 Agent health

如下的指标可以用过监控指定consul agent的健康状况。

Metric

Description

Unit

Type

consul.runtime.num_goroutines

跟踪运行goroutines的数量,可以作为负载压力大小的标识。这个数据会时不时的冲高,一般是稳定的

number of goroutines

gauge

consul.runtime.alloc_bytes

Consul进程分配的内存字节数,这个数据会时不时的冲高,一般是稳定的

bytes

gauge

consul.runtime.heap_objects

Heap上分配的对象的数目,可作为内存压力大小的标识。这个数据会时不时的冲高,一般是稳定的

number of objects

gauge

 

1.1.3 Server health

consul服务器的健康状态的度量工具:

Metric

Description

Unit

Type

consul.raft.state.leader

Leader变化词素。如果leader频繁改变则表示服务器负载过大导致不能满足Raft的要求,意味着服务器见网络存在问题。

leadership transitions / interval

counter

consul.raft.state.candidate

Consul服务器启动选举的次数,如果Leader没有变化,意味着可能是单一服务器或是网络连接存在问题。

election attempts / interval

counter

consul.raft.apply

在一定时间间隔内发生Raft事务的测试,衡量cosnul服务器的写负载大小

raft transactions / interval

counter

consul.raft.commitTime

计算提交一个Raft logleader的时间长短

ms

timer

consul.raft.leader.dispatchLog

 

计算leader写日志磁盘的时间长短

ms

timer

consul.raft.replication.appendEntries

计算复制日志记录到Follower的时间,可衡量consul server的压力负载,及服务期间的通信性能。

ms

timer

consul.raft.leader.lastContact

计算consul server最后一次连接leader的时间(为0标识自身为leader),可以衡量Raft子系统的响应时间。

ms

timer

 

1.1.4 Cluster health

Cluster健康状态的度量工具:

Metric

Description

Unit

Type

consul.memberlist.msg.suspect

Consul怀疑某一Server故障时,通过Gossip协议随机探查的次数,意味着可能是agent负载过重,或网络问题,配置问题等导致agent服务连接其他的的agent

suspect messages received / interval

counter

consul.serf.member.flap

Consul0.7版本机以上版本支持,当某一Agent被标记dead,然后在短时间内恢复。意味着超载的代理,网络问题,或配置错误等导致Agent无法连接其他agent

flaps / interval

counter

consul.serf.events

Agent在一定时间间隔内处理事件的数目,consul内部采用per-event计数。consul.serf.events.<event name>.

events / interval

counter

consul.dns.domain_query.<agent>

通过DNS查找服务花费的时长

ms

timer

consul.dns.ptr_query.<agent>

反向DNS查找花费的时间

ms

timer

consul.http.<verb>.<path>

 (eg.consul.http.GET.v1.kv._)

完成指定HTTP请求花费的时间。

ms

timer

 

原文https://www.consul.io/docs/agent/telemetry.html

你可能感兴趣的:(consul)