`node_netstat_Tcp_RetransSegs` 指标采集原理

node_netstat_Tcp_RetransSegs 指标采集原理

node_netstat_Tcp_RetransSegs 指标是用于监控 TCP 协议中重传的段数,其数据来源于 Linux 系统的 /proc/net/snmp 文件,而不是 /proc/net/netstat 文件。/proc/net/snmp 文件提供了 TCP、UDP 等网络协议的统计数据,其中包含了 TCPRetransSegs 这一关键指标。

  1. 采集原理

    • 在 Linux 内核实现中,当 TCP 数据段发送后,在一定时间内没有收到接收方的确认应答(ACK),就会触发重传机制,内核会维护一个统计变量来记录 TCP 重传段的数量。
    • node_exporter 运行时,它会定期读取 /proc/net/snmp 文件,解析其中的 TCP 相关统计数据,提取出 TCPRetransSegs 的值,并将其作为 node_netstat_Tcp_RetransSegs 指标暴露出来,供 Prometheus 采集。

在这里插入图片描述

  1. 指标意义

    • node_netstat_Tcp_RetransSegs 用于衡量 TCP 数据传输时因各种原因(如网络丢包、延迟、接收方缓冲区满等)导致的重传次数。该指标可以反映出网络连接的稳定性和可靠性,重传次数过多可能意味着网络存在较大的丢包或延迟问题。
  2. 相关命令示例

    • 可以使用以下命令查看系统中每秒 TCP 重传报文数量:
      watch -n 1 'nstat -z -t 1 | grep -e TcpRetransSegs'
      
      该命令利用 nstat 工具来获取 TCP 重传段数的统计数据,并通过 watch 命令每秒更新一次显示,方便观察 TCP 重传情况。

在这里插入图片描述

  1. 默认未采集原因

    • node_netstat_Tcp_RetransSegs 指标在 node_exporter 的默认配置中未启用,这是因为 node_exporter 的网络统计采集器(netstat collector)默认只采集了一些常见的网络指标,未涵盖所有可能的网络统计项。
  2. 启用方法

    • 如果需要 node_netstat_Tcp_RetransSegs 指标,可以通过修改 node_exporter 的配置来启用。具体方法是设置 --collector.netstat.fields 参数,指定要采集的网络统计字段。例如,可以使用以下命令启动 node_exporter
      node_exporter --collector.netstat --collector.netstat.fields='^(. |_InErrors|_InErrs|Ip_Forwarding|Ip(6|Ext)(InOctets|OutOctets)|Icmp6?(InMsgs|OutMsgs)|TcpExt(Listen._|Syncookies.\*|TCPSynRetrans|TCPTimeouts|TCPOFOQueue)|Tcp_(ActiveOpens|InSegs|OutSegs|OutRsts|PassiveOpens|RetransSegs|CurrEstab)|Udp6?_(InDatagrams|OutDatagrams|NoPorts|RcvbufErrors|SndbufErrors))$'
      
      该命令通过指定正则表达式来匹配和采集一系列的 TCP、UDP 和 ICMP 等网络协议的统计信息,其中包括 TCPRetransSegs 指标。
  3. 其他数据来源

    • 除了 /proc/net/snmp 文件,还可以通过执行 netstat -s 命令来查看 TCP 重传段数等网络统计信息,但该命令输出的内容较为冗杂,不如直接读取 /proc/net/snmp 文件或使用 nstat 工具来获取特定指标数据方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值