<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Prometheus Basics Training</title><link>/</link><description>Recent content on Prometheus Basics Training</description><generator>Hugo</generator><language>en</language><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>1.1 Tasks: Setup</title><link>/docs/01/labs/11-baloise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/01/labs/11-baloise/</guid><description>&lt;h2 id="executing-oc-commands">Executing oc commands&lt;/h2>


&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

&lt;p>As you will be executing some &lt;code>oc&lt;/code> commands in the following labs, make sure you have the tool installed and are logged in to your OpenShift Cluster.&lt;/p>
&lt;p>You can copy the login Command from the OpenShift UI:&lt;/p>
&lt;ul>
&lt;li>Browse to &lt;a href="http://LOCALHOST_OPENSHIFT" target="_blank" rel="noopener">http://LOCALHOST_OPENSHIFT&lt;/a>
&lt;/li>
&lt;li>Click on your name in the top right&lt;/li>
&lt;li>&lt;code>Copy login command&lt;/code>&lt;/li>
&lt;li>Replace &lt;code>6443&lt;/code> with &lt;code>443&lt;/code>&lt;/li>
&lt;/ul>


&lt;/div>

&lt;h3 id="task-111-identify-your-monitoring-repository">Task 1.1.1: Identify your monitoring repository&lt;/h3>
&lt;p>Before we get started, take the time to familiarize yourself with the your config repository. In the training you will not be working with the config repository of your team to prevent the training resources from getting in the way of the day to day business. You can find more information on how to deploy the Baloise monitoring stack for your team at &lt;a href="https://confluence.baloisenet.com/atlassian/display/BALMATE/01&amp;#43;-&amp;#43;Deploying&amp;#43;the&amp;#43;Baloise&amp;#43;Monitoring&amp;#43;Stack" target="_blank" rel="noopener">Deploying the Baloise Monitoring Stack&lt;/a>
.&lt;/p></description></item><item><title>1.1 Tasks: Setup</title><link>/docs/01/labs/11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/01/labs/11/</guid><description>&lt;h2 id="task-111-getting-started---web-ide">Task 1.1.1: Getting Started - Web IDE&lt;/h2>
&lt;p>The first thing we&amp;rsquo;re going to do is to explore our lab environment and get in touch with the different components.&lt;/p>
&lt;p>The namespace with the name corresponding to your username is going to be used for all the hands-on labs. And you will be using the folling tools during the lab&lt;/p>
&lt;ul>
&lt;li>Gitea Git Server: &lt;a href="https://gitea.training.cluster.acend.ch/" target="_blank" rel="noopener">https://gitea.training.cluster.acend.ch&lt;/a>
 - Login with &lt;code>&amp;lt;user&amp;gt;&lt;/code> and the provided password&lt;/li>
&lt;li>Argo CD Server: &lt;a href="https://argocd.training.cluster.acend.ch" target="_blank" rel="noopener">https://argocd.training.cluster.acend.ch&lt;/a>
 - Login via Gitea&lt;/li>
&lt;li>git - Login with &lt;code>&amp;lt;user&amp;gt;&lt;/code> and the provided password&lt;/li>
&lt;li>kubectl - already logged in&lt;/li>
&lt;/ul>


&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

The URL and Credentials to the Web IDE will provided by the teacher. Use Chrome for the best experience.

&lt;/div>

&lt;p>Once you&amp;rsquo;re successfully logged into the web IDE open a new Terminal by hitting &lt;code>CTRL + SHIFT + ¨&lt;/code> or clicking the Menu button &amp;ndash;&amp;gt; Terminal &amp;ndash;&amp;gt; new Terminal and check the installed kubectlversion by executing the following command:&lt;/p></description></item><item><title>2.1 Tasks: File-Based Service Discovery</title><link>/docs/02/labs/21-baloise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/02/labs/21-baloise/</guid><description>&lt;p>In this lab you are going to configure Prometheus to scrape OpenShift-external targets by using file-based service discovery.&lt;/p>
&lt;h3 id="task-211-create-static-targets">Task 2.1.1: Create static targets&lt;/h3>
&lt;p>We are going to use the file-based service discovery mechanism that has been deployed on OpenShift (documented in &lt;a href="https://confluence.baloisenet.com/atlassian/display/BALMATE/02&amp;#43;-&amp;#43;Add&amp;#43;your&amp;#43;application&amp;#43;as&amp;#43;monitoring&amp;#43;target#id-02Addyourapplicationasmonitoringtarget-AddMonitoringTargetsoutsideofOpenShift" target="_blank" rel="noopener">Confluence&lt;/a>
). As file input you will create a ConfigMap defining the static targets.&lt;/p>
&lt;p>In the monitoring folder within your repository, create a YAML file &lt;code>training_target.yaml&lt;/code> defining a ConfigMap and add the file to your repository. Use the following example:&lt;/p></description></item><item><title>2.1 Tasks: Thanos Querier</title><link>/docs/02/labs/21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/02/labs/21/</guid><description>&lt;p>To have centralized access to the metrics of both the shared infrastructure Prometheus instance as well as your own userwokload Prometheus instance, we will install the Thanos Querier in this lab. This will give us a central point of view for the following prometheus instances:&lt;/p>
&lt;ul>
&lt;li>Infrastructure Prometheus (K8S Metrics, Node Metrics, &amp;hellip;) in the global &lt;code>monitoring&lt;/code> namespace&lt;/li>
&lt;li>Userworkload Prometheus (the stack we can use for our application metrics) in the &lt;code>&amp;lt;user&amp;gt;-monitoring&lt;/code> namespace&lt;/li>
&lt;/ul>
&lt;h3 id="task-211-install-thanos-querier">Task 2.1.1: Install Thanos Querier&lt;/h3>
&lt;p>To install the Thanos Querier, change &lt;code>query.enabled&lt;/code> to &lt;code>true&lt;/code> in the &lt;code>values.yaml&lt;/code> of your user-monitoring Helm release. ArgoCD will automagically install all needed components in your namespace.&lt;/p></description></item><item><title>2.2 Tasks: Explore metrics</title><link>/docs/02/labs/22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/02/labs/22/</guid><description>&lt;p>In this lab you are going to explore various metrics, which your Prometheus server is collecting.&lt;/p>
&lt;h3 id="task-221-prometheusthanos-web-ui">Task 2.2.1: Prometheus/Thanos web UI&lt;/h3>
&lt;p>As we have now attached the Thanos Querier to your own Prometheus as well as the infrastructure Prometheus, we will use its UI to have a global view.&lt;/p>
&lt;p>Get a feel for how to use the Thanos Querier web UI. Open the &lt;a href="https://&amp;amp;lt;user&amp;amp;gt;-thanos-query.training.cluster.acend.ch" target="_blank" rel="noopener">web UI&lt;/a>
 and navigate to the &lt;strong>Graph&lt;/strong> menu (right on top in the grey navigation bar next to Stores).&lt;/p></description></item><item><title>2.3 Tasks: PromQL</title><link>/docs/02/labs/23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/02/labs/23/</guid><description>&lt;p>In this lab you are going to learn a bit more about &lt;a href="https://prometheus.io/docs/prometheus/latest/querying/basics/" target="_blank" rel="noopener">PromQL (Prometheus Query Language)&lt;/a>
.&lt;/p>
&lt;p>PromQL is the query language that allows you to select, aggregate and filter the time series data collected by prometheus in real time.&lt;/p>


&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

&lt;p>Execute the queries in the &lt;a href="https://&amp;amp;lt;user&amp;amp;gt;-thanos-query.training.cluster.acend.ch" target="_blank" rel="noopener">Thanos Querier UI&lt;/a>
.&lt;/p>
&lt;p>PromQL can seem overwhelming. It may take a little time to get used to it. There may be different approaches to solve the tasks. Our solution is just one possibility.&lt;/p></description></item><item><title>3.1 Tasks: Grafana intro</title><link>/docs/03/labs/31-default-dashboards/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/03/labs/31-default-dashboards/</guid><description>&lt;h3 id="task-311-have-a-look-at-the-default-team-dashboard">Task 3.1.1 Have a look at the default team dashboard&lt;/h3>
&lt;p>The Monitoring Stack provides a dashboard that shows you common aggregated metrics of your applications. You should see the dashboard as soon as you log in.&lt;/p>
&lt;p>Have a look at the &lt;a href="http://LOCALHOST:3000/d/HoxOa1aTMk1/" target="_blank" rel="noopener">provided dashboard&lt;/a>
.&lt;/p>
&lt;ul>
&lt;li>Select either the cluster &lt;code>caast01&lt;/code> or &lt;code>caasp01&lt;/code> to get metrics from applications running on these clusters&lt;/li>
&lt;/ul>
&lt;h3 id="task-312-have-a-look-at-the-default-team-namespace-dashboard">Task 3.1.2 Have a look at the default team namespace dashboard&lt;/h3>
&lt;p>The Monitoring Stack provides a &lt;a href="http://LOCALHOST:3000/d/HoxOa1aTMk2/" target="_blank" rel="noopener">dashboard&lt;/a>
 that shows you metrics of your applications.&lt;/p></description></item><item><title>3.1 Tasks: Grafana intro</title><link>/docs/03/labs/31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/03/labs/31/</guid><description>&lt;h3 id="task-311-install-grafana">Task 3.1.1: Install Grafana&lt;/h3>
&lt;p>Similar to the basic setup, we are just going to update our configuration of the ArgoCD application to install and create our Grafana instance. Update your monitoring application (&lt;code>charts/user-monitoring/values.yaml&lt;/code>) and update the &lt;code>grafana.enabled&lt;/code> flag to &lt;code>true&lt;/code>:&lt;/p>
&lt;p>&lt;code>charts/user-monitoring/values.yaml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">user&lt;/span>: &lt;span style="color:#ae81ff">&amp;lt;user&amp;gt;&lt;/span> &lt;span style="color:#75715e"># Replace me&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">prometheus&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-query&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">query&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># grafana&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">grafana&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># blackboxexporter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">blackboxexporter&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># pushgateway&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">pushgateway&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># alertmanager&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">alertmanager&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-ruler&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">ruler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Verify the installation and sync process in the &lt;a href="https://argocd.training.cluster.acend.ch" target="_blank" rel="noopener">ArgoCD UI&lt;/a>
.
When the application is synchronized successfully navigate to your freshly created Grafana instance: &lt;a href="https://&amp;amp;lt;user&amp;amp;gt;-grafana.training.cluster.acend.ch" target="_blank" rel="noopener">https://&amp;lt;user&amp;gt;-grafana.training.cluster.acend.ch&lt;/a>
. Use the admin account to login in. Skip the password change.&lt;/p></description></item><item><title>3.2 Tasks: Grafana dashboards</title><link>/docs/03/labs/32/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/03/labs/32/</guid><description>&lt;h3 id="task-321-import-a-dashboard">Task 3.2.1: Import a dashboard&lt;/h3>
&lt;p>As a first Task we import an existing dashboard to our grafana. There is a huge collection of predefined dashboards available on &lt;a href="https://grafana.com/grafana/dashboards" target="_blank" rel="noopener">https://grafana.com/grafana/dashboards&lt;/a>
.&lt;/p>
&lt;p>In this task we learn how to import existing dashboards, which we can also use as reference to write our own queries and dashboards.&lt;/p>
&lt;p>Choose one or more of the preexisting dashboards from &lt;a href="https://grafana.com/grafana/dashboards" target="_blank" rel="noopener">https://grafana.com/grafana/dashboards&lt;/a>
 and import them into your grafana. Use the daterange, interval picker on the top right to change the timerange (between &lt;code>5 minutes&lt;/code> and &lt;code>10 minutes&lt;/code>) of the displayed mertics.&lt;/p></description></item><item><title>4.1 Tasks: Blackbox exporter</title><link>/docs/04/labs/41-baloise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/04/labs/41-baloise/</guid><description>&lt;h3 id="task-411-add-a-blackbox-target">Task 4.1.1: Add a blackbox target&lt;/h3>
&lt;p>We will use the blackbox exporter to create a new probe which accepts a &lt;code>2xx&lt;/code> return code as a valid http return code. This will return the &lt;code>probe_success&lt;/code> metric from the blackbox exporter with the value &lt;code>1&lt;/code>, if the http status code is &lt;code>2xx&lt;/code>.&lt;/p>
&lt;p>&lt;strong>Task description&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Create a probe in the monitoring directory which uses the HTTP prober and expects a &lt;code>2xx&lt;/code> return code as a valid status code&lt;/li>
&lt;li>Define &lt;code>https://bitbucket.balgroupit.com/status&lt;/code> as a single static target, which the blackbox should probe&lt;/li>
&lt;li>Use the following documentation as reference &lt;a href="https://confluence.baloisenet.com/atlassian/display/BALMATE/06&amp;#43;-&amp;#43;HTTP&amp;#43;and&amp;#43;TCP&amp;#43;endpoint&amp;#43;monitoring" target="_blank" rel="noopener">06 - HTTP and TCP endpoint monitoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;details data-mode="normalexpertmode" class="normalexpertmode">
 &lt;summary>Hints&lt;/summary>
&lt;p>To configure the blackbox exporter you have to add the following file &lt;code>training_blackbox_target.yaml&lt;/code> to your monitoring directory, commit and push the changes:&lt;/p></description></item><item><title>4.1 Tasks: Blackbox exporter</title><link>/docs/04/labs/41/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/04/labs/41/</guid><description>&lt;h3 id="task-411-install-blackbox-exporter">Task 4.1.1: Install Blackbox exporter&lt;/h3>
&lt;p>Similar to the basic setup, we are just going to update our configuration of the ArgoCD application to install the Blackbox exporter. Update your monitoring application (&lt;code>charts/user-monitoring/values.yaml&lt;/code>) and update the &lt;code>blackboxexporter.enabled&lt;/code> flag to &lt;code>true&lt;/code>:&lt;/p>
&lt;p>&lt;code>charts/user-monitoring/values.yaml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">user&lt;/span>: &lt;span style="color:#ae81ff">&amp;lt;user&amp;gt;&lt;/span> &lt;span style="color:#75715e"># Replace me&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">prometheus&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-query&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">query&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># grafana&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">grafana&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">datasources&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">access&lt;/span>: &lt;span style="color:#ae81ff">proxy&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">editable&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">url&lt;/span>: &lt;span style="color:#ae81ff">http://prometheus-operated:9090&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># blackboxexporter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">blackboxexporter&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># pushgateway&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">pushgateway&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># alertmanager&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">alertmanager&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-ruler&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">ruler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Commit and push the changes.&lt;/p></description></item><item><title>4.2 Tasks: Pushgateway</title><link>/docs/04/labs/42/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/04/labs/42/</guid><description>&lt;h3 id="task-421---install-and-configure-pushgateway">Task 4.2.1 - Install and configure Pushgateway&lt;/h3>
&lt;p>Update your monitoring application (&lt;code>charts/user-monitoring/values.yaml&lt;/code>) and update the &lt;code>blackboxexporter.enabled&lt;/code> flag to &lt;code>true&lt;/code>:&lt;/p>
&lt;p>&lt;code>charts/user-monitoring/values.yaml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">user&lt;/span>: &lt;span style="color:#ae81ff">&amp;lt;user&amp;gt;&lt;/span> &lt;span style="color:#75715e"># Replace me&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">prometheus&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-query&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">query&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># grafana&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">grafana&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">datasources&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">access&lt;/span>: &lt;span style="color:#ae81ff">proxy&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">editable&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">url&lt;/span>: &lt;span style="color:#ae81ff">http://prometheus-operated:9090&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># blackboxexporter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">blackboxexporter&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># pushgateway&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">pushgateway&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># alertmanager&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">alertmanager&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-ruler&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">ruler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Commit and push the changes and verify whether the deployment worked correctly.&lt;/p></description></item><item><title>6.1 Tasks: Instrumenting</title><link>/docs/06/labs/61/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/06/labs/61/</guid><description>&lt;h3 id="task-611-get-the-source-code">Task 6.1.1: Get the source code&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/acend/prometheus-training-go-instrumentation.git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Change into the freshly cloned git repository&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>cd prometheus-training-go-instrumentation
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>TODO: create Dockerfile
This application creates a simple webserver which listens at &lt;code>http://localhost:8083&lt;/code> and returns the string &lt;code>Prometheus Training&lt;/code> after a random interval between 0 and 1000 milliseconds. You can test the app by building it as a docker image using &lt;code>docker build -t prometheus-training-go-instrumentation:local .&lt;/code> and then running the built image using &lt;code>docker run --rm -p 8083:8083 prometheus-training-go-instrumentation:local&lt;/code>. You can then (in a separate terminal) issue a request using the command &lt;code>curl http://localhost:8083&lt;/code>.&lt;/p></description></item><item><title>6.1 Tasks: Instrumenting</title><link>/docs/06/labs/61_baloise_springboot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/06/labs/61_baloise_springboot/</guid><description>&lt;h3 id="task-611-spring-boot-example-instrumentation">Task 6.1.1: Spring Boot Example Instrumentation&lt;/h3>
&lt;p>Using the &lt;a href="https://spring.io/blog/2018/03/16/micrometer-spring-boot-2-s-new-application-metrics-collector" target="_blank" rel="noopener">micrometer metrics facade&lt;/a>
 in Spring Boot Applications lets us collect all sort of metrics within a Spring Boot application. Those metrics can be exported for Prometheus to scrape by a few additional dependencies and configuration.&lt;/p>
&lt;p>Let&amp;rsquo;s have a deeper look at how the instrumentation of a Spring Boot application works. For that we can use the prometheus-training-spring-boot-example application located at &lt;a href="https://github.com/acend/prometheus-training-spring-boot-example" target="_blank" rel="noopener">https://github.com/acend/prometheus-training-spring-boot-example&lt;/a>
. To make the application collect metrics and provide a Prometheus endpoint we now need to simply add the following two dependencies in the &lt;code>pom.xml&lt;/code> file, where it says &lt;code>&amp;lt;!-- Add Dependencies here--&amp;gt;&lt;/code>:&lt;/p></description></item><item><title>6.1 Tasks: Instrumenting</title><link>/docs/06/labs/61_springboot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/06/labs/61_springboot/</guid><description>&lt;h3 id="task-611-spring-boot-example-instrumentation">Task 6.1.1: Spring Boot Example Instrumentation&lt;/h3>
&lt;p>Using the &lt;a href="https://spring.io/blog/2018/03/16/micrometer-spring-boot-2-s-new-application-metrics-collector" target="_blank" rel="noopener">micrometer metrics facade&lt;/a>
 in Spring Boot Applications lets us collect all sort of metrics within a Spring Boot application. Those metrics can be exported for Prometheus to scrape by a few additional dependencies and configuration.&lt;/p>
&lt;p>Let&amp;rsquo;s have a deeper look at how the instrumentation of a Spring Boot application works. For that we can use the prometheus-training-spring-boot-example application located at &lt;a href="https://github.com/acend/prometheus-training-spring-boot-example" target="_blank" rel="noopener">https://github.com/acend/prometheus-training-spring-boot-example&lt;/a>
. To make the application collect metrics and provide a Prometheus endpoint we now need to simply add the following two dependencies in the &lt;code>pom.xml&lt;/code> file, where it says &lt;code>&amp;lt;!-- Add Dependencies here--&amp;gt;&lt;/code>:&lt;/p></description></item><item><title>7.1 Tasks: Enable and configure Alertmanager</title><link>/docs/07/labs/71/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/07/labs/71/</guid><description>&lt;h3 id="task-711-install-alertmanager-and-thanosruler">Task 7.1.1: Install Alertmanager and Thanosruler&lt;/h3>
&lt;p>Update your monitoring application (&lt;code>charts/user-monitoring/values.yaml&lt;/code>) and update the &lt;code>alertmanager.enabled&lt;/code> and &lt;code>ruler.enabled&lt;/code> flag to &lt;code>true&lt;/code>:&lt;/p>
&lt;p>&lt;code>charts/user-monitoring/values.yaml&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">user&lt;/span>: &lt;span style="color:#ae81ff">&amp;lt;user&amp;gt;&lt;/span> &lt;span style="color:#75715e"># Replace me&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">prometheus&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-query&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">query&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># grafana&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">grafana&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">datasources&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">access&lt;/span>: &lt;span style="color:#ae81ff">proxy&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">editable&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">prometheus&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">url&lt;/span>: &lt;span style="color:#ae81ff">http://prometheus-operated:9090&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># blackboxexporter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">blackboxexporter&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># pushgateway&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">pushgateway&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># alertmanager&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">alertmanager&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># thanos-ruler&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">ruler&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">enabled&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Commit and push the changes.&lt;/p>
&lt;p>Verify the installation and sync process in the &lt;a href="https://argocd.training.cluster.acend.ch" target="_blank" rel="noopener">ArgoCD UI&lt;/a>
.
Or execute the following command:&lt;/p></description></item><item><title>7.1 Tasks: Setup custom alerting rules</title><link>/docs/07/labs/71_baloise_alertmanager-tasks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/07/labs/71_baloise_alertmanager-tasks/</guid><description>&lt;h3 id="task-711-add-alerting-rules">Task 7.1.1: Add alerting rules&lt;/h3>


&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

Alertmanager will automatically send mails to the defined &lt;code>responsible&lt;/code> email address in the teams root configuration when you set the label &lt;code>severity=critical&lt;/code> in your PrometheusRule.
To change this behaviour and/or add Alerting to MS Teams, check the documentation &lt;a href="https://confluence.baloisenet.com/atlassian/display/BALMATE/03&amp;#43;-&amp;#43;Setup&amp;#43;custom&amp;#43;alerting&amp;#43;rules#id-03Setupcustomalertingrules-Alerting" target="_blank" rel="noopener">03 - Setup custom alerting rules&lt;/a>
 in Confluence.

&lt;/div>

&lt;p>The Prometheus Operator allows you to configure Alerting Rules (PrometheusRules). This enables OpenShift users to configure and maintain alerting rules for their projects. Furthermore it is possible to treat Alerting Rules like any other Kubernetes resource and lets you manage them in Helm or Kustomize. A PrometheusRule has the following form:&lt;/p></description></item><item><title>7.2 Tasks: Alertmanager</title><link>/docs/07/labs/72/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/07/labs/72/</guid><description>&lt;h3 id="task-721-configure-slack-as-alert-receiver">Task 7.2.1: Configure Slack as alert receiver&lt;/h3>
&lt;p>As part of our lab setup we already configured an alert receiver for Alertmanager alerts.&lt;/p>
&lt;p>We deployed the &lt;a href="https://&amp;amp;lt;user&amp;amp;gt;-mailcatcher.training.cluster.acend.ch" target="_blank" rel="noopener">Mail catcher&lt;/a>
, which is a very simple component. We can send Emails to the server, and those are then displayed in the Web UI. The Emails are not send anywhere, and this setup should only be used for demo purposes.&lt;/p>
&lt;p>When we enabled the alertmanager configuration in the &lt;code>charts/user-monitoring/values.yaml&lt;/code> we also deployed the following AlertmanagerConfig Custom Resource&lt;/p></description></item><item><title>7.3 Tasks: Alertrules and alerts</title><link>/docs/07/labs/73/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/07/labs/73/</guid><description>&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

&lt;p>For doing the alerting lab it&amp;rsquo;s useful to have a &amp;ldquo;real&amp;rdquo; application so that alerts can be provoked. You will use the demo app installed in your monitoring-demo namespace for this purpose.&lt;/p>
&lt;p>The example app exposes metrics which are already scraped from lab one.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-promql" data-lang="promql">&lt;span style="display:flex;">&lt;span>{job&lt;span style="color:#f92672">=&lt;/span>&amp;#34;&lt;span style="color:#e6db74">example-web-python&lt;/span>&amp;#34;}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>

&lt;/div>

&lt;p>The Prometheus Operator allows you to configure Alerting Rules (PrometheusRules). This enables Kubernetes users to configure and maintain alerting rules for their projects. Furthermore it is possible to treat Alerting Rules like any other Kubernetes resource and lets you manage them in Helm or Kustomize. A PrometheusRule has the following form:&lt;/p></description></item><item><title>4.3 Tasks: Exporter as a sidecar</title><link>/docs/04/labs/43-baloise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/04/labs/43-baloise/</guid><description>&lt;h3 id="task-431-deploy-a-database-and-use-a-sidecar-container-to-expose-metric">Task 4.3.1: Deploy a database and use a sidecar container to expose metric&lt;/h3>
&lt;p>&lt;strong>Task description&lt;/strong>:&lt;/p>
&lt;p>As we&amp;rsquo;ve learned in &lt;a href="../../../04/">Lab 4 - Prometheus exporters&lt;/a>
 when applications do not expose metrics in the Prometheus format, there are a lot of exporters available to convert metrics into the correct format. In Kubernetes this is often done by deploying so called sidecar containers along with the actual application.&lt;/p>
&lt;p>Use the following command to deploy a MariaDB database your monitoring or application namespace on CAAST.&lt;/p></description></item><item><title>4.3 Tasks: Exporter as a sidecar</title><link>/docs/04/labs/43/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/04/labs/43/</guid><description>&lt;h3 id="task-431-deploy-a-database-and-use-a-sidecar-container-to-expose-metric">Task 4.3.1: Deploy a database and use a sidecar container to expose metric&lt;/h3>
&lt;p>As we&amp;rsquo;ve learned in &lt;a href="../../../04/">Lab 4 - Prometheus exporters&lt;/a>
 when applications do not expose metrics in the Prometheus format, there are a lot of exporters available to convert metrics into the correct format. In Kubernetes this is often done by deploying so called sidecar containers along with the actual application.&lt;/p>
&lt;p>This lab demonstrates that with a &lt;code>mariadb&lt;/code> database. In the first step, we are going to install a plain &lt;code>mariadb&lt;/code> with a &lt;a href="https://kubernetes.io/docs/concepts/configuration/secret/" target="_blank" rel="noopener">Secret&lt;/a>
 (username password to access the database), a &lt;a href="https://kubernetes.io/docs/concepts/services-networking/service/" target="_blank" rel="noopener">Service&lt;/a>
 and the &lt;a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" target="_blank" rel="noopener">Deployment&lt;/a>
.&lt;/p></description></item><item><title>5.1 Tasks: kube-prometheus metrics</title><link>/docs/05/labs/51/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/05/labs/51/</guid><description>&lt;h3 id="task-511-memory-usage-of-prometheus">Task 5.1.1: Memory usage of Prometheus&lt;/h3>
&lt;p>&lt;strong>Task description&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Display the memory usage of both Prometheus pods&lt;/li>
&lt;li>Use a filter to just display metrics from your &lt;code>prometheus&lt;/code> containers&lt;/li>
&lt;/ul>
&lt;p>Use the [Thanos Querier web UI](https://&amp;lt;user&amp;gt;-thanos-query.training.cluster.acend.ch to execute the queries.&lt;/p>


&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

Search for a metric with &lt;code>memory_working_set&lt;/code> in its name

&lt;/div>

&lt;details data-mode="normalexpertmode" class="normalexpertmode">
 &lt;summary>Hints&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-promql" data-lang="promql">&lt;span style="display:flex;">&lt;span>container_memory_working_set_bytes{pod&lt;span style="color:#f92672">=~&lt;/span>&amp;#34;&lt;span style="color:#e6db74">prometheus-prometheus-0&lt;/span>&amp;#34;, container&lt;span style="color:#f92672">=&lt;/span>&amp;#34;&lt;span style="color:#e6db74">prometheus&lt;/span>&amp;#34;,namespace&lt;span style="color:#f92672">=~&lt;/span>&amp;#34;&lt;span style="color:#e6db74">&amp;lt;user&amp;gt;.*&lt;/span>&amp;#34;}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;/details>
&lt;h3 id="task-512-kubernetes-pod-count">Task 5.1.2: Kubernetes pod count&lt;/h3>
&lt;p>&lt;strong>Task description&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Display how many pods are currently running on your Kubernetes platform&lt;/li>
&lt;/ul>
&lt;details data-mode="normalexpertmode" class="normalexpertmode">
 &lt;summary>Hints&lt;/summary>
&lt;p>There are different ways to archive this. You can for example query all running containers and group them by &lt;code>pod&lt;/code> and &lt;code>namespace&lt;/code>.&lt;/p></description></item><item><title>5.2 Tasks: Prometheus Operator</title><link>/docs/05/labs/52/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/05/labs/52/</guid><description>&lt;h3 id="521-prometheus-storage">5.2.1: Prometheus storage&lt;/h3>
&lt;p>By default, the Prometheus operator stack does not persist the data of the deployed monitoring stack. Therefore, any pod restart would result in a reset of all data. Let&amp;rsquo;s learn about persistence for Prometheus.&lt;/p>
&lt;p>&lt;strong>Task description&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>See this &lt;a href="https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/storage.md#manual-storage-provisioning" target="_blank" rel="noopener">example&lt;/a>
 of how to configure storage for Prometheus&lt;/li>
&lt;/ul>
&lt;p>To get the current values, either look at the file in git or use &lt;code>kubectl -n $USER-monitoring get prometheus prometheus -oyaml&lt;/code>.&lt;/p>
&lt;details data-mode="normalexpertmode" class="normalexpertmode">
 &lt;summary>Hints&lt;/summary>
&lt;p>To enable storage for our Prometheus we would simply add the following section to our Prometheus definition.&lt;/p></description></item><item><title>Footer</title><link>/pdf/footer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/pdf/footer/</guid><description>&lt;!-- markdownlint-disable MD033 -->
&lt;div class="pdf-footer">
&lt;p>&lt;span class="page">&lt;/span> / &lt;span class="topage">&lt;/span>&lt;/p>
&lt;/div>
&lt;!-- markdownlint-enable MD033 --></description></item><item><title>Header</title><link>/pdf/header/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/pdf/header/</guid><description>&lt;!-- markdownlint-disable MD033 -->
&lt;div class="pdf-header">
&lt;p>
 - acend gmbh&lt;/p>
&lt;/div>
&lt;!-- markdownlint-enable MD033 --></description></item><item><title>8.1 Tasks: Relabeling</title><link>/docs/08/labs/81-relabeling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/08/labs/81-relabeling/</guid><description>&lt;p>&lt;a href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config" target="_blank" rel="noopener">Relabeling&lt;/a>
 in Prometheus can be used to perform numerous tasks using regular expressions, such as&lt;/p>
&lt;ul>
&lt;li>adding, modifying or removing labels to/from metrics or alerts,&lt;/li>
&lt;li>filtering metrics based on labels, or&lt;/li>
&lt;li>enabling horizontal scaling of Prometheus by using &lt;code>hashmod&lt;/code> relabeling.&lt;/li>
&lt;/ul>
&lt;p>It is a very powerful part of the Prometheus configuration, but it can also get quite complex and confusing. Thus, we will only take a look at some basic/simple examples.&lt;/p>
&lt;p>There are four types of relabelings:&lt;/p></description></item><item><title>8.2 Tasks: Recording Rules</title><link>/docs/08/labs/82-recording/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/08/labs/82-recording/</guid><description>&lt;p>Prometheus &lt;a href="https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/" target="_blank" rel="noopener">recording rules&lt;/a>
 allow you to precompute queries at a defined interval (&lt;code>global.evaluation_interval&lt;/code> or &lt;code>interval&lt;/code> in &lt;code>rule_group&lt;/code>) and save them to a new set of time series.&lt;/p>
&lt;p>In this lab you are going to create your first own recording rules. &lt;a href="https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/" target="_blank" rel="noopener">Recording rules&lt;/a>
 are very useful when it comes to queries, which are very complex and take a long time to compute.
The naming convention dictates to use the following format when naming recording rules &lt;code>level:metric:operation&lt;/code>. Additional information regarding naming best-practices can be found &lt;a href="https://prometheus.io/docs/practices/rules/#naming-and-aggregation" target="_blank" rel="noopener">here&lt;/a>
.&lt;/p></description></item><item><title>8.3 Tasks: Troubleshoot Kubernetes Service Discovery</title><link>/docs/08/labs/83-troubleshoot-sd-baloise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/08/labs/83-troubleshoot-sd-baloise/</guid><description>&lt;h3 id="task-831-troubleshooting-kubernetes-service-discovery">Task 8.3.1: Troubleshooting Kubernetes Service Discovery&lt;/h3>
&lt;p>We will now deploy an application with an error in the monitoring configration.&lt;/p>
&lt;p>Deploy &lt;a href="https://grafana.com/oss/loki/" target="_blank" rel="noopener">Loki&lt;/a>
 in the monitoring namespace.&lt;/p>
&lt;p>Create a deployment &lt;code>training_loki-deployment.yaml&lt;/code>.&lt;/p>


 




	






 






 &lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">apiVersion&lt;/span>: &lt;span style="color:#ae81ff">apps/v1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">kind&lt;/span>: &lt;span style="color:#ae81ff">Deployment&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">example-loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">replicas&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">selector&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">matchLabels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">template&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">containers&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">image&lt;/span>: &lt;span style="color:#ae81ff">quay.balgroupit.com/acend/loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">imagePullPolicy&lt;/span>: &lt;span style="color:#ae81ff">Always&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">volumeMounts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">mountPath&lt;/span>: &lt;span style="color:#ae81ff">/loki/chunks&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">chunks&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">mountPath&lt;/span>: &lt;span style="color:#ae81ff">/loki/boltdb-shipper-cache&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">boltdb-shipper-cache&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">mountPath&lt;/span>: &lt;span style="color:#ae81ff">/loki/boltdb-shipper-active&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">shipper-active&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">mountPath&lt;/span>: &lt;span style="color:#ae81ff">/loki/wal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">wal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">mountPath&lt;/span>: &lt;span style="color:#ae81ff">/loki/compactor&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">compactor&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">restartPolicy&lt;/span>: &lt;span style="color:#ae81ff">Always&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">volumes&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">chunks&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">emptyDir&lt;/span>: {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">boltdb-shipper-cache&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">emptyDir&lt;/span>: {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">shipper-active&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">emptyDir&lt;/span>: {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">wal&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">emptyDir&lt;/span>: {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">compactor&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">emptyDir&lt;/span>: {}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>


&lt;p>Create a Service &lt;code>training_service-loki.yaml&lt;/code>.&lt;/p></description></item><item><title>8.3 Tasks: Troubleshoot Kubernetes Service Discovery</title><link>/docs/08/labs/83-troubleshoot-sd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/08/labs/83-troubleshoot-sd/</guid><description>&lt;h3 id="task-831-troubleshooting-kubernetes-service-discovery">Task 8.3.1: Troubleshooting Kubernetes Service Discovery&lt;/h3>
&lt;p>We will now deploy an application with an error in the monitoring configration.&lt;/p>
&lt;ul>
&lt;li>Deploy &lt;a href="https://grafana.com/oss/loki/" target="_blank" rel="noopener">Loki&lt;/a>
 in your namespace by adding the following files to your git repo in the &lt;code>user-demo/&lt;/code> folder:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">apiVersion&lt;/span>: &lt;span style="color:#ae81ff">apps/v1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">kind&lt;/span>: &lt;span style="color:#ae81ff">Deployment&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">replicas&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">selector&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">matchLabels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">template&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">containers&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">image&lt;/span>: &lt;span style="color:#ae81ff">mirror.gcr.io/grafana/loki:latest&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">apiVersion&lt;/span>: &lt;span style="color:#ae81ff">v1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">kind&lt;/span>: &lt;span style="color:#ae81ff">Service&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">ports&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">http&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">port&lt;/span>: &lt;span style="color:#ae81ff">3100&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">protocol&lt;/span>: &lt;span style="color:#ae81ff">TCP&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">targetPort&lt;/span>: &lt;span style="color:#ae81ff">3100&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">selector&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">type&lt;/span>: &lt;span style="color:#ae81ff">NodePort&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">apiVersion&lt;/span>: &lt;span style="color:#ae81ff">monitoring.coreos.com/v1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">kind&lt;/span>: &lt;span style="color:#ae81ff">ServiceMonitor&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">app.kubernetes.io/name&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">loki&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">endpoints&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">interval&lt;/span>: &lt;span style="color:#ae81ff">30s&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">port&lt;/span>: &lt;span style="color:#ae81ff">http&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">scheme&lt;/span>: &lt;span style="color:#ae81ff">http&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">path&lt;/span>: &lt;span style="color:#ae81ff">/metrics&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">selector&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">matchLabels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">prometheus-monitoring&lt;/span>: &lt;span style="color:#e6db74">&amp;#39;true&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Add, commit and push changes to your git repository and let ArgoCD sync your app again.&lt;/p></description></item><item><title>8.4 Tasks: Cleanup your monitoring workspace</title><link>/docs/08/labs/84-cleanup-baloise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/08/labs/84-cleanup-baloise/</guid><description>&lt;h3 id="task-841-cleanup-your-monitoring-workspace">Task 8.4.1: Cleanup your monitoring workspace&lt;/h3>
&lt;p>Make sure to remove all files with the &lt;code>training_&lt;/code> prefix in your monitoring directory.&lt;/p></description></item><item><title>About</title><link>/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/about/</guid><description>&lt;section id="td-cover-block-0" class="row td-cover-block td-cover-block--height-min js-td-cover td-overlay td-overlay--dark -bg-dark">
 &lt;div class="container td-overlay__inner">
 &lt;div class="row">
 &lt;div class="col-12">
 &lt;div class="text-center">
 &lt;h1 class="display-1 mt-0 mt-md-5 pb-4">About Prometheus Basics Training&lt;/h1>
 
 &lt;div class="pt-3 lead">
 
 &lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;/div>
 
&lt;/section></description></item></channel></rss>