Creating custom plugin in non-orchestrated language

I am trying to figure out what steps are required to get a custom plugin (that does not have an orchestrator like python.d.plugin) to be recognized by netdata.

What I have tried so far:

  1. create a plugin that just prints some dummy chart and dimensions
  2. edit netdata.conf to include my testplugin
  3. add testplugin to libexec/netdata/plugins.d (doesn’t seem to work?)
  4. tried testplugin to etc/netdata/custom-plugins.d (still not working?)
    4.a. create a custom-plugins.d.conf and edit it to have testplugin enabled…

I feel like most of the documentation is quite good, but looking for some sort of steps on what needs to be done to add a custom plugin to the list of plugins that netdata can pick up and for it to not be an orchestrated plugin (not node, python, go, etc…)

Seems like the issue I had was mainly due to testing on mac. When using brew install the directories are actually under /usr/local/.

So, to help anyone else who is looking for a similar answer:

  1. create a plugin with chart and dimensions being printed
  2. edit netdata.conf at sudo vim /etc/netdata/netdata.conf
  3. add your plugin here /usr/local/Cellar/netdata/1.29.3/libexec/netdata/plugins.d/testmetrics.plugin and it does seem adding the .plugin might be required?
  4. run brew services restart netdata

You should see a chart under “Examples” after completing above :slight_smile:

Hi, @nyanzebra :wave:

Correct. .plugin suffix is required.


My suggestion is to check error.log.

grep -i testmetrics error.log

Keep in mind that plugins.d (the thread that serves all the external plugins) is very strict, if you make a mistake in printing chart and dimensions it immediately stops your plugin.