Not the best first impression of new beats development

Greetings, I am just gettings started with Elastic beats development.

I have been developing with Golang for a few years and was excited to try to develop my first Helloworldbeat. I allocated a couple hours to the task.

I am underwhelmed, specifically on the getting started and build aspects.

I am put off by having to have python,pip,virtualenv,mage/make ecosystemusing govendor and the whole code generation approach; and it does not just work out of the box.

I am not going to supply details here now, and this may seem like a rant, but I wonder if there is, or at least a plan, for a native pure Golang based approach.

Maybe this is mostly a documentation problem that simply targets non Go purists? I really just want a Golang API doc and using go modules;none of th make,python stuff.

Can anyone lift my spirits and shed some light?

I'd be happy to contrib back some improvements if that will help, but I thought I'd start here.

Thanks

1 Like

Hello, thanks for reaching out. The beats project definitely has a few external dependencies and a build system that's comprised of mage, make, python, ..., etc. The following page has a list of dependencies; it sounds like you've tracked them down already.

https://www.elastic.co/guide/en/beats/devguide/current/beats-contributing.html

There is definitely a push to use native Go tools, especially mage. Here are a few recent PRs:

If you have suggestions for improvements, we're all ears. :grinning:

1 Like

I found that there is supposdly a merged PR to make beats support go module builds, but there seem to be issues I uncovered. To be clear, I am not so much concerned about Makefile vs mage but about dependencies on python,pip,virtualenv.

I believe developing a new beat should require an api doc and go module based tooling and a thin Makefile or magefile without no go based dependencies.

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