-
Notifications
You must be signed in to change notification settings - Fork 634
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
Should we allow multiple modules per target? #620
Comments
Pro:
Con:
Implementation: Must not introduce config complexity in prometheus.yml and its dependant targets.json files (ex. Due to having to provide a list of modules or other funky stuff) |
I like this idea, it reduces the manual config work and lets the generator do the heavy lifting. While I agree merging and such does become a pain but at the same time, a dumb merging strategy (no de-dup etc.) would mean the onus is on the user to ensure their generator input is sane. It would be so much easier to be able to define e.g.:
https://github.com/toni-moreno/snmpcollector actually does a very good job of defining SNMP objects and tables into metrics like this and allow you to collect them into "metric groups" for defining to devices. |
Allowing multiple modules will be beneficial for the people to minimize level of effort and clear confusion |
Hopefully, this feature will be implemented as soon as possible, because it really makes configuration work much easier!!! |
I also like this. IF_MIB is IF_MIB; every vendor's IF_MIB is the same (or at least, it has a subset of the data - e.g. very old devices might not have The approach which occurred to me first was to specify multiple modules in a scrape request:
That maps nicely to an NMS front-end where you might just select a bunch of checkboxes for the modules to scrape for a particular target or target group. The problem with this approach is that in a Prometheus scrape job, whilst you can specify multiple values for the same parameter statically, you cannot do it via relabelling (that is, You could allow an alternative way like a comma-separated list:
Actually, it's even possible out-of-the-box with today's snmp_exporter if you create three scrape jobs which scrape the same target for each module, but that's a pain to manage in prometheus.yml - every new module needs a new scrape job, and relabelling rules to drop the targets that shouldn't be scraped with that module. Looking at @tardoe's approach, another option would be for one module to include/inherit other modules:
This still requires the user to pre-define every combination of MIBs that they want to use though. |
This is now supported. #945 |
This is an ongoing discussion between @SuperQ and I; input very much appreciated.
Pro:
Con:
Neutral:
auth
alongside target & module as distinct property #619 and others, we may be able to reduce pressure on snmp.yml to be touched at all, thus reducing the need for any human to ever touch snmp.ymlCurrently, @SuperQ is slightly in favor, I am slightly against, but could easily change. I am, however, strongly in favor of doing this later rather than sooner due to reduced pressure on snmp.yml.
The text was updated successfully, but these errors were encountered: