【Consul】Consul实践指导-telemetry

x33g5p2x  于2021-12-20 转载在 其他  
字(5.0k)|赞(0)|评价(0)|浏览(282)

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的健康状况。

| <br>Metric<br> | <br>Description<br> | <br>Unit<br> | <br>Type<br> |
| <br>consul.runtime.num_goroutines<br> | <br>跟踪运行goroutines的数量,可以作为负载压力大小的标识。这个数据会时不时的冲高,一般是稳定的<br> | <br>number of goroutines<br> | <br>gauge<br> |
| <br>consul.runtime.alloc_bytes<br> | <br>Consul进程分配的内存字节数,这个数据会时不时的冲高,一般是稳定的<br> | <br>bytes<br> | <br>gauge<br> |
| <br>consul.runtime.heap_objects<br> | <br>Heap上分配的对象的数目,可作为内存压力大小的标识。这个数据会时不时的冲高,一般是稳定的<br> | <br>number of objects<br> | <br>gauge<br> |

1.1.3 Server health

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

| <br>Metric<br> | <br>Description<br> | <br>Unit<br> | <br>Type<br> |
| <br>consul.raft.state.leader<br> | <br>Leader变化词素。如果leader频繁改变则表示服务器负载过大导致不能满足Raft的要求,意味着服务器见网络存在问题。<br> | <br>leadership transitions / interval<br> | <br>counter<br> |
| <br>consul.raft.state.candidate<br> | <br>Consul服务器启动选举的次数,如果Leader没有变化,意味着可能是单一服务器或是网络连接存在问题。<br> | <br>election attempts / interval<br> | <br>counter<br> |
| <br>consul.raft.apply<br> | <br>在一定时间间隔内发生Raft事务的测试,衡量cosnul服务器的写负载大小<br> | <br>raft transactions / interval<br> | <br>counter<br> |
| <br>consul.raft.commitTime<br> | <br>计算提交一个Raft log到leader的时间长短<br> | <br>ms<br> | <br>timer<br> |
| <br>consul.raft.leader.dispatchLog<br> | <br>计算leader写日志磁盘的时间长短<br> | <br>ms<br> | <br>timer<br> |
| <br>consul.raft.replication.appendEntries<br> | <br>计算复制日志记录到Follower的时间,可衡量consul server的压力负载,及服务期间的通信性能。<br> | <br>ms<br> | <br>timer<br> |
| <br>consul.raft.leader.lastContact<br> | <br>计算consul server最后一次连接leader的时间(为0标识自身为leader),可以衡量Raft子系统的响应时间。<br> | <br>ms<br> | <br>timer<br> |

1.1.4 Cluster health

Cluster健康状态的度量工具:

| <br>Metric<br> | <br>Description<br> | <br>Unit<br> | <br>Type<br> |
| <br>consul.memberlist.msg.suspect<br> | <br>当Consul怀疑某一Server故障时,通过Gossip协议随机探查的次数,意味着可能是agent负载过重,或网络问题,配置问题等导致agent服务连接其他的的agent。<br> | <br>suspect messages received / interval<br> | <br>counter<br> |
| <br>consul.serf.member.flap<br> | <br>Consul0.7版本机以上版本支持,当某一Agent被标记dead,然后在短时间内恢复。意味着超载的代理,网络问题,或配置错误等导致Agent无法连接其他agent。<br> | <br>flaps / interval<br> | <br>counter<br> |
| <br>consul.serf.events<br> | <br>Agent在一定时间间隔内处理事件的数目,consul内部采用per-event计数。consul.serf.events.<event name>.<br> | <br>events / interval<br> | <br>counter<br> |
| <br>consul.dns.domain_query.<agent><br> | <br>通过DNS查找服务花费的时长<br> | <br>ms<br> | <br>timer<br> |
| <br>consul.dns.ptr_query.<agent><br> | <br>反向DNS查找花费的时间<br> | <br>ms<br> | <br>timer<br> |
| <br>consul.http.<verb>.<path><br> | <br>(eg.consul.http.GET.v1.kv._)<br><br>完成指定HTTP请求花费的时间。<br> | <br>ms<br> | <br>timer<br> |

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

相关文章