I spend the last 2 days trying to get up and running with my own Beat.
I ended up literally installing a dedicated Ubntu 18.04 VM with:
- python2 (because the build script uses 'python' instead of 'python2' argh)
- virtenv (because the build script uses 'virtenv' instead of 'virtenv2' argh aswell)
- go + utils
- atom with go-plus
I followed the Instructions here: https://www.elastic.co/guide/en/beats/devguide/current/creating-beat-from-metricbeat.html
(of course I read the complete chapter about building beats)
Problems encountered so far:
make setup only works when issued twice - first try fails with "make: *** no rule for create-metricset"
(but hey.. second try solves it..) (might be a symlink problem)
when beats repo is checked out at current master (commit 4a228013c933de154c4e21a296c61ec44ac38530), like the instructions tell me too, executing "make" returns afeter approximately 1 sec doing nothing at all. (works when I checkout 6.5 though)
Executing "make collect" does not work at all (6.5 / master). It return with "grep: ../libbeat/docs/version.asciidoc: file or directory not found"
This is perfectly normal because this only exists relative to the metricbeat repo and from my beats location is located under "./vendor/....". => Bug in build-scripts?
Finally (when I create a symlink to $GOPATH/src/github.com/elastic/beats/libbeat at ../libbeat) the grep for the version.ascii works fine but make collect return with "cp: stat for 'module/*/_meta/kibana/*' not possible: file or directory not found
vendor/github.com/elastic/beats/metricbeat/Makefile:19: recipe for target 'kibana' failed"
After all of this I really got the feeling that the build scripts of the beats templating are, at best, messed up.
Does anyone have a workaround for these problems, or am I just to dump to use the templating system?
BTW: This was all tested without altering any file within.