Memantau Metrik Gitlab dengan Prometheus dan Grafana

Dalam tutorial ini, kita akan belajar tentang memantau metrik Gitlab dengan Prometheus dan Grafana. Grafana adalah alat visualisasi dan pemantauan data dan mendukung penyimpanan data deret waktu seperti Graphite, InfluxDB, Prometheus, Elasticsearch. Prometheus  adalah service pemantauan deret waktu yang kuat, menyediakan platform yang fleksibel untuk memantau GitLab dan produk perangkat lunak lainnya. GitLab menyediakan pemantauan langsung dengan Prometheus, menyediakan akses mudah ke pemantauan deret waktu berkualitas tinggi dari service GitLab. Grafana dapat digunakan untuk mencapai visualisasi yang lebih baik dari metrik yang dikumpulkan oleh Prometheus.

Ingin lebih banyak Grafana dan Prometheus? Periksa tautan di bawah ini;

Prometheus: Up & Running: Pemantauan Kinerja Infrastruktur dan Aplikasi

Pelajari Grafana 7.0: Panduan pemula untuk menguasai analitik, dasbor interaktif, dan pemantauan

Memantau Metrik Gitlab dengan Prometheus dan Grafana

Sebelum Anda dapat melanjutkan, kami menganggap Anda memiliki server Gitlab yang aktif dan berjalan. Namun, Anda dapat mengikuti tautan di bawah ini untuk menginstal dan mengatur server Gitlab pada sistem Ubuntu 20.04;

Instal Gitlab dengan Sertifikat SSL/TLS di Ubuntu 20.04

Secara default, instalasi Omnibus Gitlab dibundel dengan Grafana dan Prometheus. Untuk mengonfirmasi ini, cukup periksa status service Gitlab;

gitlab-ctl status
run: alertmanager: (pid 4248) 22043s; run: log: (pid 4158) 22046s run: gitaly: (pid 4273) 22042s; run: log: (pid 4147) 22046s run: gitlab-exporter: (pid 4285) 22042s; run: log: (pid 4151) 22046s run: gitlab-workhorse: (pid 4297) 22042s; run: log: (pid 4157) 22046s run: grafana: (pid 96055) 13581s; run: log: (pid 4152) 22046s run: logrotate: (pid 190276) 422s; run: log: (pid 4156) 22046s run: nginx: (pid 96045) 13583s; run: log: (pid 4155) 22047s run: node-exporter: (pid 4352) 22041s; run: log: (pid 4148) 22047s run: postgres-exporter: (pid 4384) 22041s; run: log: (pid 4159) 22047s run: postgresql: (pid 4425) 22038s; run: log: (pid 4149) 22047s run: prometheus: (pid 78644) 15085s; run: log: (pid 4160) 22047s run: puma: (pid 95895) 13594s; run: log: (pid 4150) 22047s run: redis: (pid 4469) 22036s; run: log: (pid 4153) 22047s run: redis-exporter: (pid 4477) 22036s; run: log: (pid 4161) 22047s run: sidekiq: (pid 95784) 13602s; run: log: (pid 4154) 22047s 

Seperti yang Anda lihat, kami memiliki dan menjalankan service Grafana dan Prometheus. Demikian pula, Anda dapat melihat bahwa kami memiliki berbagai eksportir sepertinode-exporter, gitlab-exporteruntuk mengumpulkan metrik kinerja host dan Gitlab.

Anda dapat memeriksa status service individu sebagai berikut;

gitlab-ctl status prometheus
gitlab-ctl status grafana

Mengonfigurasi Prometheus di Server Gitlab

Untuk mulai memantau metrik Gitlab dengan Prometheus dan Grafana, Anda harus mulai dengan mengonfigurasi server Prometheus Gitlab.

Secara default, Prometheus dikonfigurasi agar dapat diakses secara lokal dari server Gitlab itu sendiri. Jika Anda ingin dapat mengakses Prometheus secara eksternal, edit file konfigurasi dan sesuaikan baris di bawah ini.

