On Tuesday, October 18, 2016 at 1:25:14 PM UTC-4, Eelco F wrote:
>
> Since then, CPU_temp is no longer read out, and also neteth0rbytes and 
> tbytes are now longer written to the graphs. I think the latter must be due 
> to ubuntu which calls eth0 enp0s25 now. This is due to systemd.
>

why must the little children at redhat break everything with their shiny 
turd called systemd?  i have many systems whose network interface will only 
every be eth0, so i have absolutely no need for 'predictable network 
interface naming', and i definitely do not want my init system to choose 
the name of my network interfaces, any more than i want my init system to 
give me binary logs or doing my dns or dhcp or any of the other things that 
systemd seems to be compelled to overrun.

not only that, sometimes it is actually desirable to be able to refer to 
the network interface generically.

it is hard enough to write code that works across multiple operating 
systems.  the last thing we need is clowns like the systemd developers 
changing things arbitrarily, with no reliable backward compatibility.

i understand what they are trying to do, but the way they do it is 
disruptive in a very unhelpful way.

sigh.

 

> Is it possible to adapt the code from cmon, to sort this out? 
> Or could I adapt the code in cmon.py myself? I don't know a lot about 
> python, though. But i can see that eth0 is mentioned in cmon.py as network 
> interface.
>

cmon does need a proper update.  it has a lot of platform-specific code, 
and there's nothing wrong with that.  but the implementation is a bit 
brittle.  at the very least, i have to figure out how systemd does things 
and deal with yet another special case for that.

you might figure out how to get 'classic' interface naming from systemd.  
according to this, it should be possible:

https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

modifying cmon is a bit tricky.

cmon gets the network interface names dynamically from the operating 
system, including eth0.  if you look at the raw packets from cmon (run 
weewxd directly), you should see net_xxx_* observation names.

the problem with eth0 in particular is that the label 'eth0' is used in the 
database schema for cmon.

so you have at least two options:

option 1: in the cmon code, map whatever name you get from systemd back to 
eth0.

option 2: rewrite your database schema, i.e., change the column names from 
*_eth0_* to *_xxx_* where xxx is whatever name you're getting from systemd.

option 2 will probably be much easier than option 1.

m

Reply via email to