I have also noticed some weirdness with this charting.
First, it appears as if you are grouping all of your streamstats calculations by only Name. I believe it should be by "host Name". If you don't first group by host and then Name, you wind up calculating all "eth0" stats across your entire environment, which isn't something I believe you are trying to do.
Second, you take the time to get the receive Kb, but then do not chart it. Why even worry about RX if you don't chart it? I personally would like to see the RX numbers as well.
I have modified the search to the following and have found much more accurate results:
index="os" sourcetype="interfaces" host=$host$ | multikv fields name, inetAddr, RXbytes, TXbytes | streamstats current=f last(TXbytes) as lastTX, last(RXbytes) as lastRX by host Name | eval time=_time | strcat Name "-" inetAddr "@" host Interface_Host | eval RX_Thruput_KB = (lastRX-RXbytes)/1024 | eval TX_Thruput_KB = (lastTX-TXbytes)/1024 | timechart eval(sum(TX_Thruput_KB)/dc(time)) as TX eval(sum(RX_Thruput_KB)/dc(time)) as RX by Interface_Host
I also modified the XML to add Kilobytes to the y axis of the chart, since it did not notate the units used. Had to change it to "charting.secondaryAxisTitle.text" for KB to show.
... View more