Add collector config recipes
Opened this issue · 2 comments
We currently only have application samples. It would be nice to also have recipes for collector configuration. It would be nice to have the following:
- The OTel collector config
- Steps to run the collector with the selected config
- automated tests for each config (using test bed, but this may be a lot..)
An initial recipefile.json could contain:
{
"id": "otlp-http-exporter",
"displayName": "Console App",
"tags": [],
"description": "A C# console application instrumented with OpenTelemetry that generate metrics.",
"sourceRoot": "https://github.com/joaopgrassi/otel-recipes/tree/main/src/csharp/metrics/console",
"configFile": "",
"collectorVersion": "",
"distro": "contrib"
}
A mockup for the UI:
It would be really awesome if we can have collector recipes. Do you think about create a new directory hierarchy? for example:
.
└── src/
├── app/
│ ├── csharp/
│ ├── go/
│ ├── python/
│ └── ...
└── collector/
├── receiver/
├── exporter/
├── processor/
└── ...
I would be glad to help make this available. Maybe we can split this issue in mini-issues, starting by recipe.json definition, directory structure and how we can develop collector recipes without affecting the current release process of app recipes. What do you think?
Yeah my idea was more or less like that. I'm not sure if we need that level of detail with receiver
, exporter
etc.. as for ex there will almost always be a receiver + exporter in the mix. I was thinking more on use-cases but that can also become a mess pretty quickly :D, but that's a minor detail I think.
The biggest thing is testing. The whole goal I wanted to achieve with this project was that things we put must be e2e tested. With apps is more or less easy as we just export and assert. But with the collector it can become a bit more complex. So I think we need to think on this first before anything.
There's also a need to generate data, for that maybe we can use telemetrygen https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/telemetrygen