@Javier@pedro Hi guys,
I’m thinking to implement new module which can be enabled in the config that stores everything happens in the controller (every publish/subscribe of the users) in mongodb.
This is needed by us to keep track on how much time one person talked to another.
Do you think you like this idea or you are not interested?
If you like this option, do you think I’ll have to talk via rabbit to nuve that stores everything (like the controller does to delete the token from nuve) in mongo or do you think I have to add a new module to open a direct connection to the db?
You can create a module to talk to ErizoController via rabbitmq, we already have events of such kind that can be enabled in the config file I think. They are used by Ackuaria.
You can also use logs. That way you won’t affect ErizoController or RabbitMQ performance. Actually, we’re considering a similar system for the media stat: we’ll log them first, and then we’ll use a mechanism (such as flume, rsyslog, etc.) to parse the log and store it in the database.
The log system is a good idea but not so safe since maybe the pricing will depends on them and is really difficult to track problem on a distributed environment of multiple machine.
you can always send the logs to a centralized logging system to possibly track issues in the future too. But I agree that rabbitmq is a good solution too, I’d say that it depends on your environment.
Anyway, I’m glad to hear that you’re implementing a mechanism for tracking usage of a service that is using Licode! really good news! Just let us know if there’s something that can be improved in Licode to help you and other developers.
Yeah, ATM we are using a mysql to keep track of every publish/subscribe/failure but this means lots of proprietary code. I’d prefer to make something that can be pull requested to keeps my personal branch and the project in sync