sinkingpoint / prometheus-gravel-gateway

A Prometheus Aggregation Gateway for FAAS applications
GNU Lesser General Public License v3.0
115 stars 10 forks source link

Support PUT for clearing all existing metrics #11

Open ltagliamonte opened 2 years ago

ltagliamonte commented 2 years ago

All prometheus_client example uses push_to_gateway function to push metrics to the prometheus gateway. https://github.com/prometheus/client_python#exporting-to-a-pushgateway

The push_to_gateway method uses PUT as http method: https://github.com/prometheus/client_python/blob/v0.14.1/prometheus_client/exposition.py#L448

meanwhile pushadd_to_gateway uses POST as HTTP method: https://github.com/prometheus/client_python/blob/v0.14.1/prometheus_client/exposition.py#L479

would be nice to add support to PUT method as well so that developers can switch gateways with no code change.

sinkingpoint commented 2 years ago

Interesting. I've looked at a couple of client libraries around this, and it's a bit hit or miss as to what method is used, and what semantics get applied where. For now, I've just added PUT as an alias to POST, but perhaps we want to make it more like the above where it deletes the existing metrics? Similar to #8 maybe

ltagliamonte-dd commented 2 years ago

thanks for adding the support to PUT method. I can see the use case for DELETE, especially if someone happens to push a bad metric and you don’t want to restart the proxy to get rid of that metric. i would offer the DELETE method and as well a /reset endpoint to delete all metrics.