-
Notifications
You must be signed in to change notification settings - Fork 238
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
Add support for configuration via YAML/JSON #326
Comments
I discussed this with the wider team of developers working on the agent. The current consensus is that while this is a problem we're hearing more and more, we don't have the time to prioritize it right now, as we're currently working towards on solidifying a path to a 1.0 release with the features we have. We're planning to place this proposal on hold until after 1.0; though prioritization may change if demand for this skyrockets. |
I'm going to remove the proposal label from this; I think this is a good enhancement request (and something currently on my radar), but at the moment it lacks sufficient detail for what YAML/JSON support would look like to be considered a proposal. I anticipate having a more detailed proposal for this within the coming months. |
FWIW I don't see the value of river and the expressiveness of the config. I'm deploying alloy from a configuration management tool or Helm, all of the logic you're trying to abstract in the config is part of my configuration management tool. Please let us provide a vanilla YAML or JSON file without any fancy interpretation from Alloy! |
Background
When deploying grafana-agent-flow on baremetal/vm to gather observability materials (metrics, logs, profiles...) the end users might want to use a configuration management tool such as Puppet or Ansible. The new configuration, River, is powerful but also introduce a fairly complex templating for configuration management. Below is an example around profiles scraping:
The associated Puppet code to deploy the template above could be similar to:
The template can be optimized to be less verbose and more flexible but the general idea stays the same, we need to take into account possible cases before hand and maintain a complex template.
Proposal
One alternative to that would be to configuration grafana-agent-flow with either yaml or JSON. The proposal has already been discussed before here.
I don’t know the implied complexity of such request but it would facilitate everything from the configuration management point.
Puppet, but also Ansible, knows how to merge several configuration pieces but also render the result of this merge in a jsonor yaml file. This also apply to Terraform as well.
@rfratto examples in his proposal enable such Puppet code:
The Ansible alternative could be similar to:
The end users could benefits from both its configuration management tools feature and grafana-agent-flow. The code becomes less verbose and there is no need to maintain a template.
The text was updated successfully, but these errors were encountered: