Prometheus Pushgateway provides a way to provide metrics to Prometheus with a push-based model. This is particularly useful for monitoring short-lived job processes. In this lab, you will have the opportunity to work with the Pushgateway API by pushing metrics to it. You will modify a simple job to implement monitoring for the job by pushing metrics to Pushgateway every time it runs.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Modify the Cleanup Job to Push a Metric to Pushgateway to Signal When It Runs
Log in to the Job server.
Edit the cleanup job script:
sudo vi /etc/jobs/cleanup.sh
Implement a call to the Pushgateway API at the end of the script to signal that the job ran:
num_files=$(rm -vrif /etc/debug_data/* | wc -l) cat << EOF | curl --data-binary @- http://prometheus:9091/metrics/job/debug_cleanup/instance/10.0.1.102 # TYPE job_executed_successful gauge job_executed_successful 1 EOF
Access the Prometheus expression browser (
http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090/graph
), and run a query to verify you can see metric data pushed to Pushgateway by the cleanup job script. Note you may have to wait a minute or so for the job to execute so you can see your changes.job_executed_successful[5m]
- Modify the Cleanup Job to Push a Metric to Pushgateway Representing the Number of Files Deleted in Each Execution
Edit the cleanup job script again:
sudo vi /etc/jobs/cleanup.sh
Implement a call to the Pushgateway API at the end of the script to signal that the job ran:
num_files=$(rm -vrif /etc/debug_data/* | wc -l) cat << EOF | curl --data-binary @- http://prometheus:9091/metrics/job/debug_cleanup/instance/10.0.1.102 # TYPE job_executed_successful gauge job_executed_successful 1 # TYPE job_num_files_deleted gauge job_num_files_deleted $num_files EOF
Access the expression browser again and verify you can see the new metric in Prometheus. Note you may have to wait a minute or so for the job to execute so you can see your changes.
job_num_files_deleted[5m]