I setup parent node to receive many individual child node metrics. In each child node, I setup to save metrics to the local db in every 5 seconds. It looks like the streaming happens every 5 seconds as well. I wonder if I can have the following:
Current: child updates every 5 seconds to local db and stream to parent every 5 seconds
New: child updates every 5 seconds to local db and stream to parent every 15 seconds
I tried to use the setting below but it does not seem to work.
In child /etc/netdata/netdata.conf,
update every = 15
#then restart netdata
Thanks in advance.
The configuration appears correct, how do you know that it doesn’t work?
Sorry @pleung2 for taking this long to respond!
I access the child using http://parent-host:parent-port/host/child-host/ and watch. The update occurred every 5 seconds instead of 15.
I now see the problem. [backend] configuration field is used to setup exporting metrics for archiving, for example to a prometheus server.
After some research, I see that due to how we have engineered this (mainly to be very very performative), it is not possible to have a collection frequency mismatch when streaming data. In essence, you replicate the database from the child node to the parent, thus the databases will be the same, and thus the collection frequency will be identical.
If you want to downscale, you will need to use the exporting feature to another database, where you can downscale but you will lose some aspects of streaming (such as alarm configuration on the parent node about metrics in the replicated database of the child node).
This question has prompted me to take a better look at our streaming documentation, we will be improving the page for sure, as there is a lot of information and it gets convoluted with the exporting feature. cc @joel
Thank you for this question and more importantly thank you for helping us improve our documentation.
Keep the questions flowing and be safe!