apache / apache/druid

Druid Route Log: Failed to get NetInterfaceStat[eth0:1]

Open
#11,239 0 comments 0 reactions 0 assignees View on GitHub
Area - Router
Dominant language
Java
Stars
14.1k
Forks
3.8k
Avg merge
2d 58m
Merged PRs (30d)
233

Description

There is many error in druid log.

### route error log
`
2021-05-12T10:20:42,151 ERROR [MonitorScheduler-0] org.apache.druid.java.util.metrics.SysMonitor - Failed to get NetInterfaceStat[eth0:1]
org.hyperic.sigar.SigarException: No such device or address
at org.hyperic.sigar.NetInterfaceStat.gather(Native Method) ~[sigar-1.6.5.132.jar:?]
at org.hyperic.sigar.NetInterfaceStat.fetch(NetInterfaceStat.java:30) ~[sigar-1.6.5.132.jar:?]
at org.hyperic.sigar.Sigar.getNetInterfaceStat(Sigar.java:901) ~[sigar-1.6.5.132.jar:?]
at org.apache.druid.java.util.metrics.SysMonitor$NetStats.emit(SysMonitor.java:377) ~[druid-core-0.21.0.jar:0.21.0]
at org.apache.druid.java.util.metrics.SysMonitor.doMonitor(SysMonitor.java:107) ~[druid-core-0.21.0.jar:0.21.0]
at org.apache.druid.java.util.metrics.AbstractMonitor.monitor(AbstractMonitor.java:48) ~[druid-core-0.21.0.jar:0.21.0]
at org.apache.druid.java.util.metrics.BasicMonitorScheduler.lambda$startMonitor$0(BasicMonitorScheduler.java:56) ~[druid-core-0.21.0.jar:0.21.0]
at org.apache.druid.java.util.common.concurrent.ScheduledExecutors$4.run(ScheduledExecutors.java:163) [druid-core-0.21.0.jar:0.21.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_181]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_181]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_181]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
`

### System Info:
Druid Version: 0.21.0
[root@bd2 sv]# uname -a
Linux bd2 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

### ifconfig:
[root@bd2 sv]# ifconfig
eth0: flags=4163 mtu 1500
inet 10.17.2.245 netmask 255.255.0.0 broadcast 10.17.255.255
ether ac:1f:6b:db:80:f0 txqueuelen 1000 (Ethernet)
RX packets 20586490299 bytes 23293399167054 (21.1 TiB)
RX errors 0 dropped 122328 overruns 0 frame 0
TX packets 19333454450 bytes 21832516315756 (19.8 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0:1: flags=4163 mtu 1500
inet xxx.xxx.xxx.xxx netmask 255.255.255.0 broadcast xxx.xxx.xxx.255
ether ac:1f:6b:db:80:f0 txqueuelen 1000 (Ethernet)

eth1: flags=4099 mtu 1500
ether ac:1f:6b:db:80:f1 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 657088788 bytes 6054045533282 (5.5 TiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 657088788 bytes 6054045533282 (5.5 TiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

### emitter config
`
druid.monitoring.monitors=["org.apache.druid.java.util.metrics.JvmMonitor", "org.apache.druid.java.util.metrics.SysMonitor"]
druid.emitter=kafka
druid.emitter.kafka.bootstrap.servers=10.17.2.244:9092,10.17.2.245:9092,10.17.2.246:9092,10.17.2.247:9092,10.17.2.248:9092
druid.emitter.kafka.metric.topic=druid-metric
druid.emitter.kafka.alert.topic=druid-alert
druid.emitter.kafka.producer.config={"max.block.ms":10000}
druid.monitoring.emissionPeriod=PT10S
`

Contributor guide

Open the contributing guide

Research direction

Start with the SysMonitor$NetStats.emit stack-trace entry and the Druid 0.21.0 monitoring configuration shown in the report. Compare the interface name requested by getNetInterfaceStat with the supplied ifconfig output, then trace how the monitoring code handles the missing or unsupported interface. Done means the cause and expected handling are covered by an appropriate regression test and the monitor no longer produces this repeated error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
observability
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.