Hi all,
I need a help on a concept for a monitoring system based on CouchDB. I have
master server with a database "status" and several, around 20 nodes machines
(the number of machines will grow) performing some logging on a local instances
of CouchDB. Each local machine (node) has a database "status" as well and logs
realtime data in a single document named as the computer. The idea is to
monitor all the data from all node machines in a single database on the master
server. The final result should be a database that is a collection of documents
named as the computer names of all node machines and each document reflect the
current status of the node. Then it will be easy to have long-poll handler for
monitoring and rendering the changes of all machines on the master server as a
status panel...
I made a local db "status" on each node machine and started a continuous
replication to the master server "status" database. The problem is that some of
the logging processes on the node machines are working over hours and can
involve logs each second. This will reflect on the size of the master database.
How to handle this correctly? I can compact the master target database from
time to time remotely. Is this a good idea or is there any other way to make
continuous replication with kind of auto compact feature? Would a compacting
from time to time will affect somehow the other continuous replications?
The second problem I have is once I delete (recreate) the source local "status"
database the old instance of the continuous replication does not work for the
new created database. I have a kind of workaround be canceling the old
continuous replication and triggered it again. This work well but I am not sure
if I can expect some other problems somehow.
Any suggestions or thoughts?
Thanks
Nikolai