-
Notifications
You must be signed in to change notification settings - Fork 417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make ECS tooling friendly to generating custom templates based on ECS #497
Comments
We were going to do this with ordering for elasticsearch templates. |
Please move your question to discuss.elastic.co, and I'll answer it there. This issue is meant to discuss the plan I've outlined above. |
I'm starting to look into adopting ECS into my life, and this sort of tooling is of interest to me. Just starting, haven't written any code for this yet, so ... can't speak with any real credence. We'd either be taking base ECS and adding more bits to it, or starting with our own ECS-compatible-ish base, and adding relevant ECS bits on top of that. My initial thoughts were to write some of my own tooling in node, that would just read one of the generated schema files, and then operate on that and my custom definitions. I'm actually quite comfortable doing that, vs using an existing tool - it's just JSON algebra in the end, and it wouldn't surprise me to find I need a bit more than some generic tooling might provide. And I guess I've done this so many other times over the years :-) Given that, my biggest problem is getting access to the repo. This is for some new code in Kibana, and so the perfect vehicle to ingest this repo would be via a node npm package. Not sure that really makes sense, and would require quite a bit more book-keeping for an ecs release, and so I think I'll probably be happy enough to just If it WAS available as an npm package tho, I could just pre-req it, and make that script part of our build, vs making it a manual process per ECS release. There are some options for making a GH repo like this available without publishing to npm (a node package can pre-req a package directly from a git repo, either master or with a specific tag), which might be an interesting start tho. |
@pmuellr Other initiatives such as the ECS logging libraries also depend on ECS artifacts and aren't in this repo. I'll be open to helping make this repo more amenable to consuming programmatically from other projects, such as yours or the ECS logging libraries. Let me know what challenges you encounter. Here's a few pointers to help you get started:
With that said, this repo cannot adopt a deployment to NPM, because by the same token, people may then request it to Rubygems, Maven, or to any other arbitrary package manager :-) But as I said already, I'm happy to help people consume this programmatically otherwise. |
Another note: Elastic SIEM embeds ECS and Beats field definitions already. Ask the SIEM team where the files are, perhaps there's something you can leverage from that, elsewhere in Kibana? |
For those following this issue, there's good progress happening on helping users leverage the ECS tooling to manage their custom fields. See the issue body for detail 🙂 |
While there are always improvements to be made, we've come a long way with the USAGE.md guide and the usage example. Any future improvements or ideas can be captured in additional issues. |
A frequent request about ECS is: "How can I generate Elasticsearch templates that include ECS fields and my custom fields?"
There's many ways we could provide tooling for that: a Kibana app would probably be the most user-friendly. However the tooling in the ECS repository is very close to being able to offer this already. As a short term solution, we will be tweaking the generator in this repo to make it easier for users to manage their templates with it. As a bonus, the generator will continue generating all of the artifacts that includes people's fields (asciidoc, csv), not only the ES templates. Some users may find that interesting.
Here's a list of tasks that will gradually make it easier to achieve this goal:
level: custom
for any field loaded from an external directoryThese will help address #95 and #324
The text was updated successfully, but these errors were encountered: