Lab Goal
In this lab, students will learn how to use Grafana 13 with Graphite as a data source and create a Linux monitoring dashboard using metrics collected by Telegraf.
This lab is based only on the real metrics already stored in your Graphite server. Your uploaded output confirms that the valid metric prefix is:
telegraf.linux-demo.*
Code language: CSS (css)
It also confirms that servers.* returns empty, so this lab will not use servers.*.
Grafana includes built-in support for Graphite, and the Graphite query editor helps users browse metric paths and build Graphite queries inside Grafana. (Grafana Labs)
Part 1: Lab Environment
Existing Setup
You already have:
Grafana UI:
http://32.192.207.253:3000
Graphite Web UI:
http://<server-ip>:8080
Docker containers:
graphite
telegraf
Code language: JavaScript (javascript)
Your Docker output shows:
graphiteapp/graphite-statsd:latest
telegraf:latest
Graphite is exposed as:
Host port 8080 -> Graphite Web UI
Host port 2003 -> Carbon plaintext metric receiver
Host port 2004 -> Carbon pickle receiver
Part 2: Important Rule for This Lab
Students must understand one important thing:
Graphite stores metrics as .wsp files on disk,
but Grafana queries should not include .wsp.
Code language: CSS (css)
For example, the file exists as:
/opt/graphite/storage/whisper/telegraf/linux-demo/cpu/usage_active.wsp
But in Grafana, the query should be:
telegraf.linux-demo.cpu.usage_active
Code language: CSS (css)
Not:
telegraf.linux-demo.cpu.usage_active.wsp
Code language: CSS (css)
Part 3: Verify Graphite and Telegraf Containers
Ask students to log in to the Linux server and run:
docker ps
Expected result should show containers similar to:
graphite
telegraf
Example:
graphiteapp/graphite-statsd:latest
telegraf:latest
Explain to students:
Graphite is storing and serving metrics.
Telegraf is collecting Linux system metrics and sending them to Graphite.
Grafana will read metrics from Graphite and display dashboards.
Code language: JavaScript (javascript)
Part 4: Verify Metrics Stored in Graphite
Run this command:
curl "http://localhost:8080/metrics/find?query=*"
Code language: JavaScript (javascript)
Expected output should include:
carbon
dummy
stats
stats_counts
statsd
telegraf
Now check the Telegraf metric tree:
curl "http://localhost:8080/metrics/find?query=telegraf.*"
Code language: JavaScript (javascript)
Expected output should include:
linux-demo
Now check the metric groups under linux-demo:
curl "http://localhost:8080/metrics/find?query=telegraf.linux-demo.*"
Code language: JavaScript (javascript)
Expected metric groups:
cpu
mem
disk
diskio
kernel
net
processes
swap
system
Part 5: Correct Command to List Real Graphite Metrics
Use this command to list all stored Telegraf metrics from Whisper storage:
docker exec graphite find /opt/graphite/storage/whisper/telegraf -type f
To convert file paths into Graphite query names, use:
docker exec graphite find /opt/graphite/storage/whisper/telegraf -type f \
| sed 's#/opt/graphite/storage/whisper/##; s#/#.#g; s#\.wsp$##' \
| sort
Code language: JavaScript (javascript)
If students still see .wsp at the end, use this safer command:
docker exec graphite find /opt/graphite/storage/whisper/telegraf -type f \
| tr -d '\r' \
| sed 's#/opt/graphite/storage/whisper/##; s#/#.#g; s#\.wsp$##' \
| sort
Code language: JavaScript (javascript)
Explain:
The .wsp file is the physical Whisper database file.
Grafana query uses the logical metric path without .wsp.
Code language: CSS (css)
Part 6: Add Graphite Data Source in Grafana 13
Step 1: Open Grafana
Open:
http://32.192.207.253:3000
Code language: JavaScript (javascript)
Login to Grafana.
Step 2: Go to Data Sources
From the left menu:
Connections → Data sources
Or:
Connections → Add new connection
Code language: JavaScript (javascript)
Grafana documentation also describes adding Graphite from the left-side Connections menu. (Grafana Labs)
Step 3: Select Graphite
Search for:
Graphite
Click:
Add new data source
Code language: JavaScript (javascript)
Step 4: Configure Graphite URL
Use this if Grafana is running on the same Linux VM where Docker Graphite is exposed:
http://localhost:8080
Code language: JavaScript (javascript)
If that does not work, use the server IP:
http://<server-public-ip>:8080
Code language: HTML, XML (xml)
Example:
http://32.192.207.253:8080
Code language: JavaScript (javascript)
Use:
Access: Server / Proxy
Code language: JavaScript (javascript)
Step 5: Save and Test
Click:
Save & test
Expected result:
Data source is working
If it fails, check:
docker ps
Then confirm Graphite is reachable:
curl "http://localhost:8080/metrics/find?query=telegraf.*"
Code language: JavaScript (javascript)
Part 7: Explore Metrics in Grafana
Before creating dashboards, students should explore metrics.
From the left menu:
Explore
Select the Graphite data source.
Try this query:
telegraf.linux-demo.cpu.usage_active
Code language: CSS (css)
Click:
Run query
Students should see a CPU usage graph.
Now try:
telegraf.linux-demo.mem.used_percent
Code language: CSS (css)
Then:
telegraf.linux-demo.disk.used_percent
Code language: CSS (css)
Explain:
Explore is used for testing queries before adding them to dashboards.
Dashboard panels are created after we know the query is working.
Part 8: Create Dashboard
From the left menu:
Dashboards
Click:
New
Code language: PHP (php)
Then:
New dashboard
Code language: PHP (php)
Click:
Add visualization
Select:
Graphite
Dashboard name:
Linux Server Monitoring - Graphite Telegraf
Part 9: Dashboard Layout
Create these dashboard rows:
1. System Overview
2. CPU Monitoring
3. Memory Monitoring
4. Disk Monitoring
5. Disk I/O Monitoring
6. Network Monitoring
7. Swap Monitoring
8. Process Monitoring
9. Kernel Monitoring
Part 10: System Overview Panels
Panel 1: CPU Active Usage
Panel title:
CPU Active Usage %
Query:
telegraf.linux-demo.cpu.usage_active
Code language: CSS (css)
Visualization:
Stat
Unit:
Percent (0-100)
Thresholds:
Green: 0
Yellow: 70
Red: 90
Code language: HTTP (http)
Explanation for students:
This shows how much CPU is actively being used.
Panel 2: Memory Used %
Panel title:
Memory Used %
Query:
telegraf.linux-demo.mem.used_percent
Code language: CSS (css)
Visualization:
Stat
Unit:
Percent (0-100)
Thresholds:
Green: 0
Yellow: 70
Red: 90
Code language: HTTP (http)
Panel 3: Disk Used %
Panel title:
Disk Used %
Query:
telegraf.linux-demo.disk.used_percent
Code language: CSS (css)
Visualization:
Stat
Unit:
Percent (0-100)
Thresholds:
Green: 0
Yellow: 75
Red: 90
Code language: HTTP (http)
Panel 4: System Load 1 Minute
Panel title:
System Load 1 Minute
Query:
telegraf.linux-demo.system.load1
Code language: CSS (css)
Visualization:
Stat
Unit:
None
Explanation:
Load average shows how busy the system is.
A load close to or higher than the number of CPUs may indicate pressure.
Panel 5: System Uptime
Panel title:
System Uptime
Query:
telegraf.linux-demo.system.uptime
Code language: CSS (css)
Visualization:
Stat
Unit:
Seconds
Explanation:
Uptime shows how long the Linux system has been running.
Part 11: CPU Monitoring Row
Panel: CPU Usage Breakdown
Panel title:
CPU Usage Breakdown
Visualization:
Time series
Queries:
alias(telegraf.linux-demo.cpu.usage_user, 'User CPU %')
alias(telegraf.linux-demo.cpu.usage_system, 'System CPU %')
alias(telegraf.linux-demo.cpu.usage_iowait, 'IO Wait CPU %')
alias(telegraf.linux-demo.cpu.usage_idle, 'Idle CPU %')
Code language: JavaScript (javascript)
Unit:
Percent (0-100)
Explanation:
User CPU means application workload.
System CPU means kernel workload.
IO wait means CPU is waiting for disk or I/O.
Idle means CPU is free.
Panel: CPU Active Usage Trend
Panel title:
CPU Active Usage Trend
Query:
telegraf.linux-demo.cpu.usage_active
Code language: CSS (css)
Visualization:
Time series
Unit:
Percent (0-100)
Part 12: Memory Monitoring Row
Panel: Memory Used and Available %
Panel title:
Memory Usage %
Queries:
alias(telegraf.linux-demo.mem.used_percent, 'Used Memory %')
alias(telegraf.linux-demo.mem.available_percent, 'Available Memory %')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Percent (0-100)
Panel: Memory Used and Free
Panel title:
Memory Used and Free
Queries:
alias(telegraf.linux-demo.mem.used, 'Used Memory')
alias(telegraf.linux-demo.mem.free, 'Free Memory')
alias(telegraf.linux-demo.mem.available, 'Available Memory')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Bytes
Panel: Memory Cache and Buffer
Panel title:
Memory Cache and Buffer
Queries:
alias(telegraf.linux-demo.mem.cached, 'Cached Memory')
alias(telegraf.linux-demo.mem.buffered, 'Buffered Memory')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Bytes
Part 13: Disk Monitoring Row
Panel: Disk Used %
Panel title:
Disk Used %
Query:
telegraf.linux-demo.disk.used_percent
Code language: CSS (css)
Visualization:
Gauge
Unit:
Percent (0-100)
Thresholds:
Green: 0
Yellow: 75
Red: 90
Code language: HTTP (http)
Panel: Disk Used and Free
Panel title:
Disk Used and Free
Queries:
alias(telegraf.linux-demo.disk.used, 'Disk Used')
alias(telegraf.linux-demo.disk.free, 'Disk Free')
alias(telegraf.linux-demo.disk.total, 'Disk Total')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Bytes
Panel: Disk Inode Usage
Panel title:
Disk Inode Usage %
Query:
telegraf.linux-demo.disk.inodes_used_percent
Code language: CSS (css)
Visualization:
Gauge
Unit:
Percent (0-100)
Explanation:
Inodes are file metadata records.
A disk can fail to create new files if inodes are full, even when disk space is available.
Code language: JavaScript (javascript)
Part 14: Disk I/O Monitoring Row
Panel: Disk I/O Utilization
Panel title:
Disk I/O Utilization
Query:
telegraf.linux-demo.diskio.io_util
Code language: CSS (css)
Visualization:
Time series
Unit:
Percent (0-100)
Panel: Disk Read and Write Bytes per Second
Panel title:
Disk Read/Write Bytes per Second
Queries:
alias(perSecond(telegraf.linux-demo.diskio.read_bytes), 'Read Bytes/sec')
alias(perSecond(telegraf.linux-demo.diskio.write_bytes), 'Write Bytes/sec')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Bytes/sec
Explanation:
read_bytes and write_bytes are counters.
perSecond() converts them into a rate, which is easier to understand.
Panel: Disk Reads and Writes per Second
Panel title:
Disk Reads/Writes per Second
Queries:
alias(perSecond(telegraf.linux-demo.diskio.reads), 'Reads/sec')
alias(perSecond(telegraf.linux-demo.diskio.writes), 'Writes/sec')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Operations/sec
Panel: Disk I/O Await
Panel title:
Disk I/O Await
Query:
telegraf.linux-demo.diskio.io_await
Code language: CSS (css)
Visualization:
Time series
Unit:
Milliseconds
Explanation:
IO await shows how long disk operations are waiting.
High values may indicate slow disk or heavy I/O.
Code language: JavaScript (javascript)
Part 15: Network Monitoring Row
Panel: Network Traffic Bytes per Second
Panel title:
Network Traffic
Queries:
alias(perSecond(telegraf.linux-demo.net.bytes_recv), 'Bytes Received/sec')
alias(perSecond(telegraf.linux-demo.net.bytes_sent), 'Bytes Sent/sec')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Bytes/sec
Panel: Network Packets per Second
Panel title:
Network Packets
Queries:
alias(perSecond(telegraf.linux-demo.net.packets_recv), 'Packets Received/sec')
alias(perSecond(telegraf.linux-demo.net.packets_sent), 'Packets Sent/sec')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Packets/sec
Panel: Network Errors
Panel title:
Network Errors
Queries:
alias(telegraf.linux-demo.net.err_in, 'Input Errors')
alias(telegraf.linux-demo.net.err_out, 'Output Errors')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
None
Explanation:
Network errors should normally remain zero.
If errors increase, there may be a network, driver, or interface issue.
Code language: PHP (php)
Panel: Network Drops
Panel title:
Network Drops
Queries:
alias(telegraf.linux-demo.net.drop_in, 'Input Drops')
alias(telegraf.linux-demo.net.drop_out, 'Output Drops')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
None
Part 16: Swap Monitoring Row
Panel: Swap Used %
Panel title:
Swap Used %
Query:
telegraf.linux-demo.swap.used_percent
Code language: CSS (css)
Visualization:
Gauge
Unit:
Percent (0-100)
Thresholds:
Green: 0
Yellow: 20
Red: 50
Code language: HTTP (http)
Panel: Swap Used and Free
Panel title:
Swap Used and Free
Queries:
alias(telegraf.linux-demo.swap.used, 'Swap Used')
alias(telegraf.linux-demo.swap.free, 'Swap Free')
alias(telegraf.linux-demo.swap.total, 'Swap Total')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Bytes
Panel: Swap In and Out
Panel title:
Swap In/Out
Queries:
alias(telegraf.linux-demo.swap.in, 'Swap In')
alias(telegraf.linux-demo.swap.out, 'Swap Out')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Bytes
Part 17: Process Monitoring Row
Panel: Process States
Panel title:
Process States
Queries:
alias(telegraf.linux-demo.processes.running, 'Running')
alias(telegraf.linux-demo.processes.sleeping, 'Sleeping')
alias(telegraf.linux-demo.processes.blocked, 'Blocked')
alias(telegraf.linux-demo.processes.zombies, 'Zombies')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Processes
Panel: Total Processes and Threads
Panel title:
Total Processes and Threads
Queries:
alias(telegraf.linux-demo.processes.total, 'Total Processes')
alias(telegraf.linux-demo.processes.total_threads, 'Total Threads')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
None
Part 18: Kernel Monitoring Row
Panel: Kernel Activity
Panel title:
Kernel Activity
Queries:
alias(perSecond(telegraf.linux-demo.kernel.context_switches), 'Context Switches/sec')
alias(perSecond(telegraf.linux-demo.kernel.interrupts), 'Interrupts/sec')
alias(perSecond(telegraf.linux-demo.kernel.processes_forked), 'Processes Forked/sec')
Code language: JavaScript (javascript)
Visualization:
Time series
Unit:
Ops/sec
Panel: Entropy Available
Panel title:
Kernel Entropy Available
Query:
telegraf.linux-demo.kernel.entropy_avail
Code language: CSS (css)
Visualization:
Time series
Unit:
None
Explanation:
Entropy is used by Linux for randomness.
Very low entropy can affect cryptographic operations.
Part 19: Save Dashboard
Click:
Save dashboard
Dashboard name:
Linux Server Monitoring - Graphite Telegraf
Add description:
Student lab dashboard using Graphite metrics collected by Telegraf.
Click:
Save
Part 20: Create Grafana Alert Rules
Grafana-managed alert rules can query data sources, reduce or transform query results, and compare values against thresholds. (Grafana Labs)
From the left menu:
Alerting → Alert rules
Click:
New alert rule
Code language: PHP (php)
Use the same pattern for each alert:
Query A → Graphite metric
Reduce B → Last or Mean
Condition C → Threshold
Alert 1: High CPU Usage
Alert name:
High CPU Usage
Query A:
telegraf.linux-demo.cpu.usage_active
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 90
Evaluation:
Every 1 minute
For 5 minutes
Meaning:
Alert if CPU active usage stays above 90% for 5 minutes.
Alert 2: High Memory Usage
Alert name:
High Memory Usage
Query A:
telegraf.linux-demo.mem.used_percent
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 90
Evaluation:
Every 1 minute
For 5 minutes
Alert 3: High Disk Usage
Alert name:
High Disk Usage
Query A:
telegraf.linux-demo.disk.used_percent
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 90
Evaluation:
Every 1 minute
For 5 minutes
Alert 4: High Disk Inode Usage
Alert name:
High Disk Inode Usage
Query A:
telegraf.linux-demo.disk.inodes_used_percent
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 90
Evaluation:
Every 1 minute
For 5 minutes
Alert 5: High Swap Usage
Alert name:
High Swap Usage
Query A:
telegraf.linux-demo.swap.used_percent
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 50
Evaluation:
Every 1 minute
For 5 minutes
Explanation:
Swap usage should normally be low.
High swap usage may indicate memory pressure.
Alert 6: High System Load
Alert name:
High System Load
Query A:
telegraf.linux-demo.system.load1
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 2
Evaluation:
Every 1 minute
For 5 minutes
Note for students:
For a small lab VM, load above 2 can be considered high.
In production, compare load with number of CPU cores.
Code language: JavaScript (javascript)
Alert 7: Zombie Processes Detected
Alert name:
Zombie Processes Detected
Query A:
telegraf.linux-demo.processes.zombies
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 0
Evaluation:
Every 1 minute
For 2 minutes
Explanation:
Zombie processes are processes that have finished but still remain in the process table.
Alert 8: Blocked Processes Detected
Alert name:
Blocked Processes Detected
Query A:
telegraf.linux-demo.processes.blocked
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 0
Evaluation:
Every 1 minute
For 2 minutes
Alert 9: Network Input Errors
Alert name:
Network Input Errors
Query A:
telegraf.linux-demo.net.err_in
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 0
Evaluation:
Every 1 minute
For 2 minutes
Alert 10: Network Output Errors
Alert name:
Network Output Errors
Query A:
telegraf.linux-demo.net.err_out
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 0
Evaluation:
Every 1 minute
For 2 minutes
Alert 11: Disk I/O Utilization High
Alert name:
Disk I/O Utilization High
Query A:
telegraf.linux-demo.diskio.io_util
Code language: CSS (css)
Reduce:
Last
Condition:
IS ABOVE 80
Evaluation:
Every 1 minute
For 5 minutes
Part 21: Recommended Alert Settings for Lab
For each alert rule, use:
Folder:
Linux Monitoring Lab
Evaluation group:
linux-telegraf-alerts
Evaluate every:
1m
Pending period:
5m for resource alerts
2m for error/process alerts
No data behavior:
No Data → No Data
Error → Error
Code language: JavaScript (javascript)
For beginner labs, explain:
No Data means Grafana did not receive data for the query.
Error means the query or data source failed.
Part 22: Testing Alerts Safely
For a classroom lab, students may not naturally reach 90% CPU or memory.
So for testing only, temporarily change thresholds.
Example:
CPU alert production threshold:
CPU > 90
CPU alert test threshold:
CPU > 1
Then wait for the alert to fire.
After testing, change it back to:
CPU > 90
For disk and memory alerts, do not ask beginners to fill disk or memory. Instead, test by temporarily lowering the threshold.
Part 23: Troubleshooting
Problem 1: Graphite Data Source Test Fails
Check Graphite container:
docker ps
Check Graphite API:
curl "http://localhost:8080/metrics/find?query=telegraf.*"
Code language: JavaScript (javascript)
If Grafana cannot connect using:
http://localhost:8080
Code language: JavaScript (javascript)
Try:
http://<server-public-ip>:8080
Code language: HTML, XML (xml)
Problem 2: Query Shows No Data
Check whether metric exists:
curl "http://localhost:8080/metrics/find?query=telegraf.linux-demo.cpu.*"
Code language: JavaScript (javascript)
Try this known working metric:
telegraf.linux-demo.cpu.usage_active
Code language: CSS (css)
Also check time range in Grafana:
Last 5 minutes
Last 15 minutes
Last 1 hour
Problem 3: Student Used .wsp in Grafana Query
Wrong:
telegraf.linux-demo.cpu.usage_active.wsp
Code language: CSS (css)
Correct:
telegraf.linux-demo.cpu.usage_active
Code language: CSS (css)
Explain:
.wsp is the storage file extension.
Grafana queries the metric name, not the file name.
Code language: CSS (css)
Problem 4: Student Uses servers.*
Wrong:
servers.*
Correct:
telegraf.linux-demo.*
Code language: CSS (css)
Reason:
Your Graphite server has no metrics under servers.*.
The actual metrics are stored under telegraf.linux-demo.*.
Code language: CSS (css)
Part 24: Student Exercise
Ask students to complete these tasks:
Exercise 1: Explore Metrics
Use Grafana Explore and run:
telegraf.linux-demo.cpu.usage_active
telegraf.linux-demo.mem.used_percent
telegraf.linux-demo.disk.used_percent
Code language: CSS (css)
Question:
Which metric shows CPU usage?
Which metric shows memory usage?
Which metric shows disk usage?
Exercise 2: Create Three Stat Panels
Create stat panels for:
CPU Active %
Memory Used %
Disk Used %
Exercise 3: Create One Time Series Panel
Create a CPU breakdown panel using:
telegraf.linux-demo.cpu.usage_user
telegraf.linux-demo.cpu.usage_system
telegraf.linux-demo.cpu.usage_iowait
telegraf.linux-demo.cpu.usage_idle
Code language: CSS (css)
Exercise 4: Create One Alert
Create alert:
High Memory Usage
Metric:
telegraf.linux-demo.mem.used_percent
Code language: CSS (css)
Condition:
Above 90
For testing, temporarily change:
Above 1
Then restore:
Above 90
Part 25: Complete Captured Metric Inventory
These are the actual metric groups to use in this lab.
CPU Metrics
telegraf.linux-demo.cpu.usage_active
telegraf.linux-demo.cpu.usage_guest
telegraf.linux-demo.cpu.usage_guest_nice
telegraf.linux-demo.cpu.usage_idle
telegraf.linux-demo.cpu.usage_iowait
telegraf.linux-demo.cpu.usage_irq
telegraf.linux-demo.cpu.usage_nice
telegraf.linux-demo.cpu.usage_softirq
telegraf.linux-demo.cpu.usage_steal
telegraf.linux-demo.cpu.usage_system
telegraf.linux-demo.cpu.usage_user
Code language: CSS (css)
Memory Metrics
telegraf.linux-demo.mem.active
telegraf.linux-demo.mem.available
telegraf.linux-demo.mem.available_percent
telegraf.linux-demo.mem.buffered
telegraf.linux-demo.mem.cached
telegraf.linux-demo.mem.commit_limit
telegraf.linux-demo.mem.committed_as
telegraf.linux-demo.mem.dirty
telegraf.linux-demo.mem.free
telegraf.linux-demo.mem.high_free
telegraf.linux-demo.mem.high_total
telegraf.linux-demo.mem.huge_page_size
telegraf.linux-demo.mem.huge_pages_free
telegraf.linux-demo.mem.huge_pages_total
telegraf.linux-demo.mem.inactive
telegraf.linux-demo.mem.low_free
telegraf.linux-demo.mem.low_total
telegraf.linux-demo.mem.mapped
telegraf.linux-demo.mem.page_tables
telegraf.linux-demo.mem.shared
telegraf.linux-demo.mem.slab
telegraf.linux-demo.mem.sreclaimable
telegraf.linux-demo.mem.sunreclaim
telegraf.linux-demo.mem.swap_cached
telegraf.linux-demo.mem.swap_free
telegraf.linux-demo.mem.swap_total
telegraf.linux-demo.mem.total
telegraf.linux-demo.mem.used
telegraf.linux-demo.mem.used_percent
telegraf.linux-demo.mem.vmalloc_chunk
telegraf.linux-demo.mem.vmalloc_total
telegraf.linux-demo.mem.vmalloc_used
telegraf.linux-demo.mem.write_back
telegraf.linux-demo.mem.write_back_tmp
Code language: CSS (css)
Disk Metrics
telegraf.linux-demo.disk.free
telegraf.linux-demo.disk.inodes_free
telegraf.linux-demo.disk.inodes_total
telegraf.linux-demo.disk.inodes_used
telegraf.linux-demo.disk.inodes_used_percent
telegraf.linux-demo.disk.total
telegraf.linux-demo.disk.used
telegraf.linux-demo.disk.used_percent
Code language: CSS (css)
Disk I/O Metrics
telegraf.linux-demo.diskio.io_await
telegraf.linux-demo.diskio.io_svctm
telegraf.linux-demo.diskio.io_time
telegraf.linux-demo.diskio.io_util
telegraf.linux-demo.diskio.iops_in_progress
telegraf.linux-demo.diskio.merged_reads
telegraf.linux-demo.diskio.merged_writes
telegraf.linux-demo.diskio.read_bytes
telegraf.linux-demo.diskio.read_time
telegraf.linux-demo.diskio.reads
telegraf.linux-demo.diskio.weighted_io_time
telegraf.linux-demo.diskio.write_bytes
telegraf.linux-demo.diskio.write_time
telegraf.linux-demo.diskio.writes
Code language: CSS (css)
Network Metrics
telegraf.linux-demo.net.bytes_recv
telegraf.linux-demo.net.bytes_sent
telegraf.linux-demo.net.drop_in
telegraf.linux-demo.net.drop_out
telegraf.linux-demo.net.err_in
telegraf.linux-demo.net.err_out
telegraf.linux-demo.net.packets_recv
telegraf.linux-demo.net.packets_sent
telegraf.linux-demo.net.speed
Code language: CSS (css)
Process Metrics
telegraf.linux-demo.processes.blocked
telegraf.linux-demo.processes.dead
telegraf.linux-demo.processes.idle
telegraf.linux-demo.processes.paging
telegraf.linux-demo.processes.running
telegraf.linux-demo.processes.sleeping
telegraf.linux-demo.processes.stopped
telegraf.linux-demo.processes.total
telegraf.linux-demo.processes.total_threads
telegraf.linux-demo.processes.unknown
telegraf.linux-demo.processes.zombies
Code language: CSS (css)
Swap Metrics
telegraf.linux-demo.swap.free
telegraf.linux-demo.swap.in
telegraf.linux-demo.swap.out
telegraf.linux-demo.swap.total
telegraf.linux-demo.swap.used
telegraf.linux-demo.swap.used_percent
Code language: CSS (css)
System Metrics
telegraf.linux-demo.system.load1
telegraf.linux-demo.system.load15
telegraf.linux-demo.system.load5
telegraf.linux-demo.system.n_cpus
telegraf.linux-demo.system.n_physical_cpus
telegraf.linux-demo.system.uptime
Code language: CSS (css)
Kernel Metrics
telegraf.linux-demo.kernel.boot_time
telegraf.linux-demo.kernel.context_switches
telegraf.linux-demo.kernel.entropy_avail
telegraf.linux-demo.kernel.interrupts
telegraf.linux-demo.kernel.processes_forked
Code language: CSS (css)
Final Student Summary
By completing this lab, students learned how to:
1. Verify Graphite and Telegraf containers
2. Check stored Graphite metrics
3. Understand .wsp files versus Grafana metric queries
4. Add Graphite as a Grafana 13 data source
5. Explore Graphite metrics in Grafana
6. Build a Linux monitoring dashboard
7. Create CPU, memory, disk, disk I/O, network, swap, process, system, and kernel panels
8. Create beginner-friendly Grafana alert rules
9. Troubleshoot common Graphite and Grafana query issues
Code language: JavaScript (javascript)
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I have worked at Cotocus. I share tech blog at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow , and SEO strategies at Wizbrand.
Do you want to learn Quantum Computing?
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at WIZBRAND
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals