I have a python app with Gauge metric where I report latest value reported by some device. I want to create a mechanism that will reset the value to zero if the metric was not reported for more than 30 min. Is there a way to do it without keeping the map of last report times? Is there a way to get the last report time from the metric object itself?
Reset prometheus metric if it was not reported for period of time in python
134 Views Asked by Eduard Grinberg At
1
There are 1 best solutions below
Related Questions in PYTHON
- How to store a date/time in sqlite (or something similar to a date)
- Instagrapi recently showing HTTPError and UnknownError
- How to Retrieve Data from an MySQL Database and Display it in a GUI?
- How to create a regular expression to partition a string that terminates in either ": 45" or ",", without the ": "
- Python Geopandas unable to convert latitude longitude to points
- Influence of Unused FFN on Model Accuracy in PyTorch
- Seeking Python Libraries for Removing Extraneous Characters and Spaces in Text
- Writes to child subprocess.Popen.stdin don't work from within process group?
- Conda has two different python binarys (python and python3) with the same version for a single environment. Why?
- Problem with add new attribute in table with BOTO3 on python
- Can't install packages in python conda environment
- Setting diagonal of a matrix to zero
- List of numbers converted to list of strings to iterate over it. But receiving TypeError messages
- Basic Python Question: Shortening If Statements
- Python and regex, can't understand why some words are left out of the match
Related Questions in PROMETHEUS
- Using Amazon managed Prometheus to get EC2 metrics data in Grafana
- How do we configure prometheus server to scrape metrics from a pod with Istio sidecar proxy?
- Concept of _sum in prometheus histogram
- Telegraf input.exec not working with json
- Concept of process_cpu_seconds_total in prometheus
- Micrometer - Custom Gauge Metric Not Working
- wrong timestamp in promql
- Data visualization on Grafana dashboard
- Micrometer & Prometheus with Java subprocesses that can't expose HTTP
- How can I collect metrics from a Node.js application running in a Kubernetes cluster to monitor HTTP requests with status codes 5xx or 4xx?
- How do you filter a Prometheus metric based on the existence of a label in another metric?
- calculating availability of node using SysUpTime.0 variable collcted in prometheus and exposing to grafana
- Thanos Querier not showing metrics sent to hub Prometheus via remote write
- How to have multiple rules file on Loki (Kubernetes)?
- Monitoring Thread pool metrics through promethues
Related Questions in PROMETHEUS-PYTHON-CLIENT
- Reset prometheus metric if it was not reported for period of time in python
- Using Python client for Prometheus on IPv6
- Prometheus-client multiprocessing mode ASGI gunicorn basic setup
- Show a single value in grafana from prometheus gauge
- Configure grafana-agent DaemonSet to scrape pods in hostNetwork=true mode
- Flask error after adding csrf protection - Python
- Prometheus is giving "IndexError: list index out of range"
- Counting message (amount and type) per minutes in prometheus
- FileNotFoundError Prometheus Python Client write_to_textfile
- Performing PromQL queries on prometheus metrics in a text file
- Prometheus metrics are not coming when it takes more time than scrap interval
- How to clear `Summary` metric value in Python Prometheus client
- How to convert docker stats metrics to the Prometheus supported metrics type?
- Prometheus push gateway how to increment message requests
- In the context o f prometheus instrumentation, should I use all prometheus labels when updating a metrics value
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
As far as I can tell, Gauge in prometheus_client only uses timestamp for changes of value internally, and only is some of the multiprocess modes, without a way to extract it.
You can probably create your own wrapper class that will inherit
Gauge, and will wrap methodset(and all other methods that you need) with custom logic, that will track last changes and through callback return corrected value as you need.On the other hand, you can rather easily achieve same behaviour in promql.
Query
metric * (changes(metric [30m]) > bool 0)returns value ofmetricif it was changed in the last 30 minutes, and 0 otherwise.1Here, function
changesis used to track number of changes in metric over specified range. And comparison operator>is used with modifierboolir used to return result of 1 if expression is true, and 0 - otherwise.1 : This solution, being "implemented" fully on Prometheus' side can not differentiate between metric not being changed, or it being set to the same value over and over. Please take this into account when choosing a solution.