{"id":7282,"date":"2020-11-29T07:59:26","date_gmt":"2020-11-29T04:59:26","guid":{"rendered":"https:\/\/kifarunix.com\/?p=7282"},"modified":"2024-03-14T23:38:46","modified_gmt":"2024-03-14T20:38:46","slug":"monitoring-gitlab-metrics-with-prometheus-and-grafana","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/monitoring-gitlab-metrics-with-prometheus-and-grafana\/","title":{"rendered":"Monitoring Gitlab Metrics with Prometheus and Grafana"},"content":{"rendered":"\n<p>In this tutorial, we will learn about monitoring Gitlab metrics with Prometheus and Grafana. <a aria-label=\"Grafana (opens in a new tab)\" class=\"rank-math-link\" href=\"https:\/\/grafana.com\/docs\/\" target=\"_blank\" rel=\"noreferrer noopener\">Grafana<\/a> is a data visualization and monitoring tool and supports time series datastores such as Graphite, InfluxDB, Prometheus, Elasticsearch. <em><a aria-label=\"Prometheus (opens in a new tab)\" class=\"rank-math-link\" href=\"https:\/\/prometheus.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Prometheus<\/a>&nbsp;is a powerful time-series monitoring service, providing a flexible platform for monitoring GitLab and other software products. GitLab provides out of the box monitoring with Prometheus, providing easy access to high quality time-series monitoring of GitLab services.<\/em> Grafana can be used to achieve better visualization of the metrics collected by the Prometheus.<\/p>\n\n\n\n<p>Want more Grafana and Prometheus? Check the links below;<\/p>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/gp\/product\/1492034142\/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1492034142&amp;linkCode=as2&amp;tag=unixkip-20&amp;linkId=ad8e4c52d97f6364fd2fba5bc30dd789\" rel=\"noreferrer noopener\">Prometheus: Up &amp; Running: Infrastructure and Application Performance Monitoring<\/a><\/p>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/www.amazon.com\/gp\/product\/B089GRT4JZ\/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B089GRT4JZ&amp;linkCode=as2&amp;tag=unixkip-20&amp;linkId=e6aeef4faa6d53b428579b22a0943078\" rel=\"noreferrer noopener\">Learn Grafana 7.0: A beginner&#8217;s guide to getting well versed in analytics, interactive dashboards, and monitoring<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using Prometheus and Grafana to Monitor Gitlab Metrics<\/h2>\n\n\n\n<p>Before you can proceed, we assume you have a Gitlab server up and running. However, you can follow the link below to install and setup Gitlab server on an Ubuntu 20.04 system;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-gitlab-with-ssl-tls-certificate-on-ubuntu-20-04\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Install Gitlab with SSL\/TLS Certificate on Ubuntu 20.04<\/a><\/p>\n\n\n\n<p>By default, Omnibus Gitlab installations comes bundled with Grafana and Prometheus. To confirm this, simply check the status of Gitlab services;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gitlab-ctl status<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>run: alertmanager: (pid 4248) 22043s; run: log: (pid 4158) 22046s\nrun: gitaly: (pid 4273) 22042s; run: log: (pid 4147) 22046s\nrun: gitlab-exporter: (pid 4285) 22042s; run: log: (pid 4151) 22046s\nrun: gitlab-workhorse: (pid 4297) 22042s; run: log: (pid 4157) 22046s\nrun: grafana: (pid 96055) 13581s; run: log: (pid 4152) 22046s\nrun: logrotate: (pid 190276) 422s; run: log: (pid 4156) 22046s\nrun: nginx: (pid 96045) 13583s; run: log: (pid 4155) 22047s\nrun: node-exporter: (pid 4352) 22041s; run: log: (pid 4148) 22047s\nrun: postgres-exporter: (pid 4384) 22041s; run: log: (pid 4159) 22047s\nrun: postgresql: (pid 4425) 22038s; run: log: (pid 4149) 22047s\nrun: prometheus: (pid 78644) 15085s; run: log: (pid 4160) 22047s\nrun: puma: (pid 95895) 13594s; run: log: (pid 4150) 22047s\nrun: redis: (pid 4469) 22036s; run: log: (pid 4153) 22047s\nrun: redis-exporter: (pid 4477) 22036s; run: log: (pid 4161) 22047s\nrun: sidekiq: (pid 95784) 13602s; run: log: (pid 4154) 22047s\n<\/code><\/pre>\n\n\n\n<p>As you can see, we have Grafana and Prometheus services up and running. Similarly, you can see that we have various exporters such as <strong><code>node-exporter<\/code><\/strong>, <code>gitlab-exporter<\/code> for collecting host and Gitlab performance metrics.<\/p>\n\n\n\n<p>You can check the status of the individual service as follows;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gitlab-ctl status prometheus<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gitlab-ctl status grafana<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Configuring Prometheus on Gitlab Server<\/h3>\n\n\n\n<p>By default, Prometheus is configured to be locally accessible from the Gitlab server itself. If you want to be able to access Prometheus externally, edit the configuration file and adjust the lines below accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim \/etc\/gitlab\/gitlab.rb<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>##! Advanced settings. Should be changed only if absolutely needed.\n#prometheus&#91;'listen_address'] = 'localhost:9090'\n<strong>prometheus&#91;'listen_address'] = '192.168.57.3:9090'\n<\/strong>#\n...<\/code><\/pre>\n\n\n\n<p>You can replace localhost with a FQDN or an IP address.<\/p>\n\n\n\n<p>If you do not want to allow external access to Gitlab Prometheus, then you can skip the above.<\/p>\n\n\n\n<p>Once you have made the changes, be sure to reconfigure Gitlab services for the changes to take effect;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gitlab-ctl reconfigure<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>...\nRecipe: gitlab::gitlab-rails\n  * execute[clear the gitlab-rails cache] action run\n    - execute \/opt\/gitlab\/bin\/gitlab-rake cache:clear\nRecipe: monitoring::prometheus\n  * execute[reload prometheus] action run\n    - execute \/opt\/gitlab\/bin\/gitlab-ctl hup prometheus\n\nRunning handlers:\nRunning handlers complete\nChef Infra Client finished, 9\/811 resources updated in 01 minutes 09 seconds\ngitlab Reconfigured!\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Viewing Gitlab Performance Metrics on Prometheus<\/h3>\n\n\n\n<p>You can access Prometheus dashboard, either locally or externally depending on your setup. In my case, we have configured Prometheus for external access.<\/p>\n\n\n\n<p>To allow external access, ensure that port <code><strong>9090\/tcp<\/strong><\/code> is opened on firewall if firewall is running.<\/p>\n\n\n\n<p>Ubuntu systems and the likes;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ufw allow 9090\/tcp<\/code><\/pre>\n\n\n\n<p>CentOS systems and the likes;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>firewall-cmd --add-port=9090\/tcp --permanent\nfirewall-cmd --reload<\/code><\/pre>\n\n\n\n<p>Then navigate to the Prometheus dashboard locally, (<code><strong>http:\/\/localhost:9090<\/strong><\/code>) or externally (<code><strong>http:\/\/fqdn-or-IP:9090<\/strong><\/code>).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1904\" height=\"668\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-dashboard.png\" alt=\"\" class=\"wp-image-7310\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-dashboard.png?v=1606597636 1904w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-dashboard-768x269.png?v=1606597636 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-dashboard-1536x539.png?v=1606597636 1536w\" sizes=\"(max-width: 1904px) 100vw, 1904px\" \/><\/figure>\n\n\n\n<p>There are a sample Prometheus dashboard queries you have been provided with on <a aria-label=\"Gitlab documentation page (opens in a new tab)\" href=\"https:\/\/docs.gitlab.com\/ee\/administration\/monitoring\/prometheus\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Gitlab documentation page<\/a>;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>% Memory available:<\/strong>&nbsp;<code>((node_memory_MemAvailable_bytes \/ node_memory_MemTotal_bytes) or ((node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes) \/ node_memory_MemTotal_bytes)) * 100<\/code><\/li>\n\n\n\n<li><strong>% CPU utilization:<\/strong>&nbsp;<code>1 - avg without (mode,cpu) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m]))<\/code><\/li>\n\n\n\n<li><strong>Data transmitted:<\/strong>&nbsp;<code>rate(node_network_transmit_bytes_total{device!=\"lo\"}[5m])<\/code><\/li>\n\n\n\n<li><strong>Data received:<\/strong>&nbsp;<code>rate(node_network_receive_bytes_total{device!=\"lo\"}[5m])<\/code><\/li>\n<\/ul>\n\n\n\n<p>You can execute and view the report on Prometheus dashboard. For example, let us execute the memory utilization query (Percentage memory available on the system) above. You should get such sample console values and graph as shown in the screenshots below;<\/p>\n\n\n\n<p>The Console<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1904\" height=\"679\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization.png\" alt=\"\" class=\"wp-image-7311\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization.png?v=1606597660 1904w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization-768x274.png?v=1606597660 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization-1536x548.png?v=1606597660 1536w\" sizes=\"(max-width: 1904px) 100vw, 1904px\" \/><\/figure>\n\n\n\n<p>The Graph<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1819\" height=\"886\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization-graph.png\" alt=\"\" class=\"wp-image-7312\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization-graph.png?v=1606597671 1819w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization-graph-768x374.png?v=1606597671 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-memory-utilization-graph-1536x748.png?v=1606597671 1536w\" sizes=\"(max-width: 1819px) 100vw, 1819px\" \/><\/figure>\n\n\n\n<p>You can read more about <a aria-label=\"Prometheus Queries (opens in a new tab)\" href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/querying\/examples\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Prometheus Queries<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Monitor Gitlab Metrics with Prometheus and Grafana<\/h3>\n\n\n\n<p>As you can see above, we got the metrics yes, but the visualization is not up to the par, -:).<\/p>\n\n\n\n<p>We want to feel the goodness of Grafana visualization. Note that, in this setup, we are utilizing the Grafana that comes bundled with Gitlab server itself.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Enable Grafana Login using username and password<\/h4>\n\n\n\n<p>By default, the Grafana is enabled and single sign on with Gitlab is automatically enabled as well. However in this setup, we enable login using username and password.<\/p>\n\n\n\n<p>Authentication to Grafana using username\/password is disabled by default. Hence, open the configuration file and navigate to Grafana Dashboards section and enable username\/password authentication by uncommenting the line, <code><strong>grafana['disable_login_form'] = false<\/strong><\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim \/etc\/gitlab\/gitlab.rb<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>...\n################################################################################\n## Grafana Dashboards\n##! Docs: https:\/\/docs.gitlab.com\/ee\/administration\/monitoring\/prometheus\/#prometheus-as-a-grafana-data-source\n################################################################################\n\n#grafana['enable'] = true\n# grafana['log_directory'] = '\/var\/log\/gitlab\/grafana'\n# grafana['home'] = '\/var\/opt\/gitlab\/grafana'\n# grafana['admin_password'] = 'admin'\n# grafana['allow_user_sign_up'] = false\n# grafana['basic_auth_enabled'] = false\ngrafana['disable_login_form'] = false\n<\/code><\/pre>\n\n\n\n<p>Save and exit the file.<\/p>\n\n\n\n<p>Reconfigure Gitlab to effect the changes;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gitlab-ctl reconfigure<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Accessing Gitlab Grafana Dashboard<\/h4>\n\n\n\n<p>Once you have enabled username\/password authentication, navigate to the Gitlab Grafana URL, <strong>http:\/\/FQDN-or-IP\/-\/grafana<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1227\" height=\"920\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/grafana-login.png\" alt=\"Monitoring Gitlab Metrics with Prometheus and Grafana\" class=\"wp-image-7309\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/grafana-login.png?v=1606597578 1227w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/grafana-login-768x576.png?v=1606597578 768w\" sizes=\"(max-width: 1227px) 100vw, 1227px\" \/><\/figure>\n\n\n\n<p>The <strong>username<\/strong> for logging in is <code>admin<\/code>. For the password, you can reset it by running the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gitlab-ctl set-grafana-password<\/code><\/pre>\n\n\n\n<p>Then login to Grafana. Upon successful login, you are welcomed into Grafana dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1900\" height=\"950\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/grafana-dashboard.png\" alt=\"\" class=\"wp-image-7308\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/grafana-dashboard.png?v=1606597519 1900w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/grafana-dashboard-768x384.png?v=1606597519 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/grafana-dashboard-1536x768.png?v=1606597519 1536w\" sizes=\"(max-width: 1900px) 100vw, 1900px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Add Prometheus Datasource to Grafana<\/h4>\n\n\n\n<p>In order for Grafana to collect metrics from Prometheus and provide visualizations, you need to add Prometheus datasource. By default, you will find that Prometheus datasource has been added automatically. You can check by navigating to&nbsp;<strong>Configuration<\/strong>&nbsp;&gt;&nbsp;<strong>Datasources<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1618\" height=\"452\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-datasource.png\" alt=\"Monitoring Gitlab Metrics with Prometheus and Grafana\" class=\"wp-image-7313\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-datasource.png?v=1606597717 1618w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-datasource-768x215.png?v=1606597717 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/prometheus-datasource-1536x429.png?v=1606597717 1536w\" sizes=\"(max-width: 1618px) 100vw, 1618px\" \/><\/figure>\n\n\n\n<p>However, if you need to add a new datasource;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Navigate to&nbsp;<strong>Configuration<\/strong>&nbsp;&gt;&nbsp;<strong>Datasources<\/strong>&nbsp;&gt;&nbsp;<strong>Add data source<\/strong>.<\/li>\n\n\n\n<li>From the data source types, select Prometheus. This opens up Prometheus datasource configuration page.<\/li>\n\n\n\n<li>Enter the Prometheus server URL. If you are running Grafana and Prometheus on the same server, use the address&nbsp;<strong>http:\/\/localhost:9090<\/strong>&nbsp;otherwise, use the address&nbsp;<strong>http:\/\/&lt;prometheus-server-IP&gt;:9090<\/strong>.<\/li>\n\n\n\n<li>After that, click&nbsp;<strong>Save &amp; Test<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Import Gitlab Grafana Dashboards<\/h4>\n\n\n\n<p>Similarly, there are some default dashboards that the Prometheus datasource ships with. If you navigate to <strong>Configuration<\/strong>&nbsp;&gt;&nbsp;<strong>Datasources<\/strong> <strong>&gt; click on Gitlab Omnibus datasource &gt; Dashboards<\/strong>. Click <strong>Import<\/strong> to import the dashboard. The button changes to <strong>Re-import<\/strong> after importing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1605\" height=\"441\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/import-dashboards.png\" alt=\"Monitoring Gitlab Metrics with Prometheus and Grafana\" class=\"wp-image-7306\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/import-dashboards.png?v=1606597478 1605w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/import-dashboards-768x211.png?v=1606597478 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/import-dashboards-1536x422.png?v=1606597478 1536w\" sizes=\"(max-width: 1605px) 100vw, 1605px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Viewing Gitlab Grafana Dashboards<\/h4>\n\n\n\n<p>Once you have imported the dashboards, you can now view them. Click the search button and select the dashboard you want to view its visualizations. For example, let us view the Prometheus 2.0 stats dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1898\" height=\"800\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-prometheus-grafana-dashboard.png\" alt=\"Monitoring Gitlab Metrics with Prometheus and Grafana\" class=\"wp-image-7305\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-prometheus-grafana-dashboard.png?v=1606597421 1898w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-prometheus-grafana-dashboard-768x324.png?v=1606597421 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-prometheus-grafana-dashboard-1536x647.png?v=1606597421 1536w\" sizes=\"(max-width: 1898px) 100vw, 1898px\" \/><\/figure>\n\n\n\n<p>Similarly, you can monitor the Gitlab server system metrics such as cpu usage, RAM, disk I\/O e.t.c. See the dashboard below;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1890\" height=\"937\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics.png\" alt=\"Monitoring Gitlab Metrics with Prometheus and Grafana\" class=\"wp-image-7302\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics.png?v=1606597328 1890w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-768x381.png?v=1606597328 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-1536x761.png?v=1606597328 1536w\" sizes=\"(max-width: 1890px) 100vw, 1890px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1900\" height=\"859\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-01.png\" alt=\"Monitoring Gitlab Metrics with Prometheus and Grafana\" class=\"wp-image-7303\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-01.png?v=1606597360 1900w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-01-768x347.png?v=1606597360 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-01-1536x694.png?v=1606597360 1536w\" sizes=\"(max-width: 1900px) 100vw, 1900px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1809\" height=\"759\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-02.png\" alt=\"Monitoring Gitlab Metrics with Prometheus and Grafana\" class=\"wp-image-7304\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-02.png?v=1606597386 1809w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-02-768x322.png?v=1606597386 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2020\/11\/gitlab-system-metrics-02-1536x644.png?v=1606597386 1536w\" sizes=\"(max-width: 1809px) 100vw, 1809px\" \/><\/figure>\n\n\n\n<p>For the above dashboards, below is a modified json configuration file (modified version of <a aria-label=\"Gitlab system dashboard for Grafana (opens in a new tab)\" href=\"https:\/\/grafana.com\/grafana\/dashboards\/7697\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Gitlab system dashboard for Grafana<\/a>).<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>{\n  \"annotations\": {\n    \"list\": [\n      {\n        \"builtIn\": 1,\n        \"datasource\": \"-- Grafana --\",\n        \"enable\": true,\n        \"hide\": true,\n        \"iconColor\": \"rgba(0, 211, 255, 1)\",\n        \"name\": \"Annotations &amp; Alerts\",\n        \"type\": \"dashboard\"\n      },\n      {\n        \"datasource\": \"GitLab Omnibus\",\n        \"enable\": false,\n        \"expr\": \"ALERTS{alias=\\\"$host\\\", alertstate=\\\"firing\\\"}\",\n        \"iconColor\": \"rgb(252, 5, 0)\",\n        \"name\": \"Alert\",\n        \"tagKeys\": \"severity\",\n        \"textFormat\": \"{{ alias }} : {{alertstate}}\",\n        \"titleFormat\": \"{{ alertname&nbsp;}}\"\n      },\n      {\n        \"datasource\": \"GitLab Omnibus\",\n        \"enable\": true,\n        \"expr\": \"ALERTS{alias=\\\"$host\\\",alertstate=\\\"pending\\\"}\",\n        \"iconColor\": \"rgb(228, 242, 9)\",\n        \"name\": \"Warning\",\n        \"tagKeys\": \"severity\",\n        \"textFormat\": \"{{ alias&nbsp;}} : {{ alertstate&nbsp;}}\",\n        \"titleFormat\": \"{{ alertname }}\"\n      }\n    ]\n  },\n  \"description\": \"GitLab Prometheus for system metrics. \\r\\nLoad, CPU, RAM, network, process ... \",\n  \"editable\": true,\n  \"gnetId\": 7697,\n  \"graphTooltip\": 1,\n  \"id\": 17,\n  \"iteration\": 1606596413793,\n  \"links\": [],\n  \"panels\": [\n    {\n      \"cacheTimeout\": null,\n      \"colorBackground\": false,\n      \"colorValue\": true,\n      \"colors\": [\n        \"rgba(245, 54, 54, 0.9)\",\n        \"rgba(237, 129, 40, 0.89)\",\n        \"rgba(50, 172, 45, 0.97)\"\n      ],\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 1,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"format\": \"s\",\n      \"gauge\": {\n        \"maxValue\": 100,\n        \"minValue\": 0,\n        \"show\": false,\n        \"thresholdLabels\": false,\n        \"thresholdMarkers\": true\n      },\n      \"height\": \"50px\",\n      \"id\": 19,\n      \"interval\": null,\n      \"links\": [],\n      \"mappingType\": 1,\n      \"mappingTypes\": [\n        {\n          \"name\": \"value to text\",\n          \"value\": 1\n        },\n        {\n          \"name\": \"range to text\",\n          \"value\": 2\n        }\n      ],\n      \"maxDataPoints\": 100,\n      \"nullPointMode\": \"connected\",\n      \"nullText\": null,\n      \"postfix\": \"s\",\n      \"postfixFontSize\": \"80%\",\n      \"prefix\": \"\",\n      \"prefixFontSize\": \"80%\",\n      \"rangeMaps\": [\n        {\n          \"from\": \"null\",\n          \"text\": \"N\/A\",\n          \"to\": \"null\"\n        }\n      ],\n      \"sparkline\": {\n        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n        \"full\": false,\n        \"lineColor\": \"rgb(31, 120, 193)\",\n        \"show\": false\n      },\n      \"tableColumn\": \"{instance=\\\"192.168.57.3:9090\\\", job=\\\"prometheus\\\"}\",\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"10m\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"(time() - process_start_time_seconds{job=\\\"prometheus\\\"})\",\n          \"format\": \"time_series\",\n          \"interval\": \"5m\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_time%7Balias%3D%5C%22%24host%5C%22%7D%20-%20node_boot_time%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%2243200s%22%2C%22end_input%22%3A%222015-9-18%2013%3A25%22%2C%22step_input%22%3A%22%22%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 300\n        }\n      ],\n      \"thresholds\": \"300,3600\",\n      \"title\": \"System Uptime\",\n      \"type\": \"singlestat\",\n      \"valueFontSize\": \"80%\",\n      \"valueMaps\": [],\n      \"valueName\": \"current\"\n    },\n    {\n      \"cacheTimeout\": null,\n      \"colorBackground\": false,\n      \"colorValue\": false,\n      \"colors\": [\n        \"rgba(245, 54, 54, 0.9)\",\n        \"rgba(237, 129, 40, 0.89)\",\n        \"rgba(50, 172, 45, 0.97)\"\n      ],\n      \"datasource\": \"GitLab Omnibus\",\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"format\": \"none\",\n      \"gauge\": {\n        \"maxValue\": 100,\n        \"minValue\": 0,\n        \"show\": false,\n        \"thresholdLabels\": false,\n        \"thresholdMarkers\": true\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 6,\n        \"y\": 0\n      },\n      \"height\": \"55px\",\n      \"id\": 25,\n      \"interval\": null,\n      \"links\": [],\n      \"mappingType\": 1,\n      \"mappingTypes\": [\n        {\n          \"name\": \"value to text\",\n          \"value\": 1\n        },\n        {\n          \"name\": \"range to text\",\n          \"value\": 2\n        }\n      ],\n      \"maxDataPoints\": 100,\n      \"nullPointMode\": \"connected\",\n      \"nullText\": null,\n      \"postfix\": \"\",\n      \"postfixFontSize\": \"50%\",\n      \"prefix\": \"\",\n      \"prefixFontSize\": \"80%\",\n      \"rangeMaps\": [\n        {\n          \"from\": \"null\",\n          \"text\": \"N\/A\",\n          \"to\": \"null\"\n        }\n      ],\n      \"sparkline\": {\n        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n        \"full\": false,\n        \"lineColor\": \"rgb(31, 120, 193)\",\n        \"show\": false\n      },\n      \"tableColumn\": \"instance:node_cpus:count{instance=\\\"localhost:9100\\\", job=\\\"node\\\"}\",\n      \"targets\": [\n        {\n          \"expr\": \"instance:node_cpus:count{instance=\\\"localhost:9100\\\",job=\\\"node\\\"}\",\n          \"format\": \"time_series\",\n          \"interval\": \"5m\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"\",\n          \"refId\": \"A\",\n          \"step\": 300\n        }\n      ],\n      \"thresholds\": \"\",\n      \"title\": \"Virtual CPUs\",\n      \"type\": \"singlestat\",\n      \"valueFontSize\": \"80%\",\n      \"valueMaps\": [\n        {\n          \"op\": \"=\",\n          \"text\": \"N\/A\",\n          \"value\": \"null\"\n        }\n      ],\n      \"valueName\": \"current\"\n    },\n    {\n      \"cacheTimeout\": null,\n      \"colorBackground\": false,\n      \"colorValue\": true,\n      \"colors\": [\n        \"rgba(245, 54, 54, 0.9)\",\n        \"rgba(237, 129, 40, 0.89)\",\n        \"rgba(50, 172, 45, 0.97)\"\n      ],\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"format\": \"bytes\",\n      \"gauge\": {\n        \"maxValue\": 100,\n        \"minValue\": 0,\n        \"show\": false,\n        \"thresholdLabels\": false,\n        \"thresholdMarkers\": true\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 10,\n        \"y\": 0\n      },\n      \"height\": \"55px\",\n      \"id\": 26,\n      \"interval\": null,\n      \"links\": [],\n      \"mappingType\": 1,\n      \"mappingTypes\": [\n        {\n          \"name\": \"value to text\",\n          \"value\": 1\n        },\n        {\n          \"name\": \"range to text\",\n          \"value\": 2\n        }\n      ],\n      \"maxDataPoints\": 100,\n      \"nullPointMode\": \"connected\",\n      \"nullText\": null,\n      \"postfix\": \"\",\n      \"postfixFontSize\": \"50%\",\n      \"prefix\": \"\",\n      \"prefixFontSize\": \"80%\",\n      \"rangeMaps\": [\n        {\n          \"from\": \"null\",\n          \"text\": \"N\/A\",\n          \"to\": \"null\"\n        }\n      ],\n      \"sparkline\": {\n        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n        \"full\": false,\n        \"lineColor\": \"rgb(31, 120, 193)\",\n        \"show\": false\n      },\n      \"tableColumn\": \"node_memory_MemAvailable_bytes{instance=\\\"localhost:9100\\\", job=\\\"node\\\"}\",\n      \"targets\": [\n        {\n          \"expr\": \"node_memory_MemAvailable_bytes{instance=\\\"localhost:9100\\\",job=\\\"node\\\"}\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"\",\n          \"metric\": \"node_memory_MemAvailable\",\n          \"refId\": \"A\",\n          \"step\": 30\n        }\n      ],\n      \"thresholds\": \"\",\n      \"title\": \"RAM available\",\n      \"type\": \"singlestat\",\n      \"valueFontSize\": \"80%\",\n      \"valueMaps\": [\n        {\n          \"op\": \"=\",\n          \"text\": \"N\/A\",\n          \"value\": \"null\"\n        }\n      ],\n      \"valueName\": \"current\"\n    },\n    {\n      \"cacheTimeout\": null,\n      \"colorBackground\": false,\n      \"colorValue\": true,\n      \"colors\": [\n        \"rgba(245, 54, 54, 0.9)\",\n        \"rgba(237, 129, 40, 0.89)\",\n        \"rgba(50, 172, 45, 0.97)\"\n      ],\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"format\": \"bytes\",\n      \"gauge\": {\n        \"maxValue\": 100,\n        \"minValue\": 0,\n        \"show\": false,\n        \"thresholdLabels\": false,\n        \"thresholdMarkers\": true\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 14,\n        \"y\": 0\n      },\n      \"height\": \"55px\",\n      \"id\": 34,\n      \"interval\": null,\n      \"links\": [],\n      \"mappingType\": 1,\n      \"mappingTypes\": [\n        {\n          \"name\": \"value to text\",\n          \"value\": 1\n        },\n        {\n          \"name\": \"range to text\",\n          \"value\": 2\n        }\n      ],\n      \"maxDataPoints\": 100,\n      \"nullPointMode\": \"connected\",\n      \"nullText\": null,\n      \"postfix\": \"\",\n      \"postfixFontSize\": \"50%\",\n      \"prefix\": \"\",\n      \"prefixFontSize\": \"80%\",\n      \"rangeMaps\": [\n        {\n          \"from\": \"null\",\n          \"text\": \"N\/A\",\n          \"to\": \"null\"\n        }\n      ],\n      \"sparkline\": {\n        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n        \"full\": false,\n        \"lineColor\": \"rgb(31, 120, 193)\",\n        \"show\": false\n      },\n      \"tableColumn\": \"node_memory_MemFree_bytes{instance=\\\"localhost:9100\\\", job=\\\"node\\\"}\",\n      \"targets\": [\n        {\n          \"expr\": \"node_memory_MemFree_bytes{instance=\\\"localhost:9100\\\",job=\\\"node\\\"}\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"\",\n          \"metric\": \"node_memory_MemAvailable\",\n          \"refId\": \"A\",\n          \"step\": 30\n        }\n      ],\n      \"thresholds\": \"\",\n      \"title\": \"Free RAM\",\n      \"type\": \"singlestat\",\n      \"valueFontSize\": \"80%\",\n      \"valueMaps\": [\n        {\n          \"op\": \"=\",\n          \"text\": \"N\/A\",\n          \"value\": \"null\"\n        }\n      ],\n      \"valueName\": \"current\"\n    },\n    {\n      \"cacheTimeout\": null,\n      \"colorBackground\": false,\n      \"colorValue\": true,\n      \"colors\": [\n        \"rgba(245, 54, 54, 0.9)\",\n        \"rgba(237, 129, 40, 0.89)\",\n        \"rgba(50, 172, 45, 0.97)\"\n      ],\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 0,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"format\": \"percent\",\n      \"gauge\": {\n        \"maxValue\": 100,\n        \"minValue\": 0,\n        \"show\": false,\n        \"thresholdLabels\": false,\n        \"thresholdMarkers\": true\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 6,\n        \"x\": 18,\n        \"y\": 0\n      },\n      \"height\": \"50px\",\n      \"id\": 9,\n      \"interval\": null,\n      \"links\": [],\n      \"mappingType\": 1,\n      \"mappingTypes\": [\n        {\n          \"name\": \"value to text\",\n          \"value\": 1\n        },\n        {\n          \"name\": \"range to text\",\n          \"value\": 2\n        }\n      ],\n      \"maxDataPoints\": 100,\n      \"nullPointMode\": \"connected\",\n      \"nullText\": null,\n      \"postfix\": \"\",\n      \"postfixFontSize\": \"50%\",\n      \"prefix\": \"\",\n      \"prefixFontSize\": \"80%\",\n      \"rangeMaps\": [\n        {\n          \"from\": \"null\",\n          \"text\": \"N\/A\",\n          \"to\": \"null\"\n        }\n      ],\n      \"sparkline\": {\n        \"fillColor\": \"rgba(31, 118, 189, 0.18)\",\n        \"full\": true,\n        \"lineColor\": \"rgb(31, 120, 193)\",\n        \"show\": true\n      },\n      \"tableColumn\": \"{instance=\\\"localhost:9100\\\", job=\\\"node\\\"}\",\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"10m\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"(node_memory_MemAvailable_bytes{instance=\\\"localhost:9100\\\",job=\\\"node\\\"} or (node_memory_MemFree_bytes{instance=\\\"localhost:9100\\\",job=\\\"node\\\"} + node_memory_Buffers_bytes{instance=\\\"localhost:9100\\\",job=\\\"node\\\"} + node_memory_Cached_bytes{instance=\\\"localhost:9100\\\",job=\\\"node\\\"})) \/ node_memory_MemTotal_bytes{instance=\\\"localhost:9100\\\",job=\\\"node\\\"} * 100\",\n          \"format\": \"time_series\",\n          \"interval\": \"5m\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"\",\n          \"metric\": \"node_mem\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%20%2F%20node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20*%20100%22%2C%22range_input%22%3A%2243201s%22%2C%22end_input%22%3A%222015-9-15%2013%3A54%22%2C%22step_input%22%3A%22%22%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 300\n        }\n      ],\n      \"thresholds\": \"10,50\",\n      \"title\": \"% RAM Available\",\n      \"type\": \"singlestat\",\n      \"valueFontSize\": \"80%\",\n      \"valueMaps\": [],\n      \"valueName\": \"current\"\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 6,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 7,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 3\n      },\n      \"height\": \"260px\",\n      \"hiddenSeries\": false,\n      \"id\": 2,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": true,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": true,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"sum(rate(node_cpu_seconds_total{instance='localhost:9100',job='node'}[$interval])) by (mode) * 100 \/ count(node_cpu{instance='localhost:9100',job='node'}) by (mode) or sum(irate(node_cpu_seconds_total{instance='localhost:9100',job='node'}[5m])) by (mode) * 100 \/ count(node_cpu_seconds_total{instance='localhost:9100',job='node'}) by (mode)\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"{{ mode }}\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22sum(rate(node_cpu%7Balias%3D%5C%22%24host%5C%22%7D%5B%24interval%5D))%20by%20(mode)%20*%20100%22%2C%22range_input%22%3A%223600s%22%2C%22end_input%22%3A%222015-10-22%2015%3A27%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 2\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"CPU Usage\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"percent\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": 100,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 2,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 7,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 10\n      },\n      \"hiddenSeries\": false,\n      \"id\": 18,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": true,\n        \"show\": true,\n        \"sortDesc\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [\n        {\n          \"alias\": \"Load 1m\",\n          \"color\": \"#E24D42\"\n        },\n        {\n          \"alias\": \"Load 5m\",\n          \"color\": \"#E0752D\"\n        },\n        {\n          \"alias\": \"Load 15m\",\n          \"color\": \"#E5AC0E\"\n        }\n      ],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"10s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_load1{instance='localhost:9100',job='node'}\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Load 1m\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_load1%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%223601s%22%2C%22end_input%22%3A%222015-10-22%2015%3A27%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Afalse%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 2,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"10s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_load5{instance='localhost:9100',job='node'}\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Load 5m\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_load5%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%223600s%22%2C%22end_input%22%3A%222015-10-22%2015%3A27%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Afalse%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 2,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"10s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_load15{instance='localhost:9100',job='node'}\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Load 15m\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_load15%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%223600s%22%2C%22end_input%22%3A%222015-10-22%2015%3A27%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Afalse%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"C\",\n          \"step\": 2,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Load Average\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"none\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"none\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 4,\n      \"fillGradient\": 0,\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 17\n      },\n      \"hiddenSeries\": false,\n      \"id\": 33,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"max\": true,\n        \"min\": true,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": true,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"alias\": \"\",\n          \"expr\": \"node_memory_MemTotal_bytes{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Total\",\n          \"rawSql\": \"SELECT\\n  UNIX_TIMESTAMP(<time_column>) as time_sec,\\n  <value column=\"\"> as value,\\n  <series name=\"\" column=\"\"> as metric\\nFROM \\nWHERE $__timeFilter(time_column)\\nORDER BY <time_column> ASC\\n\",\n          \"refId\": \"A\"\n        },\n        {\n          \"expr\": \"node_memory_MemTotal_bytes{job='node',instance='localhost:9100'} - (node_memory_MemAvailable_bytes{job='node',instance='localhost:9100'} or (node_memory_MemFree_bytes{job='node',instance='localhost:9100'} + node_memory_Buffers_bytes{job='node',instance='localhost:9100'} + node_memory_Cached_bytes{job='node',instance='localhost:9100'}))\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Used\",\n          \"refId\": \"B\"\n        },\n        {\n          \"expr\": \"node_memory_MemAvailable_bytes{job='node',instance='localhost:9100'} or (node_memory_MemFree_bytes{job='node',instance='localhost:9100'} + node_memory_Buffers_bytes{job='node',instance='localhost:9100'} + node_memory_Cached_bytes{job='node',instance='localhost:9100'})\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Available\",\n          \"refId\": \"C\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Memory\",\n      \"tooltip\": {\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"bytes\",\n          \"label\": null,\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": \"0\",\n          \"show\": true\n        },\n        {\n          \"format\": \"bytes\",\n          \"label\": null,\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": \"0\",\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 6,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 17\n      },\n      \"height\": \"\",\n      \"hiddenSeries\": false,\n      \"id\": 29,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": true,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_memory_MemTotal_bytes{job='node',instance='localhost:9100'} - (node_memory_MemFree_bytes{job='node',instance='localhost:9100'} + node_memory_Buffers_bytes{job='node',instance='localhost:9100'} + node_memory_Cached_bytes{job='node',instance='localhost:9100'})\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Used\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20-%20(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_memory_MemFree_bytes{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Free\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_memory_Buffers_bytes{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Buffers\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"D\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_memory_Cached_bytes{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Cached\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"E\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Memory Distribution\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"bytes\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"bytes\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 6,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 25\n      },\n      \"hiddenSeries\": false,\n      \"id\": 21,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": true,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_network_receive_bytes_total{job='node',instance='localhost:9100', device!=\\\"lo\\\"}[$interval]) or irate(node_network_receive_bytes_total{job='node',instance='localhost:9100', device!=\\\"lo\\\"}[5m])\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Inbound: {{ device }}\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_network_transmit_bytes_total{job='node',instance='localhost:9100', device!=\\\"lo\\\"}[$interval]) or irate(node_network_transmit_bytes_total{alias=\\\"$host\\\", device!=\\\"lo\\\"}[5m])\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Outbound: {{ device }}\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20-%20(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Network Traffic\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"Bps\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"bytes\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": true,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 6,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 25\n      },\n      \"hiddenSeries\": false,\n      \"id\": 22,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"sort\": \"min\",\n        \"sortDesc\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": false,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": true,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"sum(increase(node_network_receive_bytes_total{job='node',instance='localhost:9100', device!=\\\"lo\\\"}[1h]))\",\n          \"format\": \"time_series\",\n          \"interval\": \"1h\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Received\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20-%20(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 3600,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"sum(increase(node_network_transmit_bytes_total{job='node',instance='localhost:9100', device!=\\\"lo\\\"}[1h]))\",\n          \"format\": \"time_series\",\n          \"hide\": false,\n          \"interval\": \"1h\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Sent\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20-%20(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 3600,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": \"24h\",\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Network Utilization Hourly\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"bytes\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"bytes\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 2,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 33\n      },\n      \"hiddenSeries\": false,\n      \"id\": 27,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2m\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_context_switches_total{job='node',instance='localhost:9100'}[$interval]) or irate(node_context_switches_total{job='node',instance='localhost:9100'}[5m])\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Context Switches\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_procs_running%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%2243200s%22%2C%22end_input%22%3A%222015-9-18%2013%3A46%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Context Switches\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"none\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"none\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": true,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 2,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 33\n      },\n      \"hiddenSeries\": false,\n      \"id\": 20,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": false,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [\n        {\n          \"alias\": \"Processes blocked waiting for I\/O to complete\",\n          \"color\": \"#E24D42\"\n        },\n        {\n          \"alias\": \"Processes in runnable state\",\n          \"color\": \"#6ED0E0\"\n        }\n      ],\n      \"spaceLength\": 10,\n      \"stack\": true,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2m\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_procs_running{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Processes in runnable state\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_procs_running%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%2243200s%22%2C%22end_input%22%3A%222015-9-18%2013%3A46%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2m\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_procs_blocked{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Processes blocked waiting for I\/O to complete\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_procs_blocked%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%2243200s%22%2C%22end_input%22%3A%222015-9-18%2013%3A46%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Processes\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"none\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"none\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 2,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 41\n      },\n      \"hiddenSeries\": false,\n      \"id\": 31,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_vmstat_pgpgin{job='node'}[$interval]) * 1024 or irate(node_vmstat_pgpgin{job='node'}[5m]) * 1024\",\n          \"format\": \"time_series\",\n          \"hide\": false,\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Page In\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20-%20(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_vmstat_pgpgout{job='node'}[$interval]) * 1024 or irate(node_vmstat_pgpgout{job='node'}[5m]) * 1024\",\n          \"format\": \"time_series\",\n          \"hide\": false,\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Page Out\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"I\/O Activity\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"Bps\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"bytes\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 2,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 41\n      },\n      \"hiddenSeries\": false,\n      \"id\": 28,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [\n        {\n          \"alias\": \"Interrupts\",\n          \"color\": \"#D683CE\"\n        }\n      ],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2m\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_intr_total{instance=\\\":9100\\\",job=\\\"node\\\"}[$interval]) or irate(node_intr_total{job=\\\"node\\\"}[5m])\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Interrupts\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_procs_running%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%2243200s%22%2C%22end_input%22%3A%222015-9-18%2013%3A46%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Interrupts\",\n      \"tooltip\": {\n        \"msResolution\": true,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"none\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"none\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 6,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 49\n      },\n      \"hiddenSeries\": false,\n      \"id\": 23,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [\n        {\n          \"alias\": \"Used\",\n          \"color\": \"#584477\"\n        },\n        {\n          \"alias\": \"Free\",\n          \"color\": \"#AEA2E0\"\n        }\n      ],\n      \"spaceLength\": 10,\n      \"stack\": true,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_memory_SwapTotal_bytes{job='node',instance='localhost:9100'} - node_memory_SwapFree_bytes{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Used\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20-%20(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"node_memory_SwapFree_bytes{job='node',instance='localhost:9100'}\",\n          \"format\": \"time_series\",\n          \"hide\": false,\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Free\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Swap\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"bytes\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"bytes\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"GitLab Omnibus\",\n      \"decimals\": 2,\n      \"editable\": true,\n      \"error\": false,\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"custom\": {}\n        },\n        \"overrides\": []\n      },\n      \"fill\": 2,\n      \"fillGradient\": 0,\n      \"grid\": {},\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 49\n      },\n      \"hiddenSeries\": false,\n      \"id\": 30,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": false,\n        \"hideEmpty\": false,\n        \"max\": true,\n        \"min\": true,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 2,\n      \"links\": [],\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"dataLinks\": []\n      },\n      \"percentage\": false,\n      \"pointradius\": 5,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_vmstat_pswpin{job='node',instance='localhost:9100'}[$interval]) * 4096 or irate(node_vmstat_pswpin{job='node',instance='localhost:9100'}[5m]) * 4096\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Swap In\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemTotal%7Balias%3D%5C%22%24host%5C%22%7D%20-%20(node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D)%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"A\",\n          \"step\": 5,\n          \"target\": \"\"\n        },\n        {\n          \"calculatedInterval\": \"2s\",\n          \"datasourceErrors\": {},\n          \"errors\": {},\n          \"expr\": \"rate(node_vmstat_pswpout{job='node',instance='localhost:9100'}[$interval]) * 4096 or irate(node_vmstat_pswpout{job='node',instance='localhost:9100'}[5m]) * 4096\",\n          \"format\": \"time_series\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"Swap Out\",\n          \"metric\": \"\",\n          \"prometheusLink\": \"\/api\/datasources\/proxy\/1\/graph#%5B%7B%22expr%22%3A%22node_memory_MemFree%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Buffers%7Balias%3D%5C%22%24host%5C%22%7D%20%2B%20node_memory_Cached%7Balias%3D%5C%22%24host%5C%22%7D%22%2C%22range_input%22%3A%22900s%22%2C%22end_input%22%3A%222015-10-22%2015%3A25%22%2C%22step_input%22%3A%22%22%2C%22stacked%22%3Atrue%2C%22tab%22%3A0%7D%5D\",\n          \"refId\": \"B\",\n          \"step\": 5,\n          \"target\": \"\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"Swap Activity\",\n      \"tooltip\": {\n        \"msResolution\": false,\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"format\": \"Bps\",\n          \"label\": \"\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        },\n        {\n          \"format\": \"bytes\",\n          \"logBase\": 1,\n          \"max\": null,\n          \"min\": 0,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false,\n        \"alignLevel\": null\n      }\n    }\n  ],\n  \"refresh\": \"30s\",\n  \"schemaVersion\": 25,\n  \"style\": \"dark\",\n  \"tags\": [\n    \"system\",\n    \"prometheus\",\n    \"online\",\n    \"GetLab\"\n  ],\n  \"templating\": {\n    \"list\": [\n      {\n        \"allFormat\": \"glob\",\n        \"auto\": true,\n        \"auto_count\": 200,\n        \"auto_min\": \"1s\",\n        \"current\": {\n          \"selected\": false,\n          \"text\": \"5s\",\n          \"value\": \"5s\"\n        },\n        \"datasource\": \"GitLab Omnibus\",\n        \"hide\": 0,\n        \"includeAll\": false,\n        \"label\": \"Interval\",\n        \"multi\": false,\n        \"multiFormat\": \"glob\",\n        \"name\": \"interval\",\n        \"options\": [\n          {\n            \"selected\": false,\n            \"text\": \"auto\",\n            \"value\": \"$__auto_interval_interval\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"1s\",\n            \"value\": \"1s\"\n          },\n          {\n            \"selected\": true,\n            \"text\": \"5s\",\n            \"value\": \"5s\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"1m\",\n            \"value\": \"1m\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"5m\",\n            \"value\": \"5m\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"1h\",\n            \"value\": \"1h\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"6h\",\n            \"value\": \"6h\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"1d\",\n            \"value\": \"1d\"\n          }\n        ],\n        \"query\": \"1s,5s,1m,5m,1h,6h,1d\",\n        \"refresh\": 2,\n        \"skipUrlSync\": false,\n        \"type\": \"interval\"\n      }\n    ]\n  },\n  \"time\": {\n    \"from\": \"now-1h\",\n    \"to\": \"now\"\n  },\n  \"timepicker\": {\n    \"collapse\": false,\n    \"enable\": true,\n    \"notice\": false,\n    \"now\": true,\n    \"refresh_intervals\": [\n      \"5s\",\n      \"10s\",\n      \"30s\",\n      \"1m\",\n      \"5m\",\n      \"15m\",\n      \"30m\",\n      \"1h\",\n      \"2h\",\n      \"1d\"\n    ],\n    \"status\": \"Stable\",\n    \"time_options\": [\n      \"5m\",\n      \"15m\",\n      \"1h\",\n      \"6h\",\n      \"12h\",\n      \"24h\",\n      \"2d\",\n      \"7d\",\n      \"30d\"\n    ],\n    \"type\": \"timepicker\"\n  },\n  \"timezone\": \"\",\n  \"title\": \"Gitlab System\",\n  \"uid\": \"4W5aRFAGz\",\n  \"version\": 2\n}\n<\/time_column><table name=\"\"><\/table><\/series><\/value><\/time_column><\/code><\/pre>\n\n\n\n<p>And there you go. You can further enable and collect various Gitlab metric data and visualize them on Grafana.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reference<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/monitoring\/prometheus\/\" target=\"_blank\" aria-label=\"Monitoring Gitlab with Prometheus (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Monitoring Gitlab with Prometheus<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Other Tutorials<\/h3>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/monitor-openvpn-connections-with-prometheus-and-grafana\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Monitor OpenVPN Connections with Prometheus and Grafana<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-latest-grafana-on-centos-8\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Install Latest Grafana on CentOS 8<\/a><\/p>\n\n\n\n<p><a aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/integrate-prometheus-with-grafana-for-monitoring\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Integrate Prometheus with Grafana for Monitoring<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/monitor-squid-logs-with-grafana-and-graylog\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Monitor Squid logs with Grafana and Graylog<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we will learn about monitoring Gitlab metrics with Prometheus and Grafana. Grafana is a data visualization and monitoring tool and supports time<\/p>\n","protected":false},"author":1,"featured_media":9757,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[301,121,72,294],"tags":[2916,2913,2915,2914,302,2911,2910,295,2912],"class_list":["post-7282","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-grafana","category-howtos","category-monitoring","category-prometheus","tag-gitlab","tag-gitlab-grafana-dashboard","tag-gitlab-prometheus-dashboards","tag-gitlab-prometheus-queries","tag-grafana","tag-monitor-gitlab-metrics-with-grafana","tag-monitoring-gitlab-with-prometheus","tag-prometheus","tag-visualize-gitlab-metrics-with-grafana","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/7282"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=7282"}],"version-history":[{"count":12,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/7282\/revisions"}],"predecessor-version":[{"id":21550,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/7282\/revisions\/21550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/9757"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=7282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=7282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=7282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}