vim /etc/gitlab/gitlab.rb
##! Advanced settings. Should be changed only if absolutely needed. #prometheus['listen_address'] = 'localhost:9090' prometheus['listen_address'] = '192.168.57.3:9090' #...

Anda dapat mengganti localhost dengan FQDN atau alamat IP.

Jika Anda tidak ingin mengizinkan akses eksternal ke Gitlab Prometheus, Anda dapat melewati yang di atas.

Setelah Anda membuat perubahan, pastikan untuk mengonfigurasi ulang service Gitlab agar perubahan diterapkan;

gitlab-ctl reconfigure
... Recipe: gitlab::gitlab-rails * execute[clear the gitlab-rails cache] action run - execute /opt/gitlab/bin/gitlab-rake cache:clear Recipe: monitoring::prometheus * execute[reload prometheus] action run - execute /opt/gitlab/bin/gitlab-ctl hup prometheus Running handlers: Running handlers complete Chef Infra Client finished, 9/811 resources updated in 01 minutes 09 seconds gitlab Reconfigured! 

Melihat Metrik Kinerja Gitlab di Prometheus

Anda dapat mengakses dasbor Prometheus, baik secara lokal maupun eksternal tergantung pada pengaturan Anda. Dalam kasus saya, kami telah mengonfigurasi Prometheus untuk akses eksternal.

Untuk mengizinkan akses eksternal, pastikan port 9090/tcpdibuka di firewall jika firewall sedang berjalan.

sistem Ubuntu dan sejenisnya;

ufw allow 9090/tcp

sistem CentOS dan sejenisnya;

firewall-cmd --add-port=9090/tcp --permanent firewall-cmd --reload

Kemudian navigasikan ke dasbor Prometheus secara lokal, ( http://localhost:9090) atau eksternal ( http://fqdn-or-IP:9090).

Ada contoh kueri dasbor Prometheus yang telah Anda sediakan di halaman dokumentasi Gitlab ;

  • % Memory available: ((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
  • % CPU utilization: 1 – avg without (mode,cpu) (rate(node_cpu_seconds_total{mode=”idle”}[5m]))
  • Data transmitted: rate(node_network_transmit_bytes_total{device!=”lo”}[5m])
  • Data received: rate(node_network_receive_bytes_total{device!=”lo”}[5m])

Anda dapat menjalankan dan melihat laporan di dasbor Prometheus. Sebagai contoh, mari kita jalankan kueri useran memori (Persentase memori yang tersedia pada sistem) di atas. Anda harus mendapatkan contoh nilai dan grafik konsol seperti yang ditunjukkan pada tangkapan layar di bawah ini;

Konsol

Grafik

Anda dapat membaca lebih lanjut tentang Prometheus Query.

Memantau Metrik Gitlab dengan Prometheus dan Grafana

Seperti yang Anda lihat di atas, kami mendapatkan metriknya ya, tetapi visualisasinya tidak sesuai standar, -:).

Kami ingin merasakan kebaikan visualisasi Grafana. Perhatikan bahwa, dalam pengaturan ini, kami menggunakan Grafana yang disertakan deng
an server Gitlab itu sendiri.

Aktifkan Login Grafana menggunakan nama user dan password

Secara default, Grafana diaktifkan dan sistem masuk tunggal dengan Gitlab juga diaktifkan secara otomatis. Namun dalam pengaturan ini, kami mengaktifkan login menggunakan nama user dan password.

Otentikasi ke Grafana menggunakan nama user/password dinonaktifkan secara default. Oleh karena itu, buka file konfigurasi dan navigasikan ke bagian Dasbor Grafana dan aktifkan otentikasi nama user/password dengan menghapus komentar pada baris, grafana[‘disable_login_form’] = false.

vim /etc/gitlab/gitlab.rb
... ################################################################################ ## Grafana Dashboards ##! Docs: https://docs.gitlab.com/ee/administration/monitoring/prometheus/#prometheus-as-a-grafana-data-source ################################################################################ #grafana['enable'] = true # grafana['log_directory'] = '/var/log/gitlab/grafana' # grafana['home'] = '/var/opt/gitlab/grafana' # grafana['admin_password'] = 'admin' # grafana['allow_user_sign_up'] = false # grafana['basic_auth_enabled'] = false grafana['disable_login_form'] = false 

Simpan dan keluar dari file.

Konfigurasi ulang Gitlab untuk melakukan perubahan;

gitlab-ctl reconfigure

Mengakses Dasbor Gitlab Grafana

Setelah Anda mengaktifkan otentikasi nama user/password, navigasikan ke URL Gitlab Grafana, http://FQDN-or-IP/-/grafana.

Itu usernameuntuk login adalah admin. Untuk password, Anda dapat mengatur ulang dengan menjalankan perintah di bawah ini;

gitlab-ctl set-grafana-password

Kemudian login ke Grafana. Setelah berhasil login, Anda akan disambut di dashboard Grafana.

Tambahkan Sumber Data Prometheus ke Grafana

Agar Grafana mengumpulkan metrik dari Prometheus dan memberikan visualisasi, Anda perlu menambahkan sumber data Prometheus. Secara default, Anda akan menemukan bahwa sumber data Prometheus telah ditambahkan secara otomatis. Anda dapat memeriksa dengan menavigasi ke Configuration > Datasources.

Namun, jika Anda perlu menambahkan sumber data baru;

  • Navigasi ke Configuration > Datasources > Add data source.
  • Dari tipe sumber data, pilih Prometheus. Ini akan membuka halaman konfigurasi sumber data Prometheus.
  • Masukkan URL server Prometheus. Jika Anda menjalankan Grafana dan Prometheus di server yang sama, gunakan alamatnya http://localhost:9090 jika tidak, gunakan alamat http://<prometheus-server-IP>:9090.
  • Setelah itu, klik Save & Test.

Impor Dasbor Gitlab Grafana

Demikian pula, ada beberapa dasbor default yang disertakan dengan sumber data Prometheus. Jika Anda menavigasi keConfiguration > Datasources > click on Gitlab Omnibus datasource > Dashboards. KlikImportuntuk mengimpor dasbor. Tombol berubah menjadiRe-import setelah mengimpor.

Melihat Dasbor Gitlab Grafana

Setelah Anda mengimpor dasbor, Anda sekarang dapat melihatnya. Klik tombol cari dan pilih dasbor yang ingin Anda lihat visualisasinya. Misalnya, mari kita lihat dasbor statistik Prometheus 2.0.

Demikian pula, Anda dapat memantau metrik sistem server Gitlab seperti useran cpu, RAM, I/O disk, dll. Lihat dasbor di bawah ini;

Untuk dasbor di atas, di bawah ini adalah file konfigurasi json yang dimodifikasi (versi modifikasi dasbor sistem Gitlab untuk Grafana ).

{ "annotations": { "list": [ { "builtIn":
 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" }, { "datasource": "GitLab Omnibus", "enable": false, "expr": "ALERTS{alias="$host", alertstate="firing"}", "iconColor": "rgb(252, 5, 0)", "name": "Alert", "tagKeys": "severity", "textFormat": "{{ alias }} : {{alertstate}}", "titleFormat": "{{ alertname }}" }, { "datasource": "GitLab Omnibus", "enable": true, "expr": "ALERTS{alias="$host",alertstate="pending"}", "iconColor": "rgb(228, 242, 9)", "name": "Warning", "tagKeys": "severity", "textFormat": "{{ alias }} : {{ alertstate }}", "titleFormat": "{{ alertname }}" } ] }, "description": "GitLab Prometheus for system metrics. rnLoad, CPU, RAM, network, process... ", "editable": true, "gnetId": 7697, "graphTooltip": 1, "id": 17, "iteration": 1606596413793, "links": [], "panels": [ { "cacheTimeout": null, "colorBackground": false, "colorValue": true, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "GitLab Omnibus", "decimals": 1, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "format": "s", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "height": "50px", "id": 19, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "s", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "80%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "{instance="192.168.57.3:9090", job="prometheus"}", "targets": [ { "calculatedInterval": "10m", "datasourceErrors": {}, "errors": {}, "expr": "(time() - process_start_time_seconds{job="prometheus"})", "format": "time_series", "interval": "5m", "intervalFactor": 1, "legendFormat": "", "metric": "", "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", "refId": "A", "step": 300 } ], "thresholds": "300,3600", "title": "System Uptime", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "GitLab Omnibus", "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 4, "x": 6, "y": 0 }, "height": "55px", "id": 25, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "80%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "instance:node_cpus:count{instance="localhost:9100", job="node"}", "targets": [ { "expr": "instance:node_cpus:count{instance="localhost:9100",job="node"}", "format": "time_series", "interval": "5m", "intervalFactor": 1, "legendFormat": "", "refId": "A", "step": 300 } ], "thresholds": "", "title": "Virtual CPUs", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": true, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "format": "bytes", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 4, "x": 10, "y": 0 }, "height": "55px", "id": 26, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "80%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "node_memory_MemAvailable_bytes{instance="localhost:9100", job="node"}", "targets": [ { "expr": "node_memory_MemAvailable_bytes{instance="localhost:9100",job="node"}", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "", "metric": "node_memory_MemAvailable", "refId": "A", "step": 30 } ], "thresholds": "", "title": "RAM available", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": true, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "format": "bytes", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 4, "x": 14, "y": 0 }, "height": "55px", "id": 34, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "80%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "node_memory_MemFree_bytes{instance="localhost:9100", job="node"}", "targets": [ { "expr": "node_memory_MemFree_bytes{instance="localhost:9100",job="node"}", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "", "metric": "node_memory_MemAvailable", "refId": "A", "step": 30 } ], "thresholds": "", "title": "Free RAM", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": true, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "GitLab Omnibus", "decimals": 0, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "format": "percent", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 6, "x": 18, "y": 0 }, "height": "50px", "id": 9, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "80%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "{instance="localhost:91
00", job="node"}", "targets": [ { "calculatedInterval": "10m", "datasourceErrors": {}, "errors": {}, "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", "format": "time_series", "interval": "5m", "intervalFactor": 1, "legendFormat": "", "metric": "node_mem", "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", "refId": "A", "step": 300 } ], "thresholds": "10,50", "title": "% RAM Available", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "current" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 6, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 3 }, "height": "260px", "hiddenSeries": false, "id": 2, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": true, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "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)", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "{{ mode }}", "metric": "", "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", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "CPU Usage", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percent", "label": "", "logBase": 1, "max": 100, "min": 0, "show": true }, { "format": "short", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 2, "fillGradient": 0, "grid": {}, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 10 }, "hiddenSeries": false, "id": 18, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": true, "show": true, "sortDesc": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "Load 1m", "color": "#E24D42" }, { "alias": "Load 5m", "color": "#E0752D" }, { "alias": "Load 15m", "color": "#E5AC0E" } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "calculatedInterval": "10s", "datasourceErrors": {}, "errors": {}, "expr": "node_load1{instance='localhost:9100',job='node'}", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "Load 1m", "metric": "", "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", "refId": "A", "step": 2, "target": "" }, { "calculatedInterval": "10s", "datasourceErrors": {}, "errors": {}, "expr": "node_load5{instance='localhost:9100',job='node'}", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "Load 5m", "metric": "", "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", "refId": "B", "step": 2, "target": "" }, { "calculatedInterval": "10s", "datasourceErrors": {}, "errors": {}, "expr": "node_load15{instance='localhost:9100',job='node'}", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "Load 15m", "metric": "", "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", "refId": "C", "step": 2, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Load Average", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "none", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "none", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 4, "fillGradient": 0, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 17 }, "hiddenSeries": false, "id": 33, "legend": { "alignAsTable": true, "avg": true, "current": false, "max": true, "min": true, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "alias": "", "expr": "node_memory_MemTotal_bytes{job='node',instance='localhost:9100'}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Total", "rawSql": "SELECTn UNIX_TIMESTAMP() as time_sec,n  as value,n  as metricnFROM nWHERE $__timeFilter(time_column)nORDER BY  ASCn", "refId": "A" }, { "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'}))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Used", "refId": "B" }, { "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'})", "format": "time_series", "intervalFactor": 1, "legendFormat": "Available", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 6, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 17 }, "height": "", "hiddenSeries": false, "id": 29, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "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'})", "format": "time_series", "intervalFactor": 1, "legendFormat": "Used", "metric": "", "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", "refId": "A", "step": 5, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "node_memory_MemFree_bytes{job='node',instance='localhost:9100'}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Free", "metric": "", "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", "refId": "B", "step": 5, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "node_memory_Buffers_bytes{job='node',instance='localhost:9100'}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Buffers", "metric": "", "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", "refId": "D", "step": 5, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "node_memory_Cached_bytes{job='node',instance='localhost:9100'}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Cached", "metric": "", "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", "refId": "E", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Memory Distribution", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "bytes", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 6, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 25 }, "hiddenSeries": false, "id": 21, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "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])", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "Inbound: {{ device }}", "metric": "", "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", "refId": "B", "step": 5, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "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])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Outbound: {{ device }}", "metric": "", "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", "refId": "A", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Network Traffic", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "bytes", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 6, "fillGrad
ient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 25 }, "hiddenSeries": false, "id": 22, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "sort": "min", "sortDesc": true, "total": false, "values": true }, "lines": false, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "sum(increase(node_network_receive_bytes_total{job='node',instance='localhost:9100', device!="lo"}[1h]))", "format": "time_series", "interval": "1h", "intervalFactor": 1, "legendFormat": "Received", "metric": "", "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", "refId": "A", "step": 3600, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "sum(increase(node_network_transmit_bytes_total{job='node',instance='localhost:9100', device!="lo"}[1h]))", "format": "time_series", "hide": false, "interval": "1h", "intervalFactor": 1, "legendFormat": "Sent", "metric": "", "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", "refId": "B", "step": 3600, "target": "" } ], "thresholds": [], "timeFrom": "24h", "timeRegions": [], "timeShift": null, "title": "Network Utilization Hourly", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "bytes", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 2, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 33 }, "hiddenSeries": false, "id": 27, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "calculatedInterval": "2m", "datasourceErrors": {}, "errors": {}, "expr": "rate(node_context_switches_total{job='node',instance='localhost:9100'}[$interval]) or irate(node_context_switches_total{job='node',instance='localhost:9100'}[5m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Context Switches", "metric": "", "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", "refId": "A", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Context Switches", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "none", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "none", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 2, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 33 }, "hiddenSeries": false, "id": 20, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": false, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "Processes blocked waiting for I/O to complete", "color": "#E24D42" }, { "alias": "Processes in runnable state", "color": "#6ED0E0" } ], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "calculatedInterval": "2m", "datasourceErrors": {}, "errors": {}, "expr": "node_procs_running{job='node',instance='localhost:9100'}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Processes in runnable state", "metric": "", "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", "refId": "A", "step": 5, "target": "" }, { "calculatedInterval": "2m", "datasourceErrors": {}, "errors": {}, "expr": "node_procs_blocked{job='node',instance='localhost:9100'}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Processes blocked waiting for I/O to complete", "metric": "", "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", "refId": "B", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Processes", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "none", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "none", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 2, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 41 }, "hiddenSeries": false, "id": 31, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "
rate(node_vmstat_pgpgin{job='node'}[$interval]) * 1024 or irate(node_vmstat_pgpgin{job='node'}[5m]) * 1024", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Page In", "metric": "", "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", "refId": "A", "step": 5, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "rate(node_vmstat_pgpgout{job='node'}[$interval]) * 1024 or irate(node_vmstat_pgpgout{job='node'}[5m]) * 1024", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Page Out", "metric": "", "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", "refId": "B", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "I/O Activity", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "bytes", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 2, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 41 }, "hiddenSeries": false, "id": 28, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "Interrupts", "color": "#D683CE" } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "calculatedInterval": "2m", "datasourceErrors": {}, "errors": {}, "expr": "rate(node_intr_total{instance=":9100",job="node"}[$interval]) or irate(node_intr_total{job="node"}[5m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Interrupts", "metric": "", "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", "refId": "A", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Interrupts", "tooltip": { "msResolution": true, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "none", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "none", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 6, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 49 }, "hiddenSeries": false, "id": 23, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "Used", "color": "#584477" }, { "alias": "Free", "color": "#AEA2E0" } ], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "node_memory_SwapTotal_bytes{job='node',instance='localhost:9100'} - node_memory_SwapFree_bytes{job='node',instance='localhost:9100'}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Used", "metric": "", "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", "refId": "A", "step": 5, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "node_memory_SwapFree_bytes{job='node',instance='localhost:9100'}", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "Free", "metric": "", "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", "refId": "B", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Swap", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "bytes", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "GitLab Omnibus", "decimals": 2, "editable": true, "error": false, "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 2, "fillGradient": 0, "grid": {}, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 49 }, "hiddenSeries": false, "id": 30, "legend": { "alignAsTable": true, "avg": true, "current": false, "hideEmpty": false, "max": true, "min": true, "rightSide": false, "show": true, "total": false, "values": true }, "lines": true, "linewidth": 2, "links": [], "nullPointMode": "null", "options": { "dataLinks": [] }, "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "rate(node_vmstat_pswpin{job='node',instance='localhost:9100'}[$interval]) * 4096 or irate(node_vmstat_pswpin{job='node',instance='localhost:9100'}[5m]) * 4096", "format": "time_series", "intervalFactor": 1, "legendFormat": "Swap In", "metric": "", "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_memo
ry_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", "refId": "A", "step": 5, "target": "" }, { "calculatedInterval": "2s", "datasourceErrors": {}, "errors": {}, "expr": "rate(node_vmstat_pswpout{job='node',instance='localhost:9100'}[$interval]) * 4096 or irate(node_vmstat_pswpout{job='node',instance='localhost:9100'}[5m]) * 4096", "format": "time_series", "intervalFactor": 1, "legendFormat": "Swap Out", "metric": "", "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", "refId": "B", "step": 5, "target": "" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Swap Activity", "tooltip": { "msResolution": false, "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": "", "logBase": 1, "max": null, "min": 0, "show": true }, { "format": "bytes", "logBase": 1, "max": null, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "30s", "schemaVersion": 25, "style": "dark", "tags": [ "system", "prometheus", "online", "GetLab" ], "templating": { "list": [ { "allFormat": "glob", "auto": true, "auto_count": 200, "auto_min": "1s", "current": { "selected": false, "text": "5s", "value": "5s" }, "datasource": "GitLab Omnibus", "hide": 0, "includeAll": false, "label": "Interval", "multi": false, "multiFormat": "glob", "name": "interval", "options": [ { "selected": false, "text": "auto", "value": "$__auto_interval_interval" }, { "selected": false, "text": "1s", "value": "1s" }, { "selected": true, "text": "5s", "value": "5s" }, { "selected": false, "text": "1m", "value": "1m" }, { "selected": false, "text": "5m", "value": "5m" }, { "selected": false, "text": "1h", "value": "1h" }, { "selected": false, "text": "6h", "value": "6h" }, { "selected": false, "text": "1d", "value": "1d" } ], "query": "1s,5s,1m,5m,1h,6h,1d", "refresh": 2, "skipUrlSync": false, "type": "interval" } ] }, "time": { "from": "now-1h", "to": "now" }, "timepicker": { "collapse": false, "enable": true, "notice": false, "now": true, "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "status": "Stable", "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ], "type": "timepicker" }, "timezone": "", "title": "Gitlab System", "uid": "4W5aRFAGz", "version": 2 } 

Dan di sana Anda pergi. Anda selanjutnya dapat mengaktifkan dan mengumpulkan berbagai data metrik Gitlab dan memvisualisasikannya di Grafana. Itu menandai akhir dari tutorial kami tentang pemantauan metrik Gitlab dengan Prometheus dan Grafana.

Referensi

Memantau Gitlab dengan Prometheus

Tutorial lainnya

Pantau Koneksi OpenVPN dengan Prometheus dan Grafana

Instal Grafana Terbaru di CentOS 8

Integrasikan Prometheus dengan Grafana untuk Pemantauan

Pantau log Squid dengan Grafana dan Graylog