NewRelic-Python-Plugins/newrelic-python-agent

Future of NewRelic Python Agents

Rockstar04 opened this issue · 2 comments

This agent covers a very wide range of applications, do we think this is the right way to handle this? One pip install to monitor them all?

Should we separate this into multiple smaller repositories for specialized servers (NewRelic-Python-Agent-Web, NewRelic-Python-Agent-DB), or go all the way to agents for specific applications (NewRelic-Python-Agent-Nginx, NewRelic-Python-Agent-MySQL, NewRelic-Python-Agent-Elasticsearch)?

Ideally whatever decision is made, we would start from scratch in new repositories so we can use a standard open-source license like Apache 2.0.

wolph commented

In general I prefer separate repositories but I fear the maintenance overhead will outweigh the benefits for the time being. The codebase isn't extraordinarily large anyhow so it might be better to keep it simple for the time being.

If it would be split I would opt for a plugin structure where you have a single agent and specify which monitors you would like to install like this: pip install newrelic-agent[elasticsearch,mysql] or pip install newrelic-agent[all]. Having a structure like that would make it easier for 3rd party projects as well.

As for the license, the project is using the 3-clause BSD license right now isn't it? That's pretty standard imho

The license is fine, I didn't recognize the text at first, but GitHub's license popup cleared that up for me.

I really like the idea of the single agent, plug-able monitors idea. There are server admins out there who only want to install the bare minimum to do what they want and could be turned off by a jack of all trades monolithic monitoring agent.