{"id":75249,"date":"2026-04-28T04:21:13","date_gmt":"2026-04-28T04:21:13","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=75249"},"modified":"2026-04-28T04:21:13","modified_gmt":"2026-04-28T04:21:13","slug":"create-graphite-dashboards-and-alerts-in-grafana-13-using-telegraf-linux-metrics","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/create-graphite-dashboards-and-alerts-in-grafana-13-using-telegraf-linux-metrics\/","title":{"rendered":"Create Graphite Dashboards and Alerts in Grafana 13 using Telegraf Linux Metrics"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Lab Goal<\/h2>\n\n\n\n<p>In this lab, students will learn how to use <strong>Grafana 13<\/strong> with <strong>Graphite<\/strong> as a data source and create a Linux monitoring dashboard using metrics collected by <strong>Telegraf<\/strong>.<\/p>\n\n\n\n<p>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:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span>.*\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>It also confirms that <code>servers.*<\/code> returns empty, so this lab will <strong>not<\/strong> use <code>servers.*<\/code>.<\/p>\n\n\n\n<p>Grafana includes built-in support for Graphite, and the Graphite query editor helps users browse metric paths and build Graphite queries inside Grafana. (<a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/datasources\/graphite\/configure\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\">Grafana Labs<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 1: Lab Environment<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Existing Setup<\/h2>\n\n\n\n<p>You already have:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Grafana UI:\nhttp:<span class=\"hljs-comment\">\/\/32.192.207.253:3000<\/span>\n\nGraphite Web UI:\nhttp:<span class=\"hljs-comment\">\/\/&lt;server-ip&gt;:8080<\/span>\n\nDocker containers:\ngraphite\ntelegraf\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Your Docker output shows:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">graphiteapp\/graphite-statsd:latest\ntelegraf:latest\n<\/code><\/span><\/pre>\n\n\n<p>Graphite is exposed as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Host port 8080 -&gt; Graphite Web UI\nHost port 2003 -&gt; Carbon plaintext metric receiver\nHost port 2004 -&gt; Carbon pickle receiver\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 2: Important Rule for This Lab<\/h1>\n\n\n\n<p>Students must understand one important thing:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Graphite<\/span> <span class=\"hljs-selector-tag\">stores<\/span> <span class=\"hljs-selector-tag\">metrics<\/span> <span class=\"hljs-selector-tag\">as<\/span> <span class=\"hljs-selector-class\">.wsp<\/span> <span class=\"hljs-selector-tag\">files<\/span> <span class=\"hljs-selector-tag\">on<\/span> <span class=\"hljs-selector-tag\">disk<\/span>,\n<span class=\"hljs-selector-tag\">but<\/span> <span class=\"hljs-selector-tag\">Grafana<\/span> <span class=\"hljs-selector-tag\">queries<\/span> <span class=\"hljs-selector-tag\">should<\/span> <span class=\"hljs-selector-tag\">not<\/span> <span class=\"hljs-selector-tag\">include<\/span> <span class=\"hljs-selector-class\">.wsp<\/span>.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>For example, the file exists as:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/opt\/graphite\/storage\/whisper\/telegraf\/linux-demo\/cpu\/usage_active.wsp\n<\/code><\/span><\/pre>\n\n\n<p>But in Grafana, the query should be:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Not:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span><span class=\"hljs-selector-class\">.wsp<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 3: Verify Graphite and Telegraf Containers<\/h1>\n\n\n\n<p>Ask students to log in to the Linux server and run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker ps\n<\/code><\/span><\/pre>\n\n\n<p>Expected result should show containers similar to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">graphite\ntelegraf\n<\/code><\/span><\/pre>\n\n\n<p>Example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">graphiteapp\/graphite-statsd:latest\ntelegraf:latest\n<\/code><\/span><\/pre>\n\n\n<p>Explain to students:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Graphite is storing and serving metrics.\nTelegraf is collecting Linux system metrics and sending them to Graphite.\nGrafana will read metrics <span class=\"hljs-keyword\">from<\/span> Graphite and display dashboards.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 4: Verify Metrics Stored in Graphite<\/h1>\n\n\n\n<p>Run this command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl <span class=\"hljs-string\">\"http:\/\/localhost:8080\/metrics\/find?query=*\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Expected output should include:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">carbon\ndummy\nstats\nstats_counts\nstatsd\ntelegraf\n<\/code><\/span><\/pre>\n\n\n<p>Now check the Telegraf metric tree:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl <span class=\"hljs-string\">\"http:\/\/localhost:8080\/metrics\/find?query=telegraf.*\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Expected output should include:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">linux-demo\n<\/code><\/span><\/pre>\n\n\n<p>Now check the metric groups under <code>linux-demo<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl <span class=\"hljs-string\">\"http:\/\/localhost:8080\/metrics\/find?query=telegraf.linux-demo.*\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Expected metric groups:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cpu\nmem\ndisk\ndiskio\nkernel\nnet\nprocesses\nswap\nsystem\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 5: Correct Command to List Real Graphite Metrics<\/h1>\n\n\n\n<p>Use this command to list all stored Telegraf metrics from Whisper storage:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker exec graphite find \/opt\/graphite\/storage\/whisper\/telegraf -type f\n<\/code><\/span><\/pre>\n\n\n<p>To convert file paths into Graphite query names, use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker exec graphite find \/opt\/graphite\/storage\/whisper\/telegraf -type f \\\n| sed <span class=\"hljs-string\">'s#\/opt\/graphite\/storage\/whisper\/##; s#\/#.#g; s#\\.wsp$##'<\/span> \\\n| sort\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If students still see <code>.wsp<\/code> at the end, use this safer command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">docker exec graphite find \/opt\/graphite\/storage\/whisper\/telegraf -type f \\\n| tr -d <span class=\"hljs-string\">'\\r'<\/span> \\\n| sed <span class=\"hljs-string\">'s#\/opt\/graphite\/storage\/whisper\/##; s#\/#.#g; s#\\.wsp$##'<\/span> \\\n| sort\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Explain:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">The<\/span> <span class=\"hljs-selector-class\">.wsp<\/span> <span class=\"hljs-selector-tag\">file<\/span> <span class=\"hljs-selector-tag\">is<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">physical<\/span> <span class=\"hljs-selector-tag\">Whisper<\/span> <span class=\"hljs-selector-tag\">database<\/span> <span class=\"hljs-selector-tag\">file<\/span>.\n<span class=\"hljs-selector-tag\">Grafana<\/span> <span class=\"hljs-selector-tag\">query<\/span> <span class=\"hljs-selector-tag\">uses<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">logical<\/span> <span class=\"hljs-selector-tag\">metric<\/span> <span class=\"hljs-selector-tag\">path<\/span> <span class=\"hljs-selector-tag\">without<\/span> <span class=\"hljs-selector-class\">.wsp<\/span>.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 6: Add Graphite Data Source in Grafana 13<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Open Grafana<\/h2>\n\n\n\n<p>Open:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">http:<span class=\"hljs-comment\">\/\/32.192.207.253:3000<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Login to Grafana.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Go to Data Sources<\/h2>\n\n\n\n<p>From the left menu:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Connections \u2192 Data sources\n<\/code><\/span><\/pre>\n\n\n<p>Or:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Connections \u2192 Add <span class=\"hljs-keyword\">new<\/span> connection\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Grafana documentation also describes adding Graphite from the left-side <strong>Connections<\/strong> menu. (<a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/datasources\/graphite\/configure\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\">Grafana Labs<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Select Graphite<\/h2>\n\n\n\n<p>Search for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Graphite\n<\/code><\/span><\/pre>\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Add <span class=\"hljs-keyword\">new<\/span> data source\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Configure Graphite URL<\/h2>\n\n\n\n<p>Use this if Grafana is running on the same Linux VM where Docker Graphite is exposed:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">http:<span class=\"hljs-comment\">\/\/localhost:8080<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If that does not work, use the server IP:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">http:\/\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">server-public-ip<\/span>&gt;<\/span>:8080\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">http:<span class=\"hljs-comment\">\/\/32.192.207.253:8080<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Use:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Access: Server \/ <span class=\"hljs-built_in\">Proxy<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Save and Test<\/h2>\n\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Save &amp; test\n<\/code><\/span><\/pre>\n\n\n<p>Expected result:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Data source is working\n<\/code><\/span><\/pre>\n\n\n<p>If it fails, check:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker ps\n<\/code><\/span><\/pre>\n\n\n<p>Then confirm Graphite is reachable:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl <span class=\"hljs-string\">\"http:\/\/localhost:8080\/metrics\/find?query=telegraf.*\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 7: Explore Metrics in Grafana<\/h1>\n\n\n\n<p>Before creating dashboards, students should explore metrics.<\/p>\n\n\n\n<p>From the left menu:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Explore\n<\/code><\/span><\/pre>\n\n\n<p>Select the Graphite data source.<\/p>\n\n\n\n<p>Try this query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Run query\n<\/code><\/span><\/pre>\n\n\n<p>Students should see a CPU usage graph.<\/p>\n\n\n\n<p>Now try:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Then:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Explain:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Explore is used for testing queries before adding them to dashboards.\nDashboard panels are created after we know the query is working.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 8: Create Dashboard<\/h1>\n\n\n\n<p>From the left menu:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Dashboards\n<\/code><\/span><\/pre>\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">New<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Then:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">New<\/span> dashboard\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Add visualization\n<\/code><\/span><\/pre>\n\n\n<p>Select:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Graphite\n<\/code><\/span><\/pre>\n\n\n<p>Dashboard name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Linux Server Monitoring - Graphite Telegraf\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 9: Dashboard Layout<\/h1>\n\n\n\n<p>Create these dashboard rows:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">1. System Overview\n2. CPU Monitoring\n3. Memory Monitoring\n4. Disk Monitoring\n5. Disk I\/O Monitoring\n6. Network Monitoring\n7. Swap Monitoring\n8. Process Monitoring\n9. Kernel Monitoring\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 10: System Overview Panels<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel 1: CPU Active Usage<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CPU Active Usage %\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Stat\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<p>Thresholds:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">Green<\/span>: 0\n<span class=\"hljs-attribute\">Yellow<\/span>: 70\n<span class=\"hljs-attribute\">Red<\/span>: 90\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Explanation for students:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">This shows how much CPU is actively being used.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel 2: Memory Used %<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Memory Used %\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Stat\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<p>Thresholds:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">Green<\/span>: 0\n<span class=\"hljs-attribute\">Yellow<\/span>: 70\n<span class=\"hljs-attribute\">Red<\/span>: 90\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel 3: Disk Used %<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk Used %\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Stat\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<p>Thresholds:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">Green<\/span>: 0\n<span class=\"hljs-attribute\">Yellow<\/span>: 75\n<span class=\"hljs-attribute\">Red<\/span>: 90\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel 4: System Load 1 Minute<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">System Load 1 Minute\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.load1<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Stat\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">None\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Load average shows how busy the system is.\nA load close to or higher than the number of CPUs may indicate pressure.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel 5: System Uptime<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">System Uptime\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.uptime<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Stat\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Seconds\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Uptime shows how long the Linux system has been running.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 11: CPU Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: CPU Usage Breakdown<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CPU Usage Breakdown\n<\/code><\/span><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.cpu.usage_user, <span class=\"hljs-string\">'User CPU %'<\/span>)\nalias(telegraf.linux-demo.cpu.usage_system, <span class=\"hljs-string\">'System CPU %'<\/span>)\nalias(telegraf.linux-demo.cpu.usage_iowait, <span class=\"hljs-string\">'IO Wait CPU %'<\/span>)\nalias(telegraf.linux-demo.cpu.usage_idle, <span class=\"hljs-string\">'Idle CPU %'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">User CPU means application workload.\nSystem CPU means kernel workload.\nIO wait means CPU is waiting for disk or I\/O.\nIdle means CPU is free.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: CPU Active Usage Trend<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CPU Active Usage Trend\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 12: Memory Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Memory Used and Available %<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Memory Usage %\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.mem.used_percent, <span class=\"hljs-string\">'Used Memory %'<\/span>)\nalias(telegraf.linux-demo.mem.available_percent, <span class=\"hljs-string\">'Available Memory %'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Memory Used and Free<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Memory Used and Free\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.mem.used, <span class=\"hljs-string\">'Used Memory'<\/span>)\nalias(telegraf.linux-demo.mem.free, <span class=\"hljs-string\">'Free Memory'<\/span>)\nalias(telegraf.linux-demo.mem.available, <span class=\"hljs-string\">'Available Memory'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Bytes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Memory Cache and Buffer<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Memory Cache and Buffer\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-38\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.mem.cached, <span class=\"hljs-string\">'Cached Memory'<\/span>)\nalias(telegraf.linux-demo.mem.buffered, <span class=\"hljs-string\">'Buffered Memory'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-38\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Bytes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 13: Disk Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Disk Used %<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk Used %\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-39\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-39\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Gauge\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<p>Thresholds:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-40\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">Green<\/span>: 0\n<span class=\"hljs-attribute\">Yellow<\/span>: 75\n<span class=\"hljs-attribute\">Red<\/span>: 90\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-40\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Disk Used and Free<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk Used and Free\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-41\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.disk.used, <span class=\"hljs-string\">'Disk Used'<\/span>)\nalias(telegraf.linux-demo.disk.free, <span class=\"hljs-string\">'Disk Free'<\/span>)\nalias(telegraf.linux-demo.disk.total, <span class=\"hljs-string\">'Disk Total'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-41\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Bytes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Disk Inode Usage<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk Inode Usage %\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-42\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.inodes_used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-42\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Gauge\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-43\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Inodes are file metadata records.\nA disk can fail to create <span class=\"hljs-keyword\">new<\/span> files <span class=\"hljs-keyword\">if<\/span> inodes are full, even when disk space is available.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-43\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 14: Disk I\/O Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Disk I\/O Utilization<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk I\/O Utilization\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-44\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.io_util<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-44\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Disk Read and Write Bytes per Second<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk Read\/Write Bytes per Second\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-45\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(perSecond(telegraf.linux-demo.diskio.read_bytes), <span class=\"hljs-string\">'Read Bytes\/sec'<\/span>)\nalias(perSecond(telegraf.linux-demo.diskio.write_bytes), <span class=\"hljs-string\">'Write Bytes\/sec'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-45\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Bytes\/sec\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">read_bytes and write_bytes are counters.\nperSecond() converts them into a rate, which is easier to understand.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Disk Reads and Writes per Second<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk Reads\/Writes per Second\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-46\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(perSecond(telegraf.linux-demo.diskio.reads), <span class=\"hljs-string\">'Reads\/sec'<\/span>)\nalias(perSecond(telegraf.linux-demo.diskio.writes), <span class=\"hljs-string\">'Writes\/sec'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-46\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Operations\/sec\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Disk I\/O Await<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk I\/O Await\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-47\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.io_await<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-47\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Milliseconds\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-48\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">IO <span class=\"hljs-keyword\">await<\/span> shows how long disk operations are waiting.\nHigh values may indicate slow disk or heavy I\/O.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-48\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 15: Network Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Network Traffic Bytes per Second<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Network Traffic\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-49\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(perSecond(telegraf.linux-demo.net.bytes_recv), <span class=\"hljs-string\">'Bytes Received\/sec'<\/span>)\nalias(perSecond(telegraf.linux-demo.net.bytes_sent), <span class=\"hljs-string\">'Bytes Sent\/sec'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-49\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Bytes\/sec\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Network Packets per Second<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Network Packets\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-50\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(perSecond(telegraf.linux-demo.net.packets_recv), <span class=\"hljs-string\">'Packets Received\/sec'<\/span>)\nalias(perSecond(telegraf.linux-demo.net.packets_sent), <span class=\"hljs-string\">'Packets Sent\/sec'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-50\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Packets\/sec\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Network Errors<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Network Errors\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-51\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.net.err_in, <span class=\"hljs-string\">'Input Errors'<\/span>)\nalias(telegraf.linux-demo.net.err_out, <span class=\"hljs-string\">'Output Errors'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-51\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">None\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-52\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Network errors should normally remain zero.\n<span class=\"hljs-keyword\">If<\/span> errors increase, there may be a network, driver, <span class=\"hljs-keyword\">or<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">interface<\/span> <span class=\"hljs-title\">issue<\/span>.\n<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-52\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Network Drops<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Network Drops\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-53\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.net.drop_in, <span class=\"hljs-string\">'Input Drops'<\/span>)\nalias(telegraf.linux-demo.net.drop_out, <span class=\"hljs-string\">'Output Drops'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-53\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">None\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 16: Swap Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Swap Used %<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Swap Used %\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-54\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-54\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Gauge\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Percent (0-100)\n<\/code><\/span><\/pre>\n\n\n<p>Thresholds:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-55\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">Green<\/span>: 0\n<span class=\"hljs-attribute\">Yellow<\/span>: 20\n<span class=\"hljs-attribute\">Red<\/span>: 50\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-55\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Swap Used and Free<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Swap Used and Free\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-56\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.swap.used, <span class=\"hljs-string\">'Swap Used'<\/span>)\nalias(telegraf.linux-demo.swap.free, <span class=\"hljs-string\">'Swap Free'<\/span>)\nalias(telegraf.linux-demo.swap.total, <span class=\"hljs-string\">'Swap Total'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-56\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Bytes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Swap In and Out<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Swap In\/Out\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-57\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.swap.in, <span class=\"hljs-string\">'Swap In'<\/span>)\nalias(telegraf.linux-demo.swap.out, <span class=\"hljs-string\">'Swap Out'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-57\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Bytes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 17: Process Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Process States<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Process States\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-58\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.processes.running, <span class=\"hljs-string\">'Running'<\/span>)\nalias(telegraf.linux-demo.processes.sleeping, <span class=\"hljs-string\">'Sleeping'<\/span>)\nalias(telegraf.linux-demo.processes.blocked, <span class=\"hljs-string\">'Blocked'<\/span>)\nalias(telegraf.linux-demo.processes.zombies, <span class=\"hljs-string\">'Zombies'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-58\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Processes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Total Processes and Threads<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Total Processes and Threads\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-59\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(telegraf.linux-demo.processes.total, <span class=\"hljs-string\">'Total Processes'<\/span>)\nalias(telegraf.linux-demo.processes.total_threads, <span class=\"hljs-string\">'Total Threads'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-59\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">None\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 18: Kernel Monitoring Row<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Kernel Activity<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Kernel Activity\n<\/code><\/span><\/pre>\n\n\n<p>Queries:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-60\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">alias(perSecond(telegraf.linux-demo.kernel.context_switches), <span class=\"hljs-string\">'Context Switches\/sec'<\/span>)\nalias(perSecond(telegraf.linux-demo.kernel.interrupts), <span class=\"hljs-string\">'Interrupts\/sec'<\/span>)\nalias(perSecond(telegraf.linux-demo.kernel.processes_forked), <span class=\"hljs-string\">'Processes Forked\/sec'<\/span>)\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-60\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Ops\/sec\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Panel: Entropy Available<\/h2>\n\n\n\n<p>Panel title:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Kernel Entropy Available\n<\/code><\/span><\/pre>\n\n\n<p>Query:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-61\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.kernel<\/span><span class=\"hljs-selector-class\">.entropy_avail<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-61\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Visualization:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Time series\n<\/code><\/span><\/pre>\n\n\n<p>Unit:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">None\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Entropy is used by Linux for randomness.\nVery low entropy can affect cryptographic operations.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 19: Save Dashboard<\/h1>\n\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Save dashboard\n<\/code><\/span><\/pre>\n\n\n<p>Dashboard name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Linux Server Monitoring - Graphite Telegraf\n<\/code><\/span><\/pre>\n\n\n<p>Add description:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Student lab dashboard using Graphite metrics collected by Telegraf.\n<\/code><\/span><\/pre>\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Save\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 20: Create Grafana Alert Rules<\/h1>\n\n\n\n<p>Grafana-managed alert rules can query data sources, reduce or transform query results, and compare values against thresholds. (<a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/alerting\/alerting-rules\/create-grafana-managed-rule\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\">Grafana Labs<\/a>)<\/p>\n\n\n\n<p>From the left menu:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Alerting \u2192 Alert rules\n<\/code><\/span><\/pre>\n\n\n<p>Click:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-62\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">New<\/span> alert rule\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-62\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Use the same pattern for each alert:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Query A  \u2192 Graphite metric\nReduce B \u2192 Last or Mean\nCondition C \u2192 Threshold\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 1: High CPU Usage<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">High CPU Usage\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-63\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-63\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 90\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 5 minutes\n<\/code><\/span><\/pre>\n\n\n<p>Meaning:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Alert if CPU active usage stays above 90% for 5 minutes.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 2: High Memory Usage<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">High Memory Usage\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-64\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-64\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 90\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 5 minutes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 3: High Disk Usage<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">High Disk Usage\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-65\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-65\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 90\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 5 minutes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 4: High Disk Inode Usage<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">High Disk Inode Usage\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-66\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.inodes_used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-66\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 90\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 5 minutes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 5: High Swap Usage<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">High Swap Usage\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-67\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-67\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 50\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 5 minutes\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Swap usage should normally be low.\nHigh swap usage may indicate memory pressure.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 6: High System Load<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">High System Load\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-68\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.load1<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-68\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 2\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 5 minutes\n<\/code><\/span><\/pre>\n\n\n<p>Note for students:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-69\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">For a small lab VM, load above <span class=\"hljs-number\">2<\/span> can be considered high.\nIn production, compare load <span class=\"hljs-keyword\">with<\/span> number <span class=\"hljs-keyword\">of<\/span> CPU cores.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-69\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 7: Zombie Processes Detected<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Zombie Processes Detected\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-70\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.zombies<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-70\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 0\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 2 minutes\n<\/code><\/span><\/pre>\n\n\n<p>Explanation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Zombie processes are processes that have finished but still remain in the process table.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 8: Blocked Processes Detected<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Blocked Processes Detected\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-71\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.blocked<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-71\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 0\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 2 minutes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 9: Network Input Errors<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Network Input Errors\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-72\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.err_in<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-72\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 0\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 2 minutes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 10: Network Output Errors<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Network Output Errors\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-73\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.err_out<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-73\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 0\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 2 minutes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alert 11: Disk I\/O Utilization High<\/h1>\n\n\n\n<p>Alert name:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Disk I\/O Utilization High\n<\/code><\/span><\/pre>\n\n\n<p>Query A:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-74\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.io_util<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-74\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reduce:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last\n<\/code><\/span><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">IS ABOVE 80\n<\/code><\/span><\/pre>\n\n\n<p>Evaluation:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Every 1 minute\nFor 5 minutes\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 21: Recommended Alert Settings for Lab<\/h1>\n\n\n\n<p>For each alert rule, use:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Folder:\nLinux Monitoring Lab\n\nEvaluation group:\nlinux-telegraf-alerts\n\nEvaluate every:\n1m\n\nPending period:\n5m for resource alerts\n2m for error\/process alerts\n<\/code><\/span><\/pre>\n\n\n<p>No data behavior:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-75\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">No Data \u2192 No Data\n<span class=\"hljs-built_in\">Error<\/span> \u2192 <span class=\"hljs-built_in\">Error<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-75\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>For beginner labs, explain:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">No Data means Grafana did not receive data for the query.\nError means the query or data source failed.\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 22: Testing Alerts Safely<\/h1>\n\n\n\n<p>For a classroom lab, students may not naturally reach 90% CPU or memory.<\/p>\n\n\n\n<p>So for testing only, temporarily change thresholds.<\/p>\n\n\n\n<p>Example:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CPU alert production threshold:\nCPU &gt; 90\n\nCPU alert test threshold:\nCPU &gt; 1\n<\/code><\/span><\/pre>\n\n\n<p>Then wait for the alert to fire.<\/p>\n\n\n\n<p>After testing, change it back to:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CPU &gt; 90\n<\/code><\/span><\/pre>\n\n\n<p>For disk and memory alerts, do not ask beginners to fill disk or memory. Instead, test by temporarily lowering the threshold.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 23: Troubleshooting<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 1: Graphite Data Source Test Fails<\/h2>\n\n\n\n<p>Check Graphite container:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker ps\n<\/code><\/span><\/pre>\n\n\n<p>Check Graphite API:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-76\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl <span class=\"hljs-string\">\"http:\/\/localhost:8080\/metrics\/find?query=telegraf.*\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-76\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If Grafana cannot connect using:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-77\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">http:<span class=\"hljs-comment\">\/\/localhost:8080<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-77\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Try:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-78\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">http:\/\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">server-public-ip<\/span>&gt;<\/span>:8080\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-78\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 2: Query Shows No Data<\/h2>\n\n\n\n<p>Check whether metric exists:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-79\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">curl <span class=\"hljs-string\">\"http:\/\/localhost:8080\/metrics\/find?query=telegraf.linux-demo.cpu.*\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-79\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Try this known working metric:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-80\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-80\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Also check time range in Grafana:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Last 5 minutes\nLast 15 minutes\nLast 1 hour\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 3: Student Used <code>.wsp<\/code> in Grafana Query<\/h2>\n\n\n\n<p>Wrong:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-81\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span><span class=\"hljs-selector-class\">.wsp<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-81\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Correct:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-82\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-82\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Explain:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-83\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-class\">.wsp<\/span> <span class=\"hljs-selector-tag\">is<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">storage<\/span> <span class=\"hljs-selector-tag\">file<\/span> <span class=\"hljs-selector-tag\">extension<\/span>.\n<span class=\"hljs-selector-tag\">Grafana<\/span> <span class=\"hljs-selector-tag\">queries<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">metric<\/span> <span class=\"hljs-selector-tag\">name<\/span>, <span class=\"hljs-selector-tag\">not<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">file<\/span> <span class=\"hljs-selector-tag\">name<\/span>.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-83\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 4: Student Uses <code>servers.*<\/code><\/h2>\n\n\n\n<p>Wrong:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">servers.*\n<\/code><\/span><\/pre>\n\n\n<p>Correct:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-84\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span>.*\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-84\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reason:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-85\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">Your<\/span> <span class=\"hljs-selector-tag\">Graphite<\/span> <span class=\"hljs-selector-tag\">server<\/span> <span class=\"hljs-selector-tag\">has<\/span> <span class=\"hljs-selector-tag\">no<\/span> <span class=\"hljs-selector-tag\">metrics<\/span> <span class=\"hljs-selector-tag\">under<\/span> <span class=\"hljs-selector-tag\">servers<\/span>.*.\n<span class=\"hljs-selector-tag\">The<\/span> <span class=\"hljs-selector-tag\">actual<\/span> <span class=\"hljs-selector-tag\">metrics<\/span> <span class=\"hljs-selector-tag\">are<\/span> <span class=\"hljs-selector-tag\">stored<\/span> <span class=\"hljs-selector-tag\">under<\/span> <span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span>.*.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-85\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 24: Student Exercise<\/h1>\n\n\n\n<p>Ask students to complete these tasks:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exercise 1: Explore Metrics<\/h2>\n\n\n\n<p>Use Grafana Explore and run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-86\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-86\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Question:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Which metric shows CPU usage?\nWhich metric shows memory usage?\nWhich metric shows disk usage?\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Exercise 2: Create Three Stat Panels<\/h2>\n\n\n\n<p>Create stat panels for:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">CPU Active %\nMemory Used %\nDisk Used %\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Exercise 3: Create One Time Series Panel<\/h2>\n\n\n\n<p>Create a CPU breakdown panel using:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-87\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_user<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_system<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_iowait<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_idle<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-87\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Exercise 4: Create One Alert<\/h2>\n\n\n\n<p>Create alert:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">High Memory Usage\n<\/code><\/span><\/pre>\n\n\n<p>Metric:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-88\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-88\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Condition:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Above 90\n<\/code><\/span><\/pre>\n\n\n<p>For testing, temporarily change:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Above 1\n<\/code><\/span><\/pre>\n\n\n<p>Then restore:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Above 90\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Part 25: Complete Captured Metric Inventory<\/h1>\n\n\n\n<p>These are the actual metric groups to use in this lab.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CPU Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-89\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_active<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_guest<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_guest_nice<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_idle<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_iowait<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_irq<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_nice<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_softirq<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_steal<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_system<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.cpu<\/span><span class=\"hljs-selector-class\">.usage_user<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-89\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Memory Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-90\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.active<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.available<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.available_percent<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.buffered<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.cached<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.commit_limit<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.committed_as<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.dirty<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.high_free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.high_total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.huge_page_size<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.huge_pages_free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.huge_pages_total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.inactive<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.low_free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.low_total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.mapped<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.page_tables<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.shared<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.slab<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.sreclaimable<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.sunreclaim<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.swap_cached<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.swap_free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.swap_total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.vmalloc_chunk<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.vmalloc_total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.vmalloc_used<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.write_back<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.mem<\/span><span class=\"hljs-selector-class\">.write_back_tmp<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-90\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Disk Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-91\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.inodes_free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.inodes_total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.inodes_used<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.inodes_used_percent<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.used<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.disk<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-91\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Disk I\/O Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-92\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.io_await<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.io_svctm<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.io_time<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.io_util<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.iops_in_progress<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.merged_reads<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.merged_writes<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.read_bytes<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.read_time<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.reads<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.weighted_io_time<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.write_bytes<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.write_time<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.diskio<\/span><span class=\"hljs-selector-class\">.writes<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-92\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Network Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-93\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.bytes_recv<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.bytes_sent<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.drop_in<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.drop_out<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.err_in<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.err_out<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.packets_recv<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.packets_sent<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.net<\/span><span class=\"hljs-selector-class\">.speed<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-93\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Process Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-94\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.blocked<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.dead<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.idle<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.paging<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.running<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.sleeping<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.stopped<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.total_threads<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.unknown<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.processes<\/span><span class=\"hljs-selector-class\">.zombies<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-94\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Swap Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-95\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.free<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.in<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.out<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.total<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.used<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.swap<\/span><span class=\"hljs-selector-class\">.used_percent<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-95\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">System Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-96\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.load1<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.load15<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.load5<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.n_cpus<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.n_physical_cpus<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.system<\/span><span class=\"hljs-selector-class\">.uptime<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-96\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Kernel Metrics<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-97\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.kernel<\/span><span class=\"hljs-selector-class\">.boot_time<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.kernel<\/span><span class=\"hljs-selector-class\">.context_switches<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.kernel<\/span><span class=\"hljs-selector-class\">.entropy_avail<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.kernel<\/span><span class=\"hljs-selector-class\">.interrupts<\/span>\n<span class=\"hljs-selector-tag\">telegraf<\/span><span class=\"hljs-selector-class\">.linux-demo<\/span><span class=\"hljs-selector-class\">.kernel<\/span><span class=\"hljs-selector-class\">.processes_forked<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-97\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Final Student Summary<\/h1>\n\n\n\n<p>By completing this lab, students learned how to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-98\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-number\">1.<\/span> Verify Graphite and Telegraf containers\n<span class=\"hljs-number\">2.<\/span> Check stored Graphite metrics\n<span class=\"hljs-number\">3.<\/span> Understand .wsp files versus Grafana metric queries\n<span class=\"hljs-number\">4.<\/span> Add Graphite <span class=\"hljs-keyword\">as<\/span> a Grafana <span class=\"hljs-number\">13<\/span> data source\n<span class=\"hljs-number\">5.<\/span> Explore Graphite metrics <span class=\"hljs-keyword\">in<\/span> Grafana\n<span class=\"hljs-number\">6.<\/span> Build a Linux monitoring dashboard\n<span class=\"hljs-number\">7.<\/span> Create CPU, memory, disk, disk I\/O, network, swap, process, system, and kernel panels\n<span class=\"hljs-number\">8.<\/span> Create beginner-friendly Grafana alert rules\n<span class=\"hljs-number\">9.<\/span> Troubleshoot common Graphite and Grafana query issues\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-98\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8230;. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-75249","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=75249"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75249\/revisions"}],"predecessor-version":[{"id":75250,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/75249\/revisions\/75250"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=75249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=75249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=75249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}