Greetings Prometheus users,

I have a function that is called a few times *within a loop*, and my idea 
was that the function would populate the .prom file by adding a new line 
every time, with the same metric name but with a different label. For 
example:

sv_api_response{method="getUserByID"} 1
sv_api_response{method="getUserByName"} 1
Etc. (1 when the API sends a 200 response, 0 otherwise)

But that doesn't happen. When the loop ends, I have only one line in the 
file, with the last written metric. Each time a new metric is written, it 
overwrites the previous one. My function is as follows:


*from prometheus_client import CollectorRegistry, Gauge, write_to_textfile*
*...*
*def write_metric(method, expectation, response, region):*
*    registry = CollectorRegistry()*
*    gauge = Gauge('sv_api_response', '1 if API is up', ['method'], *
*registry=registry)*
*    if response is not None:*
*        if response.status_code == expectation:*
*            gauge.labels(method).set(1)*
*        else:*
*            gauge.labels(method).set(0)*
*    else:*
*        gauge.labels(method).set(0)*
*    write_to_textfile('/opt/node_exporter/textfile_collector/sv.prom', 
registry)*

Is there a way to make it preserve the metrics that it adds to the file and 
simply append the new ones?

Thank you.

Regards,
Daniel

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/cbc8ae96-d36c-4609-af65-2ce287127574n%40googlegroups.com.

Reply via email to