Closed anisse closed 1 year ago
I'm not quite sure I understand the suggestion (the last sentence isn't quite adding up). Could you show an example config, and what the behaviour would be (how it differs from the current setup).
The goal would be to replace exporter_exporter
's /metrics
with a given module. My use case would be to replace an exporter endpoint in-place, transparently, on the same port, before adding more modules.
Before:
After:
/metrics
are treated as if they were requests to /proxy?module=node
The config would look like this:
modules:
node:
method: http
http:
address: 127.0.0.1
port: 9100
transition_module: node
Now in my case it's a collectd
's write_prometheus
that I want to replace. Unfortunately this exporter has no router replies with the metrics on any path (!). To be safe I wanted to also replace the /
route, but this might be erring too much on the side of caution.
I don't know yet what to do with exporter_exporter
's own /metrics
route. Maybe make it available at some other path during the transition.
TBH this seems very niche. Why not:
Perhaps a better options would be for exporter_exporter to allow a default module to be configured, then you could set the --web.proxy-path=metrics --web.telemetry-path=/expexp_metrics
, and I think you'd get what you want
I agree, it looks pretty niche. We'll probably use the exact plan you proposed since it's simpler. I would have liked something like what you proposed since it allows to do the migration in-place, but it's not a hard requirement. Let's close this issue.
v0.5.0 includes the support for a defaultModule
configuration option. I think that, in combination with the configuration for alternate paths for proxy and telemetry metrics would be enough to achieve your original request.
It's often the case that there's already an exporter in place, and one might want to add another. exporter_exporter has the nice property of listing all the exporters it reverse proxies, listen on a single port, etc.
But at scale, changing the address of all targets from
/metrics
to/proxy?module=previous-exporter
at the same time is often not feasible. It might be desirable to keep the existing route working during a transition.Would you be review to a pull request for this ? The goal would be add an option for overriding the
/metrics
and maybe/
route by the route of a module that is being replaced.