├── grafana ├── storage │ └── .gitignore ├── dashboards │ ├── msi-afterburner.yaml │ ├── msi-afterburner-live.json │ └── msi-afterburner.json └── datasources │ └── grafterburner-victoriametrics.yaml ├── victoriametrics └── .gitignore ├── assets ├── pi.jpeg ├── dash-full.png └── dash-mini.png ├── LICENSE.md ├── docker-compose.yml ├── telegraf └── telegraf.conf ├── README.md ├── dashboard-rpi.json └── dashboard.json /grafana/storage/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /victoriametrics/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /assets/pi.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RafhaanShah/grAfterburner/HEAD/assets/pi.jpeg -------------------------------------------------------------------------------- /assets/dash-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RafhaanShah/grAfterburner/HEAD/assets/dash-full.png -------------------------------------------------------------------------------- /assets/dash-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RafhaanShah/grAfterburner/HEAD/assets/dash-mini.png -------------------------------------------------------------------------------- /grafana/dashboards/msi-afterburner.yaml: -------------------------------------------------------------------------------- 1 | # https://grafana.com/docs/grafana/latest/administration/provisioning/#dashboards 2 | apiVersion: 1 3 | 4 | providers: 5 | - name: 'MSI Afterburner' 6 | folder: '' 7 | type: file 8 | disableDeletion: false 9 | editable: true 10 | updateIntervalSeconds: 0 11 | allowUiUpdates: true 12 | options: 13 | path: /etc/grafana/provisioning/dashboards 14 | -------------------------------------------------------------------------------- /grafana/datasources/grafterburner-victoriametrics.yaml: -------------------------------------------------------------------------------- 1 | # https://grafana.com/docs/grafana/latest/administration/provisioning/#data-sources 2 | apiVersion: 1 3 | 4 | datasources: 5 | - name: grAfterburner-VictoriaMetrics 6 | orgId: 1 7 | type: prometheus 8 | access: proxy 9 | url: http://grafterburner-victoriametrics:8428 10 | editable: true 11 | jsonData: 12 | timeInterval: 1s 13 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Rafhaan Shah 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | # https://docs.docker.com/reference/compose-file/ 2 | 3 | services: 4 | # https://docs.victoriametrics.com/victoriametrics/quick-start/ 5 | # remove this section if long term data is not required 6 | # also remove section in telegraf.conf 7 | victoriametrics: 8 | container_name: grafterburner-victoriametrics 9 | image: victoriametrics/victoria-metrics:latest 10 | restart: always 11 | # uncomment below to access VM-UI 12 | # ports: 13 | # - 8428:8428 14 | command: 15 | - "--storageDataPath=/storage" # Storage path inside container 16 | - "--graphiteListenAddr=:2003" # Graphite plaintext format, UDP / TCP 17 | - "--opentsdbListenAddr=:4242" # OpenTSDB format, UDP / TCP 18 | - "--influxListenAddr=:8189" # InfluxDB line protocol, UDP / TCP 19 | - "--httpListenAddr=:8428" # HTTP / InfluxDB format, TCP 20 | - "--search.latencyOffset=1s" # Data becomes available 1s after ingestion 21 | - "--retentionPeriod=1" # Months 22 | volumes: 23 | - ./victoriametrics:/storage 24 | 25 | # https://grafana.com/docs/grafana/latest/setup-grafana/configure-docker/ 26 | grafana: 27 | container_name: grafterburner-grafana 28 | image: grafana/grafana:latest 29 | restart: always 30 | user: "1000" 31 | ports: 32 | - 8025:3000 33 | volumes: 34 | - "./grafana/storage:/var/lib/grafana" 35 | - "./grafana/datasources:/etc/grafana/provisioning/datasources" 36 | - "./grafana/dashboards:/etc/grafana/provisioning/dashboards" 37 | environment: 38 | - "GF_DASHBOARDS_MIN_REFRESH_INTERVAL=1s" 39 | # change below options for security if required 40 | # https://github.com/grafana/grafana/blob/main/conf/defaults.ini 41 | - "GF_AUTH_DISABLE_LOGIN=true" 42 | - "GF_AUTH_DISABLE_LOGIN_FORM=true" 43 | - "GF_AUTH_ANONYMOUS_ENABLED=true" 44 | - "GF_AUTH_ANONYMOUS_ORG_ROLE=Admin" 45 | 46 | # https://hub.docker.com/_/telegraf 47 | telegraf: 48 | container_name: grafterburner-telegraf 49 | image: telegraf:latest 50 | restart: always 51 | # noisy spam in logs when PC is offline 52 | # remove if you need to debug issues 53 | # logging: 54 | # driver: none 55 | volumes: 56 | - ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro 57 | -------------------------------------------------------------------------------- /telegraf/telegraf.conf: -------------------------------------------------------------------------------- 1 | # https://docs.influxdata.com/telegraf/v1/configuration/ 2 | # https://github.com/influxdata/telegraf/blob/master/cmd/telegraf/agent.conf 3 | # https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md 4 | [agent] 5 | interval = "1000ms" # poll frequency 6 | flush_interval = "1000ms" # push frequency 7 | round_interval = false # do not round poll time to :00, :01 etc 8 | collection_jitter = "0s" # no jitter for polling 9 | flush_jitter = "0s" # no jitter for pushing 10 | metric_batch_size = 1 # don't batch metrics before pushing 11 | metric_buffer_limit = 2 # don't care about lost metrics 12 | omit_hostname = true # remove hostname tag 13 | 14 | # https://github.com/influxdata/telegraf/blob/master/plugins/inputs/http/README.md 15 | [[inputs.http]] 16 | name_override = "msi_afterburner" 17 | # modify with actual IP or hostname of PC with MSI Afterburner Remote Server 18 | urls = ["http://192.168.1.123:82/mahm"] 19 | method = "GET" 20 | username = "MSIAfterburner" 21 | password = "PASSWORD" # change as required 22 | data_format = "xml" 23 | timeout = "100ms" 24 | 25 | # https://docs.influxdata.com/telegraf/v1/data_formats/input/xml/ 26 | [[inputs.http.xpath]] 27 | metric_selection = "/HardwareMonitor/HardwareMonitorEntries" 28 | 29 | # fields to collect 30 | # add / remove as needed 31 | [inputs.http.xpath.fields] 32 | framerate = "number(HardwareMonitorEntry[srcName='Framerate']/data)" 33 | frametime = "number(HardwareMonitorEntry[srcName='Frametime']/data)" 34 | cpu_usage = "number(HardwareMonitorEntry[srcName='CPU usage']/data)" 35 | cpu_temp = "number(HardwareMonitorEntry[srcName='CPU temperature']/data)" 36 | gpu_usage = "number(HardwareMonitorEntry[srcName='GPU usage']/data)" 37 | gpu_temp = "number(HardwareMonitorEntry[srcName='GPU temperature']/data)" 38 | cpu_clock = "number(HardwareMonitorEntry[srcName='CPU clock']/data)" 39 | gpu_clock = "number(HardwareMonitorEntry[srcName='Core clock']/data)" 40 | gpu_memory_clock = "number(HardwareMonitorEntry[srcName='Memory clock']/data)" 41 | cpu_power = "number(HardwareMonitorEntry[srcName='CPU power']/data)" 42 | gpu_power = "number(HardwareMonitorEntry[srcName='Power']/data)" 43 | gpu_voltage = "number(HardwareMonitorEntry[srcName='GPU voltage']/data)" 44 | ram = "number(HardwareMonitorEntry[srcName='RAM usage']/data)" 45 | vram = "number(HardwareMonitorEntry[srcName='Memory usage']/data)" 46 | fan_rpm = "number(HardwareMonitorEntry[srcName='Fan tachometer']/data)" 47 | fan_speed = "number(HardwareMonitorEntry[srcName='Fan speed']/data)" 48 | temp_limit = "number(HardwareMonitorEntry[srcName='Temp limit']/data)" 49 | power_limit = "number(HardwareMonitorEntry[srcName='Power limit']/data)" 50 | voltage_limit = "number(HardwareMonitorEntry[srcName='Voltage limit']/data)" 51 | no_load_limit = "number(HardwareMonitorEntry[srcName='No load limit']/data)" 52 | 53 | # this streams data directly to grafana 54 | # https://github.com/influxdata/telegraf/tree/master/plugins/outputs/websocket 55 | # https://grafana.com/tutorials/stream-metrics-from-telegraf-to-grafana/ 56 | # https://grafana.com/docs/grafana/latest/setup-grafana/set-up-grafana-live/ 57 | [[outputs.websocket]] 58 | url = "ws://grafterburner-grafana:3000/api/live/push/msi_afterburner" 59 | data_format = "influx" 60 | 61 | # remove this section if long term data is not required 62 | # https://github.com/influxdata/telegraf/tree/master/plugins/outputs/influxdb_v2 63 | [[outputs.influxdb_v2]] 64 | urls = ["http://grafterburner-victoriametrics:8428"] 65 | token = "grafterburner-token" 66 | organization = "grafterburner" 67 | bucket = "grafterburner" 68 | 69 | # debug output to stdout 70 | # [[outputs.file]] 71 | # files = ["stdout"] 72 | # data_format = "influx" 73 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # grAfterburner 2 | 3 |


Monitor your PC in style with Grafana and MSI Afterburner

4 | 5 | ![Full Dashboard Screenshot](assets/dash-full.png) 6 | ![Mini Dashboard Screenshot](assets/dash-mini.png) 7 | 8 | ### Why? 9 | 10 | - A lot of people already use MSI Afterburner for it's GPU overclocking functionality, as well as coming with the excellent RTSS for frametime monitoring and on-screen-display. It also adds negligible load on your CPU. 11 | - Since I have a single monitor set-up, I wanted something I could display on my [Raspberry Pi 3B+](https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/) which I had a small [3.5" Display](https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/overview) for, and I did not want to run yet another monitoring software just for that. Also, very few software can monitor the frame-time during games. 12 | - As MSI Afterburner has an additional Remote Server component, I wanted to find a way to get that displayed in a nice dashboard, which led me to this. 13 | - [Interactive Snapshot Demo](https://snapshot.raintank.io/dashboard/snapshot/Z5mCjhrfHn8bTYr7Ld3YgbRoNAvbl6We) (not 100% accurate as some features are not supported) 14 | - The Full Grafana dashboard can be found [here](https://grafana.com/grafana/dashboards/12021) to import into your existing instance, this fetches stats from a database. 15 | - The Live version of the Grafana dashboard can be found [here](https://grafana.com/grafana/dashboards/24041) to import into your existing instance, this has stats streamed directly to Grafana without any database. 16 | 17 | ### Components 18 | 19 | - [MSI Afterburner](https://www.msi.com/page/afterburner): provides a detailed overview of your hardware, and also allows graphics card overclocking. Includes [RTSS](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html) which also provides an on-screen-display during games. 20 | - [MSI Afterburner Remote Server](https://www.msi.com/page/afterburner): serves up an HTTP endpoint with data from MSI Afterburner in an XML format. 21 | - [Telegraf](https://github.com/influxdata/telegraf): an agent which collects metrics periodically and provides mechanisms to store the values in a variety of ways. Used to perform HTTP requests to the MSI Afterburner endpoint and store the data in a database, and can also stream to Grafana directly. 22 | - [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics): a time-series database that stores numeric time-series data and provides an API to access it. Stores the data from the collecting agent. 23 | - [Grafana](https://grafana.com/): allows you to query, visualize, alert on and understand your metrics and create your own dashboards. Visualizes the data stored in various sources, and can have data streamed directly to it. 24 | - [Docker](https://www.docker.com/): tool for building and running applications in containers. Allows you to start up the collection agent, database, and dashboard in one command without needing to think about dependencies or configurations. 25 | 26 | ### Requirements 27 | 28 | - For the PC you want monitored, you will need these (Windows only) 29 | 1. [MSI Afterburner](https://www.msi.com/page/afterburner) (it will ask you about RTSS as well during installation which you need for FPS / Frametime information) 30 | 2. [MSI Afterburner Remote Server](https://www.msi.com/page/afterburner) (does not install but just has an executable, appears to have been removed from this page, you may have to search around to find it, CNET, Softpedia, and TechSpot appear to have some version of it, but I cannot verify or guarantee the authenticity of these versions and whether or not they work) (I have used and tested with version `1.2.0.0` of the `exe` and version `1.1.0.0` of the `.dll`) 31 | - For the monitoring setup (can be on the same PC or a separate one, Windows / macOS / Linux) 32 | 1. [Docker](https://docs.docker.com/install/) (and [Docker Compose](<[https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/)>)) 33 | 34 | ### Installation 35 | 36 | 1. Download and install the requirements listed in the above section and make sure that they are running. 37 | 2. Download the `Source code zip` from the latest [releases page](https://github.com/RafhaanShah/grAfterburner/releases) and extract it to a folder. 38 | 39 | ### Configuration 40 | 41 | 1. **MSI Afterburner:** 42 | - Open MSI Afterburner by clicking the tray icon in the bottom right of Windows 43 | - Go into Settings -> Monitoring 44 | - Press the check mark next to every metric that you want monitored (e.g.: GPU Usage) 45 | - Press OK 46 | 2. **MSI Afterburner Remote Server:** 47 | - This application only has a tray icon so right click it to view the options 48 | - Go into security and set a password of your choice 49 | - Go into HTTP Listener and change the port if you wish to change the default of 82 50 | - Also note the IP address it shows, you will need it in the next step 51 | - Press restart server when you are done 52 | 3. **Monitoring Configuration:** 53 | - Open the cloned repository folder 54 | - Find and open [`telegraf/telegraf.conf`](telegraf/telegraf.conf) 55 | - Edit the `urls` line under `[[inputs.http]]` to be the [`Local IP`](https://lifehacker.com/how-to-find-your-local-and-external-ip-address-5833108) address and the port of your PC (the one with MSI Afterburner running) which you configured in the previous step, e.g.: if my PC's IP address is 192.168.1.123 and I set port 82, the line should be: 56 | ``` 57 | urls = ["http://192.168.1.123:82/mahm"] 58 | ``` 59 | (You can also use your PC's hostname instead of the IP if you have local hostname resolution working on your network) 60 | - Edit the `password` line to have the password you set in step 3, e.g.: if my password is `abcd1234` the line should be: 61 | ``` 62 | password = "abcd1234" 63 | ``` 64 | - Save and close the file 65 | 4. **Optional Configurations:** 66 | - Edit [`docker-compose.yml`](docker-compose.yml) under `grafana > ports` to change the port Grafana runs on from `8025` to something else (leave the `3000`). 67 | - Edit [`docker-compose.yml`](docker-compose.yml) under `grafana > env` if you want to change login configuration for Grafana and any other [environment variables](https://grafana.com/docs/grafana/latest/installation/configuration/#configure-with-environment-variables). 68 | - If you do not want the services to start on the boot-up of your system remove the lines in [`docker-compose.yml`](docker-compose.yml) that say `'restart: always'`. 69 | - If you wish to change how often MSI Afterburner polls your hardware for new data, open MSI Afterburner, Settings -> Monitoring -> Hardware Polling Period. 70 | - You will probably also want to change how often new data is fetched as well, so open [`telegraf/telegraf.conf`](telegraf/telegraf.conf) and edit lines related to `interval`. 71 | - If you do not need / want long term data, you can remove `victoriametrics` section from [`docker-compose.yml`](docker-compose.yml) and `[[outputs.influxdb_v2]]` section from [`telegraf/telegraf.conf`](telegraf/telegraf.conf) - this will only stream data directly to Grafana, so you will only have "live" data and not historical data. 72 | 73 | ### Running 74 | 75 | 1. Open command prompt / powershell / any terminal in the repository folder 76 | 2. Run this command to start up the monitoring services: 77 | ``` 78 | docker-compose up -d 79 | ``` 80 | 3. To open the Grafana and view the dashboard, you will need to know the local IP address of the computer running the services, e.g.: if the computer I am running the services on has a Local IP address of `192.168.1.20`, then I will need to type into my web browser: 81 | ``` 82 | http://192.168.1.20:8025 83 | ``` 84 | (if you changed the port Grafana runs on, then you will need to replace `8025` with that port) 85 | 4. The dashboard and data source will already be set up but you can modify all of it to suit your needs. Auto refresh and time range options are in the top right corner, and more information on dashboards can be found [here](https://grafana.com/docs/grafana/latest/features/dashboard/dashboards/). 86 | 5. There will be 2 dashboards provided by default, the `Full` dashboard includes more metrics and fetches data from the database. The `Live` dashboard has data streamed directly from the collection agent, so there will be less latency, but you can only see the current data. Both dashboards can be modified to include / exclude any data. 87 | 6. If you wish to stop the services use the following command: 88 | ``` 89 | docker-compose stop 90 | ``` 91 | 92 | ### Notes 93 | 94 | - If your PC does not have a Static Local IP, you should [set it](https://www.howtogeek.com/howto/19249/how-to-assign-a-static-ip-address-in-xp-vista-or-windows-7/) to have one so that [`telegraf/telegraf.conf`](telegraf/telegraf.conf) will not point to the wrong IP every time your PC gets a new Local IP address. Alternatively you can use the PC's hostname if you have local hostname resolution working on your network. 95 | - I'd recommend running the monitoring on a different PC to your main one, so as to not affect it's performance. 96 | - The number of graphs and the refresh rate will affect the amount of CPU usage by the database. 97 | - SD cards used in Raspberry Pi's are not really meant to be [constantly written](https://domoticproject.com/extending-life-raspberry-pi-sd-card/) to, and even though the database may be very efficient with it's storage, you may want to look into booting off an SSD or setting the storage [volume](https://docs.docker.com/compose/compose-file/#volumes) to be on an external drive. 98 | - If you are using a small screen (like a 3.5" Raspberry Pi Screen), you may need to adjust the zoom level of the dashboard in your browser to be able to fit more graphs at once. 99 | - For monitoring more than 1 PC, you need to modify [`telegraf/telegraf.conf`](telegraf/telegraf.conf) and either add another IP in `urls` or add a whole new `[[inputs.http]]` section depending your preference. You will likely need to update the dashboards to fit your preference as well as it is designed to show a single host at a time. 100 | 101 | ### Troubleshooting 102 | 103 | - Verify MSI Afterburner Remote Server is working: go to `http://192.168.1.123:82/mahm` (where `192.168.1.123` is the IP address of your PC running MSI Afterburner) in a web browser (try it on a browser that is not on the PC you are running MSI Afterburner on). You should get a pop-up asking for a username and password, use MSIAfterburner and the password you set, and verify that there is XML data visible, like [this](https://gist.github.com/joar/2a91ff54718e58011f86). 104 | - Verify the data source in Grafana: click the cog on the left for settings. On the data sources page there should be an entry already there. Click on this and click save and test. It should have a success message. 105 | - Go to Grafana > Explore, select Grafana as the data source and Live Measurements as the Query Type, and `stream/msi_afterburner` should appear under Channel. 106 | - Go to Grafana > Drilldown > Metrics, select the correct data source to see if Grafana is finding any data from the database. 107 | - Check the monitored metrics you set up in MSI Afterburner during step 1, the default provided dashboard uses: GPU temperature, GPU usage, Memory usage, Core clock, Memory clock, GPU voltage, Fan speed, Fan speed 2, Fan tachometer, Fan tachometer 2, Temp limit, Power limit, Voltage limit, No load limit. CPU temperature, CPU usage, CPU clock, CPU power, RAM usage, Framerate, Frametime. You do not need to have all these, and you can make your own dashboards, but the one that is already set up uses these metrics. 108 | - Check the [logs](https://docs.docker.com/config/containers/logging/) of the docker containers to see if there are any log messages that may help, look in [`docker-compose.yml`](docker-compose.yml) and [`telegraf/telegraf.conf`](telegraf/telegraf.conf) for comments that can help debug. 109 | 110 | ![Raspberry Pi Dashboard](assets/pi.jpeg) 111 | 112 | ### Alternatives / Similar Tools 113 | - [gamergraf](https://github.com/ragesaq/gamergraf) 114 | - [InfluxDB Importer](https://gist.github.com/veteran29/962d096d70adaed93ad0007742a5f21d) 115 | - [Prometheus Exporter](https://github.com/kennedyoliveira/prometheus-msi-afterburner-exporter) 116 | -------------------------------------------------------------------------------- /dashboard-rpi.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [ 3 | { 4 | "name": "DS_GRAFTERBURNER-GRAPHITE", 5 | "label": "grAfterburner-Graphite", 6 | "description": "", 7 | "type": "datasource", 8 | "pluginId": "graphite", 9 | "pluginName": "Graphite" 10 | }, 11 | { 12 | "name": "VAR_AFTERBURNER", 13 | "type": "constant", 14 | "label": "CollectD Metric Prefix", 15 | "value": "collectd.*.curl-xml-afterburner", 16 | "description": "" 17 | } 18 | ], 19 | "__requires": [ 20 | { 21 | "type": "panel", 22 | "id": "bargauge", 23 | "name": "Bar Gauge", 24 | "version": "" 25 | }, 26 | { 27 | "type": "panel", 28 | "id": "gauge", 29 | "name": "Gauge", 30 | "version": "" 31 | }, 32 | { 33 | "type": "grafana", 34 | "id": "grafana", 35 | "name": "Grafana", 36 | "version": "6.7.1" 37 | }, 38 | { 39 | "type": "panel", 40 | "id": "graph", 41 | "name": "Graph", 42 | "version": "" 43 | }, 44 | { 45 | "type": "datasource", 46 | "id": "graphite", 47 | "name": "Graphite", 48 | "version": "1.0.0" 49 | } 50 | ], 51 | "annotations": { 52 | "list": [ 53 | { 54 | "$$hashKey": "object:175", 55 | "builtIn": 1, 56 | "datasource": "-- Grafana --", 57 | "enable": true, 58 | "hide": true, 59 | "iconColor": "rgba(0, 211, 255, 1)", 60 | "name": "Annotations & Alerts", 61 | "type": "dashboard" 62 | } 63 | ] 64 | }, 65 | "description": "Shows stats from MSI Afterburner", 66 | "editable": true, 67 | "gnetId": null, 68 | "graphTooltip": 0, 69 | "id": null, 70 | "iteration": 1585942408093, 71 | "links": [], 72 | "panels": [ 73 | { 74 | "datasource": "$graphite", 75 | "gridPos": { 76 | "h": 8, 77 | "w": 7, 78 | "x": 0, 79 | "y": 0 80 | }, 81 | "id": 10, 82 | "options": { 83 | "fieldOptions": { 84 | "calcs": [ 85 | "lastNotNull" 86 | ], 87 | "defaults": { 88 | "decimals": 0, 89 | "mappings": [], 90 | "max": 200, 91 | "min": 0, 92 | "thresholds": { 93 | "mode": "absolute", 94 | "steps": [ 95 | { 96 | "color": "red", 97 | "value": null 98 | }, 99 | { 100 | "color": "orange", 101 | "value": 30 102 | }, 103 | { 104 | "color": "yellow", 105 | "value": 60 106 | }, 107 | { 108 | "color": "green", 109 | "value": 90 110 | } 111 | ] 112 | }, 113 | "title": "FPS", 114 | "unit": "none" 115 | }, 116 | "overrides": [], 117 | "values": false 118 | }, 119 | "orientation": "auto", 120 | "showThresholdLabels": false, 121 | "showThresholdMarkers": true 122 | }, 123 | "pluginVersion": "6.7.1", 124 | "targets": [ 125 | { 126 | "refCount": 0, 127 | "refId": "A", 128 | "target": "alias($afterburner.gauge-Framerate, 'FPS')", 129 | "textEditor": false 130 | } 131 | ], 132 | "timeFrom": null, 133 | "timeShift": null, 134 | "title": "", 135 | "type": "gauge" 136 | }, 137 | { 138 | "datasource": "$graphite", 139 | "gridPos": { 140 | "h": 8, 141 | "w": 7, 142 | "x": 7, 143 | "y": 0 144 | }, 145 | "id": 11, 146 | "options": { 147 | "fieldOptions": { 148 | "calcs": [ 149 | "lastNotNull" 150 | ], 151 | "defaults": { 152 | "decimals": 1, 153 | "mappings": [], 154 | "max": 200, 155 | "min": 0, 156 | "thresholds": { 157 | "mode": "absolute", 158 | "steps": [ 159 | { 160 | "color": "red", 161 | "value": null 162 | }, 163 | { 164 | "color": "green", 165 | "value": 1 166 | }, 167 | { 168 | "color": "#EAB839", 169 | "value": 16.7 170 | }, 171 | { 172 | "color": "orange", 173 | "value": 33.3 174 | }, 175 | { 176 | "color": "red", 177 | "value": 66.65 178 | } 179 | ] 180 | }, 181 | "title": "Frametime", 182 | "unit": "none" 183 | }, 184 | "overrides": [], 185 | "values": false 186 | }, 187 | "orientation": "auto", 188 | "showThresholdLabels": false, 189 | "showThresholdMarkers": true 190 | }, 191 | "pluginVersion": "6.7.1", 192 | "targets": [ 193 | { 194 | "refCount": 0, 195 | "refId": "A", 196 | "target": "$afterburner.gauge-Frametime", 197 | "textEditor": false 198 | } 199 | ], 200 | "timeFrom": null, 201 | "timeShift": null, 202 | "title": "", 203 | "type": "gauge" 204 | }, 205 | { 206 | "datasource": "$graphite", 207 | "gridPos": { 208 | "h": 8, 209 | "w": 5, 210 | "x": 14, 211 | "y": 0 212 | }, 213 | "id": 13, 214 | "options": { 215 | "displayMode": "gradient", 216 | "fieldOptions": { 217 | "calcs": [ 218 | "lastNotNull" 219 | ], 220 | "defaults": { 221 | "decimals": 0, 222 | "mappings": [], 223 | "max": 100, 224 | "min": 0, 225 | "thresholds": { 226 | "mode": "absolute", 227 | "steps": [ 228 | { 229 | "color": "green", 230 | "value": null 231 | }, 232 | { 233 | "color": "yellow", 234 | "value": 50 235 | }, 236 | { 237 | "color": "orange", 238 | "value": 75 239 | }, 240 | { 241 | "color": "red", 242 | "value": 90 243 | } 244 | ] 245 | }, 246 | "title": "", 247 | "unit": "percent" 248 | }, 249 | "overrides": [], 250 | "values": false 251 | }, 252 | "orientation": "vertical", 253 | "showUnfilled": true 254 | }, 255 | "pluginVersion": "6.7.1", 256 | "targets": [ 257 | { 258 | "refCount": 0, 259 | "refId": "A", 260 | "target": "alias($afterburner.gauge-CPU_usage, 'CPU')", 261 | "textEditor": false 262 | }, 263 | { 264 | "refCount": 0, 265 | "refId": "B", 266 | "target": "alias($afterburner.gauge-GPU_usage, 'GPU')", 267 | "textEditor": false 268 | } 269 | ], 270 | "timeFrom": null, 271 | "timeShift": null, 272 | "title": "", 273 | "type": "bargauge" 274 | }, 275 | { 276 | "datasource": "$graphite", 277 | "gridPos": { 278 | "h": 8, 279 | "w": 5, 280 | "x": 19, 281 | "y": 0 282 | }, 283 | "id": 12, 284 | "options": { 285 | "displayMode": "gradient", 286 | "fieldOptions": { 287 | "calcs": [ 288 | "lastNotNull" 289 | ], 290 | "defaults": { 291 | "decimals": 0, 292 | "mappings": [], 293 | "max": 100, 294 | "min": 0, 295 | "thresholds": { 296 | "mode": "absolute", 297 | "steps": [ 298 | { 299 | "color": "green", 300 | "value": null 301 | }, 302 | { 303 | "color": "#EAB839", 304 | "value": 50 305 | }, 306 | { 307 | "color": "orange", 308 | "value": 75 309 | }, 310 | { 311 | "color": "red", 312 | "value": 90 313 | } 314 | ] 315 | }, 316 | "title": "", 317 | "unit": "celsius" 318 | }, 319 | "overrides": [], 320 | "values": false 321 | }, 322 | "orientation": "vertical", 323 | "showUnfilled": true 324 | }, 325 | "pluginVersion": "6.7.1", 326 | "targets": [ 327 | { 328 | "refCount": 0, 329 | "refId": "A", 330 | "target": "alias($afterburner.gauge-CPU_temperature, 'CPU')", 331 | "textEditor": false 332 | }, 333 | { 334 | "refCount": 0, 335 | "refId": "B", 336 | "target": "alias($afterburner.gauge-GPU_temperature, 'GPU')", 337 | "textEditor": false 338 | } 339 | ], 340 | "timeFrom": null, 341 | "timeShift": null, 342 | "title": "", 343 | "type": "bargauge" 344 | }, 345 | { 346 | "aliasColors": { 347 | "CPU": "orange", 348 | "CPU Temperature": "orange", 349 | "CPU Usage": "blue", 350 | "CPU%": "green", 351 | "CPU°C": "blue", 352 | "GPU": "blue", 353 | "GPU%": "yellow", 354 | "GPU°C": "red" 355 | }, 356 | "bars": false, 357 | "dashLength": 10, 358 | "dashes": false, 359 | "datasource": "${DS_GRAFTERBURNER-GRAPHITE}", 360 | "fill": 0, 361 | "fillGradient": 0, 362 | "gridPos": { 363 | "h": 9, 364 | "w": 24, 365 | "x": 0, 366 | "y": 8 367 | }, 368 | "hiddenSeries": false, 369 | "id": 2, 370 | "legend": { 371 | "alignAsTable": false, 372 | "avg": false, 373 | "current": false, 374 | "max": false, 375 | "min": false, 376 | "rightSide": false, 377 | "show": true, 378 | "total": false, 379 | "values": false 380 | }, 381 | "lines": true, 382 | "linewidth": 2, 383 | "nullPointMode": "null", 384 | "options": { 385 | "dataLinks": [] 386 | }, 387 | "percentage": false, 388 | "pointradius": 2, 389 | "points": false, 390 | "renderer": "flot", 391 | "seriesOverrides": [ 392 | { 393 | "$$hashKey": "object:1340", 394 | "alias": "CPU°C", 395 | "yaxis": 2 396 | }, 397 | { 398 | "$$hashKey": "object:1341", 399 | "alias": "GPU°C", 400 | "yaxis": 2 401 | } 402 | ], 403 | "spaceLength": 10, 404 | "stack": false, 405 | "steppedLine": false, 406 | "targets": [ 407 | { 408 | "refCount": 0, 409 | "refId": "A", 410 | "target": "alias($afterburner.gauge-CPU_usage, 'CPU%')", 411 | "textEditor": false 412 | }, 413 | { 414 | "refCount": 0, 415 | "refId": "B", 416 | "target": "alias($afterburner.gauge-GPU_usage, 'GPU%')" 417 | }, 418 | { 419 | "refCount": 0, 420 | "refId": "C", 421 | "target": "alias($afterburner.gauge-CPU_temperature, 'CPU°C')" 422 | }, 423 | { 424 | "refCount": 0, 425 | "refId": "D", 426 | "target": "alias($afterburner.gauge-GPU_temperature, 'GPU°C')" 427 | } 428 | ], 429 | "thresholds": [], 430 | "timeFrom": null, 431 | "timeRegions": [], 432 | "timeShift": null, 433 | "title": "", 434 | "tooltip": { 435 | "shared": true, 436 | "sort": 0, 437 | "value_type": "individual" 438 | }, 439 | "transparent": true, 440 | "type": "graph", 441 | "xaxis": { 442 | "buckets": null, 443 | "mode": "time", 444 | "name": null, 445 | "show": false, 446 | "values": [] 447 | }, 448 | "yaxes": [ 449 | { 450 | "$$hashKey": "object:1054", 451 | "decimals": 0, 452 | "format": "percent", 453 | "label": "", 454 | "logBase": 1, 455 | "max": "100", 456 | "min": "0", 457 | "show": true 458 | }, 459 | { 460 | "$$hashKey": "object:1055", 461 | "format": "celsius", 462 | "label": null, 463 | "logBase": 1, 464 | "max": "100", 465 | "min": "0", 466 | "show": true 467 | } 468 | ], 469 | "yaxis": { 470 | "align": false, 471 | "alignLevel": null 472 | } 473 | } 474 | ], 475 | "refresh": "", 476 | "schemaVersion": 22, 477 | "style": "dark", 478 | "tags": [], 479 | "templating": { 480 | "list": [ 481 | { 482 | "current": { 483 | "selected": false, 484 | "text": "grAfterburner-Graphite", 485 | "value": "grAfterburner-Graphite" 486 | }, 487 | "hide": 0, 488 | "includeAll": false, 489 | "label": "Graphite", 490 | "multi": false, 491 | "name": "graphite", 492 | "options": [], 493 | "query": "graphite", 494 | "refresh": 1, 495 | "regex": "", 496 | "skipUrlSync": false, 497 | "type": "datasource" 498 | }, 499 | { 500 | "current": { 501 | "value": "${VAR_AFTERBURNER}", 502 | "text": "${VAR_AFTERBURNER}" 503 | }, 504 | "hide": 2, 505 | "label": "CollectD Metric Prefix", 506 | "name": "afterburner", 507 | "options": [ 508 | { 509 | "value": "${VAR_AFTERBURNER}", 510 | "text": "${VAR_AFTERBURNER}" 511 | } 512 | ], 513 | "query": "${VAR_AFTERBURNER}", 514 | "skipUrlSync": false, 515 | "type": "constant" 516 | } 517 | ] 518 | }, 519 | "time": { 520 | "from": "now-15m", 521 | "to": "now" 522 | }, 523 | "timepicker": { 524 | "nowDelay": "", 525 | "refresh_intervals": [ 526 | "1s", 527 | "2s", 528 | "5s", 529 | "10s", 530 | "30s", 531 | "1m", 532 | "2m", 533 | "5m", 534 | "10m", 535 | "15m", 536 | "30m", 537 | "1h" 538 | ] 539 | }, 540 | "timezone": "", 541 | "title": "MSI Afterburner RPi", 542 | "uid": "-ViqSZCWl", 543 | "variables": { 544 | "list": [] 545 | }, 546 | "version": 2 547 | } 548 | -------------------------------------------------------------------------------- /grafana/dashboards/msi-afterburner-live.json: -------------------------------------------------------------------------------- 1 | { 2 | "annotations": { 3 | "list": [ 4 | { 5 | "builtIn": 1, 6 | "datasource": { 7 | "type": "datasource", 8 | "uid": "grafana" 9 | }, 10 | "enable": true, 11 | "hide": true, 12 | "iconColor": "rgba(0, 211, 255, 1)", 13 | "name": "Annotations & Alerts", 14 | "type": "dashboard" 15 | } 16 | ] 17 | }, 18 | "description": "Shows live stats from MSI Afterburner streamed to Grafana directly.", 19 | "editable": true, 20 | "fiscalYearStartMonth": 0, 21 | "graphTooltip": 0, 22 | "id": 1, 23 | "links": [ 24 | { 25 | "asDropdown": false, 26 | "icon": "doc", 27 | "includeVars": false, 28 | "keepTime": false, 29 | "tags": [], 30 | "targetBlank": true, 31 | "title": "GitHub.com/grAfterburner", 32 | "tooltip": "", 33 | "type": "link", 34 | "url": "https://github.com/RafhaanShah/grAfterburner" 35 | } 36 | ], 37 | "panels": [ 38 | { 39 | "datasource": { 40 | "type": "datasource", 41 | "uid": "grafana" 42 | }, 43 | "fieldConfig": { 44 | "defaults": { 45 | "decimals": 0, 46 | "displayName": "FPS", 47 | "mappings": [], 48 | "max": 200, 49 | "min": 0, 50 | "thresholds": { 51 | "mode": "absolute", 52 | "steps": [ 53 | { 54 | "color": "red", 55 | "value": 0 56 | }, 57 | { 58 | "color": "orange", 59 | "value": 30 60 | }, 61 | { 62 | "color": "yellow", 63 | "value": 60 64 | }, 65 | { 66 | "color": "green", 67 | "value": 90 68 | } 69 | ] 70 | }, 71 | "unit": "none" 72 | }, 73 | "overrides": [] 74 | }, 75 | "gridPos": { 76 | "h": 8, 77 | "w": 7, 78 | "x": 0, 79 | "y": 0 80 | }, 81 | "id": 10, 82 | "options": { 83 | "minVizHeight": 75, 84 | "minVizWidth": 75, 85 | "orientation": "auto", 86 | "reduceOptions": { 87 | "calcs": [ 88 | "lastNotNull" 89 | ], 90 | "fields": "", 91 | "values": false 92 | }, 93 | "showThresholdLabels": false, 94 | "showThresholdMarkers": true, 95 | "sizing": "auto" 96 | }, 97 | "pluginVersion": "12.1.1", 98 | "targets": [ 99 | { 100 | "channel": "stream/msi_afterburner/msi_afterburner", 101 | "filter": { 102 | "fields": [ 103 | "time", 104 | "framerate" 105 | ] 106 | }, 107 | "instant": true, 108 | "interval": "", 109 | "legendFormat": "FPS", 110 | "queryType": "measurements", 111 | "refId": "A" 112 | } 113 | ], 114 | "title": "", 115 | "type": "gauge" 116 | }, 117 | { 118 | "datasource": { 119 | "type": "datasource", 120 | "uid": "grafana" 121 | }, 122 | "fieldConfig": { 123 | "defaults": { 124 | "decimals": 1, 125 | "displayName": "Frametime", 126 | "mappings": [], 127 | "max": 200, 128 | "min": 0, 129 | "thresholds": { 130 | "mode": "absolute", 131 | "steps": [ 132 | { 133 | "color": "red", 134 | "value": 0 135 | }, 136 | { 137 | "color": "green", 138 | "value": 1 139 | }, 140 | { 141 | "color": "#EAB839", 142 | "value": 16.7 143 | }, 144 | { 145 | "color": "orange", 146 | "value": 33.3 147 | }, 148 | { 149 | "color": "red", 150 | "value": 66.65 151 | } 152 | ] 153 | }, 154 | "unit": "none" 155 | }, 156 | "overrides": [] 157 | }, 158 | "gridPos": { 159 | "h": 8, 160 | "w": 7, 161 | "x": 7, 162 | "y": 0 163 | }, 164 | "id": 11, 165 | "options": { 166 | "minVizHeight": 75, 167 | "minVizWidth": 75, 168 | "orientation": "auto", 169 | "reduceOptions": { 170 | "calcs": [ 171 | "lastNotNull" 172 | ], 173 | "fields": "", 174 | "values": false 175 | }, 176 | "showThresholdLabels": false, 177 | "showThresholdMarkers": true, 178 | "sizing": "auto" 179 | }, 180 | "pluginVersion": "12.1.1", 181 | "targets": [ 182 | { 183 | "channel": "stream/msi_afterburner/msi_afterburner", 184 | "filter": { 185 | "fields": [ 186 | "time", 187 | "frametime" 188 | ] 189 | }, 190 | "instant": true, 191 | "interval": "", 192 | "legendFormat": "Frametime", 193 | "queryType": "measurements", 194 | "refId": "A" 195 | } 196 | ], 197 | "title": "", 198 | "type": "gauge" 199 | }, 200 | { 201 | "datasource": { 202 | "type": "datasource", 203 | "uid": "grafana" 204 | }, 205 | "fieldConfig": { 206 | "defaults": { 207 | "decimals": 0, 208 | "mappings": [], 209 | "max": 100, 210 | "min": 0, 211 | "thresholds": { 212 | "mode": "absolute", 213 | "steps": [ 214 | { 215 | "color": "green", 216 | "value": 0 217 | }, 218 | { 219 | "color": "yellow", 220 | "value": 50 221 | }, 222 | { 223 | "color": "orange", 224 | "value": 75 225 | }, 226 | { 227 | "color": "red", 228 | "value": 90 229 | } 230 | ] 231 | }, 232 | "unit": "percent" 233 | }, 234 | "overrides": [ 235 | { 236 | "matcher": { 237 | "id": "byRegexp", 238 | "options": "/cpu.*/" 239 | }, 240 | "properties": [ 241 | { 242 | "id": "displayName", 243 | "value": "CPU" 244 | } 245 | ] 246 | }, 247 | { 248 | "matcher": { 249 | "id": "byRegexp", 250 | "options": "/gpu.*/" 251 | }, 252 | "properties": [ 253 | { 254 | "id": "displayName", 255 | "value": "GPU" 256 | } 257 | ] 258 | } 259 | ] 260 | }, 261 | "gridPos": { 262 | "h": 8, 263 | "w": 5, 264 | "x": 14, 265 | "y": 0 266 | }, 267 | "id": 18, 268 | "options": { 269 | "displayMode": "gradient", 270 | "legend": { 271 | "calcs": [], 272 | "displayMode": "list", 273 | "placement": "bottom", 274 | "showLegend": false 275 | }, 276 | "maxVizHeight": 300, 277 | "minVizHeight": 16, 278 | "minVizWidth": 8, 279 | "namePlacement": "auto", 280 | "orientation": "vertical", 281 | "reduceOptions": { 282 | "calcs": [ 283 | "lastNotNull" 284 | ], 285 | "fields": "", 286 | "values": false 287 | }, 288 | "showUnfilled": true, 289 | "sizing": "auto", 290 | "valueMode": "color" 291 | }, 292 | "pluginVersion": "12.1.1", 293 | "targets": [ 294 | { 295 | "channel": "stream/msi_afterburner/msi_afterburner", 296 | "filter": { 297 | "fields": [ 298 | "time", 299 | "cpu_usage" 300 | ] 301 | }, 302 | "instant": true, 303 | "interval": "", 304 | "legendFormat": "CPU", 305 | "queryType": "measurements", 306 | "refId": "A" 307 | }, 308 | { 309 | "channel": "stream/msi_afterburner/msi_afterburner", 310 | "filter": { 311 | "fields": [ 312 | "time", 313 | "gpu_usage" 314 | ] 315 | }, 316 | "hide": false, 317 | "instant": true, 318 | "interval": "", 319 | "legendFormat": "CPU", 320 | "queryType": "measurements", 321 | "refId": "B" 322 | } 323 | ], 324 | "title": "", 325 | "type": "bargauge" 326 | }, 327 | { 328 | "datasource": { 329 | "type": "datasource", 330 | "uid": "grafana" 331 | }, 332 | "fieldConfig": { 333 | "defaults": { 334 | "decimals": 0, 335 | "mappings": [], 336 | "max": 100, 337 | "min": 0, 338 | "thresholds": { 339 | "mode": "absolute", 340 | "steps": [ 341 | { 342 | "color": "green", 343 | "value": 0 344 | }, 345 | { 346 | "color": "yellow", 347 | "value": 50 348 | }, 349 | { 350 | "color": "orange", 351 | "value": 75 352 | }, 353 | { 354 | "color": "red", 355 | "value": 90 356 | } 357 | ] 358 | }, 359 | "unit": "celsius" 360 | }, 361 | "overrides": [ 362 | { 363 | "matcher": { 364 | "id": "byRegexp", 365 | "options": "/cpu.*/" 366 | }, 367 | "properties": [ 368 | { 369 | "id": "displayName", 370 | "value": "CPU" 371 | } 372 | ] 373 | }, 374 | { 375 | "matcher": { 376 | "id": "byRegexp", 377 | "options": "/gpu.*/" 378 | }, 379 | "properties": [ 380 | { 381 | "id": "displayName", 382 | "value": "GPU" 383 | } 384 | ] 385 | } 386 | ] 387 | }, 388 | "gridPos": { 389 | "h": 8, 390 | "w": 5, 391 | "x": 19, 392 | "y": 0 393 | }, 394 | "id": 19, 395 | "options": { 396 | "displayMode": "gradient", 397 | "legend": { 398 | "calcs": [], 399 | "displayMode": "list", 400 | "placement": "bottom", 401 | "showLegend": false 402 | }, 403 | "maxVizHeight": 300, 404 | "minVizHeight": 16, 405 | "minVizWidth": 8, 406 | "namePlacement": "auto", 407 | "orientation": "vertical", 408 | "reduceOptions": { 409 | "calcs": [ 410 | "lastNotNull" 411 | ], 412 | "fields": "", 413 | "values": false 414 | }, 415 | "showUnfilled": true, 416 | "sizing": "auto", 417 | "valueMode": "color" 418 | }, 419 | "pluginVersion": "12.1.1", 420 | "targets": [ 421 | { 422 | "channel": "stream/msi_afterburner/msi_afterburner", 423 | "filter": { 424 | "fields": [ 425 | "time", 426 | "cpu_temp" 427 | ] 428 | }, 429 | "instant": true, 430 | "interval": "", 431 | "legendFormat": "CPU", 432 | "queryType": "measurements", 433 | "refId": "A" 434 | }, 435 | { 436 | "channel": "stream/msi_afterburner/msi_afterburner", 437 | "filter": { 438 | "fields": [ 439 | "time", 440 | "gpu_temp" 441 | ] 442 | }, 443 | "hide": false, 444 | "instant": true, 445 | "interval": "", 446 | "legendFormat": "CPU", 447 | "queryType": "measurements", 448 | "refId": "B" 449 | } 450 | ], 451 | "title": "", 452 | "type": "bargauge" 453 | }, 454 | { 455 | "datasource": { 456 | "type": "datasource", 457 | "uid": "grafana" 458 | }, 459 | "fieldConfig": { 460 | "defaults": { 461 | "color": { 462 | "fixedColor": "yellow", 463 | "mode": "fixed" 464 | }, 465 | "custom": { 466 | "axisBorderShow": false, 467 | "axisCenteredZero": false, 468 | "axisColorMode": "text", 469 | "axisLabel": "", 470 | "axisPlacement": "auto", 471 | "barAlignment": 0, 472 | "barWidthFactor": 0.6, 473 | "drawStyle": "line", 474 | "fillOpacity": 0, 475 | "gradientMode": "none", 476 | "hideFrom": { 477 | "legend": false, 478 | "tooltip": false, 479 | "viz": false 480 | }, 481 | "insertNulls": false, 482 | "lineInterpolation": "linear", 483 | "lineWidth": 5, 484 | "pointSize": 5, 485 | "scaleDistribution": { 486 | "type": "linear" 487 | }, 488 | "showPoints": "auto", 489 | "spanNulls": false, 490 | "stacking": { 491 | "group": "A", 492 | "mode": "none" 493 | }, 494 | "thresholdsStyle": { 495 | "mode": "off" 496 | } 497 | }, 498 | "displayName": "Framerate", 499 | "mappings": [], 500 | "max": 150, 501 | "min": 50, 502 | "thresholds": { 503 | "mode": "absolute", 504 | "steps": [ 505 | { 506 | "color": "green", 507 | "value": 0 508 | }, 509 | { 510 | "color": "red", 511 | "value": 80 512 | } 513 | ] 514 | } 515 | }, 516 | "overrides": [ 517 | { 518 | "matcher": { 519 | "id": "byName", 520 | "options": "time" 521 | }, 522 | "properties": [ 523 | { 524 | "id": "custom.axisPlacement", 525 | "value": "hidden" 526 | } 527 | ] 528 | } 529 | ] 530 | }, 531 | "gridPos": { 532 | "h": 8, 533 | "w": 12, 534 | "x": 0, 535 | "y": 8 536 | }, 537 | "id": 14, 538 | "options": { 539 | "legend": { 540 | "calcs": [], 541 | "displayMode": "list", 542 | "placement": "bottom", 543 | "showLegend": false 544 | }, 545 | "tooltip": { 546 | "hideZeros": false, 547 | "mode": "single", 548 | "sort": "none" 549 | } 550 | }, 551 | "pluginVersion": "12.1.1", 552 | "targets": [ 553 | { 554 | "channel": "stream/msi_afterburner/msi_afterburner", 555 | "filter": { 556 | "fields": [ 557 | "time", 558 | "framerate" 559 | ] 560 | }, 561 | "fullMetaSearch": false, 562 | "includeNullMetadata": true, 563 | "instant": false, 564 | "legendFormat": "FPS", 565 | "queryType": "measurements", 566 | "range": true, 567 | "refId": "A", 568 | "useBackend": false 569 | } 570 | ], 571 | "title": "", 572 | "transparent": true, 573 | "type": "timeseries" 574 | }, 575 | { 576 | "datasource": { 577 | "type": "datasource", 578 | "uid": "grafana" 579 | }, 580 | "fieldConfig": { 581 | "defaults": { 582 | "color": { 583 | "fixedColor": "yellow", 584 | "mode": "fixed" 585 | }, 586 | "custom": { 587 | "axisBorderShow": false, 588 | "axisCenteredZero": false, 589 | "axisColorMode": "text", 590 | "axisLabel": "", 591 | "axisPlacement": "auto", 592 | "barAlignment": 0, 593 | "barWidthFactor": 0.6, 594 | "drawStyle": "line", 595 | "fillOpacity": 0, 596 | "gradientMode": "none", 597 | "hideFrom": { 598 | "legend": false, 599 | "tooltip": false, 600 | "viz": false 601 | }, 602 | "insertNulls": false, 603 | "lineInterpolation": "linear", 604 | "lineStyle": { 605 | "fill": "solid" 606 | }, 607 | "lineWidth": 5, 608 | "pointSize": 5, 609 | "scaleDistribution": { 610 | "type": "linear" 611 | }, 612 | "showPoints": "auto", 613 | "spanNulls": false, 614 | "stacking": { 615 | "group": "A", 616 | "mode": "none" 617 | }, 618 | "thresholdsStyle": { 619 | "mode": "off" 620 | } 621 | }, 622 | "displayName": "Frametime", 623 | "mappings": [], 624 | "max": 20, 625 | "min": 6, 626 | "noValue": "6", 627 | "thresholds": { 628 | "mode": "absolute", 629 | "steps": [ 630 | { 631 | "color": "green", 632 | "value": 0 633 | }, 634 | { 635 | "color": "red", 636 | "value": 80 637 | } 638 | ] 639 | } 640 | }, 641 | "overrides": [ 642 | { 643 | "matcher": { 644 | "id": "byName", 645 | "options": "time" 646 | }, 647 | "properties": [ 648 | { 649 | "id": "custom.axisPlacement", 650 | "value": "hidden" 651 | } 652 | ] 653 | } 654 | ] 655 | }, 656 | "gridPos": { 657 | "h": 8, 658 | "w": 12, 659 | "x": 12, 660 | "y": 8 661 | }, 662 | "id": 15, 663 | "options": { 664 | "legend": { 665 | "calcs": [], 666 | "displayMode": "list", 667 | "placement": "bottom", 668 | "showLegend": false 669 | }, 670 | "tooltip": { 671 | "hideZeros": false, 672 | "mode": "single", 673 | "sort": "none" 674 | } 675 | }, 676 | "pluginVersion": "12.1.1", 677 | "targets": [ 678 | { 679 | "channel": "stream/msi_afterburner/msi_afterburner", 680 | "filter": { 681 | "fields": [ 682 | "time", 683 | "frametime" 684 | ] 685 | }, 686 | "fullMetaSearch": false, 687 | "includeNullMetadata": true, 688 | "instant": false, 689 | "legendFormat": "FPS", 690 | "queryType": "measurements", 691 | "range": true, 692 | "refId": "A", 693 | "useBackend": false 694 | } 695 | ], 696 | "title": "", 697 | "transparent": true, 698 | "type": "timeseries" 699 | } 700 | ], 701 | "preload": false, 702 | "refresh": "", 703 | "schemaVersion": 41, 704 | "tags": [], 705 | "templating": { 706 | "list": [] 707 | }, 708 | "time": { 709 | "from": "now-1m", 710 | "to": "now" 711 | }, 712 | "timepicker": { 713 | "nowDelay": "", 714 | "refresh_intervals": [ 715 | "1s", 716 | "2s", 717 | "5s", 718 | "10s", 719 | "30s", 720 | "1m", 721 | "2m", 722 | "5m", 723 | "10m", 724 | "15m", 725 | "30m", 726 | "1h" 727 | ] 728 | }, 729 | "timezone": "", 730 | "title": "MSI Afterburner Live", 731 | "uid": "-ViqSZCWk", 732 | "version": 2 733 | } 734 | -------------------------------------------------------------------------------- /dashboard.json: -------------------------------------------------------------------------------- 1 | { 2 | "__inputs": [ 3 | { 4 | "name": "DS_GRAFTERBURNER-GRAPHITE", 5 | "label": "grAfterburner-Graphite", 6 | "description": "", 7 | "type": "datasource", 8 | "pluginId": "graphite", 9 | "pluginName": "Graphite" 10 | }, 11 | { 12 | "name": "VAR_AFTERBURNER", 13 | "type": "constant", 14 | "label": "CollectD Metric Prefix", 15 | "value": "collectd.*.curl-xml-afterburner", 16 | "description": "" 17 | } 18 | ], 19 | "__requires": [ 20 | { 21 | "type": "panel", 22 | "id": "gauge", 23 | "name": "Gauge", 24 | "version": "" 25 | }, 26 | { 27 | "type": "grafana", 28 | "id": "grafana", 29 | "name": "Grafana", 30 | "version": "6.7.1" 31 | }, 32 | { 33 | "type": "panel", 34 | "id": "graph", 35 | "name": "Graph", 36 | "version": "" 37 | }, 38 | { 39 | "type": "datasource", 40 | "id": "graphite", 41 | "name": "Graphite", 42 | "version": "1.0.0" 43 | }, 44 | { 45 | "type": "panel", 46 | "id": "stat", 47 | "name": "Stat", 48 | "version": "" 49 | } 50 | ], 51 | "annotations": { 52 | "list": [ 53 | { 54 | "$$hashKey": "object:753", 55 | "builtIn": 1, 56 | "datasource": "-- Grafana --", 57 | "enable": true, 58 | "hide": true, 59 | "iconColor": "rgba(0, 211, 255, 1)", 60 | "name": "Annotations & Alerts", 61 | "type": "dashboard" 62 | } 63 | ] 64 | }, 65 | "description": "Shows stats from MSI Afterburner", 66 | "editable": true, 67 | "gnetId": null, 68 | "graphTooltip": 0, 69 | "id": null, 70 | "iteration": 1585861312835, 71 | "links": [], 72 | "panels": [ 73 | { 74 | "datasource": "$graphite", 75 | "gridPos": { 76 | "h": 8, 77 | "w": 5, 78 | "x": 0, 79 | "y": 0 80 | }, 81 | "id": 8, 82 | "options": { 83 | "fieldOptions": { 84 | "calcs": [ 85 | "lastNotNull" 86 | ], 87 | "defaults": { 88 | "decimals": 0, 89 | "mappings": [], 90 | "max": 100, 91 | "min": 0, 92 | "thresholds": { 93 | "mode": "absolute", 94 | "steps": [ 95 | { 96 | "color": "green", 97 | "value": null 98 | }, 99 | { 100 | "color": "yellow", 101 | "value": 50 102 | }, 103 | { 104 | "color": "orange", 105 | "value": 75 106 | }, 107 | { 108 | "color": "red", 109 | "value": 90 110 | } 111 | ] 112 | }, 113 | "title": "", 114 | "unit": "percent" 115 | }, 116 | "overrides": [], 117 | "values": false 118 | }, 119 | "orientation": "auto", 120 | "showThresholdLabels": false, 121 | "showThresholdMarkers": true 122 | }, 123 | "pluginVersion": "6.7.1", 124 | "targets": [ 125 | { 126 | "refCount": 0, 127 | "refId": "A", 128 | "target": "alias($afterburner.gauge-CPU_usage, 'CPU')", 129 | "textEditor": false 130 | }, 131 | { 132 | "refCount": 0, 133 | "refId": "B", 134 | "target": "alias($afterburner.gauge-GPU_usage, 'GPU')" 135 | } 136 | ], 137 | "timeFrom": null, 138 | "timeShift": null, 139 | "title": "", 140 | "type": "gauge" 141 | }, 142 | { 143 | "cacheTimeout": null, 144 | "datasource": "$graphite", 145 | "gridPos": { 146 | "h": 4, 147 | "w": 4, 148 | "x": 5, 149 | "y": 0 150 | }, 151 | "id": 14, 152 | "links": [], 153 | "options": { 154 | "colorMode": "value", 155 | "fieldOptions": { 156 | "calcs": [ 157 | "lastNotNull" 158 | ], 159 | "defaults": { 160 | "decimals": 0, 161 | "mappings": [ 162 | { 163 | "id": 0, 164 | "op": "=", 165 | "text": "T", 166 | "type": 1, 167 | "value": "1" 168 | }, 169 | { 170 | "from": "", 171 | "id": 1, 172 | "operator": "", 173 | "text": "F", 174 | "to": "", 175 | "type": 1, 176 | "value": "0" 177 | } 178 | ], 179 | "max": 1, 180 | "min": -0.1, 181 | "nullValueMode": "connected", 182 | "thresholds": { 183 | "mode": "absolute", 184 | "steps": [ 185 | { 186 | "color": "green", 187 | "value": null 188 | }, 189 | { 190 | "color": "red", 191 | "value": 1 192 | } 193 | ] 194 | }, 195 | "title": "", 196 | "unit": "none" 197 | }, 198 | "overrides": [], 199 | "values": false 200 | }, 201 | "graphMode": "area", 202 | "justifyMode": "auto", 203 | "orientation": "vertical" 204 | }, 205 | "pluginVersion": "6.7.1", 206 | "targets": [ 207 | { 208 | "refCount": 0, 209 | "refId": "A", 210 | "target": "alias($afterburner.gauge-No_load_limit, 'No Load')" 211 | }, 212 | { 213 | "refCount": 0, 214 | "refId": "B", 215 | "target": "alias($afterburner.gauge-Power_limit, 'Power')" 216 | }, 217 | { 218 | "refCount": 0, 219 | "refId": "C", 220 | "target": "alias($afterburner.gauge-Temp_limit, 'Temperature')" 221 | }, 222 | { 223 | "refCount": 0, 224 | "refId": "D", 225 | "target": "alias($afterburner.gauge-Voltage_limit, 'Voltage')" 226 | } 227 | ], 228 | "timeFrom": null, 229 | "timeShift": null, 230 | "title": "GPU Limiting Factor", 231 | "transparent": true, 232 | "type": "stat" 233 | }, 234 | { 235 | "datasource": "$graphite", 236 | "gridPos": { 237 | "h": 4, 238 | "w": 3, 239 | "x": 9, 240 | "y": 0 241 | }, 242 | "id": 10, 243 | "options": { 244 | "fieldOptions": { 245 | "calcs": [ 246 | "lastNotNull" 247 | ], 248 | "defaults": { 249 | "decimals": 0, 250 | "mappings": [], 251 | "max": 200, 252 | "min": 0, 253 | "thresholds": { 254 | "mode": "absolute", 255 | "steps": [ 256 | { 257 | "color": "red", 258 | "value": null 259 | }, 260 | { 261 | "color": "orange", 262 | "value": 30 263 | }, 264 | { 265 | "color": "yellow", 266 | "value": 60 267 | }, 268 | { 269 | "color": "green", 270 | "value": 90 271 | } 272 | ] 273 | }, 274 | "title": "FPS", 275 | "unit": "none" 276 | }, 277 | "overrides": [], 278 | "values": false 279 | }, 280 | "orientation": "auto", 281 | "showThresholdLabels": false, 282 | "showThresholdMarkers": true 283 | }, 284 | "pluginVersion": "6.7.1", 285 | "targets": [ 286 | { 287 | "refCount": 0, 288 | "refId": "A", 289 | "target": "alias($afterburner.gauge-Framerate, 'FPS')", 290 | "textEditor": false 291 | } 292 | ], 293 | "timeFrom": null, 294 | "timeShift": null, 295 | "title": "", 296 | "type": "gauge" 297 | }, 298 | { 299 | "aliasColors": { 300 | "CPU": "orange", 301 | "CPU Temperature": "orange", 302 | "CPU Usage": "blue", 303 | "FPS": "orange", 304 | "Frametime": "blue", 305 | "GPU": "blue" 306 | }, 307 | "bars": false, 308 | "dashLength": 10, 309 | "dashes": false, 310 | "datasource": "$graphite", 311 | "fill": 1, 312 | "fillGradient": 0, 313 | "gridPos": { 314 | "h": 8, 315 | "w": 12, 316 | "x": 12, 317 | "y": 0 318 | }, 319 | "hiddenSeries": false, 320 | "id": 6, 321 | "legend": { 322 | "alignAsTable": true, 323 | "avg": true, 324 | "current": false, 325 | "max": true, 326 | "min": true, 327 | "rightSide": false, 328 | "show": true, 329 | "total": false, 330 | "values": true 331 | }, 332 | "lines": true, 333 | "linewidth": 1, 334 | "nullPointMode": "null", 335 | "options": { 336 | "dataLinks": [] 337 | }, 338 | "percentage": false, 339 | "pointradius": 2, 340 | "points": false, 341 | "renderer": "flot", 342 | "seriesOverrides": [ 343 | { 344 | "alias": "Frametime", 345 | "yaxis": 2 346 | } 347 | ], 348 | "spaceLength": 10, 349 | "stack": false, 350 | "steppedLine": false, 351 | "targets": [ 352 | { 353 | "refCount": 0, 354 | "refId": "A", 355 | "target": "alias($afterburner.gauge-Framerate, 'FPS')", 356 | "textEditor": false 357 | }, 358 | { 359 | "refCount": 0, 360 | "refId": "B", 361 | "target": "alias($afterburner.gauge-Frametime, 'Frametime')" 362 | } 363 | ], 364 | "thresholds": [], 365 | "timeFrom": null, 366 | "timeRegions": [], 367 | "timeShift": null, 368 | "title": "FPS / Frametime", 369 | "tooltip": { 370 | "shared": true, 371 | "sort": 0, 372 | "value_type": "individual" 373 | }, 374 | "type": "graph", 375 | "xaxis": { 376 | "buckets": null, 377 | "mode": "time", 378 | "name": null, 379 | "show": false, 380 | "values": [] 381 | }, 382 | "yaxes": [ 383 | { 384 | "decimals": 0, 385 | "format": "short", 386 | "label": null, 387 | "logBase": 1, 388 | "max": null, 389 | "min": "0", 390 | "show": true 391 | }, 392 | { 393 | "format": "ms", 394 | "label": null, 395 | "logBase": 1, 396 | "max": null, 397 | "min": "0", 398 | "show": true 399 | } 400 | ], 401 | "yaxis": { 402 | "align": false, 403 | "alignLevel": null 404 | } 405 | }, 406 | { 407 | "datasource": "$graphite", 408 | "gridPos": { 409 | "h": 4, 410 | "w": 4, 411 | "x": 5, 412 | "y": 4 413 | }, 414 | "id": 9, 415 | "options": { 416 | "fieldOptions": { 417 | "calcs": [ 418 | "lastNotNull" 419 | ], 420 | "defaults": { 421 | "decimals": 0, 422 | "mappings": [], 423 | "max": 100, 424 | "min": 0, 425 | "thresholds": { 426 | "mode": "absolute", 427 | "steps": [ 428 | { 429 | "color": "green", 430 | "value": null 431 | }, 432 | { 433 | "color": "#EAB839", 434 | "value": 50 435 | }, 436 | { 437 | "color": "orange", 438 | "value": 75 439 | }, 440 | { 441 | "color": "red", 442 | "value": 90 443 | } 444 | ] 445 | }, 446 | "title": "", 447 | "unit": "celsius" 448 | }, 449 | "overrides": [], 450 | "values": false 451 | }, 452 | "orientation": "auto", 453 | "showThresholdLabels": false, 454 | "showThresholdMarkers": true 455 | }, 456 | "pluginVersion": "6.7.1", 457 | "targets": [ 458 | { 459 | "refCount": 0, 460 | "refId": "A", 461 | "target": "alias($afterburner.gauge-CPU_temperature, 'CPU')", 462 | "textEditor": false 463 | }, 464 | { 465 | "refCount": 0, 466 | "refId": "B", 467 | "target": "alias($afterburner.gauge-GPU_temperature, 'GPU')" 468 | } 469 | ], 470 | "timeFrom": null, 471 | "timeShift": null, 472 | "title": "", 473 | "type": "gauge" 474 | }, 475 | { 476 | "datasource": "$graphite", 477 | "gridPos": { 478 | "h": 4, 479 | "w": 3, 480 | "x": 9, 481 | "y": 4 482 | }, 483 | "id": 11, 484 | "options": { 485 | "fieldOptions": { 486 | "calcs": [ 487 | "lastNotNull" 488 | ], 489 | "defaults": { 490 | "mappings": [], 491 | "max": 200, 492 | "min": 0, 493 | "thresholds": { 494 | "mode": "absolute", 495 | "steps": [ 496 | { 497 | "color": "red", 498 | "value": null 499 | }, 500 | { 501 | "color": "green", 502 | "value": 1 503 | }, 504 | { 505 | "color": "#EAB839", 506 | "value": 16.7 507 | }, 508 | { 509 | "color": "orange", 510 | "value": 33.3 511 | }, 512 | { 513 | "color": "red", 514 | "value": 66.65 515 | } 516 | ] 517 | }, 518 | "title": "Frametime", 519 | "unit": "ms" 520 | }, 521 | "overrides": [], 522 | "values": false 523 | }, 524 | "orientation": "auto", 525 | "showThresholdLabels": false, 526 | "showThresholdMarkers": true 527 | }, 528 | "pluginVersion": "6.7.1", 529 | "targets": [ 530 | { 531 | "refCount": 0, 532 | "refId": "A", 533 | "target": "alias($afterburner.gauge-Frametime, 'FPS')", 534 | "textEditor": false 535 | } 536 | ], 537 | "timeFrom": null, 538 | "timeShift": null, 539 | "title": "", 540 | "type": "gauge" 541 | }, 542 | { 543 | "aliasColors": { 544 | "CPU": "orange", 545 | "CPU Temperature": "orange", 546 | "CPU Usage": "blue", 547 | "GPU": "blue" 548 | }, 549 | "bars": false, 550 | "dashLength": 10, 551 | "dashes": false, 552 | "datasource": "${DS_GRAFTERBURNER-GRAPHITE}", 553 | "fill": 1, 554 | "fillGradient": 0, 555 | "gridPos": { 556 | "h": 8, 557 | "w": 12, 558 | "x": 0, 559 | "y": 8 560 | }, 561 | "hiddenSeries": false, 562 | "id": 2, 563 | "legend": { 564 | "avg": false, 565 | "current": false, 566 | "max": false, 567 | "min": false, 568 | "show": true, 569 | "total": false, 570 | "values": false 571 | }, 572 | "lines": true, 573 | "linewidth": 1, 574 | "nullPointMode": "null", 575 | "options": { 576 | "dataLinks": [] 577 | }, 578 | "percentage": false, 579 | "pointradius": 2, 580 | "points": false, 581 | "renderer": "flot", 582 | "seriesOverrides": [], 583 | "spaceLength": 10, 584 | "stack": false, 585 | "steppedLine": false, 586 | "targets": [ 587 | { 588 | "refCount": 0, 589 | "refId": "A", 590 | "target": "alias($afterburner.gauge-CPU_usage, 'CPU')", 591 | "textEditor": false 592 | }, 593 | { 594 | "refCount": 0, 595 | "refId": "B", 596 | "target": "alias($afterburner.gauge-GPU_usage, 'GPU')" 597 | } 598 | ], 599 | "thresholds": [], 600 | "timeFrom": null, 601 | "timeRegions": [], 602 | "timeShift": null, 603 | "title": "Load", 604 | "tooltip": { 605 | "shared": true, 606 | "sort": 0, 607 | "value_type": "individual" 608 | }, 609 | "type": "graph", 610 | "xaxis": { 611 | "buckets": null, 612 | "mode": "time", 613 | "name": null, 614 | "show": false, 615 | "values": [] 616 | }, 617 | "yaxes": [ 618 | { 619 | "decimals": 0, 620 | "format": "percent", 621 | "label": null, 622 | "logBase": 1, 623 | "max": "100", 624 | "min": "0", 625 | "show": true 626 | }, 627 | { 628 | "format": "none", 629 | "label": null, 630 | "logBase": 1, 631 | "max": null, 632 | "min": null, 633 | "show": true 634 | } 635 | ], 636 | "yaxis": { 637 | "align": false, 638 | "alignLevel": null 639 | } 640 | }, 641 | { 642 | "aliasColors": { 643 | "CPU": "orange", 644 | "CPU Temperature": "orange", 645 | "CPU Usage": "blue", 646 | "GPU": "blue" 647 | }, 648 | "bars": false, 649 | "dashLength": 10, 650 | "dashes": false, 651 | "datasource": "$graphite", 652 | "fill": 1, 653 | "fillGradient": 0, 654 | "gridPos": { 655 | "h": 8, 656 | "w": 12, 657 | "x": 12, 658 | "y": 8 659 | }, 660 | "hiddenSeries": false, 661 | "id": 3, 662 | "legend": { 663 | "avg": false, 664 | "current": false, 665 | "max": false, 666 | "min": false, 667 | "show": true, 668 | "total": false, 669 | "values": false 670 | }, 671 | "lines": true, 672 | "linewidth": 1, 673 | "nullPointMode": "null", 674 | "options": { 675 | "dataLinks": [] 676 | }, 677 | "percentage": false, 678 | "pointradius": 2, 679 | "points": false, 680 | "renderer": "flot", 681 | "seriesOverrides": [], 682 | "spaceLength": 10, 683 | "stack": false, 684 | "steppedLine": false, 685 | "targets": [ 686 | { 687 | "refCount": 0, 688 | "refId": "A", 689 | "target": "alias($afterburner.gauge-CPU_temperature, 'CPU')", 690 | "textEditor": false 691 | }, 692 | { 693 | "refCount": 0, 694 | "refId": "B", 695 | "target": "alias($afterburner.gauge-GPU_temperature, 'GPU')" 696 | } 697 | ], 698 | "thresholds": [], 699 | "timeFrom": null, 700 | "timeRegions": [], 701 | "timeShift": null, 702 | "title": "Temperature", 703 | "tooltip": { 704 | "shared": true, 705 | "sort": 0, 706 | "value_type": "individual" 707 | }, 708 | "type": "graph", 709 | "xaxis": { 710 | "buckets": null, 711 | "mode": "time", 712 | "name": null, 713 | "show": false, 714 | "values": [] 715 | }, 716 | "yaxes": [ 717 | { 718 | "decimals": 0, 719 | "format": "celsius", 720 | "label": null, 721 | "logBase": 1, 722 | "max": "100", 723 | "min": "0", 724 | "show": true 725 | }, 726 | { 727 | "format": "none", 728 | "label": null, 729 | "logBase": 1, 730 | "max": null, 731 | "min": null, 732 | "show": true 733 | } 734 | ], 735 | "yaxis": { 736 | "align": false, 737 | "alignLevel": null 738 | } 739 | }, 740 | { 741 | "aliasColors": { 742 | "CPU": "orange", 743 | "CPU Temperature": "orange", 744 | "CPU Usage": "blue", 745 | "GPU": "blue" 746 | }, 747 | "bars": false, 748 | "dashLength": 10, 749 | "dashes": false, 750 | "datasource": "$graphite", 751 | "fill": 1, 752 | "fillGradient": 0, 753 | "gridPos": { 754 | "h": 8, 755 | "w": 12, 756 | "x": 0, 757 | "y": 16 758 | }, 759 | "hiddenSeries": false, 760 | "id": 7, 761 | "legend": { 762 | "avg": false, 763 | "current": true, 764 | "max": false, 765 | "min": false, 766 | "show": true, 767 | "total": false, 768 | "values": true 769 | }, 770 | "lines": true, 771 | "linewidth": 1, 772 | "nullPointMode": "null", 773 | "options": { 774 | "dataLinks": [] 775 | }, 776 | "percentage": false, 777 | "pointradius": 2, 778 | "points": false, 779 | "renderer": "flot", 780 | "seriesOverrides": [ 781 | { 782 | "alias": "GPU", 783 | "yaxis": 2 784 | }, 785 | { 786 | "alias": "scale(GPU,1e+06)", 787 | "yaxis": 2 788 | } 789 | ], 790 | "spaceLength": 10, 791 | "stack": false, 792 | "steppedLine": false, 793 | "targets": [ 794 | { 795 | "refCount": 0, 796 | "refId": "A", 797 | "target": "alias(scale($afterburner.gauge-CPU_clock, 1000000), 'CPU')", 798 | "textEditor": false 799 | }, 800 | { 801 | "refCount": 0, 802 | "refId": "B", 803 | "target": "alias(scale($afterburner.gauge-Core_clock, 1000000), 'GPU')" 804 | } 805 | ], 806 | "thresholds": [], 807 | "timeFrom": null, 808 | "timeRegions": [], 809 | "timeShift": null, 810 | "title": "Clockspeeds", 811 | "tooltip": { 812 | "shared": true, 813 | "sort": 0, 814 | "value_type": "individual" 815 | }, 816 | "type": "graph", 817 | "xaxis": { 818 | "buckets": null, 819 | "mode": "time", 820 | "name": null, 821 | "show": false, 822 | "values": [] 823 | }, 824 | "yaxes": [ 825 | { 826 | "decimals": null, 827 | "format": "hertz", 828 | "label": null, 829 | "logBase": 1, 830 | "max": null, 831 | "min": "0", 832 | "show": true 833 | }, 834 | { 835 | "format": "hertz", 836 | "label": null, 837 | "logBase": 1, 838 | "max": null, 839 | "min": "0", 840 | "show": true 841 | } 842 | ], 843 | "yaxis": { 844 | "align": false, 845 | "alignLevel": null 846 | } 847 | }, 848 | { 849 | "aliasColors": { 850 | "RAM": "orange", 851 | "VRAM": "blue" 852 | }, 853 | "bars": false, 854 | "dashLength": 10, 855 | "dashes": false, 856 | "datasource": "$graphite", 857 | "fill": 1, 858 | "fillGradient": 0, 859 | "gridPos": { 860 | "h": 8, 861 | "w": 12, 862 | "x": 12, 863 | "y": 16 864 | }, 865 | "hiddenSeries": false, 866 | "id": 5, 867 | "legend": { 868 | "avg": false, 869 | "current": true, 870 | "max": false, 871 | "min": false, 872 | "show": true, 873 | "total": false, 874 | "values": true 875 | }, 876 | "lines": true, 877 | "linewidth": 1, 878 | "nullPointMode": "null", 879 | "options": { 880 | "dataLinks": [] 881 | }, 882 | "percentage": false, 883 | "pointradius": 2, 884 | "points": false, 885 | "renderer": "flot", 886 | "seriesOverrides": [], 887 | "spaceLength": 10, 888 | "stack": false, 889 | "steppedLine": false, 890 | "targets": [ 891 | { 892 | "refCount": 0, 893 | "refId": "A", 894 | "target": "alias($afterburner.gauge-RAM_usage, 'RAM')" 895 | }, 896 | { 897 | "refCount": 0, 898 | "refId": "B", 899 | "target": "alias($afterburner.gauge-Memory_usage, 'VRAM')" 900 | } 901 | ], 902 | "thresholds": [], 903 | "timeFrom": null, 904 | "timeRegions": [], 905 | "timeShift": null, 906 | "title": "Memory", 907 | "tooltip": { 908 | "shared": true, 909 | "sort": 0, 910 | "value_type": "individual" 911 | }, 912 | "type": "graph", 913 | "xaxis": { 914 | "buckets": null, 915 | "mode": "time", 916 | "name": null, 917 | "show": false, 918 | "values": [] 919 | }, 920 | "yaxes": [ 921 | { 922 | "decimals": null, 923 | "format": "decmbytes", 924 | "label": null, 925 | "logBase": 1, 926 | "max": "16384", 927 | "min": "0", 928 | "show": true 929 | }, 930 | { 931 | "format": "short", 932 | "label": null, 933 | "logBase": 1, 934 | "max": null, 935 | "min": null, 936 | "show": true 937 | } 938 | ], 939 | "yaxis": { 940 | "align": false, 941 | "alignLevel": null 942 | } 943 | }, 944 | { 945 | "aliasColors": { 946 | "CPU": "blue", 947 | "CPU Power": "orange", 948 | "GPU": "orange", 949 | "GPU Memory Clock": "orange", 950 | "GPU Power": "blue", 951 | "RAM": "orange", 952 | "VRAM": "blue", 953 | "Voltage": "blue" 954 | }, 955 | "bars": false, 956 | "dashLength": 10, 957 | "dashes": false, 958 | "datasource": "$graphite", 959 | "fill": 1, 960 | "fillGradient": 0, 961 | "gridPos": { 962 | "h": 8, 963 | "w": 8, 964 | "x": 0, 965 | "y": 24 966 | }, 967 | "hiddenSeries": false, 968 | "id": 16, 969 | "legend": { 970 | "avg": false, 971 | "current": true, 972 | "max": false, 973 | "min": false, 974 | "show": true, 975 | "total": false, 976 | "values": true 977 | }, 978 | "lines": true, 979 | "linewidth": 1, 980 | "nullPointMode": "null", 981 | "options": { 982 | "dataLinks": [] 983 | }, 984 | "percentage": false, 985 | "pointradius": 2, 986 | "points": false, 987 | "renderer": "flot", 988 | "seriesOverrides": [ 989 | { 990 | "alias": "Voltage", 991 | "yaxis": 2 992 | } 993 | ], 994 | "spaceLength": 10, 995 | "stack": false, 996 | "steppedLine": false, 997 | "targets": [ 998 | { 999 | "refCount": 0, 1000 | "refId": "A", 1001 | "target": "alias(scale($afterburner.gauge-Memory_clock, 1000000), 'GPU Memory Clock')" 1002 | }, 1003 | { 1004 | "refCount": 0, 1005 | "refId": "B", 1006 | "target": "alias($afterburner.gauge-GPU_voltage, 'Voltage')" 1007 | } 1008 | ], 1009 | "thresholds": [], 1010 | "timeFrom": null, 1011 | "timeRegions": [], 1012 | "timeShift": null, 1013 | "title": "Voltage / Memory Clock", 1014 | "tooltip": { 1015 | "shared": true, 1016 | "sort": 0, 1017 | "value_type": "individual" 1018 | }, 1019 | "type": "graph", 1020 | "xaxis": { 1021 | "buckets": null, 1022 | "mode": "time", 1023 | "name": null, 1024 | "show": false, 1025 | "values": [] 1026 | }, 1027 | "yaxes": [ 1028 | { 1029 | "decimals": 0, 1030 | "format": "hertz", 1031 | "label": null, 1032 | "logBase": 1, 1033 | "max": null, 1034 | "min": "0", 1035 | "show": true 1036 | }, 1037 | { 1038 | "decimals": 3, 1039 | "format": "volt", 1040 | "label": null, 1041 | "logBase": 1, 1042 | "max": "2", 1043 | "min": "0", 1044 | "show": true 1045 | } 1046 | ], 1047 | "yaxis": { 1048 | "align": false, 1049 | "alignLevel": null 1050 | } 1051 | }, 1052 | { 1053 | "aliasColors": { 1054 | "Fan 1 %": "blue", 1055 | "Fan 1 RPM": "blue", 1056 | "Fan 1 Speed": "blue", 1057 | "Fan 1 rpm": "orange", 1058 | "Fan 2 %": "orange", 1059 | "Fan 2 RPM": "orange", 1060 | "Fan 2 Speed": "blue", 1061 | "Fan 2 rpm": "orange", 1062 | "RAM": "orange", 1063 | "VRAM": "blue" 1064 | }, 1065 | "bars": false, 1066 | "dashLength": 10, 1067 | "dashes": false, 1068 | "datasource": "$graphite", 1069 | "fill": 0, 1070 | "fillGradient": 0, 1071 | "gridPos": { 1072 | "h": 8, 1073 | "w": 8, 1074 | "x": 8, 1075 | "y": 24 1076 | }, 1077 | "hiddenSeries": false, 1078 | "id": 12, 1079 | "legend": { 1080 | "alignAsTable": false, 1081 | "avg": false, 1082 | "current": true, 1083 | "max": false, 1084 | "min": false, 1085 | "rightSide": false, 1086 | "show": true, 1087 | "total": false, 1088 | "values": true 1089 | }, 1090 | "lines": true, 1091 | "linewidth": 2, 1092 | "nullPointMode": "null", 1093 | "options": { 1094 | "dataLinks": [] 1095 | }, 1096 | "percentage": false, 1097 | "pointradius": 2, 1098 | "points": false, 1099 | "renderer": "flot", 1100 | "seriesOverrides": [ 1101 | { 1102 | "alias": "Fan 1 rpm", 1103 | "yaxis": 2 1104 | }, 1105 | { 1106 | "alias": "Fan 2 rpm", 1107 | "yaxis": 2 1108 | } 1109 | ], 1110 | "spaceLength": 10, 1111 | "stack": false, 1112 | "steppedLine": false, 1113 | "targets": [ 1114 | { 1115 | "refCount": 0, 1116 | "refId": "A", 1117 | "target": "alias($afterburner.gauge-Fan_speed, 'Fan 1 Speed')" 1118 | }, 1119 | { 1120 | "refCount": 0, 1121 | "refId": "B", 1122 | "target": "alias($afterburner.gauge-Fan_speed_2, 'Fan 2 Speed')" 1123 | }, 1124 | { 1125 | "refCount": 0, 1126 | "refId": "C", 1127 | "target": "alias($afterburner.gauge-Fan_tachometer, 'Fan 1 rpm')" 1128 | }, 1129 | { 1130 | "refCount": 0, 1131 | "refId": "D", 1132 | "target": "alias($afterburner.gauge-Fan_tachometer_2, 'Fan 2 rpm')" 1133 | } 1134 | ], 1135 | "thresholds": [], 1136 | "timeFrom": null, 1137 | "timeRegions": [], 1138 | "timeShift": null, 1139 | "title": "GPU Fans", 1140 | "tooltip": { 1141 | "shared": true, 1142 | "sort": 0, 1143 | "value_type": "individual" 1144 | }, 1145 | "type": "graph", 1146 | "xaxis": { 1147 | "buckets": null, 1148 | "mode": "time", 1149 | "name": null, 1150 | "show": false, 1151 | "values": [] 1152 | }, 1153 | "yaxes": [ 1154 | { 1155 | "decimals": 0, 1156 | "format": "percent", 1157 | "label": null, 1158 | "logBase": 1, 1159 | "max": "100", 1160 | "min": "0", 1161 | "show": true 1162 | }, 1163 | { 1164 | "decimals": 0, 1165 | "format": "rpm", 1166 | "label": null, 1167 | "logBase": 1, 1168 | "max": null, 1169 | "min": "0", 1170 | "show": true 1171 | } 1172 | ], 1173 | "yaxis": { 1174 | "align": false, 1175 | "alignLevel": null 1176 | } 1177 | }, 1178 | { 1179 | "aliasColors": { 1180 | "CPU": "blue", 1181 | "CPU Power": "orange", 1182 | "GPU": "orange", 1183 | "GPU Power": "blue", 1184 | "RAM": "orange", 1185 | "VRAM": "blue" 1186 | }, 1187 | "bars": false, 1188 | "dashLength": 10, 1189 | "dashes": false, 1190 | "datasource": "$graphite", 1191 | "fill": 1, 1192 | "fillGradient": 0, 1193 | "gridPos": { 1194 | "h": 8, 1195 | "w": 8, 1196 | "x": 16, 1197 | "y": 24 1198 | }, 1199 | "hiddenSeries": false, 1200 | "id": 15, 1201 | "legend": { 1202 | "avg": false, 1203 | "current": true, 1204 | "max": false, 1205 | "min": false, 1206 | "show": true, 1207 | "total": false, 1208 | "values": true 1209 | }, 1210 | "lines": true, 1211 | "linewidth": 1, 1212 | "nullPointMode": "null", 1213 | "options": { 1214 | "dataLinks": [] 1215 | }, 1216 | "percentage": false, 1217 | "pointradius": 2, 1218 | "points": false, 1219 | "renderer": "flot", 1220 | "seriesOverrides": [], 1221 | "spaceLength": 10, 1222 | "stack": false, 1223 | "steppedLine": false, 1224 | "targets": [ 1225 | { 1226 | "refCount": 0, 1227 | "refId": "A", 1228 | "target": "alias($afterburner.gauge-CPU_power, 'CPU')" 1229 | }, 1230 | { 1231 | "refCount": 0, 1232 | "refId": "B", 1233 | "target": "alias($afterburner.gauge-Power, 'GPU')" 1234 | } 1235 | ], 1236 | "thresholds": [], 1237 | "timeFrom": null, 1238 | "timeRegions": [], 1239 | "timeShift": null, 1240 | "title": "Power", 1241 | "tooltip": { 1242 | "shared": true, 1243 | "sort": 0, 1244 | "value_type": "individual" 1245 | }, 1246 | "type": "graph", 1247 | "xaxis": { 1248 | "buckets": null, 1249 | "mode": "time", 1250 | "name": null, 1251 | "show": false, 1252 | "values": [] 1253 | }, 1254 | "yaxes": [ 1255 | { 1256 | "decimals": 0, 1257 | "format": "watt", 1258 | "label": null, 1259 | "logBase": 1, 1260 | "max": null, 1261 | "min": "0", 1262 | "show": true 1263 | }, 1264 | { 1265 | "format": "short", 1266 | "label": null, 1267 | "logBase": 1, 1268 | "max": null, 1269 | "min": null, 1270 | "show": false 1271 | } 1272 | ], 1273 | "yaxis": { 1274 | "align": false, 1275 | "alignLevel": null 1276 | } 1277 | } 1278 | ], 1279 | "refresh": false, 1280 | "schemaVersion": 22, 1281 | "style": "dark", 1282 | "tags": [], 1283 | "templating": { 1284 | "list": [ 1285 | { 1286 | "current": { 1287 | "selected": false, 1288 | "text": "grAfterburner-Graphite", 1289 | "value": "grAfterburner-Graphite" 1290 | }, 1291 | "hide": 0, 1292 | "includeAll": false, 1293 | "label": "Graphite", 1294 | "multi": false, 1295 | "name": "graphite", 1296 | "options": [], 1297 | "query": "graphite", 1298 | "refresh": 1, 1299 | "regex": "", 1300 | "skipUrlSync": false, 1301 | "type": "datasource" 1302 | }, 1303 | { 1304 | "current": { 1305 | "value": "${VAR_AFTERBURNER}", 1306 | "text": "${VAR_AFTERBURNER}" 1307 | }, 1308 | "hide": 2, 1309 | "label": "CollectD Metric Prefix", 1310 | "name": "afterburner", 1311 | "options": [ 1312 | { 1313 | "value": "${VAR_AFTERBURNER}", 1314 | "text": "${VAR_AFTERBURNER}" 1315 | } 1316 | ], 1317 | "query": "${VAR_AFTERBURNER}", 1318 | "skipUrlSync": false, 1319 | "type": "constant" 1320 | } 1321 | ] 1322 | }, 1323 | "time": { 1324 | "from": "now-15m", 1325 | "to": "now" 1326 | }, 1327 | "timepicker": { 1328 | "nowDelay": "", 1329 | "refresh_intervals": [ 1330 | "1s", 1331 | "2s", 1332 | "5s", 1333 | "10s", 1334 | "30s", 1335 | "1m", 1336 | "2m", 1337 | "5m", 1338 | "10m", 1339 | "15m", 1340 | "30m", 1341 | "1h" 1342 | ] 1343 | }, 1344 | "timezone": "", 1345 | "title": "MSI Afterburner", 1346 | "uid": "gGWviXrZ1", 1347 | "variables": { 1348 | "list": [] 1349 | }, 1350 | "version": 2 1351 | } 1352 | -------------------------------------------------------------------------------- /grafana/dashboards/msi-afterburner.json: -------------------------------------------------------------------------------- 1 | { 2 | "annotations": { 3 | "list": [ 4 | { 5 | "builtIn": 1, 6 | "datasource": { 7 | "type": "datasource", 8 | "uid": "grafana" 9 | }, 10 | "enable": true, 11 | "hide": true, 12 | "iconColor": "rgba(0, 211, 255, 1)", 13 | "name": "Annotations & Alerts", 14 | "type": "dashboard" 15 | } 16 | ] 17 | }, 18 | "description": "Shows long term stats from MSI Afterburner from a data source.", 19 | "editable": true, 20 | "fiscalYearStartMonth": 0, 21 | "graphTooltip": 0, 22 | "id": 2, 23 | "links": [ 24 | { 25 | "asDropdown": false, 26 | "icon": "doc", 27 | "includeVars": false, 28 | "keepTime": false, 29 | "tags": [], 30 | "targetBlank": true, 31 | "title": "GitHub.com/grAfterburner", 32 | "tooltip": "", 33 | "type": "link", 34 | "url": "https://github.com/RafhaanShah/grAfterburner" 35 | } 36 | ], 37 | "panels": [ 38 | { 39 | "datasource": { 40 | "type": "prometheus", 41 | "uid": "${Source}" 42 | }, 43 | "fieldConfig": { 44 | "defaults": { 45 | "decimals": 0, 46 | "displayName": "", 47 | "mappings": [], 48 | "max": 100, 49 | "min": 0, 50 | "thresholds": { 51 | "mode": "absolute", 52 | "steps": [ 53 | { 54 | "color": "green", 55 | "value": 0 56 | }, 57 | { 58 | "color": "yellow", 59 | "value": 50 60 | }, 61 | { 62 | "color": "orange", 63 | "value": 75 64 | }, 65 | { 66 | "color": "red", 67 | "value": 90 68 | } 69 | ] 70 | }, 71 | "unit": "percent" 72 | }, 73 | "overrides": [] 74 | }, 75 | "gridPos": { 76 | "h": 8, 77 | "w": 4, 78 | "x": 0, 79 | "y": 0 80 | }, 81 | "id": 8, 82 | "options": { 83 | "minVizHeight": 75, 84 | "minVizWidth": 75, 85 | "orientation": "auto", 86 | "reduceOptions": { 87 | "calcs": [ 88 | "lastNotNull" 89 | ], 90 | "fields": "", 91 | "values": false 92 | }, 93 | "showThresholdLabels": false, 94 | "showThresholdMarkers": true, 95 | "sizing": "auto" 96 | }, 97 | "pluginVersion": "12.1.1", 98 | "targets": [ 99 | { 100 | "datasource": { 101 | "type": "prometheus", 102 | "uid": "${Source}" 103 | }, 104 | "disableTextWrap": false, 105 | "editorMode": "code", 106 | "expr": "${MetricPrefix}cpu_usage{\"$HostFilterLabel\"=~\"$Host\"}", 107 | "fullMetaSearch": false, 108 | "includeNullMetadata": true, 109 | "instant": false, 110 | "legendFormat": "CPU", 111 | "range": true, 112 | "refId": "A", 113 | "useBackend": false 114 | }, 115 | { 116 | "datasource": { 117 | "type": "prometheus", 118 | "uid": "${Source}" 119 | }, 120 | "disableTextWrap": false, 121 | "editorMode": "code", 122 | "expr": "${MetricPrefix}gpu_usage{\"$HostFilterLabel\"=~\"$Host\"}", 123 | "fullMetaSearch": false, 124 | "hide": false, 125 | "includeNullMetadata": true, 126 | "instant": false, 127 | "legendFormat": "GPU", 128 | "range": true, 129 | "refId": "B", 130 | "useBackend": false 131 | } 132 | ], 133 | "title": "", 134 | "type": "gauge" 135 | }, 136 | { 137 | "datasource": { 138 | "type": "prometheus", 139 | "uid": "${Source}" 140 | }, 141 | "fieldConfig": { 142 | "defaults": { 143 | "decimals": 0, 144 | "displayName": "", 145 | "mappings": [], 146 | "max": 100, 147 | "min": 0, 148 | "thresholds": { 149 | "mode": "absolute", 150 | "steps": [ 151 | { 152 | "color": "green", 153 | "value": 0 154 | }, 155 | { 156 | "color": "#EAB839", 157 | "value": 50 158 | }, 159 | { 160 | "color": "orange", 161 | "value": 75 162 | }, 163 | { 164 | "color": "red", 165 | "value": 90 166 | } 167 | ] 168 | }, 169 | "unit": "celsius" 170 | }, 171 | "overrides": [] 172 | }, 173 | "gridPos": { 174 | "h": 8, 175 | "w": 4, 176 | "x": 4, 177 | "y": 0 178 | }, 179 | "id": 9, 180 | "options": { 181 | "minVizHeight": 75, 182 | "minVizWidth": 75, 183 | "orientation": "auto", 184 | "reduceOptions": { 185 | "calcs": [ 186 | "lastNotNull" 187 | ], 188 | "fields": "", 189 | "values": false 190 | }, 191 | "showThresholdLabels": false, 192 | "showThresholdMarkers": true, 193 | "sizing": "auto" 194 | }, 195 | "pluginVersion": "12.1.1", 196 | "targets": [ 197 | { 198 | "datasource": { 199 | "type": "prometheus", 200 | "uid": "${Source}" 201 | }, 202 | "editorMode": "code", 203 | "expr": "${MetricPrefix}cpu_temp{\"$HostFilterLabel\"=~\"$Host\"}", 204 | "instant": false, 205 | "legendFormat": "CPU", 206 | "range": true, 207 | "refId": "A" 208 | }, 209 | { 210 | "datasource": { 211 | "type": "prometheus", 212 | "uid": "${Source}" 213 | }, 214 | "editorMode": "code", 215 | "expr": "${MetricPrefix}gpu_temp{\"$HostFilterLabel\"=~\"$Host\"}", 216 | "hide": false, 217 | "instant": false, 218 | "legendFormat": "GPU", 219 | "range": true, 220 | "refId": "B" 221 | } 222 | ], 223 | "title": "", 224 | "type": "gauge" 225 | }, 226 | { 227 | "datasource": { 228 | "type": "prometheus", 229 | "uid": "${Source}" 230 | }, 231 | "fieldConfig": { 232 | "defaults": { 233 | "decimals": 0, 234 | "displayName": "FPS", 235 | "mappings": [], 236 | "max": 200, 237 | "min": 0, 238 | "thresholds": { 239 | "mode": "absolute", 240 | "steps": [ 241 | { 242 | "color": "red", 243 | "value": 0 244 | }, 245 | { 246 | "color": "orange", 247 | "value": 30 248 | }, 249 | { 250 | "color": "yellow", 251 | "value": 60 252 | }, 253 | { 254 | "color": "green", 255 | "value": 90 256 | } 257 | ] 258 | }, 259 | "unit": "none" 260 | }, 261 | "overrides": [] 262 | }, 263 | "gridPos": { 264 | "h": 4, 265 | "w": 2, 266 | "x": 8, 267 | "y": 0 268 | }, 269 | "id": 10, 270 | "options": { 271 | "minVizHeight": 75, 272 | "minVizWidth": 75, 273 | "orientation": "auto", 274 | "reduceOptions": { 275 | "calcs": [ 276 | "lastNotNull" 277 | ], 278 | "fields": "", 279 | "values": false 280 | }, 281 | "showThresholdLabels": false, 282 | "showThresholdMarkers": true, 283 | "sizing": "auto" 284 | }, 285 | "pluginVersion": "12.1.1", 286 | "targets": [ 287 | { 288 | "datasource": { 289 | "type": "prometheus", 290 | "uid": "${Source}" 291 | }, 292 | "editorMode": "code", 293 | "expr": "${MetricPrefix}framerate{\"$HostFilterLabel\"=~\"$Host\"}", 294 | "instant": false, 295 | "legendFormat": "__auto", 296 | "range": true, 297 | "refId": "A" 298 | } 299 | ], 300 | "title": "", 301 | "type": "gauge" 302 | }, 303 | { 304 | "datasource": { 305 | "type": "prometheus", 306 | "uid": "${Source}" 307 | }, 308 | "fieldConfig": { 309 | "defaults": { 310 | "decimals": 0, 311 | "mappings": [ 312 | { 313 | "id": 0, 314 | "op": "=", 315 | "text": "T", 316 | "type": 1, 317 | "value": "1" 318 | }, 319 | { 320 | "from": "", 321 | "id": 1, 322 | "operator": "", 323 | "text": "F", 324 | "to": "", 325 | "type": 1, 326 | "value": "0" 327 | } 328 | ], 329 | "max": 1, 330 | "min": 0, 331 | "thresholds": { 332 | "mode": "absolute", 333 | "steps": [ 334 | { 335 | "color": "green", 336 | "value": 0 337 | }, 338 | { 339 | "color": "red", 340 | "value": 1 341 | } 342 | ] 343 | }, 344 | "unit": "none" 345 | }, 346 | "overrides": [] 347 | }, 348 | "gridPos": { 349 | "h": 8, 350 | "w": 4, 351 | "x": 10, 352 | "y": 0 353 | }, 354 | "id": 14, 355 | "options": { 356 | "colorMode": "value", 357 | "graphMode": "area", 358 | "justifyMode": "auto", 359 | "orientation": "vertical", 360 | "percentChangeColorMode": "standard", 361 | "reduceOptions": { 362 | "calcs": [ 363 | "lastNotNull" 364 | ], 365 | "fields": "", 366 | "values": false 367 | }, 368 | "showPercentChange": false, 369 | "textMode": "auto", 370 | "wideLayout": true 371 | }, 372 | "pluginVersion": "12.1.1", 373 | "targets": [ 374 | { 375 | "datasource": { 376 | "type": "prometheus", 377 | "uid": "${Source}" 378 | }, 379 | "editorMode": "code", 380 | "expr": "${MetricPrefix}temp_limit{\"$HostFilterLabel\"=~\"$Host\"}", 381 | "instant": false, 382 | "legendFormat": "Temp", 383 | "range": true, 384 | "refId": "A" 385 | }, 386 | { 387 | "datasource": { 388 | "type": "prometheus", 389 | "uid": "${Source}" 390 | }, 391 | "editorMode": "code", 392 | "expr": "${MetricPrefix}power_limit{\"$HostFilterLabel\"=~\"$Host\"}", 393 | "hide": false, 394 | "instant": false, 395 | "legendFormat": "Power", 396 | "range": true, 397 | "refId": "B" 398 | }, 399 | { 400 | "datasource": { 401 | "type": "prometheus", 402 | "uid": "${Source}" 403 | }, 404 | "editorMode": "code", 405 | "expr": "${MetricPrefix}voltage_limit{\"$HostFilterLabel\"=~\"$Host\"}", 406 | "hide": false, 407 | "instant": false, 408 | "legendFormat": "Voltage", 409 | "range": true, 410 | "refId": "C" 411 | }, 412 | { 413 | "datasource": { 414 | "type": "prometheus", 415 | "uid": "${Source}" 416 | }, 417 | "editorMode": "code", 418 | "expr": "${MetricPrefix}no_load_limit{\"$HostFilterLabel\"=~\"$Host\"}", 419 | "hide": false, 420 | "instant": false, 421 | "legendFormat": "No Load", 422 | "range": true, 423 | "refId": "D" 424 | } 425 | ], 426 | "title": "GPU Limiting Factor", 427 | "type": "stat" 428 | }, 429 | { 430 | "datasource": { 431 | "type": "prometheus", 432 | "uid": "${Source}" 433 | }, 434 | "fieldConfig": { 435 | "defaults": { 436 | "color": { 437 | "mode": "palette-classic" 438 | }, 439 | "custom": { 440 | "axisBorderShow": false, 441 | "axisCenteredZero": false, 442 | "axisColorMode": "text", 443 | "axisLabel": "", 444 | "axisPlacement": "auto", 445 | "barAlignment": 0, 446 | "barWidthFactor": 0.6, 447 | "drawStyle": "line", 448 | "fillOpacity": 10, 449 | "gradientMode": "none", 450 | "hideFrom": { 451 | "legend": false, 452 | "tooltip": false, 453 | "viz": false 454 | }, 455 | "insertNulls": false, 456 | "lineInterpolation": "linear", 457 | "lineStyle": { 458 | "fill": "solid" 459 | }, 460 | "lineWidth": 1, 461 | "pointSize": 5, 462 | "scaleDistribution": { 463 | "type": "linear" 464 | }, 465 | "showPoints": "never", 466 | "spanNulls": false, 467 | "stacking": { 468 | "group": "A", 469 | "mode": "none" 470 | }, 471 | "thresholdsStyle": { 472 | "mode": "off" 473 | } 474 | }, 475 | "decimals": 0, 476 | "fieldMinMax": true, 477 | "mappings": [], 478 | "min": 0, 479 | "thresholds": { 480 | "mode": "absolute", 481 | "steps": [ 482 | { 483 | "color": "green", 484 | "value": 0 485 | } 486 | ] 487 | }, 488 | "unit": "short" 489 | }, 490 | "overrides": [ 491 | { 492 | "matcher": { 493 | "id": "byName", 494 | "options": "FPS" 495 | }, 496 | "properties": [ 497 | { 498 | "id": "color", 499 | "value": { 500 | "fixedColor": "orange", 501 | "mode": "fixed" 502 | } 503 | }, 504 | { 505 | "id": "custom.axisSoftMax", 506 | "value": 100 507 | }, 508 | { 509 | "id": "max", 510 | "value": 200 511 | } 512 | ] 513 | }, 514 | { 515 | "matcher": { 516 | "id": "byName", 517 | "options": "Frametime" 518 | }, 519 | "properties": [ 520 | { 521 | "id": "color", 522 | "value": { 523 | "fixedColor": "blue", 524 | "mode": "fixed" 525 | } 526 | }, 527 | { 528 | "id": "custom.axisPlacement", 529 | "value": "right" 530 | }, 531 | { 532 | "id": "custom.axisSoftMax", 533 | "value": 50 534 | }, 535 | { 536 | "id": "unit", 537 | "value": "ms" 538 | }, 539 | { 540 | "id": "custom.axisPlacement", 541 | "value": "right" 542 | }, 543 | { 544 | "id": "max", 545 | "value": 100 546 | } 547 | ] 548 | }, 549 | { 550 | "matcher": { 551 | "id": "byType", 552 | "options": "time" 553 | }, 554 | "properties": [ 555 | { 556 | "id": "custom.axisPlacement", 557 | "value": "hidden" 558 | } 559 | ] 560 | } 561 | ] 562 | }, 563 | "gridPos": { 564 | "h": 8, 565 | "w": 10, 566 | "x": 14, 567 | "y": 0 568 | }, 569 | "id": 6, 570 | "options": { 571 | "dataLinks": [], 572 | "legend": { 573 | "calcs": [ 574 | "mean", 575 | "max", 576 | "min" 577 | ], 578 | "displayMode": "table", 579 | "placement": "bottom", 580 | "showLegend": true 581 | }, 582 | "tooltip": { 583 | "hideZeros": false, 584 | "mode": "multi", 585 | "sort": "none" 586 | } 587 | }, 588 | "pluginVersion": "12.1.1", 589 | "targets": [ 590 | { 591 | "datasource": { 592 | "type": "prometheus", 593 | "uid": "${Source}" 594 | }, 595 | "disableTextWrap": false, 596 | "editorMode": "code", 597 | "expr": "${MetricPrefix}framerate{\"$HostFilterLabel\"=~\"$Host\"}", 598 | "fullMetaSearch": false, 599 | "includeNullMetadata": true, 600 | "instant": false, 601 | "legendFormat": "FPS", 602 | "range": true, 603 | "refId": "A", 604 | "useBackend": false 605 | }, 606 | { 607 | "datasource": { 608 | "type": "prometheus", 609 | "uid": "${Source}" 610 | }, 611 | "disableTextWrap": false, 612 | "editorMode": "code", 613 | "expr": "${MetricPrefix}frametime{\"$HostFilterLabel\"=~\"$Host\"}", 614 | "fullMetaSearch": false, 615 | "hide": false, 616 | "includeNullMetadata": true, 617 | "instant": false, 618 | "legendFormat": "Frametime", 619 | "range": true, 620 | "refId": "B", 621 | "useBackend": false 622 | } 623 | ], 624 | "title": "FPS / Frametime", 625 | "type": "timeseries" 626 | }, 627 | { 628 | "datasource": { 629 | "type": "prometheus", 630 | "uid": "${Source}" 631 | }, 632 | "fieldConfig": { 633 | "defaults": { 634 | "displayName": "Frametime", 635 | "mappings": [], 636 | "max": 200, 637 | "min": 0, 638 | "thresholds": { 639 | "mode": "absolute", 640 | "steps": [ 641 | { 642 | "color": "red", 643 | "value": 0 644 | }, 645 | { 646 | "color": "green", 647 | "value": 1 648 | }, 649 | { 650 | "color": "#EAB839", 651 | "value": 16.6 652 | }, 653 | { 654 | "color": "orange", 655 | "value": 33.3 656 | }, 657 | { 658 | "color": "red", 659 | "value": 66.66 660 | } 661 | ] 662 | }, 663 | "unit": "ms" 664 | }, 665 | "overrides": [] 666 | }, 667 | "gridPos": { 668 | "h": 4, 669 | "w": 2, 670 | "x": 8, 671 | "y": 4 672 | }, 673 | "id": 11, 674 | "options": { 675 | "minVizHeight": 75, 676 | "minVizWidth": 75, 677 | "orientation": "auto", 678 | "reduceOptions": { 679 | "calcs": [ 680 | "lastNotNull" 681 | ], 682 | "fields": "", 683 | "values": false 684 | }, 685 | "showThresholdLabels": false, 686 | "showThresholdMarkers": true, 687 | "sizing": "auto" 688 | }, 689 | "pluginVersion": "12.1.1", 690 | "targets": [ 691 | { 692 | "datasource": { 693 | "type": "prometheus", 694 | "uid": "${Source}" 695 | }, 696 | "editorMode": "code", 697 | "expr": "${MetricPrefix}frametime{\"$HostFilterLabel\"=~\"$Host\"}", 698 | "instant": false, 699 | "legendFormat": "__auto", 700 | "range": true, 701 | "refId": "A" 702 | } 703 | ], 704 | "title": "", 705 | "type": "gauge" 706 | }, 707 | { 708 | "datasource": { 709 | "type": "prometheus", 710 | "uid": "${Source}" 711 | }, 712 | "fieldConfig": { 713 | "defaults": { 714 | "color": { 715 | "mode": "palette-classic" 716 | }, 717 | "custom": { 718 | "axisBorderShow": false, 719 | "axisCenteredZero": false, 720 | "axisColorMode": "text", 721 | "axisLabel": "", 722 | "axisPlacement": "auto", 723 | "barAlignment": 0, 724 | "barWidthFactor": 0.6, 725 | "drawStyle": "line", 726 | "fillOpacity": 10, 727 | "gradientMode": "none", 728 | "hideFrom": { 729 | "legend": false, 730 | "tooltip": false, 731 | "viz": false 732 | }, 733 | "insertNulls": false, 734 | "lineInterpolation": "linear", 735 | "lineWidth": 1, 736 | "pointSize": 5, 737 | "scaleDistribution": { 738 | "type": "linear" 739 | }, 740 | "showPoints": "never", 741 | "spanNulls": false, 742 | "stacking": { 743 | "group": "A", 744 | "mode": "none" 745 | }, 746 | "thresholdsStyle": { 747 | "mode": "off" 748 | } 749 | }, 750 | "decimals": 0, 751 | "mappings": [], 752 | "max": 100, 753 | "min": 0, 754 | "thresholds": { 755 | "mode": "absolute", 756 | "steps": [ 757 | { 758 | "color": "green", 759 | "value": 0 760 | }, 761 | { 762 | "color": "red", 763 | "value": 80 764 | } 765 | ] 766 | }, 767 | "unit": "percent" 768 | }, 769 | "overrides": [ 770 | { 771 | "matcher": { 772 | "id": "byName", 773 | "options": "CPU" 774 | }, 775 | "properties": [ 776 | { 777 | "id": "color", 778 | "value": { 779 | "fixedColor": "orange", 780 | "mode": "fixed" 781 | } 782 | } 783 | ] 784 | }, 785 | { 786 | "matcher": { 787 | "id": "byName", 788 | "options": "GPU" 789 | }, 790 | "properties": [ 791 | { 792 | "id": "color", 793 | "value": { 794 | "fixedColor": "blue", 795 | "mode": "fixed" 796 | } 797 | } 798 | ] 799 | }, 800 | { 801 | "matcher": { 802 | "id": "byType", 803 | "options": "time" 804 | }, 805 | "properties": [ 806 | { 807 | "id": "custom.axisPlacement", 808 | "value": "hidden" 809 | } 810 | ] 811 | } 812 | ] 813 | }, 814 | "gridPos": { 815 | "h": 8, 816 | "w": 12, 817 | "x": 0, 818 | "y": 8 819 | }, 820 | "id": 2, 821 | "options": { 822 | "dataLinks": [], 823 | "legend": { 824 | "calcs": [ 825 | "min", 826 | "max", 827 | "mean" 828 | ], 829 | "displayMode": "table", 830 | "placement": "bottom", 831 | "showLegend": true 832 | }, 833 | "tooltip": { 834 | "hideZeros": false, 835 | "mode": "multi", 836 | "sort": "none" 837 | } 838 | }, 839 | "pluginVersion": "12.1.1", 840 | "targets": [ 841 | { 842 | "datasource": { 843 | "type": "prometheus", 844 | "uid": "${Source}" 845 | }, 846 | "editorMode": "code", 847 | "expr": "${MetricPrefix}cpu_usage{\"$HostFilterLabel\"=~\"$Host\"}", 848 | "instant": false, 849 | "legendFormat": "CPU", 850 | "range": true, 851 | "refId": "A" 852 | }, 853 | { 854 | "datasource": { 855 | "type": "prometheus", 856 | "uid": "${Source}" 857 | }, 858 | "editorMode": "code", 859 | "expr": "${MetricPrefix}gpu_usage{\"$HostFilterLabel\"=~\"$Host\"}", 860 | "hide": false, 861 | "instant": false, 862 | "legendFormat": "GPU", 863 | "range": true, 864 | "refId": "B" 865 | } 866 | ], 867 | "title": "Load", 868 | "type": "timeseries" 869 | }, 870 | { 871 | "datasource": { 872 | "type": "prometheus", 873 | "uid": "P02AE89B78652C585" 874 | }, 875 | "fieldConfig": { 876 | "defaults": { 877 | "color": { 878 | "mode": "palette-classic" 879 | }, 880 | "custom": { 881 | "axisBorderShow": false, 882 | "axisCenteredZero": false, 883 | "axisColorMode": "text", 884 | "axisLabel": "", 885 | "axisPlacement": "auto", 886 | "barAlignment": 0, 887 | "barWidthFactor": 0.6, 888 | "drawStyle": "line", 889 | "fillOpacity": 10, 890 | "gradientMode": "none", 891 | "hideFrom": { 892 | "legend": false, 893 | "tooltip": false, 894 | "viz": false 895 | }, 896 | "insertNulls": false, 897 | "lineInterpolation": "linear", 898 | "lineWidth": 1, 899 | "pointSize": 5, 900 | "scaleDistribution": { 901 | "type": "linear" 902 | }, 903 | "showPoints": "never", 904 | "spanNulls": false, 905 | "stacking": { 906 | "group": "A", 907 | "mode": "none" 908 | }, 909 | "thresholdsStyle": { 910 | "mode": "off" 911 | } 912 | }, 913 | "decimals": 0, 914 | "mappings": [], 915 | "max": 100, 916 | "min": 0, 917 | "thresholds": { 918 | "mode": "absolute", 919 | "steps": [ 920 | { 921 | "color": "green", 922 | "value": 0 923 | }, 924 | { 925 | "color": "red", 926 | "value": 80 927 | } 928 | ] 929 | }, 930 | "unit": "celsius" 931 | }, 932 | "overrides": [ 933 | { 934 | "matcher": { 935 | "id": "byName", 936 | "options": "CPU" 937 | }, 938 | "properties": [ 939 | { 940 | "id": "color", 941 | "value": { 942 | "fixedColor": "orange", 943 | "mode": "fixed" 944 | } 945 | } 946 | ] 947 | }, 948 | { 949 | "matcher": { 950 | "id": "byName", 951 | "options": "GPU" 952 | }, 953 | "properties": [ 954 | { 955 | "id": "color", 956 | "value": { 957 | "fixedColor": "blue", 958 | "mode": "fixed" 959 | } 960 | } 961 | ] 962 | }, 963 | { 964 | "matcher": { 965 | "id": "byType", 966 | "options": "time" 967 | }, 968 | "properties": [ 969 | { 970 | "id": "custom.axisPlacement", 971 | "value": "hidden" 972 | } 973 | ] 974 | } 975 | ] 976 | }, 977 | "gridPos": { 978 | "h": 8, 979 | "w": 12, 980 | "x": 12, 981 | "y": 8 982 | }, 983 | "id": 3, 984 | "options": { 985 | "dataLinks": [], 986 | "legend": { 987 | "calcs": [ 988 | "min", 989 | "max", 990 | "mean" 991 | ], 992 | "displayMode": "table", 993 | "placement": "bottom", 994 | "showLegend": true 995 | }, 996 | "tooltip": { 997 | "hideZeros": false, 998 | "mode": "multi", 999 | "sort": "none" 1000 | } 1001 | }, 1002 | "pluginVersion": "12.1.1", 1003 | "targets": [ 1004 | { 1005 | "datasource": { 1006 | "type": "prometheus", 1007 | "uid": "P02AE89B78652C585" 1008 | }, 1009 | "editorMode": "code", 1010 | "expr": "${MetricPrefix}cpu_temp{\"$HostFilterLabel\"=~\"$Host\"}", 1011 | "instant": false, 1012 | "legendFormat": "CPU", 1013 | "range": true, 1014 | "refId": "A" 1015 | }, 1016 | { 1017 | "datasource": { 1018 | "type": "prometheus", 1019 | "uid": "P02AE89B78652C585" 1020 | }, 1021 | "editorMode": "code", 1022 | "expr": "${MetricPrefix}gpu_temp{\"$HostFilterLabel\"=~\"$Host\"}", 1023 | "hide": false, 1024 | "instant": false, 1025 | "legendFormat": "GPU", 1026 | "range": true, 1027 | "refId": "B" 1028 | } 1029 | ], 1030 | "title": "Temperature", 1031 | "type": "timeseries" 1032 | }, 1033 | { 1034 | "datasource": { 1035 | "type": "prometheus", 1036 | "uid": "${Source}" 1037 | }, 1038 | "fieldConfig": { 1039 | "defaults": { 1040 | "color": { 1041 | "mode": "palette-classic" 1042 | }, 1043 | "custom": { 1044 | "axisBorderShow": false, 1045 | "axisCenteredZero": false, 1046 | "axisColorMode": "text", 1047 | "axisLabel": "", 1048 | "axisPlacement": "auto", 1049 | "barAlignment": 0, 1050 | "barWidthFactor": 0.6, 1051 | "drawStyle": "line", 1052 | "fillOpacity": 10, 1053 | "gradientMode": "none", 1054 | "hideFrom": { 1055 | "legend": false, 1056 | "tooltip": false, 1057 | "viz": false 1058 | }, 1059 | "insertNulls": false, 1060 | "lineInterpolation": "linear", 1061 | "lineWidth": 1, 1062 | "pointSize": 5, 1063 | "scaleDistribution": { 1064 | "type": "linear" 1065 | }, 1066 | "showPoints": "never", 1067 | "spanNulls": false, 1068 | "stacking": { 1069 | "group": "A", 1070 | "mode": "none" 1071 | }, 1072 | "thresholdsStyle": { 1073 | "mode": "off" 1074 | } 1075 | }, 1076 | "mappings": [], 1077 | "min": 0, 1078 | "thresholds": { 1079 | "mode": "absolute", 1080 | "steps": [ 1081 | { 1082 | "color": "green", 1083 | "value": 0 1084 | } 1085 | ] 1086 | }, 1087 | "unit": "hertz" 1088 | }, 1089 | "overrides": [ 1090 | { 1091 | "matcher": { 1092 | "id": "byName", 1093 | "options": "CPU" 1094 | }, 1095 | "properties": [ 1096 | { 1097 | "id": "color", 1098 | "value": { 1099 | "fixedColor": "orange", 1100 | "mode": "fixed" 1101 | } 1102 | } 1103 | ] 1104 | }, 1105 | { 1106 | "matcher": { 1107 | "id": "byName", 1108 | "options": "GPU" 1109 | }, 1110 | "properties": [ 1111 | { 1112 | "id": "color", 1113 | "value": { 1114 | "fixedColor": "blue", 1115 | "mode": "fixed" 1116 | } 1117 | } 1118 | ] 1119 | }, 1120 | { 1121 | "matcher": { 1122 | "id": "byType", 1123 | "options": "time" 1124 | }, 1125 | "properties": [ 1126 | { 1127 | "id": "custom.axisPlacement", 1128 | "value": "hidden" 1129 | } 1130 | ] 1131 | }, 1132 | { 1133 | "matcher": { 1134 | "id": "byName", 1135 | "options": "GPU Memory" 1136 | }, 1137 | "properties": [ 1138 | { 1139 | "id": "color", 1140 | "value": { 1141 | "fixedColor": "purple", 1142 | "mode": "fixed" 1143 | } 1144 | } 1145 | ] 1146 | } 1147 | ] 1148 | }, 1149 | "gridPos": { 1150 | "h": 8, 1151 | "w": 12, 1152 | "x": 0, 1153 | "y": 16 1154 | }, 1155 | "id": 7, 1156 | "options": { 1157 | "dataLinks": [], 1158 | "legend": { 1159 | "calcs": [ 1160 | "min", 1161 | "max", 1162 | "mean" 1163 | ], 1164 | "displayMode": "table", 1165 | "placement": "bottom", 1166 | "showLegend": true 1167 | }, 1168 | "tooltip": { 1169 | "hideZeros": false, 1170 | "mode": "multi", 1171 | "sort": "none" 1172 | } 1173 | }, 1174 | "pluginVersion": "12.1.1", 1175 | "targets": [ 1176 | { 1177 | "datasource": { 1178 | "type": "prometheus", 1179 | "uid": "${Source}" 1180 | }, 1181 | "editorMode": "code", 1182 | "expr": "${MetricPrefix}cpu_clock{\"$HostFilterLabel\"=~\"$Host\"} * ${ClockSpeedScale}", 1183 | "instant": false, 1184 | "legendFormat": "CPU", 1185 | "range": true, 1186 | "refId": "A" 1187 | }, 1188 | { 1189 | "datasource": { 1190 | "type": "prometheus", 1191 | "uid": "${Source}" 1192 | }, 1193 | "editorMode": "code", 1194 | "expr": "${MetricPrefix}gpu_clock{\"$HostFilterLabel\"=~\"$Host\"} * ${ClockSpeedScale}", 1195 | "hide": false, 1196 | "instant": false, 1197 | "legendFormat": "GPU", 1198 | "range": true, 1199 | "refId": "B" 1200 | }, 1201 | { 1202 | "datasource": { 1203 | "type": "prometheus", 1204 | "uid": "${Source}" 1205 | }, 1206 | "editorMode": "code", 1207 | "expr": "${MetricPrefix}gpu_memory_clock{\"$HostFilterLabel\"=~\"$Host\"} * ${ClockSpeedScale}", 1208 | "hide": false, 1209 | "instant": false, 1210 | "legendFormat": "GPU Memory", 1211 | "range": true, 1212 | "refId": "C" 1213 | } 1214 | ], 1215 | "title": "Clock Speed", 1216 | "type": "timeseries" 1217 | }, 1218 | { 1219 | "datasource": { 1220 | "type": "prometheus", 1221 | "uid": "${Source}" 1222 | }, 1223 | "fieldConfig": { 1224 | "defaults": { 1225 | "color": { 1226 | "mode": "palette-classic" 1227 | }, 1228 | "custom": { 1229 | "axisBorderShow": false, 1230 | "axisCenteredZero": false, 1231 | "axisColorMode": "text", 1232 | "axisLabel": "", 1233 | "axisPlacement": "auto", 1234 | "barAlignment": 0, 1235 | "barWidthFactor": 0.6, 1236 | "drawStyle": "line", 1237 | "fillOpacity": 10, 1238 | "gradientMode": "none", 1239 | "hideFrom": { 1240 | "legend": false, 1241 | "tooltip": false, 1242 | "viz": false 1243 | }, 1244 | "insertNulls": false, 1245 | "lineInterpolation": "linear", 1246 | "lineWidth": 1, 1247 | "pointSize": 5, 1248 | "scaleDistribution": { 1249 | "type": "linear" 1250 | }, 1251 | "showPoints": "never", 1252 | "spanNulls": false, 1253 | "stacking": { 1254 | "group": "A", 1255 | "mode": "none" 1256 | }, 1257 | "thresholdsStyle": { 1258 | "mode": "off" 1259 | } 1260 | }, 1261 | "mappings": [], 1262 | "min": 0, 1263 | "thresholds": { 1264 | "mode": "absolute", 1265 | "steps": [ 1266 | { 1267 | "color": "green", 1268 | "value": 0 1269 | }, 1270 | { 1271 | "color": "red", 1272 | "value": 80 1273 | } 1274 | ] 1275 | }, 1276 | "unit": "decmbytes" 1277 | }, 1278 | "overrides": [ 1279 | { 1280 | "matcher": { 1281 | "id": "byName", 1282 | "options": "RAM" 1283 | }, 1284 | "properties": [ 1285 | { 1286 | "id": "color", 1287 | "value": { 1288 | "fixedColor": "orange", 1289 | "mode": "fixed" 1290 | } 1291 | } 1292 | ] 1293 | }, 1294 | { 1295 | "matcher": { 1296 | "id": "byName", 1297 | "options": "VRAM" 1298 | }, 1299 | "properties": [ 1300 | { 1301 | "id": "color", 1302 | "value": { 1303 | "fixedColor": "blue", 1304 | "mode": "fixed" 1305 | } 1306 | } 1307 | ] 1308 | }, 1309 | { 1310 | "matcher": { 1311 | "id": "byType", 1312 | "options": "time" 1313 | }, 1314 | "properties": [ 1315 | { 1316 | "id": "custom.axisPlacement", 1317 | "value": "hidden" 1318 | } 1319 | ] 1320 | } 1321 | ] 1322 | }, 1323 | "gridPos": { 1324 | "h": 8, 1325 | "w": 12, 1326 | "x": 12, 1327 | "y": 16 1328 | }, 1329 | "id": 5, 1330 | "options": { 1331 | "dataLinks": [], 1332 | "legend": { 1333 | "calcs": [ 1334 | "min", 1335 | "max", 1336 | "mean" 1337 | ], 1338 | "displayMode": "table", 1339 | "placement": "bottom", 1340 | "showLegend": true 1341 | }, 1342 | "tooltip": { 1343 | "hideZeros": false, 1344 | "mode": "multi", 1345 | "sort": "none" 1346 | } 1347 | }, 1348 | "pluginVersion": "12.1.1", 1349 | "targets": [ 1350 | { 1351 | "datasource": { 1352 | "type": "prometheus", 1353 | "uid": "${Source}" 1354 | }, 1355 | "editorMode": "code", 1356 | "expr": "${MetricPrefix}ram{\"$HostFilterLabel\"=~\"$Host\"}", 1357 | "instant": false, 1358 | "legendFormat": "RAM", 1359 | "range": true, 1360 | "refId": "A" 1361 | }, 1362 | { 1363 | "datasource": { 1364 | "type": "prometheus", 1365 | "uid": "${Source}" 1366 | }, 1367 | "editorMode": "code", 1368 | "expr": "${MetricPrefix}vram{\"$HostFilterLabel\"=~\"$Host\"}", 1369 | "hide": false, 1370 | "instant": false, 1371 | "legendFormat": "VRAM", 1372 | "range": true, 1373 | "refId": "B" 1374 | } 1375 | ], 1376 | "title": "Memory", 1377 | "type": "timeseries" 1378 | }, 1379 | { 1380 | "datasource": { 1381 | "type": "prometheus", 1382 | "uid": "${Source}" 1383 | }, 1384 | "fieldConfig": { 1385 | "defaults": { 1386 | "color": { 1387 | "mode": "palette-classic" 1388 | }, 1389 | "custom": { 1390 | "axisBorderShow": false, 1391 | "axisCenteredZero": false, 1392 | "axisColorMode": "text", 1393 | "axisLabel": "", 1394 | "axisPlacement": "auto", 1395 | "barAlignment": 0, 1396 | "barWidthFactor": 0.6, 1397 | "drawStyle": "line", 1398 | "fillOpacity": 10, 1399 | "gradientMode": "none", 1400 | "hideFrom": { 1401 | "legend": false, 1402 | "tooltip": false, 1403 | "viz": false 1404 | }, 1405 | "insertNulls": false, 1406 | "lineInterpolation": "linear", 1407 | "lineWidth": 1, 1408 | "pointSize": 5, 1409 | "scaleDistribution": { 1410 | "type": "linear" 1411 | }, 1412 | "showPoints": "never", 1413 | "spanNulls": false, 1414 | "stacking": { 1415 | "group": "A", 1416 | "mode": "none" 1417 | }, 1418 | "thresholdsStyle": { 1419 | "mode": "off" 1420 | } 1421 | }, 1422 | "decimals": 0, 1423 | "mappings": [], 1424 | "min": 0, 1425 | "thresholds": { 1426 | "mode": "absolute", 1427 | "steps": [ 1428 | { 1429 | "color": "green", 1430 | "value": 0 1431 | }, 1432 | { 1433 | "color": "red", 1434 | "value": 80 1435 | } 1436 | ] 1437 | }, 1438 | "unit": "volt" 1439 | }, 1440 | "overrides": [ 1441 | { 1442 | "matcher": { 1443 | "id": "byName", 1444 | "options": "CPU" 1445 | }, 1446 | "properties": [ 1447 | { 1448 | "id": "color", 1449 | "value": { 1450 | "fixedColor": "blue", 1451 | "mode": "fixed" 1452 | } 1453 | } 1454 | ] 1455 | }, 1456 | { 1457 | "matcher": { 1458 | "id": "byName", 1459 | "options": "CPU Power" 1460 | }, 1461 | "properties": [ 1462 | { 1463 | "id": "color", 1464 | "value": { 1465 | "fixedColor": "orange", 1466 | "mode": "fixed" 1467 | } 1468 | } 1469 | ] 1470 | }, 1471 | { 1472 | "matcher": { 1473 | "id": "byName", 1474 | "options": "GPU" 1475 | }, 1476 | "properties": [ 1477 | { 1478 | "id": "color", 1479 | "value": { 1480 | "fixedColor": "orange", 1481 | "mode": "fixed" 1482 | } 1483 | } 1484 | ] 1485 | }, 1486 | { 1487 | "matcher": { 1488 | "id": "byName", 1489 | "options": "GPU Memory Clock" 1490 | }, 1491 | "properties": [ 1492 | { 1493 | "id": "color", 1494 | "value": { 1495 | "fixedColor": "orange", 1496 | "mode": "fixed" 1497 | } 1498 | } 1499 | ] 1500 | }, 1501 | { 1502 | "matcher": { 1503 | "id": "byName", 1504 | "options": "GPU Power" 1505 | }, 1506 | "properties": [ 1507 | { 1508 | "id": "color", 1509 | "value": { 1510 | "fixedColor": "blue", 1511 | "mode": "fixed" 1512 | } 1513 | } 1514 | ] 1515 | }, 1516 | { 1517 | "matcher": { 1518 | "id": "byName", 1519 | "options": "RAM" 1520 | }, 1521 | "properties": [ 1522 | { 1523 | "id": "color", 1524 | "value": { 1525 | "fixedColor": "orange", 1526 | "mode": "fixed" 1527 | } 1528 | } 1529 | ] 1530 | }, 1531 | { 1532 | "matcher": { 1533 | "id": "byName", 1534 | "options": "VRAM" 1535 | }, 1536 | "properties": [ 1537 | { 1538 | "id": "color", 1539 | "value": { 1540 | "fixedColor": "blue", 1541 | "mode": "fixed" 1542 | } 1543 | } 1544 | ] 1545 | }, 1546 | { 1547 | "matcher": { 1548 | "id": "byName", 1549 | "options": "Voltage" 1550 | }, 1551 | "properties": [ 1552 | { 1553 | "id": "color", 1554 | "value": { 1555 | "fixedColor": "blue", 1556 | "mode": "fixed" 1557 | } 1558 | } 1559 | ] 1560 | }, 1561 | { 1562 | "matcher": { 1563 | "id": "byName", 1564 | "options": "Voltage" 1565 | }, 1566 | "properties": [ 1567 | { 1568 | "id": "unit", 1569 | "value": "volt" 1570 | }, 1571 | { 1572 | "id": "decimals", 1573 | "value": 3 1574 | }, 1575 | { 1576 | "id": "max", 1577 | "value": 2 1578 | }, 1579 | { 1580 | "id": "custom.axisPlacement", 1581 | "value": "right" 1582 | } 1583 | ] 1584 | }, 1585 | { 1586 | "matcher": { 1587 | "id": "byType", 1588 | "options": "time" 1589 | }, 1590 | "properties": [ 1591 | { 1592 | "id": "custom.axisPlacement", 1593 | "value": "hidden" 1594 | } 1595 | ] 1596 | } 1597 | ] 1598 | }, 1599 | "gridPos": { 1600 | "h": 8, 1601 | "w": 8, 1602 | "x": 0, 1603 | "y": 24 1604 | }, 1605 | "id": 16, 1606 | "options": { 1607 | "dataLinks": [], 1608 | "legend": { 1609 | "calcs": [ 1610 | "min", 1611 | "max", 1612 | "mean" 1613 | ], 1614 | "displayMode": "table", 1615 | "placement": "bottom", 1616 | "showLegend": true 1617 | }, 1618 | "tooltip": { 1619 | "hideZeros": false, 1620 | "mode": "multi", 1621 | "sort": "none" 1622 | } 1623 | }, 1624 | "pluginVersion": "12.1.1", 1625 | "targets": [ 1626 | { 1627 | "datasource": { 1628 | "type": "prometheus", 1629 | "uid": "${Source}" 1630 | }, 1631 | "editorMode": "code", 1632 | "expr": "${MetricPrefix}gpu_voltage{\"$HostFilterLabel\"=~\"$Host\"}", 1633 | "instant": false, 1634 | "legendFormat": "GPU", 1635 | "range": true, 1636 | "refId": "A" 1637 | } 1638 | ], 1639 | "title": "Voltage", 1640 | "type": "timeseries" 1641 | }, 1642 | { 1643 | "datasource": { 1644 | "type": "prometheus", 1645 | "uid": "${Source}" 1646 | }, 1647 | "fieldConfig": { 1648 | "defaults": { 1649 | "color": { 1650 | "mode": "palette-classic" 1651 | }, 1652 | "custom": { 1653 | "axisBorderShow": false, 1654 | "axisCenteredZero": false, 1655 | "axisColorMode": "text", 1656 | "axisLabel": "", 1657 | "axisPlacement": "auto", 1658 | "barAlignment": 0, 1659 | "barWidthFactor": 0.6, 1660 | "drawStyle": "line", 1661 | "fillOpacity": 0, 1662 | "gradientMode": "none", 1663 | "hideFrom": { 1664 | "legend": false, 1665 | "tooltip": false, 1666 | "viz": false 1667 | }, 1668 | "insertNulls": false, 1669 | "lineInterpolation": "linear", 1670 | "lineWidth": 2, 1671 | "pointSize": 5, 1672 | "scaleDistribution": { 1673 | "type": "linear" 1674 | }, 1675 | "showPoints": "never", 1676 | "spanNulls": false, 1677 | "stacking": { 1678 | "group": "A", 1679 | "mode": "none" 1680 | }, 1681 | "thresholdsStyle": { 1682 | "mode": "off" 1683 | } 1684 | }, 1685 | "decimals": 0, 1686 | "mappings": [], 1687 | "max": 100, 1688 | "min": 0, 1689 | "thresholds": { 1690 | "mode": "absolute", 1691 | "steps": [ 1692 | { 1693 | "color": "green", 1694 | "value": 0 1695 | } 1696 | ] 1697 | }, 1698 | "unit": "percent" 1699 | }, 1700 | "overrides": [ 1701 | { 1702 | "matcher": { 1703 | "id": "byName", 1704 | "options": "Fan RPM" 1705 | }, 1706 | "properties": [ 1707 | { 1708 | "id": "color", 1709 | "value": { 1710 | "fixedColor": "orange", 1711 | "mode": "fixed" 1712 | } 1713 | }, 1714 | { 1715 | "id": "unit", 1716 | "value": "rotrpm" 1717 | } 1718 | ] 1719 | }, 1720 | { 1721 | "matcher": { 1722 | "id": "byName", 1723 | "options": "Fan Speed" 1724 | }, 1725 | "properties": [ 1726 | { 1727 | "id": "color", 1728 | "value": { 1729 | "fixedColor": "blue", 1730 | "mode": "fixed" 1731 | } 1732 | } 1733 | ] 1734 | }, 1735 | { 1736 | "matcher": { 1737 | "id": "byType", 1738 | "options": "time" 1739 | }, 1740 | "properties": [ 1741 | { 1742 | "id": "custom.axisPlacement", 1743 | "value": "hidden" 1744 | } 1745 | ] 1746 | } 1747 | ] 1748 | }, 1749 | "gridPos": { 1750 | "h": 8, 1751 | "w": 8, 1752 | "x": 8, 1753 | "y": 24 1754 | }, 1755 | "id": 12, 1756 | "options": { 1757 | "dataLinks": [], 1758 | "legend": { 1759 | "calcs": [ 1760 | "min", 1761 | "max", 1762 | "mean" 1763 | ], 1764 | "displayMode": "table", 1765 | "placement": "bottom", 1766 | "showLegend": true 1767 | }, 1768 | "tooltip": { 1769 | "hideZeros": false, 1770 | "mode": "multi", 1771 | "sort": "none" 1772 | } 1773 | }, 1774 | "pluginVersion": "12.1.1", 1775 | "targets": [ 1776 | { 1777 | "datasource": { 1778 | "type": "prometheus", 1779 | "uid": "${Source}" 1780 | }, 1781 | "editorMode": "code", 1782 | "expr": "${MetricPrefix}fan_rpm{\"$HostFilterLabel\"=~\"$Host\"}", 1783 | "instant": false, 1784 | "legendFormat": "Fan RPM", 1785 | "range": true, 1786 | "refId": "A" 1787 | }, 1788 | { 1789 | "datasource": { 1790 | "type": "prometheus", 1791 | "uid": "${Source}" 1792 | }, 1793 | "editorMode": "code", 1794 | "expr": "${MetricPrefix}fan_speed{\"$HostFilterLabel\"=~\"$Host\"}", 1795 | "hide": false, 1796 | "instant": false, 1797 | "legendFormat": "Fan Speed", 1798 | "range": true, 1799 | "refId": "B" 1800 | } 1801 | ], 1802 | "title": "GPU Fans", 1803 | "type": "timeseries" 1804 | }, 1805 | { 1806 | "datasource": { 1807 | "type": "prometheus", 1808 | "uid": "${Source}" 1809 | }, 1810 | "fieldConfig": { 1811 | "defaults": { 1812 | "color": { 1813 | "mode": "palette-classic" 1814 | }, 1815 | "custom": { 1816 | "axisBorderShow": false, 1817 | "axisCenteredZero": false, 1818 | "axisColorMode": "text", 1819 | "axisLabel": "", 1820 | "axisPlacement": "auto", 1821 | "barAlignment": 0, 1822 | "barWidthFactor": 0.6, 1823 | "drawStyle": "line", 1824 | "fillOpacity": 10, 1825 | "gradientMode": "none", 1826 | "hideFrom": { 1827 | "legend": false, 1828 | "tooltip": false, 1829 | "viz": false 1830 | }, 1831 | "insertNulls": false, 1832 | "lineInterpolation": "linear", 1833 | "lineWidth": 1, 1834 | "pointSize": 5, 1835 | "scaleDistribution": { 1836 | "type": "linear" 1837 | }, 1838 | "showPoints": "never", 1839 | "spanNulls": false, 1840 | "stacking": { 1841 | "group": "A", 1842 | "mode": "none" 1843 | }, 1844 | "thresholdsStyle": { 1845 | "mode": "off" 1846 | } 1847 | }, 1848 | "decimals": 0, 1849 | "mappings": [], 1850 | "min": 0, 1851 | "thresholds": { 1852 | "mode": "absolute", 1853 | "steps": [ 1854 | { 1855 | "color": "green", 1856 | "value": 0 1857 | }, 1858 | { 1859 | "color": "red", 1860 | "value": 80 1861 | } 1862 | ] 1863 | }, 1864 | "unit": "watt" 1865 | }, 1866 | "overrides": [ 1867 | { 1868 | "matcher": { 1869 | "id": "byName", 1870 | "options": "CPU" 1871 | }, 1872 | "properties": [ 1873 | { 1874 | "id": "color", 1875 | "value": { 1876 | "fixedColor": "blue", 1877 | "mode": "fixed" 1878 | } 1879 | } 1880 | ] 1881 | }, 1882 | { 1883 | "matcher": { 1884 | "id": "byName", 1885 | "options": "GPU" 1886 | }, 1887 | "properties": [ 1888 | { 1889 | "id": "color", 1890 | "value": { 1891 | "fixedColor": "orange", 1892 | "mode": "fixed" 1893 | } 1894 | } 1895 | ] 1896 | }, 1897 | { 1898 | "matcher": { 1899 | "id": "byType", 1900 | "options": "time" 1901 | }, 1902 | "properties": [ 1903 | { 1904 | "id": "custom.axisPlacement", 1905 | "value": "hidden" 1906 | } 1907 | ] 1908 | } 1909 | ] 1910 | }, 1911 | "gridPos": { 1912 | "h": 8, 1913 | "w": 8, 1914 | "x": 16, 1915 | "y": 24 1916 | }, 1917 | "id": 15, 1918 | "options": { 1919 | "dataLinks": [], 1920 | "legend": { 1921 | "calcs": [ 1922 | "last", 1923 | "min", 1924 | "max" 1925 | ], 1926 | "displayMode": "table", 1927 | "placement": "bottom", 1928 | "showLegend": true 1929 | }, 1930 | "tooltip": { 1931 | "hideZeros": false, 1932 | "mode": "multi", 1933 | "sort": "none" 1934 | } 1935 | }, 1936 | "pluginVersion": "12.1.1", 1937 | "targets": [ 1938 | { 1939 | "datasource": { 1940 | "type": "prometheus", 1941 | "uid": "${Source}" 1942 | }, 1943 | "editorMode": "code", 1944 | "expr": "${MetricPrefix}cpu_power{\"$HostFilterLabel\"=~\"$Host\"}", 1945 | "instant": false, 1946 | "legendFormat": "CPU", 1947 | "range": true, 1948 | "refId": "A" 1949 | }, 1950 | { 1951 | "datasource": { 1952 | "type": "prometheus", 1953 | "uid": "${Source}" 1954 | }, 1955 | "editorMode": "code", 1956 | "expr": "${MetricPrefix}gpu_power{\"$HostFilterLabel\"=~\"$Host\"}", 1957 | "hide": false, 1958 | "instant": false, 1959 | "legendFormat": "GPU", 1960 | "range": true, 1961 | "refId": "B" 1962 | } 1963 | ], 1964 | "title": "Power", 1965 | "type": "timeseries" 1966 | } 1967 | ], 1968 | "preload": false, 1969 | "refresh": "1s", 1970 | "schemaVersion": 41, 1971 | "tags": [], 1972 | "templating": { 1973 | "list": [ 1974 | { 1975 | "allValue": ".*", 1976 | "allowCustomValue": false, 1977 | "current": { 1978 | "text": "grAfterburner-VictoriaMetrics", 1979 | "value": "P02AE89B78652C585" 1980 | }, 1981 | "description": "Data Source to fetch from.", 1982 | "includeAll": false, 1983 | "label": "Source", 1984 | "name": "Source", 1985 | "options": [], 1986 | "query": "prometheus", 1987 | "refresh": 1, 1988 | "regex": "", 1989 | "type": "datasource" 1990 | }, 1991 | { 1992 | "allValue": ".*", 1993 | "allowCustomValue": false, 1994 | "current": { 1995 | "text": "http://rafs-pc.lan:82/mahm", 1996 | "value": "http://rafs-pc.lan:82/mahm" 1997 | }, 1998 | "datasource": { 1999 | "type": "prometheus", 2000 | "uid": "${Source}" 2001 | }, 2002 | "definition": "label_values(msi_afterburner_framerate,url)", 2003 | "description": "Host to filter data from.", 2004 | "includeAll": false, 2005 | "label": "Host", 2006 | "name": "Host", 2007 | "options": [], 2008 | "query": { 2009 | "qryType": 1, 2010 | "query": "label_values(msi_afterburner_framerate,url)", 2011 | "refId": "PrometheusVariableQueryEditor-VariableQuery" 2012 | }, 2013 | "refresh": 1, 2014 | "regex": "", 2015 | "sort": 1, 2016 | "type": "query" 2017 | }, 2018 | { 2019 | "current": { 2020 | "text": "url", 2021 | "value": "url" 2022 | }, 2023 | "description": "Label to filter host by.", 2024 | "hide": 2, 2025 | "name": "HostFilterLabel", 2026 | "query": "url", 2027 | "skipUrlSync": true, 2028 | "type": "constant" 2029 | }, 2030 | { 2031 | "current": { 2032 | "text": "msi_afterburner_", 2033 | "value": "msi_afterburner_" 2034 | }, 2035 | "description": "Prefix for each metric name.", 2036 | "hide": 2, 2037 | "name": "MetricPrefix", 2038 | "query": "msi_afterburner_", 2039 | "skipUrlSync": true, 2040 | "type": "constant" 2041 | }, 2042 | { 2043 | "current": { 2044 | "text": "1000000", 2045 | "value": "1000000" 2046 | }, 2047 | "description": "Scale for ClockSpeed measurements.", 2048 | "hide": 2, 2049 | "name": "ClockSpeedScale", 2050 | "query": "1000000", 2051 | "skipUrlSync": true, 2052 | "type": "constant" 2053 | } 2054 | ] 2055 | }, 2056 | "time": { 2057 | "from": "now-15m", 2058 | "to": "now" 2059 | }, 2060 | "timepicker": { 2061 | "nowDelay": "", 2062 | "refresh_intervals": [ 2063 | "1s", 2064 | "2s", 2065 | "5s", 2066 | "10s", 2067 | "30s", 2068 | "1m", 2069 | "2m", 2070 | "5m", 2071 | "10m", 2072 | "15m", 2073 | "30m", 2074 | "1h" 2075 | ] 2076 | }, 2077 | "timezone": "", 2078 | "title": "MSI Afterburner", 2079 | "uid": "gGWviXrZ2", 2080 | "version": 2 2081 | } 2082 | --------------------------------------------------------------------------------