Prometheus collects a wide variety of metric data. However, to make use of that data in the real world, you need a way to visualize important metrics at a glance. You can do this by building dashboards or similar pages that display real-time data in a useful format. One way to build these views is to use console templates. In this lab, you will have the opportunity to build a simple console template to display some statistics about a Linux server. This will give you some hands-on experience in working with console templates.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Add the Server Status Metric to the Console Template
Create and edit the console template file:
sudo vi /etc/prometheus/consoles/limedrop-web.html
Implement a display of the current "up" status of the web server:
{{template "head" .}} {{template "prom_content_head" .}} <h1>LimeDrop Web Server Metrics</h1> <strong>Server Status:</strong> {{ template "prom_query_drilldown" (args "up{job='Web Server'}") }} {{template "prom_content_tail" .}} {{template "tail"}}
View the console in a browser to verify it is working:
http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090/consoles/limedrop-web.html
- Add the CPU Usage Metric to the Console Template
Edit the console template file:
sudo vi /etc/prometheus/consoles/limedrop-web.html
Implement a display for the web server’s CPU usage:
{{template "head" .}} {{template "prom_content_head" .}} <h1>LimeDrop Web Server Metrics</h1> <strong>Server Status:</strong> {{ template "prom_query_drilldown" (args "up{job='Web Server'}") }} <br /> <br /> <strong>Current CPU Usage:</strong> {{ template "prom_query_drilldown" (args "sum(rate(node_cpu_seconds_total{instance='limedrop-web:9100',mode!='idle'}[5m])) * 100 / 2" "%") }} {{template "prom_content_tail" .}} {{template "tail"}}
View the console in a browser to verify it is working:
http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090/consoles/limedrop-web.html
- Add the Memory Usage Metric to the Console Template
Edit the console template file:
sudo vi /etc/prometheus/consoles/limedrop-web.html
Implement a display for the web server’s memory usage:
{{template "head" .}} {{template "prom_content_head" .}} <h1>LimeDrop Web Server Metrics</h1> <strong>Server Status:</strong> {{ template "prom_query_drilldown" (args "up{job='Web Server'}") }} <br /> <br /> <strong>Current CPU Usage:</strong> {{ template "prom_query_drilldown" (args "sum(rate(node_cpu_seconds_total{instance='limedrop-web:9100',mode!='idle'}[5m])) * 100 / 2" "%") }} <br /> <br /> <strong>Current Memory Usage:</strong> {{ template "prom_query_drilldown" (args "100 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100" "%") }} {{template "prom_content_tail" .}} {{template "tail"}}
View the console in a browser to verify it is working:
http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090/consoles/limedrop-web.html