Issue Creating a Custom Metricset

I am working to create a custom metricset for Metricbeat but am having difficulty with the documentation. I am following the guide here, have installed go, mage, ran go get for the beats repo, am writing the module within my $GOPATH, etc etc.

I have no issues running make create-metricset and can verify that it ends up creating the module within module/{module} as well as a metricset in module/{module}/{metricset}/. The issue is, when it says to run make collect and make (here), I get the error:

make: *** No rule to make target `collect'. Stop.

When looking at the Makefile, it seems like there is no command collect. When I try to run make, I get

Use mage rather than make. Here are the available mage targets:

So instead of using make, I tried doing the following:

mage collectAll
mage build

Now, this works and compiles me a binary that runs metricbeat successfully (./metricbeat -e). However, the module/metricset I created are not recognized:

2020-10-26T14:51:00.604-0400	INFO	instance/beat.go:423	metricbeat stopped.
2020-10-26T14:51:00.604-0400	ERROR	instance/beat.go:940	Exiting: 1 error: metricset 'metricsd/server' not found
Exiting: 1 error: metricset 'metricsd/server' not found

I was wondering, is this an issue with outdated docs? Is there a new process, or am I missing something here?

It looks like the docs might be a little out of date. Try mage update in the metricbeat directory, and see how that works.

Works perfectly, thanks!

Just out of curiosity, if I "fork" previous metricsets on Metricbeat to create my own metricset, am I violating the Elastic License? If so, what's the best way to "learn" how to create one?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.