From 3f05b039f39969800132553c14d230d05ff86fc5 Mon Sep 17 00:00:00 2001 From: vinzcamp8 Date: Wed, 17 Jul 2024 23:24:09 +0200 Subject: [PATCH] First commit --- README.md | 154 + container_image.png | Bin 0 -> 134713 bytes .../dashboards/Mikrotik-snmp-prometheus.json | 8816 +++++++++++++++++ grafana/provisioning/dashboards/dashboard.yml | 11 + .../provisioning/datasources/datasource.yml | 50 + prometheus/prometheus.yml | 54 + snmp/snmp.yml | 4387 ++++++++ 7 files changed, 13472 insertions(+) create mode 100644 README.md create mode 100644 container_image.png create mode 100644 grafana/provisioning/dashboards/Mikrotik-snmp-prometheus.json create mode 100644 grafana/provisioning/dashboards/dashboard.yml create mode 100644 grafana/provisioning/datasources/datasource.yml create mode 100644 prometheus/prometheus.yml create mode 100644 snmp/snmp.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..1602d73 --- /dev/null +++ b/README.md @@ -0,0 +1,154 @@ +# MikroTik Monitoring with Container feature +Aiming to have a beautiful Grafana Dashboard to monitor a MikroTik device?\ +You are in the right place! + +Monitoring MikroTik using 3 Containers (SNMP Exporter + Prometheus + Grafana).\ +[MikroTik Container](https://help.mikrotik.com/docs/display/ROS/Container) is available in RouterOS from v7.\ +Using it to monitor the MikroTik itself reduce the costs and complexity derived from deploying a new dedicated machine for the same objective.\ + +[SNMP Exporter](https://hub.docker.com/r/prom/snmp-exporter), [Prometheus](https://hub.docker.com/r/prom/prometheus) and [Grafana](https://hub.docker.com/r/grafana/grafana) are a well known stack of tools that enable to monitor any type of device with appropriate configurations.\ +In this scenario the metrics are retrieved in real time with SNMP, Prometheus act as timeseries database with query and Grafana had that sweet dashboards.\ + +In my configuration I have a MikroTik RouterBoard L009UiGS (ARM) with ROS v7.12 but the steps are very general and almost equal for every version.\ +# Setup steps +First of all Enable SNMP on MikroTik in IP->SNMP, tick the box and leave others as default.\ +## 1. MikroTik activate Container feature +First of all we have to activate the *Container* package on MikroTik, to default it is disabled.\ +To check if it is also activated in WinBox, open *New Terminal* and run: +`system/device-mode/pr`\ +After the mode (e.g. `mode: enterprise`) should be compare the string `container: yes`\ +If you have already activated it, go next to the step 2.\ +Else if not you have to **download, install and activate the package**.\ + +1. **Download** + - Go to https://mikrotik.com/download/archive + - Select your ROS version + - Download the *all_packages* zip of your architecture + - You can see your architecture in WinBox `System->Resources` + +2. **Install** + - From the downloaded zip extract file *"container-X.Y.npk"* and upload it inside *Files* in MikroTik (you can Drag and Drop the file inside WinBox) + - Now *System->Reboot* the MikroTik in order to install the package + - After that you can already see *Container* features on the left bar of WinBox but you still cannot use it until you activate it. + +3. **Activate** + - In WinBox, open *New Terminal* and run: + - `system/device-mode/update container=yes` + - After that you have to shutdown the MikroTik as explained in the CLI, turning power off or pressing button of MikroTik device, otherwise the activation is stopped. + - If the activation worked after the boot you can check running in New Terminal `system/device-mode/pr` again as above. + +## 2. MikroTik VETH interfaces configuration +Note: After each following step press before *Apply* and then *OK* buttons. +1. Go to *Bridge* and in *Bridge* tab create a *New Interface* + - Name: docker + - Leave the rest of fields as default +2. Go to *IP->Addresses* add a *New Address* + - Address: 192.168.50.1/24 + - Network: 192.168.50.0 + - Interface select "docker" +3. Go to *IP->Firewall* in *NAT* tab create a *New NAT Rule* + - Chain select "srcnat" + - Src. Address: 192.168.50.0/24 + - (This is the *Addresses* of the *Bridge* "docker") + - Go to *Action* tab and as *Action* select "masquerade" +4. Go to *Interfaces* and in *VETH* tab add 3 *Interfaces* (*Copy* the first to speed up the process) + 1. *New Interface* for **Grafana** + - Name: grafana + - Address: 192.168.50.100/24 + - Gateway: 192.168.50.1 + 2. *New Interface* for **SNMP Exporter** + - Name: snmp_exporter + - Address: 192.168.50.101/24 + - Gateway: 192.168.50.1 + 3. *New Interface* for **Prometehus** + - Name: prometheus + - Address: 192.168.50.102/24 + - Gateway: 192.168.50.1 +5. Go to *Bridge* and in *Ports* tab **create a *New Bridge Port* for each *VETH interface*** (grafana, snmp_exporter, prometheus) created above and select *"docker"* as Bridge. + - (In order to Bridge all the interfaces on the same subnet LAN) + +## 3. Configuration files +Prepare configuration files for containers.\ +1. Download the 3 folders (grafana, prometheus and snmp) from the repository. +2. Modify files as follow: + - grafana/provisioning/datasource.yml + - url: http://192.168.50.102:9090 + - (or your prometheus VETH IP) + - prometheus/prometheus.yml + - in *job_name MikroTik* change targets to your Mikrotik ip (MikroTik IP where SNMP is enabled) + - in *replacement* put the snmp_exporter VETH IP: 192.168.50.101:9116 +3. Finally load the 3 folders in MikroTik ***Files***. + +## 4. MikroTik Containers configuration +First of all we have to to set the Environment variables and Mount path to volume for our Containers. +1. Go to *Container* and in **Envs** tab.\ + The Envs interest only the grafana container, we define this 3 envs for it: + - Name: `grafana`, Key: `GF_SECURITY_ADMIN_USE`, Value: `admin` + - Name: `grafana`, Key: `GF_SECURITY_ADMIN_PASSWORD`, Value: `mikrotik` + - Name: `grafana`, Key: `GF_SECURITY_SIGN_UP`, Value: `false` + +2. Go to *Container* and in **Mounts** tab.\ + Note: all *src path* is at your choice e.g. path to an external usb drive attached to MikroTik. + There are one Mount for each container: + - Name: `grafana`, Src: `/usb1/grafana/provisioning`, Dst: `/etc/grafana/provisioning/` + - Name: `prometheus`, Src: `/usb1/prometheus`, Dst: `/etc/prometheus` + - Name: `snmp`, Src: `/usb1/snmp`, Dst: `/etc/snmp_exporter` + +3. Finally, go to *Container* and in **Container** tab press *Config* button + - Registry URL: https://registry-1.docker.io + - Tmp Dir: /pull + - (This path is at your choice e.g. path to an external usb drive attached to MikroTik) + +4. Now in tab Container we can create a container for each VETH created before.\ + Note: in each container the `Root Dir` path field is at your choice (e.g. path to an external usb drive attached to MikroTik e.g. `/usb1/grafana_dir`).\ + **After you fill out the fields of each container press *Apply* and wait for download/extracting of the container until in status appear *"stopped"* (if it appear is all OK) then go to create the next container, else if appear status: "*error*", *Copy* the container, delete the old, and re-try to *Apply*.** + - New Container for Grafana + - Remote Image: grafana/grafana:9.1.0 + - Interface select *"grafana"* + - Envslist: grafana + - Mounts select "*grafana*" + - Root Dir: /usb1/grafana_dir + - (Tick *Logging* and *Start On Boot* boxes if you want) + - New Container for Prometheus + - Remote Image: prom/prometheus:latest + - Interface select *"prometheus"* + - Cmd: --config.file=/etc/prometheus/prometheus.yml + - Root Dir: /usb1/prometheus_dir + - Mounts select *"prometheus"* + - (Tick *Logging* and *Start On Boot* boxes if you want) + - New Container for SNMP Exporter + - Remote Image: prom/snmp-exporter:latest + - Interface select *"snmp_exporter"* + - Cmd: --config.file=/etc/snmp_exporter/snmp.yml + - Root Dir: /usb1/snmp_dir + - Mounts select *"snmp"* + - (Tick *Logging* and *Start On Boot* boxes if you want) + +## 5. Start Container +After all you can Start and Stop the container using the respective button.\ +Start all containers in order (SNMP Exporter, Prometheus and Grafana) and enjoy.\ + +![containers](container_image.png) +### Link +If you configured the VETH interfaces and other as above, then: +- Grafana: [192.168.50.100:3000](192.168.50.100:3000) + - admin:mikrotik +- Prometheus: [192.168.50.102:9090](192.168.50.102:9090) +- SNMP Exporter: [192.168.50.101:9116](192.168.50.101:9116) + +Obv, you should assure that they are reachable from your host. +# Possible issues +- In some version for ARM Grafana show "No data" to interface in and out: + - Rapid solution: edit the dashboard, edit the query, change $scrap_intervall to 30s or others. (after you modify the ether1 all other will change automatically) + - Solution: from grafana 9.1.0 the problem was resolved +- Container store is created only the first time that the Apply button is pressed + - Possible issue: mikrotik container create a directory instead of container store + - If you create or remove container with same Root Dir of another the conflicts is coming to you! + - Be careful before removing container, when you do it the relative Root Dir is eliminated (even container store) + - Be careful before press Apply button delete all the container that you want to eliminate +- When Start the container check in Files if the Root Dir is created as "container store" type, if not there was a problem (starting the container will fail with "execve: No such file or directory"), copy the container setup and change the Root Dir until the container is started correctly + +Thanks [@IgorKha](https://github.com/IgorKha/) for [configuration files](https://github.com/IgorKha/Grafana-Mikrotik/) and [Dashboard](https://grafana.com/grafana/dashboards/14420-mikrotik-monitoring/). + +Special thanks to my MikroTik teacher @rolando. + diff --git a/container_image.png b/container_image.png new file mode 100644 index 0000000000000000000000000000000000000000..67d409ab68ca6a6c1fdd80a13bc0d655c915ca74 GIT binary patch literal 134713 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 0", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 39 + }, + "hiddenSeries": false, + "id": 1659, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxControl{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Control - {{ifName}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxDeferred{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Deferred - {{ifName}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxCollision{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Collision - {{ifName}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxDrop{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Drop - {{ifName}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxExcessiveCollision{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Excessive Collision - {{ifName}}", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxExcessiveDeferred{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Excessive Deferred - {{ifName}}", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxFCSError{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx FCS Error - {{ifName}}", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxFragment{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Fragment - {{ifName}}", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxJabber{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Jabber - {{ifName}}", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxLateCollision{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Late Collision - {{ifName}}", + "refId": "J" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxMultipleCollision{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Multiple Collision - {{ifName}}", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxPause{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Pause - {{ifName}}", + "refId": "L" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxPauseHonored{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Pause Honored - {{ifName}}", + "refId": "M" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxSingleCollision{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Single Collision - {{ifName}}", + "refId": "N" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxTooLong{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Too Long - {{ifName}}", + "refId": "O" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxTooShort{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Too Short - {{ifName}}", + "refId": "P" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxTotalCollision{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Total Collision - {{ifName}}", + "refId": "Q" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsTxUnderrun{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Tx Under run - {{ifName}}", + "refId": "R" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Tx Eth errors, etc", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": "", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": { + "In - wlan1": "#ff2e63" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Showing values > 0", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 39 + }, + "hiddenSeries": false, + "id": 1671, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.0.5", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxAlignError{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Align Error - {{ifName}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxCarrierError{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Carrier Error - {{ifName}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxControl{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Control - {{ifName}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxDrop{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Drop - {{ifName}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxFCSError{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "FCS Error - {{ifName}}", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxFragment{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Fragment - {{ifName}}", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxJabber{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Jabber - {{ifName}}", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxLengthError{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Length Error - {{ifName}}", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxOverflow{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Overflow - {{ifName}}", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxPause{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Pause - {{ifName}}", + "refId": "J" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxTooLong{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Too Long - {{ifName}}", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxTooShort{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Too Short - {{ifName}}", + "refId": "L" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(mtxrInterfaceStatsRxUnknownOp{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Rx Unknown Op - {{ifName}}", + "refId": "M" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Rx Eth errors, etc", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": "", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "displayMode": "color-text", + "filterable": false, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "super-light-yellow", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Neighbor index" + }, + "properties": [ + { + "id": "custom.align", + "value": "center" + }, + { + "id": "custom.width", + "value": 134 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "IP" + }, + "properties": [ + { + "id": "custom.width", + "value": 111 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "MAC" + }, + "properties": [ + { + "id": "custom.width", + "value": 142 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Platform" + }, + "properties": [ + { + "id": "custom.width", + "value": 127 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Software ID" + }, + "properties": [ + { + "id": "custom.width", + "value": 136 + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 45 + }, + "id": 1652, + "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "frameIndex": 0, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Neighbor index" + } + ] + }, + "pluginVersion": "9.0.5", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrNeighborInterfaceID{instance='$instance'}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrNeighborIdentity{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrNeighborIpAddress{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrNeighborMacAddress{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrNeighborPlatform{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrNeighborSoftwareID{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrNeighborVersion{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "G" + } + ], + "title": "Neighbors", + "transformations": [ + { + "id": "seriesToColumns", + "options": { + "byField": "mtxrNeighborIndex" + } + }, + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Value #A": true, + "Value #B": true, + "Value #C": true, + "Value #D": true, + "Value #E": true, + "Value #F": true, + "Value #G": true, + "__name__": true, + "instance": true, + "job": true, + "mtxrNeighborIndex": false + }, + "indexByName": {}, + "renameByName": { + "Time": "", + "Value #A": "", + "Value #B": "", + "Value #C": "", + "Value #D": "", + "Value #E": "", + "Value #F": "", + "job": "", + "mtxrNeighborIdentity": "identity", + "mtxrNeighborIndex": "Neighbor index", + "mtxrNeighborIpAddress": "IP", + "mtxrNeighborMacAddress": "MAC", + "mtxrNeighborPlatform": "Platform", + "mtxrNeighborSoftwareID": "Software ID", + "mtxrNeighborVersion": "Firmware version" + } + } + } + ], + "type": "table" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 51 + }, + "id": 1642, + "panels": [ + { + "aliasColors": { + "CCQ - 1": "#ff2e63", + "CCQ - 2": "#08d9d6", + "CCQ - Tilda": "#ff2e63", + "Noise - 1": "#ff2e63", + "Noise - 2": "#08d9d6", + "Noise - Tilda": "light-blue", + "Noise - Tilda_5": "dark-purple", + "TX CCQ - Tilda": "#ff2e63" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 3 + }, + "hiddenSeries": false, + "id": 1270, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeatDirection": "h", + "seriesOverrides": [ + { + "alias": "2", + "yaxis": 1 + }, + { + "alias": "mtxrWlApNoiseFloor{instance=\"192.168.5.1\", job=\"Mikrotik\", mtxrWlApIndex=\"2\"}", + "yaxis": 2 + }, + { + "alias": "mtxrWlApNoiseFloor{instance=\"192.168.5.1\", job=\"Mikrotik\", mtxrWlApIndex=\"11\"}", + "yaxis": 2 + }, + { + "alias": "mtxrWlApNoiseFloor{instance=\"192.168.5.1\", job=\"Mikrotik\", mtxrWlApIndex=\"1\"}", + "yaxis": 2 + }, + { + "alias": "Noise 1", + "yaxis": 2 + }, + { + "alias": "Noise 11", + "yaxis": 2 + }, + { + "alias": "Noise 2", + "yaxis": 2 + }, + { + "alias": "Noise - 2", + "yaxis": 2 + }, + { + "alias": "Noise - 11", + "yaxis": 2 + }, + { + "alias": "Noise - 1", + "yaxis": 2 + }, + { + "alias": "Noise - Tilda", + "yaxis": 2 + }, + { + "alias": "Noise - Tilda_5", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(mtxrWlApOverallTxCCQ{instance='$instance'}*on(mtxrWlApIndex)group_left(mtxrWlApSsid)mtxrWlApSsid{instance='$instance'})", + "hide": false, + "interval": "", + "legendFormat": "TX CCQ - {{mtxrWlApSsid}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(mtxrWlApNoiseFloor{instance='$instance'}*on(mtxrWlApIndex)group_left(mtxrWlApSsid)mtxrWlApSsid{instance='$instance'})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Noise - {{mtxrWlApSsid}}", + "refId": "B" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Wi-Fi Overall Tx CCQ & Noise", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "label": "", + "logBase": 1, + "show": true + }, + { + "format": "dBm", + "label": "", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": true, + "alignLevel": 0 + } + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "1" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#ff2e63", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#08d9d6", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "DHCP Leases count" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-green", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Tilda" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#ff2e63", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 3 + }, + "id": 1261, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max", + "min" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.2.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(mtxrWlApAuthClientCount{instance='$instance'}*on(mtxrWlApIndex)group_left(mtxrWlApSsid)mtxrWlApSsid{instance='$instance'})", + "hide": false, + "interval": "", + "legendFormat": "{{mtxrWlApSsid}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrDHCPLeaseCount{instance='$instance'}", + "hide": false, + "interval": "", + "legendFormat": "DHCP Leases", + "refId": "B" + } + ], + "title": "Wi-Fi Client count", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "MHz" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "1" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#ff2e63", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#08d9d6", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "DHCP Leases count" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "dark-green", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Tilda" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#ff2e63", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 3 + }, + "id": 1613, + "options": { + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.2.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlApFreq{instance='$instance'}*on(mtxrWlApIndex)group_left(mtxrWlApSsid)mtxrWlApSsid{instance='$instance'}", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "{{mtxrWlApSsid}}", + "refId": "A" + } + ], + "title": "Wi-Fi frequency", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Wireless registration table. It is indexed by remote mac-address and local interface index.\n\nMeasured in dB, if value does not exist it is indicated with 0", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "displayMode": "auto", + "filterable": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "mac address" + }, + "properties": [ + { + "id": "custom.width" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Interface" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Signal-to-Noise" + }, + "properties": [ + { + "id": "custom.width", + "value": 200 + }, + { + "id": "unit", + "value": "dB" + }, + { + "id": "custom.displayMode", + "value": "lcd-gauge" + }, + { + "id": "min", + "value": 5 + }, + { + "id": "max", + "value": 50 + }, + { + "id": "color", + "value": { + "mode": "continuous-RdYlGr" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Strength" + }, + "properties": [ + { + "id": "custom.width", + "value": 200 + }, + { + "id": "unit", + "value": "dBm" + }, + { + "id": "custom.displayMode", + "value": "lcd-gauge" + }, + { + "id": "min", + "value": -85 + }, + { + "id": "max", + "value": -30 + }, + { + "id": "color", + "value": { + "mode": "continuous-RdYlGr" + } + } + ] + }, + { + "matcher": { + "id": "byType", + "options": "number" + }, + "properties": [ + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byType", + "options": "string" + }, + "properties": [ + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Tx" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + }, + { + "id": "unit", + "value": "bytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Rx" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + }, + { + "id": "unit", + "value": "bytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Tx rate" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + }, + { + "id": "unit", + "value": "bps" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Rx rate" + }, + "properties": [ + { + "id": "custom.width" + }, + { + "id": "unit", + "value": "bps" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Uptime" + }, + "properties": [ + { + "id": "custom.width", + "value": 90 + }, + { + "id": "decimals", + "value": 1 + }, + { + "id": "unit", + "value": "timeticks" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Value #I" + }, + "properties": [ + { + "id": "custom.width", + "value": 263 + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 1643, + "links": [], + "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabAddr{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabSignalToNoise{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabStrength{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabTxBytes{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabRxBytes{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabTxRate{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabRxRate{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabUptime{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "H" + } + ], + "title": "Wi-Fi Clients", + "transformations": [ + { + "id": "seriesToColumns", + "options": { + "byField": "mtxrWlRtabAddr" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true, + "Value #A": true, + "__name__": true, + "__name__ 1": true, + "__name__ 2": true, + "__name__ 3": true, + "__name__ 4": true, + "__name__ 5": true, + "__name__ 6": true, + "__name__ 7": true, + "__name__ 8": true, + "instance": true, + "instance 1": true, + "instance 2": true, + "instance 3": true, + "instance 4": true, + "instance 5": true, + "instance 6": true, + "instance 7": true, + "instance 8": true, + "job": true, + "job 1": true, + "job 2": true, + "job 3": true, + "job 4": true, + "job 5": true, + "job 6": true, + "job 7": true, + "job 8": true, + "mtxrWlRtabIface 1": false, + "mtxrWlRtabIface 2": true, + "mtxrWlRtabIface 3": true, + "mtxrWlRtabIface 4": true, + "mtxrWlRtabIface 5": true, + "mtxrWlRtabIface 6": true, + "mtxrWlRtabIface 7": true, + "mtxrWlRtabIface 8": true + }, + "indexByName": { + "Time": 5, + "Value #A": 9, + "Value #B": 4, + "Value #C": 3, + "Value #D": 12, + "Value #E": 13, + "Value #F": 10, + "Value #G": 11, + "Value #H": 0, + "__name__": 6, + "instance": 7, + "job": 8, + "mtxrWlRtabAddr": 1, + "mtxrWlRtabIface": 2 + }, + "renameByName": { + "Time": "", + "Value #A": "", + "Value #B": "Signal-to-Noise", + "Value #C": "Strength", + "Value #D": "Tx", + "Value #E": "Rx", + "Value #F": "Tx rate", + "Value #G": "Rx rate", + "Value #H": "Uptime", + "job": "", + "mtxrWlRtabAddr": "Mac address", + "mtxrWlRtabIface": "Interface", + "mtxrWlRtabIface 1": "wifi interface id" + } + } + } + ], + "type": "table" + }, + { + "cards": {}, + "color": { + "cardColor": "#C4162A", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "max": -85, + "min": -30, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Signal Strength: signal strength in dBm (if first ppp-client modem supports)", + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 20 + }, + "heatmap": {}, + "hideZeroBuckets": false, + "highlightCards": true, + "id": 1647, + "legend": { + "show": false + }, + "links": [], + "pluginVersion": "7.5.5", + "repeatDirection": "h", + "reverseYBuckets": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabStrength{instance='$instance'}", + "hide": false, + "interval": "", + "legendFormat": "{{mtxrWlRtabAddr}}", + "refId": "A" + } + ], + "title": "History Wi-Fi Strength", + "tooltip": { + "show": true, + "showHistogram": true + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketSize": "2m", + "yAxis": { + "format": "dBm", + "logBase": 1, + "show": true + }, + "yBucketBound": "auto", + "yBucketSize": 2 + }, + { + "cards": {}, + "color": { + "cardColor": "#C4162A", + "colorScale": "sqrt", + "colorScheme": "interpolateRdYlGn", + "exponent": 0.5, + "max": 5, + "min": 50, + "mode": "spectrum" + }, + "dataFormat": "tsbuckets", + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Measured in dB, if value does not exist it is indicated with 0", + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 20 + }, + "heatmap": {}, + "hideZeroBuckets": false, + "highlightCards": true, + "id": 1648, + "legend": { + "show": false + }, + "links": [], + "pluginVersion": "7.5.5", + "repeatDirection": "h", + "reverseYBuckets": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlRtabSignalToNoise{instance='$instance'}", + "hide": false, + "interval": "", + "legendFormat": "{{mtxrWlRtabAddr}}", + "refId": "A" + } + ], + "title": "History Wi-Fi Signal-to-Noise", + "tooltip": { + "show": true, + "showHistogram": true + }, + "type": "heatmap", + "xAxis": { + "show": true + }, + "xBucketSize": "2m", + "yAxis": { + "format": "dB", + "logBase": 1, + "show": true + }, + "yBucketBound": "auto", + "yBucketSize": 2 + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "Wireless", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 52 + }, + "id": 1676, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Wireless registration table entry count", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 0, + "y": 4 + }, + "id": 1646, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabEntryCount{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "CAPsMAN client count", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "displayMode": "auto" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Remote address" + }, + "properties": [ + { + "id": "custom.width", + "value": 187 + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "remote index" + }, + "properties": [ + { + "id": "custom.width", + "value": 110 + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Remote name" + }, + "properties": [ + { + "id": "custom.width" + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Remote address/port" + }, + "properties": [ + { + "id": "custom.width", + "value": 199 + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "state" + }, + "properties": [ + { + "id": "custom.width", + "value": 74 + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Remote Radios" + }, + "properties": [ + { + "id": "custom.width", + "value": 122 + }, + { + "id": "custom.align", + "value": "center" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 11, + "x": 3, + "y": 4 + }, + "id": 1681, + "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "state" + } + ] + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRemoteAddress{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRemoteName{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRemoteRadios{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRemoteState{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + } + ], + "title": "Remote CAP", + "transformations": [ + { + "id": "seriesToColumns", + "options": { + "byField": "mtxrWlCMRemoteIndex" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Value #A": true, + "Value #B": true, + "Value #D": true, + "__name__ 1": true, + "__name__ 2": true, + "__name__ 3": true, + "__name__ 4": true, + "instance 1": true, + "instance 2": true, + "instance 3": true, + "instance 4": true, + "job 1": true, + "job 2": true, + "job 3": true, + "job 4": true + }, + "indexByName": { + "Time 1": 5, + "Time 2": 10, + "Time 3": 15, + "Time 4": 19, + "Value #A": 9, + "Value #B": 14, + "Value #C": 4, + "Value #D": 23, + "__name__ 1": 6, + "__name__ 2": 11, + "__name__ 3": 16, + "__name__ 4": 20, + "instance 1": 7, + "instance 2": 12, + "instance 3": 17, + "instance 4": 21, + "job 1": 8, + "job 2": 13, + "job 3": 18, + "job 4": 22, + "mtxrWlCMRemoteAddress": 3, + "mtxrWlCMRemoteIndex": 1, + "mtxrWlCMRemoteName": 2, + "mtxrWlCMRemoteState": 0 + }, + "renameByName": { + "Time 1": "", + "Time 4": "", + "Value #C": "Remote Radios", + "instance 4": "", + "mtxrWlCMRemoteAddress": "Remote address/port", + "mtxrWlCMRemoteIndex": "remote index", + "mtxrWlCMRemoteName": "Remote name", + "mtxrWlCMRemoteState": "state" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "displayMode": "auto" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Index" + }, + "properties": [ + { + "id": "custom.width", + "value": 70 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Reg Client Count" + }, + "properties": [ + { + "id": "custom.width", + "value": 132 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Auth clients count" + }, + "properties": [ + { + "id": "custom.width", + "value": 133 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Interface state" + }, + "properties": [ + { + "id": "custom.width", + "value": 120 + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 10, + "x": 14, + "y": 4 + }, + "id": 1679, + "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMState{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRegClientCount{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMChannel{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMAuthClientCount{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabSsid{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + } + ], + "title": "CAP interface", + "transformations": [ + { + "id": "seriesToColumns", + "options": { + "byField": "mtxrWlCMIndex" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Value #A": true, + "Value #B": false, + "Value #C": true, + "__name__ 1": true, + "__name__ 2": true, + "__name__ 3": true, + "__name__ 4": true, + "instance 1": true, + "instance 2": true, + "instance 3": true, + "instance 4": true, + "job 1": true, + "job 2": true, + "job 3": true, + "job 4": true + }, + "indexByName": { + "Time 1": 1, + "Time 2": 7, + "Time 3": 13, + "Time 4": 19, + "Value #A": 6, + "Value #B": 11, + "Value #C": 18, + "Value #D": 12, + "__name__ 1": 2, + "__name__ 2": 8, + "__name__ 3": 14, + "__name__ 4": 20, + "instance 1": 3, + "instance 2": 9, + "instance 3": 15, + "instance 4": 21, + "job 1": 4, + "job 2": 10, + "job 3": 16, + "job 4": 22, + "mtxrWlCMChannel": 17, + "mtxrWlCMIndex": 0, + "mtxrWlCMState": 5 + }, + "renameByName": { + "Time 1": "", + "Time 4": "", + "Value #A": "", + "Value #B": "Reg Client Count", + "Value #C": "", + "Value #D": "Auth clients count", + "__name__ 4": "", + "instance 4": "", + "job 1": "", + "job 2": "", + "job 4": "", + "mtxrWlCMChannel": "Channel for master only", + "mtxrWlCMIndex": "Index", + "mtxrWlCMState": "Interface state" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Wireless CAPSMAN remote-cap entry count", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 0, + "y": 8 + }, + "id": 1680, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMREntryCount{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "remote-cap entry count", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "displayMode": "auto" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Mac address" + }, + "properties": [ + { + "id": "custom.width", + "value": 130 + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Uptime" + }, + "properties": [ + { + "id": "custom.align", + "value": "center" + }, + { + "id": "unit", + "value": "timeticks" + }, + { + "id": "custom.width", + "value": 106 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Strength" + }, + "properties": [ + { + "id": "unit", + "value": "dBm" + }, + { + "id": "custom.displayMode", + "value": "lcd-gauge" + }, + { + "id": "min", + "value": -85 + }, + { + "id": "max", + "value": -30 + }, + { + "id": "color", + "value": { + "mode": "continuous-RdYlGr" + } + }, + { + "id": "custom.width", + "value": 250 + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Rx Rate" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + }, + { + "id": "unit", + "value": "bps" + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Rx Bytes" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + }, + { + "id": "unit", + "value": "bytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Rx Packets" + }, + "properties": [ + { + "id": "custom.width", + "value": 145 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Tx Rate" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + }, + { + "id": "unit", + "value": "bps" + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Tx Bytes" + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + }, + { + "id": "unit", + "value": "bytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "SSID" + }, + "properties": [ + { + "id": "custom.width" + }, + { + "id": "custom.align", + "value": "center" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "interface index" + }, + "properties": [ + { + "id": "custom.width", + "value": 115 + }, + { + "id": "custom.align", + "value": "center" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 1678, + "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "SSID" + } + ] + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabAddr{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabEapIdent{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabRxBytes{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabRxPackets{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabRxRate{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabRxStrength{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabSsid{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabTxBytes{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabTxPackets{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabTxRate{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "J" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabTxStrength{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWlCMRtabUptime{instance='$instance'}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "L" + } + ], + "title": "Clients", + "transformations": [ + { + "id": "seriesToColumns", + "options": { + "byField": "mtxrWlCMRtabAddr" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time 1": true, + "Time 10": true, + "Time 11": true, + "Time 12": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true, + "Time 9": true, + "Value #A": true, + "Value #B": true, + "Value #G": true, + "Value #I": false, + "Value #J": false, + "Value #K": true, + "__name__ 1": true, + "__name__ 10": true, + "__name__ 11": true, + "__name__ 12": true, + "__name__ 2": true, + "__name__ 3": true, + "__name__ 4": true, + "__name__ 5": true, + "__name__ 6": true, + "__name__ 7": true, + "__name__ 8": true, + "__name__ 9": true, + "instance 1": true, + "instance 10": true, + "instance 11": true, + "instance 12": true, + "instance 2": true, + "instance 3": true, + "instance 4": true, + "instance 5": true, + "instance 6": true, + "instance 7": true, + "instance 8": true, + "instance 9": true, + "job 1": true, + "job 10": true, + "job 11": true, + "job 12": true, + "job 2": true, + "job 3": true, + "job 4": true, + "job 5": true, + "job 6": true, + "job 7": true, + "job 8": true, + "job 9": true, + "mtxrWlCMRtabAddr": false, + "mtxrWlCMRtabIface 10": true, + "mtxrWlCMRtabIface 11": true, + "mtxrWlCMRtabIface 12": true, + "mtxrWlCMRtabIface 2": true, + "mtxrWlCMRtabIface 3": true, + "mtxrWlCMRtabIface 4": true, + "mtxrWlCMRtabIface 5": true, + "mtxrWlCMRtabIface 6": true, + "mtxrWlCMRtabIface 7": true, + "mtxrWlCMRtabIface 8": true, + "mtxrWlCMRtabIface 9": true, + "mtxrWlCMRtabSsid": false + }, + "indexByName": { + "Time 1": 12, + "Time 10": 59, + "Time 11": 64, + "Time 12": 69, + "Time 2": 17, + "Time 3": 23, + "Time 4": 28, + "Time 5": 33, + "Time 6": 38, + "Time 7": 43, + "Time 8": 49, + "Time 9": 54, + "Value #A": 16, + "Value #B": 22, + "Value #C": 7, + "Value #D": 9, + "Value #E": 5, + "Value #F": 4, + "Value #G": 48, + "Value #H": 8, + "Value #I": 10, + "Value #J": 6, + "Value #K": 11, + "Value #L": 3, + "__name__ 1": 13, + "__name__ 10": 60, + "__name__ 11": 65, + "__name__ 12": 70, + "__name__ 2": 18, + "__name__ 3": 24, + "__name__ 4": 29, + "__name__ 5": 34, + "__name__ 6": 39, + "__name__ 7": 44, + "__name__ 8": 50, + "__name__ 9": 55, + "instance 1": 14, + "instance 10": 61, + "instance 11": 66, + "instance 12": 71, + "instance 2": 19, + "instance 3": 25, + "instance 4": 30, + "instance 5": 35, + "instance 6": 40, + "instance 7": 45, + "instance 8": 51, + "instance 9": 56, + "job 1": 15, + "job 10": 62, + "job 11": 67, + "job 12": 72, + "job 2": 20, + "job 3": 26, + "job 4": 31, + "job 5": 36, + "job 6": 41, + "job 7": 46, + "job 8": 52, + "job 9": 57, + "mtxrWlCMRtabAddr": 2, + "mtxrWlCMRtabIface 1": 1, + "mtxrWlCMRtabIface 10": 63, + "mtxrWlCMRtabIface 11": 68, + "mtxrWlCMRtabIface 12": 73, + "mtxrWlCMRtabIface 2": 21, + "mtxrWlCMRtabIface 3": 27, + "mtxrWlCMRtabIface 4": 32, + "mtxrWlCMRtabIface 5": 37, + "mtxrWlCMRtabIface 6": 42, + "mtxrWlCMRtabIface 7": 47, + "mtxrWlCMRtabIface 8": 53, + "mtxrWlCMRtabIface 9": 58, + "mtxrWlCMRtabSsid": 0 + }, + "renameByName": { + "Time 1": "", + "Value #C": "Rx Bytes", + "Value #D": "Rx Packets", + "Value #E": "Rx Rate", + "Value #F": "Strength", + "Value #H": "Tx Bytes", + "Value #I": "Tx Packets", + "Value #J": "Tx Rate", + "Value #K": "Tx Strength", + "Value #L": "Uptime", + "mtxrWlCMRtabAddr": "Mac address", + "mtxrWlCMRtabIface 1": "interface index", + "mtxrWlCMRtabSsid": "SSID" + } + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "field": "SSID" + } + ] + } + } + ], + "type": "table" + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "CAPsMAN", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 53 + }, + "id": 1705, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 5 + }, + "id": 1713, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "name" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GSsid{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{mtxrWl60GSsid}}", + "refId": "A" + } + ], + "title": "ssid", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 5 + }, + "id": 1706, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GFreq{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Frequency", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "disconnected" + }, + "1": { + "index": 1, + "text": "connected" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red" + }, + { + "color": "#299c46", + "value": 1 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 8, + "y": 5 + }, + "id": 1707, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GConnected{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Connected", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "0": { + "index": 0, + "text": "AP Bridge" + }, + "1": { + "index": 1, + "text": "Station Bridge" + }, + "2": { + "index": 2, + "text": "Sniff" + }, + "3": { + "index": 3, + "text": "Bridge" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 12, + "y": 5 + }, + "id": 1709, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GMode{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Mode", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 5 + }, + "id": 1712, + "options": { + "legend": { + "calcs": [ + "lastNotNull", + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.2.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GRssi{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "RSSI", + "refId": "A" + } + ], + "title": "RSSI", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 9 + }, + "id": 1710, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GPhyRate{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "PhyRate", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 2, + "y": 9 + }, + "id": 1714, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GTxSector{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "TxSector", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 4, + "y": 9 + }, + "id": 1716, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GSignal{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Signal", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 9 + }, + "id": 1715, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/.*/", + "values": false + }, + "text": {}, + "textMode": "value_and_name" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GTxSectorInfo{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "TxSectorInfo", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Modulation and Coding Scheme", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 8, + "y": 9 + }, + "id": 1708, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GMcs{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "MCS (Modulation and Coding Scheme)", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 12, + "y": 9 + }, + "id": 1711, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "name" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWl60GRemote{instance='$instance'}", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "{{mtxrWl60GRemote}}", + "refId": "A" + } + ], + "title": "Remote MAC", + "type": "stat" + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "W60G", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 54 + }, + "id": 1673, + "panels": [ + { + "aliasColors": { + "CCQ - 1": "#ff2e63", + "CCQ - 2": "#08d9d6", + "CCQ - Tilda": "#ff2e63", + "Noise - 1": "#ff2e63", + "Noise - 2": "#08d9d6", + "Noise - Tilda": "light-blue", + "Noise - Tilda_5": "dark-purple", + "TX CCQ - Tilda": "#ff2e63" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Signal Strength: signal strength in dBm (if first ppp-client modem supports)\n\nModem Signal: signal EC/IO in dB (if first ppp-client modem supports)", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 1640, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideZero": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 2, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "8.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeatDirection": "h", + "seriesOverrides": [ + { + "alias": "2", + "yaxis": 1 + }, + { + "alias": "mtxrWlApNoiseFloor{instance=\"192.168.5.1\", job=\"Mikrotik\", mtxrWlApIndex=\"2\"}", + "yaxis": 2 + }, + { + "alias": "mtxrWlApNoiseFloor{instance=\"192.168.5.1\", job=\"Mikrotik\", mtxrWlApIndex=\"11\"}", + "yaxis": 2 + }, + { + "alias": "mtxrWlApNoiseFloor{instance=\"192.168.5.1\", job=\"Mikrotik\", mtxrWlApIndex=\"1\"}", + "yaxis": 2 + }, + { + "alias": "Noise 1", + "yaxis": 2 + }, + { + "alias": "Noise 11", + "yaxis": 2 + }, + { + "alias": "Noise 2", + "yaxis": 2 + }, + { + "alias": "Noise - 2", + "yaxis": 2 + }, + { + "alias": "Noise - 11", + "yaxis": 2 + }, + { + "alias": "Noise - 1", + "yaxis": 2 + }, + { + "alias": "Noise - Tilda", + "yaxis": 2 + }, + { + "alias": "Noise - Tilda_5", + "yaxis": 2 + }, + { + "alias": "Modem Signal", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWirelessModemSignalStrength{instance='$instance'}", + "hide": false, + "interval": "", + "legendFormat": "Signal Strength", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrWirelessModemSignalECIO{instance='$instance'}", + "hide": false, + "interval": "", + "legendFormat": "Modem Signal", + "refId": "B" + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Modem", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "dBm", + "label": "", + "logBase": 1, + "show": true + }, + { + "format": "dB", + "label": "", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": true, + "alignLevel": 0 + } + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46" + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 6, + "y": 6 + }, + "id": 1674, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.3.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "mtxrUSBPowerReset{instance='$instance'}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "USB Power Reset", + "type": "stat" + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "Modem", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 55 + }, + "id": 1281, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 7 + }, + "id": 1268, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "multi" + } + }, + "pluginVersion": "8.2.1", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueSimpleBytesIn{instance='$instance'}[$__rate_interval])*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{instance='$instance'})*8 ", + "instant": false, + "interval": "", + "legendFormat": "In - {{mtxrQueueSimpleName}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueSimpleBytesOut{instance='$instance'}[$__rate_interval])*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{instance='$instance'})*8", + "instant": false, + "interval": "", + "legendFormat": "Out - {{mtxrQueueSimpleName}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(mtxrQueueSimplePCQQueuesIn{instance='$instance'}*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "PCQ In - {{mtxrQueueSimpleName}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(mtxrQueueSimplePCQQueuesOut{instance='$instance'}*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "PCQ Out - {{mtxrQueueSimpleName}}", + "refId": "C" + } + ], + "title": "All Simple Queue", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Showing values > 0", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 13 + }, + "id": 1282, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.2.1", + "repeat": "queuesimple_name", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueSimpleBytesIn{instance='$instance'}[$__rate_interval])*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{mtxrQueueSimpleName='$queuesimple_name', instance='$instance'})*8", + "instant": false, + "interval": "", + "legendFormat": "In", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueSimpleBytesOut{instance='$instance'}[$__rate_interval])*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{mtxrQueueSimpleName='$queuesimple_name', instance='$instance'})*8", + "instant": false, + "interval": "", + "legendFormat": "Out", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueSimpleDroppedIn{instance='$instance'}[$__rate_interval])*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{mtxrQueueSimpleName='$queuesimple_name', instance='$instance'})", + "format": "time_series", + "hide": false, + "interval": "", + "legendFormat": "Dropped In", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueSimpleDroppedOut{instance='$instance'}[$__rate_interval])*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{mtxrQueueSimpleName='$queuesimple_name', instance='$instance'})", + "hide": false, + "interval": "", + "legendFormat": "Dropped Out ", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(mtxrQueueSimplePCQQueuesIn{instance='$instance'}*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{mtxrQueueSimpleName='$queuesimple_name',instance='$instance'})", + "hide": false, + "interval": "", + "legendFormat": "PCQ-In", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(mtxrQueueSimplePCQQueuesOut{instance='$instance'}*on(mtxrQueueSimpleIndex)group_left(mtxrQueueSimpleName)mtxrQueueSimpleName{mtxrQueueSimpleName='$queuesimple_name',instance='$instance'})", + "hide": false, + "interval": "", + "legendFormat": "PCQ-Out", + "refId": "F" + } + ], + "title": "Queue $queuesimple_name", + "type": "timeseries" + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "Simple Queue (In/Out/Dropped/PCQ)", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 56 + }, + "id": 1548, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 8 + }, + "id": 1510, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "multi" + } + }, + "pluginVersion": "8.2.1", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreeHCBytes{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{instance='$instance'})*8", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Bytes - {{mtxrQueueTreeName}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreePCQQueues{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "PCQ - {{mtxrQueueTreeName}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreeDropped{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Dropped - {{mtxrQueueTreeName}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreePackets{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Packets - {{mtxrQueueTreeName}}", + "refId": "D" + } + ], + "title": "All Tree Queue", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 8 + }, + "id": 1549, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.2.1", + "repeat": "queuetree_name", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreeHCBytes{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{mtxrQueueTreeName='$queuetree_name',instance='$instance'})*8", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Bytes", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreePCQQueues{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{mtxrQueueTreeName='$queuetree_name',instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "PCQ", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreeDropped{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{mtxrQueueTreeName='$queuetree_name',instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Dropped", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(irate(mtxrQueueTreePackets{instance='$instance'}[$__rate_interval])*on(mtxrQueueTreeIndex)group_left(mtxrQueueTreeName)mtxrQueueTreeName{mtxrQueueTreeName='$queuetree_name',instance='$instance'})", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "Packets", + "refId": "E" + } + ], + "title": "Tree Queue $queuetree_name / $queuetree_parent / $queuetree_flow", + "type": "timeseries" + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "Tree Queue (Bytes/PCQ/Dropped/Packets)", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 57 + }, + "id": 1338, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 50, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 11, + "w": 8, + "x": 0, + "y": 9 + }, + "id": 1339, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max", + "min" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + }, + "pluginVersion": "8.2.1", + "repeat": "Interface", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifHCInMulticastPkts{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "In Multicast", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "-irate(ifHCOutMulticastPkts{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "Out Multicast", + "refId": "L" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifHCInBroadcastPkts{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "In Broadcast", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "-irate(ifHCOutBroadcastPkts{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "Out Broadcast", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifHCInUcastPkts{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "In Unicast", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "-irate(ifHCOutUcastPkts{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "Out Unicast", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifInDiscards{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "In Discard", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifOutDiscards{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "Out Discard", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifInErrors{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "In Errors", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifOutErrors{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "Out Errors", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifInUnknownProtos{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "In Unknown Protos", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "-irate(ifOutQLen{ifName=~'$Interface',instance='$instance'}[$__rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "Out queue length", + "refId": "J" + } + ], + "title": "Interface \"$Interface\"", + "type": "timeseries" + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "*cast/Dascard/Errors/Unknown Protos/Queue length", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 58 + }, + "id": 1285, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "opacity", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "smooth", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "bps" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "In" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#6afff3", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Out" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#bf71ff", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 10 + }, + "id": 1286, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max", + "min" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "multi" + } + }, + "pluginVersion": "8.2.1", + "repeat": "Interface", + "repeatDirection": "h", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(ifHCInOctets{ifName=~'$Interface',instance='$instance'}[$__rate_interval])*8", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "In", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "-irate(ifHCOutOctets{ifName=~'$Interface',instance='$instance'}[$__rate_interval])*8", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Out", + "refId": "B" + } + ], + "title": "Traffic \"$Interface\"", + "type": "timeseries" + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "refId": "A" + } + ], + "title": "Interfaces Traffic", + "type": "row" + } + ], + "refresh": "10s", + "schemaVersion": 36, + "style": "dark", + "tags": [ + "prometheus", + "Mikrotik", + "snmp", + "snmp v3", + "snmp_exporter" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "Prometheus", + "value": "Prometheus" + }, + "hide": 2, + "includeAll": false, + "label": "datasource", + "multi": false, + "name": "DS_PROMETHEUS", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "type": "datasource" + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "label_values(ifHCInOctets, job)", + "hide": 2, + "includeAll": false, + "multi": false, + "name": "Job", + "options": [], + "query": { + "query": "label_values(ifHCInOctets, job)", + "refId": "Prometheus-Job-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "query_result(ifInOctets{job=\"snmp-exporter\"})", + "hide": 0, + "includeAll": false, + "multi": false, + "name": "instance", + "options": [], + "query": { + "query": "label_values(ifHCInOctets, instance)", + "refId": "Prometheus-instance-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 3, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "label_values(ifHighSpeed{instance='$instance'},ifIndex)", + "hide": 2, + "includeAll": false, + "label": "", + "multi": false, + "name": "index", + "options": [], + "query": { + "query": "label_values(ifHighSpeed{instance='$instance'},ifIndex)", + "refId": "Prometheus-index-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 3, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "query_result(sort(ifIndex{ifName=~'^(ether).+',instance='$instance'}) or sort(ifIndex{ifName=~'^(sfp|wlan).+',instance='$instance'}) or sort(ifIndex{ifName=~'^bridge.+',instance='$instance'}) or sort(ifIndex{ifName!~'^(ether|bridge).+',instance='$instance'}) )", + "hide": 0, + "includeAll": true, + "multi": false, + "name": "Interface", + "options": [], + "query": { + "query": "query_result(sort(ifIndex{ifName=~'^(ether).+',instance='$instance'}) or sort(ifIndex{ifName=~'^(sfp|wlan).+',instance='$instance'}) or sort(ifIndex{ifName=~'^bridge.+',instance='$instance'}) or sort(ifIndex{ifName!~'^(ether|bridge).+',instance='$instance'}) )", + "refId": "Prometheus-Interface-Variable-Query" + }, + "refresh": 1, + "regex": "/ifName=\"(.*?)\"/", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "query_result(ifHCInOctets{ifName=\"$Interface\",instance=\"$instance\"})", + "hide": 2, + "includeAll": false, + "multi": false, + "name": "desc", + "options": [], + "query": { + "query": "query_result(ifHCInOctets{ifName=\"$Interface\",instance=\"$instance\"})", + "refId": "Prometheus-desc-Variable-Query" + }, + "refresh": 1, + "regex": "/ifAlias=\"(.*)\",ifDescr/", + "skipUrlSync": false, + "sort": 4, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "Null", + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "query_result((mtxrQueueSimplePacketsIn * on (mtxrQueueSimpleIndex) group_left(mtxrQueueSimpleName) mtxrQueueSimpleName{instance='$instance',}))", + "hide": 2, + "includeAll": true, + "label": "", + "multi": false, + "name": "queuesimple_name", + "options": [], + "query": { + "query": "query_result((mtxrQueueSimplePacketsIn * on (mtxrQueueSimpleIndex) group_left(mtxrQueueSimpleName) mtxrQueueSimpleName{instance='$instance',}))", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/mtxrQueueSimpleName=\"(.*)\"/", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "Null", + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "query_result((mtxrQueueTreePackets * on (mtxrQueueTreeIndex) group_left(mtxrQueueTreeName) mtxrQueueTreeName{instance='$instance',}))", + "hide": 1, + "includeAll": true, + "label": "", + "multi": false, + "name": "queuetree_name", + "options": [], + "query": { + "query": "query_result((mtxrQueueTreePackets * on (mtxrQueueTreeIndex) group_left(mtxrQueueTreeName) mtxrQueueTreeName{instance='$instance',}))", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/mtxrQueueTreeName=\"(.*)\"/", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "Null", + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "query_result((mtxrQueueTreeParentIndex * on (mtxrQueueTreeIndex) group_left(mtxrQueueTreeName) mtxrQueueTreeName{instance='$instance',}))", + "hide": 1, + "includeAll": true, + "label": "", + "multi": false, + "name": "queuetree_parent", + "options": [], + "query": { + "query": "query_result((mtxrQueueTreeParentIndex * on (mtxrQueueTreeIndex) group_left(mtxrQueueTreeName) mtxrQueueTreeName{instance='$instance',}))", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/mtxrQueueTreeName=\"(.*)\"/", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": {}, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "definition": "query_result((mtxrQueueTreeParentIndex * on (mtxrQueueTreeName) group_left(mtxrQueueTreeIndex) mtxrQueueTreeIndex{instance='$instance',}))", + "hide": 1, + "includeAll": true, + "label": "", + "multi": false, + "name": "queuetree_flow", + "options": [], + "query": { + "query": "query_result((mtxrQueueTreeParentIndex * on (mtxrQueueTreeName) group_left(mtxrQueueTreeIndex) mtxrQueueTreeIndex{instance='$instance',}))", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/mtxrQueueTreeIndex=\"(.*)\",instance/", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Mikrotik monitoring", + "uid": "nR3NRDGaz", + "version": 1, + "weekStart": "" +} diff --git a/grafana/provisioning/dashboards/dashboard.yml b/grafana/provisioning/dashboards/dashboard.yml new file mode 100644 index 0000000..2e2dee6 --- /dev/null +++ b/grafana/provisioning/dashboards/dashboard.yml @@ -0,0 +1,11 @@ +apiVersion: 1 + +providers: +- name: 'Prometheus' + orgId: 1 + folder: '' + type: file + disableDeletion: false + editable: true + options: + path: /etc/grafana/provisioning/dashboards \ No newline at end of file diff --git a/grafana/provisioning/datasources/datasource.yml b/grafana/provisioning/datasources/datasource.yml new file mode 100644 index 0000000..d826f05 --- /dev/null +++ b/grafana/provisioning/datasources/datasource.yml @@ -0,0 +1,50 @@ +# config file version +apiVersion: 1 + +# list of datasources that should be deleted from the database +deleteDatasources: + - name: Prometheus + orgId: 1 + +# list of datasources to insert/update depending +# whats available in the database +datasources: + # name of the datasource. Required +- name: Prometheus + # datasource type. Required + type: prometheus + # access mode. direct or proxy. Required + access: proxy + # org id. will default to orgId 1 if not specified + orgId: 1 + # url + url: http://192.168.50.102:9090 # prometheus IP + # database password, if used + password: + # database user, if used + user: + # database name, if used + database: + # enable/disable basic auth + basicAuth: false + # basic auth username, if used + basicAuthUser: + # basic auth password, if used + basicAuthPassword: + # enable/disable with credentials headers + withCredentials: + # mark as default datasource. Max one per org + isDefault: true + # fields that will be converted to json and stored in json_data + jsonData: + graphiteVersion: "1.1" + tlsAuth: false + tlsAuthWithCACert: false + # json object of data that will be encrypted. + secureJsonData: + tlsCACert: "..." + tlsClientCert: "..." + tlsClientKey: "..." + version: 1 + # allow users to edit datasources from the UI. + editable: true \ No newline at end of file diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml new file mode 100644 index 0000000..4de348b --- /dev/null +++ b/prometheus/prometheus.yml @@ -0,0 +1,54 @@ +# Sample config for Prometheus. + +global: + scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. + evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. + # scrape_timeout is set to the global default (10s). + + # Attach these labels to any time series or alerts when communicating with + # external systems (federation, remote storage, Alertmanager). + external_labels: + monitor: 'Mikrotik' + +# Alertmanager configuration +alerting: + alertmanagers: + - static_configs: + - targets: ['localhost:9093'] + +# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. +rule_files: + # - "first_rules.yml" + # - "second_rules.yml" + +# A scrape configuration containing exactly one endpoint to scrape: +# Here it's Prometheus itself. +scrape_configs: + # The job name is added as a label `job=` to any timeseries scraped from this config. + - job_name: 'prometheus' + + # Override the global default and scrape targets from this job every 5 seconds. + scrape_interval: 10s + scrape_timeout: 10s + tls_config: + insecure_skip_verify: true + # metrics_path defaults to '/metrics' + # scheme defaults to 'http'. + + #static_configs: + #- targets: ['localhost:9090'] + + - job_name: Mikrotik + static_configs: + - targets: + - 192.168.1.33 # mikrotik_ip + metrics_path: /snmp + params: + module: [mikrotik] + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ + replacement: 192.168.50.101:9116 # The SNMP exporter's real hostname:port. diff --git a/snmp/snmp.yml b/snmp/snmp.yml new file mode 100644 index 0000000..1f7a912 --- /dev/null +++ b/snmp/snmp.yml @@ -0,0 +1,4387 @@ + # WARNING: This file was auto-generated using snmp_exporter generator, manual changes will be lost. +auths: + public_v2: + community: public + security_level: noAuthNoPriv + auth_protocol: MD5 + priv_protocol: DES + version: 2 +modules: + mikrotik: + walk: + - 1.3.6.1.2.1.2 + - 1.3.6.1.2.1.25 + - 1.3.6.1.2.1.31 + - 1.3.6.1.4.1.14988 + - 1.3.6.1.4.1.2021.10.1.1 + - 1.3.6.1.4.1.2021.10.1.2 + - 1.3.6.1.2.1.1.5.0 + get: + - 1.3.6.1.2.1.1.1.0 + - 1.3.6.1.2.1.1.3.0 + metrics: + - name: sysDescr + oid: 1.3.6.1.2.1.1.1 + type: DisplayString + help: A textual description of the entity - 1.3.6.1.2.1.1.1 + - name: sysIdentity + oid: 1.3.6.1.2.1.1.5.0 + type: DisplayString + help: A textual description of the system identity - 1.3.6.1.2.1.1.5.0 + - name: sysUpTime + oid: 1.3.6.1.2.1.1.3 + type: gauge + help: The time (in hundredths of a second) since the network management portion + of the system was last re-initialized. - 1.3.6.1.2.1.1.3 + - name: ifNumber + oid: 1.3.6.1.2.1.2.1 + type: gauge + help: The number of network interfaces (regardless of their current state) present + on this system. - 1.3.6.1.2.1.2.1 + - name: ifIndex + oid: 1.3.6.1.2.1.2.2.1.1 + type: gauge + help: A unique value, greater than zero, for each interface - 1.3.6.1.2.1.2.2.1.1 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifDescr + oid: 1.3.6.1.2.1.2.2.1.2 + type: DisplayString + help: A textual string containing information about the interface - 1.3.6.1.2.1.2.2.1.2 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifType + oid: 1.3.6.1.2.1.2.2.1.3 + type: EnumAsInfo + help: The type of interface - 1.3.6.1.2.1.2.2.1.3 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: other + 2: regular1822 + 3: hdh1822 + 4: ddnX25 + 5: rfc877x25 + 6: ethernetCsmacd + 7: iso88023Csmacd + 8: iso88024TokenBus + 9: iso88025TokenRing + 10: iso88026Man + 11: starLan + 12: proteon10Mbit + 13: proteon80Mbit + 14: hyperchannel + 15: fddi + 16: lapb + 17: sdlc + 18: ds1 + 19: e1 + 20: basicISDN + 21: primaryISDN + 22: propPointToPointSerial + 23: ppp + 24: softwareLoopback + 25: eon + 26: ethernet3Mbit + 27: nsip + 28: slip + 29: ultra + 30: ds3 + 31: sip + 32: frameRelay + 33: rs232 + 34: para + 35: arcnet + 36: arcnetPlus + 37: atm + 38: miox25 + 39: sonet + 40: x25ple + 41: iso88022llc + 42: localTalk + 43: smdsDxi + 44: frameRelayService + 45: v35 + 46: hssi + 47: hippi + 48: modem + 49: aal5 + 50: sonetPath + 51: sonetVT + 52: smdsIcip + 53: propVirtual + 54: propMultiplexor + 55: ieee80212 + 56: fibreChannel + 57: hippiInterface + 58: frameRelayInterconnect + 59: aflane8023 + 60: aflane8025 + 61: cctEmul + 62: fastEther + 63: isdn + 64: v11 + 65: v36 + 66: g703at64k + 67: g703at2mb + 68: qllc + 69: fastEtherFX + 70: channel + 71: ieee80211 + 72: ibm370parChan + 73: escon + 74: dlsw + 75: isdns + 76: isdnu + 77: lapd + 78: ipSwitch + 79: rsrb + 80: atmLogical + 81: ds0 + 82: ds0Bundle + 83: bsc + 84: async + 85: cnr + 86: iso88025Dtr + 87: eplrs + 88: arap + 89: propCnls + 90: hostPad + 91: termPad + 92: frameRelayMPI + 93: x213 + 94: adsl + 95: radsl + 96: sdsl + 97: vdsl + 98: iso88025CRFPInt + 99: myrinet + 100: voiceEM + 101: voiceFXO + 102: voiceFXS + 103: voiceEncap + 104: voiceOverIp + 105: atmDxi + 106: atmFuni + 107: atmIma + 108: pppMultilinkBundle + 109: ipOverCdlc + 110: ipOverClaw + 111: stackToStack + 112: virtualIpAddress + 113: mpc + 114: ipOverAtm + 115: iso88025Fiber + 116: tdlc + 117: gigabitEthernet + 118: hdlc + 119: lapf + 120: v37 + 121: x25mlp + 122: x25huntGroup + 123: transpHdlc + 124: interleave + 125: fast + 126: ip + 127: docsCableMaclayer + 128: docsCableDownstream + 129: docsCableUpstream + 130: a12MppSwitch + 131: tunnel + 132: coffee + 133: ces + 134: atmSubInterface + 135: l2vlan + 136: l3ipvlan + 137: l3ipxvlan + 138: digitalPowerline + 139: mediaMailOverIp + 140: dtm + 141: dcn + 142: ipForward + 143: msdsl + 144: ieee1394 + 145: if-gsn + 146: dvbRccMacLayer + 147: dvbRccDownstream + 148: dvbRccUpstream + 149: atmVirtual + 150: mplsTunnel + 151: srp + 152: voiceOverAtm + 153: voiceOverFrameRelay + 154: idsl + 155: compositeLink + 156: ss7SigLink + 157: propWirelessP2P + 158: frForward + 159: rfc1483 + 160: usb + 161: ieee8023adLag + 162: bgppolicyaccounting + 163: frf16MfrBundle + 164: h323Gatekeeper + 165: h323Proxy + 166: mpls + 167: mfSigLink + 168: hdsl2 + 169: shdsl + 170: ds1FDL + 171: pos + 172: dvbAsiIn + 173: dvbAsiOut + 174: plc + 175: nfas + 176: tr008 + 177: gr303RDT + 178: gr303IDT + 179: isup + 180: propDocsWirelessMaclayer + 181: propDocsWirelessDownstream + 182: propDocsWirelessUpstream + 183: hiperlan2 + 184: propBWAp2Mp + 185: sonetOverheadChannel + 186: digitalWrapperOverheadChannel + 187: aal2 + 188: radioMAC + 189: atmRadio + 190: imt + 191: mvl + 192: reachDSL + 193: frDlciEndPt + 194: atmVciEndPt + 195: opticalChannel + 196: opticalTransport + 197: propAtm + 198: voiceOverCable + 199: infiniband + 200: teLink + 201: q2931 + 202: virtualTg + 203: sipTg + 204: sipSig + 205: docsCableUpstreamChannel + 206: econet + 207: pon155 + 208: pon622 + 209: bridge + 210: linegroup + 211: voiceEMFGD + 212: voiceFGDEANA + 213: voiceDID + 214: mpegTransport + 215: sixToFour + 216: gtp + 217: pdnEtherLoop1 + 218: pdnEtherLoop2 + 219: opticalChannelGroup + 220: homepna + 221: gfp + 222: ciscoISLvlan + 223: actelisMetaLOOP + 224: fcipLink + 225: rpr + 226: qam + 227: lmp + 228: cblVectaStar + 229: docsCableMCmtsDownstream + 230: adsl2 + 231: macSecControlledIF + 232: macSecUncontrolledIF + 233: aviciOpticalEther + 234: atmbond + 235: voiceFGDOS + 236: mocaVersion1 + 237: ieee80216WMAN + 238: adsl2plus + 239: dvbRcsMacLayer + 240: dvbTdm + 241: dvbRcsTdma + 242: x86Laps + 243: wwanPP + 244: wwanPP2 + 245: voiceEBS + 246: ifPwType + 247: ilan + 248: pip + 249: aluELP + 250: gpon + 251: vdsl2 + 252: capwapDot11Profile + 253: capwapDot11Bss + 254: capwapWtpVirtualRadio + 255: bits + 256: docsCableUpstreamRfPort + 257: cableDownstreamRfPort + 258: vmwareVirtualNic + 259: ieee802154 + 260: otnOdu + 261: otnOtu + 262: ifVfiType + 263: g9981 + 264: g9982 + 265: g9983 + 266: aluEpon + 267: aluEponOnu + 268: aluEponPhysicalUni + 269: aluEponLogicalLink + 270: aluGponOnu + 271: aluGponPhysicalUni + 272: vmwareNicTeam + 277: docsOfdmDownstream + 278: docsOfdmaUpstream + 279: gfast + 280: sdci + 281: xboxWireless + 282: fastdsl + 283: docsCableScte55d1FwdOob + 284: docsCableScte55d1RetOob + 285: docsCableScte55d2DsOob + 286: docsCableScte55d2UsOob + 287: docsCableNdf + 288: docsCableNdr + 289: ptm + 290: ghn + 291: otnOtsi + 292: otnOtuc + 293: otnOduc + 294: otnOtsig + 295: microwaveCarrierTermination + 296: microwaveRadioLinkTerminal + 297: ieee8021axDrni + 298: ax25 + 299: ieee19061nanocom + 300: cpri + 301: omni + 302: roe + - name: ifMtu + oid: 1.3.6.1.2.1.2.2.1.4 + type: gauge + help: The size of the largest packet which can be sent/received on the interface, + specified in octets - 1.3.6.1.2.1.2.2.1.4 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifSpeed + oid: 1.3.6.1.2.1.2.2.1.5 + type: gauge + help: An estimate of the interface's current bandwidth in bits per second - 1.3.6.1.2.1.2.2.1.5 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifPhysAddress + oid: 1.3.6.1.2.1.2.2.1.6 + type: PhysAddress48 + help: The interface's address at its protocol sub-layer - 1.3.6.1.2.1.2.2.1.6 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifAdminStatus + oid: 1.3.6.1.2.1.2.2.1.7 + type: gauge + help: The desired state of the interface - 1.3.6.1.2.1.2.2.1.7 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: up + 2: down + 3: testing + - name: ifOperStatus + oid: 1.3.6.1.2.1.2.2.1.8 + type: gauge + help: The current operational state of the interface - 1.3.6.1.2.1.2.2.1.8 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: up + 2: down + 3: testing + 4: unknown + 5: dormant + 6: notPresent + 7: lowerLayerDown + - name: ifLastChange + oid: 1.3.6.1.2.1.2.2.1.9 + type: gauge + help: The value of sysUpTime at the time the interface entered its current operational + state - 1.3.6.1.2.1.2.2.1.9 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifInOctets + oid: 1.3.6.1.2.1.2.2.1.10 + type: counter + help: The total number of octets received on the interface, including framing + characters - 1.3.6.1.2.1.2.2.1.10 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifInUcastPkts + oid: 1.3.6.1.2.1.2.2.1.11 + type: counter + help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, + which were not addressed to a multicast or broadcast address at this sub-layer + - 1.3.6.1.2.1.2.2.1.11 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifInNUcastPkts + oid: 1.3.6.1.2.1.2.2.1.12 + type: counter + help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, + which were addressed to a multicast or broadcast address at this sub-layer - + 1.3.6.1.2.1.2.2.1.12 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifInDiscards + oid: 1.3.6.1.2.1.2.2.1.13 + type: counter + help: The number of inbound packets which were chosen to be discarded even though + no errors had been detected to prevent their being deliverable to a higher-layer + protocol - 1.3.6.1.2.1.2.2.1.13 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifInErrors + oid: 1.3.6.1.2.1.2.2.1.14 + type: counter + help: For packet-oriented interfaces, the number of inbound packets that contained + errors preventing them from being deliverable to a higher-layer protocol - 1.3.6.1.2.1.2.2.1.14 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifInUnknownProtos + oid: 1.3.6.1.2.1.2.2.1.15 + type: counter + help: For packet-oriented interfaces, the number of packets received via the interface + which were discarded because of an unknown or unsupported protocol - 1.3.6.1.2.1.2.2.1.15 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutOctets + oid: 1.3.6.1.2.1.2.2.1.16 + type: counter + help: The total number of octets transmitted out of the interface, including framing + characters - 1.3.6.1.2.1.2.2.1.16 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutUcastPkts + oid: 1.3.6.1.2.1.2.2.1.17 + type: counter + help: The total number of packets that higher-level protocols requested be transmitted, + and which were not addressed to a multicast or broadcast address at this sub-layer, + including those that were discarded or not sent - 1.3.6.1.2.1.2.2.1.17 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutNUcastPkts + oid: 1.3.6.1.2.1.2.2.1.18 + type: counter + help: The total number of packets that higher-level protocols requested be transmitted, + and which were addressed to a multicast or broadcast address at this sub-layer, + including those that were discarded or not sent - 1.3.6.1.2.1.2.2.1.18 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutDiscards + oid: 1.3.6.1.2.1.2.2.1.19 + type: counter + help: The number of outbound packets which were chosen to be discarded even though + no errors had been detected to prevent their being transmitted - 1.3.6.1.2.1.2.2.1.19 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutErrors + oid: 1.3.6.1.2.1.2.2.1.20 + type: counter + help: For packet-oriented interfaces, the number of outbound packets that could + not be transmitted because of errors - 1.3.6.1.2.1.2.2.1.20 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutQLen + oid: 1.3.6.1.2.1.2.2.1.21 + type: gauge + help: The length of the output packet queue (in packets). - 1.3.6.1.2.1.2.2.1.21 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifSpecific + oid: 1.3.6.1.2.1.2.2.1.22 + type: OctetString + help: A reference to MIB definitions specific to the particular media being used + to realize the interface - 1.3.6.1.2.1.2.2.1.22 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: hrSystemUptime + oid: 1.3.6.1.2.1.25.1.1 + type: gauge + help: The amount of time since this host was last initialized - 1.3.6.1.2.1.25.1.1 + - name: hrSystemDate + oid: 1.3.6.1.2.1.25.1.2 + type: DateAndTime + help: The host's notion of the local date and time of day. - 1.3.6.1.2.1.25.1.2 + - name: hrSystemInitialLoadDevice + oid: 1.3.6.1.2.1.25.1.3 + type: gauge + help: The index of the hrDeviceEntry for the device from which this host is configured + to load its initial operating system configuration (i.e., which operating system + code and/or boot parameters) - 1.3.6.1.2.1.25.1.3 + - name: hrSystemInitialLoadParameters + oid: 1.3.6.1.2.1.25.1.4 + type: OctetString + help: This object contains the parameters (e.g - 1.3.6.1.2.1.25.1.4 + - name: hrSystemNumUsers + oid: 1.3.6.1.2.1.25.1.5 + type: gauge + help: The number of user sessions for which this host is storing state information + - 1.3.6.1.2.1.25.1.5 + - name: hrSystemProcesses + oid: 1.3.6.1.2.1.25.1.6 + type: gauge + help: The number of process contexts currently loaded or running on this system. + - 1.3.6.1.2.1.25.1.6 + - name: hrSystemMaxProcesses + oid: 1.3.6.1.2.1.25.1.7 + type: gauge + help: The maximum number of process contexts this system can support - 1.3.6.1.2.1.25.1.7 + - name: hrMemorySize + oid: 1.3.6.1.2.1.25.2.2 + type: gauge + help: The amount of physical read-write main memory, typically RAM, contained + by the host. - 1.3.6.1.2.1.25.2.2 + - name: hrStorageIndex + oid: 1.3.6.1.2.1.25.2.3.1.1 + type: gauge + help: A unique value for each logical storage area contained by the host. - 1.3.6.1.2.1.25.2.3.1.1 + indexes: + - labelname: hrStorageIndex + type: gauge + lookups: + - labels: + - hrStorageIndex + labelname: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + - name: hrStorageType + oid: 1.3.6.1.2.1.25.2.3.1.2 + type: OctetString + help: The type of storage represented by this entry. - 1.3.6.1.2.1.25.2.3.1.2 + indexes: + - labelname: hrStorageIndex + type: gauge + lookups: + - labels: + - hrStorageIndex + labelname: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + - name: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + help: A description of the type and instance of the storage described by this + entry. - 1.3.6.1.2.1.25.2.3.1.3 + indexes: + - labelname: hrStorageIndex + type: gauge + lookups: + - labels: + - hrStorageIndex + labelname: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + - name: hrStorageAllocationUnits + oid: 1.3.6.1.2.1.25.2.3.1.4 + type: gauge + help: The size, in bytes, of the data objects allocated from this pool - 1.3.6.1.2.1.25.2.3.1.4 + indexes: + - labelname: hrStorageIndex + type: gauge + lookups: + - labels: + - hrStorageIndex + labelname: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + - name: hrStorageSize + oid: 1.3.6.1.2.1.25.2.3.1.5 + type: gauge + help: The size of the storage represented by this entry, in units of hrStorageAllocationUnits + - 1.3.6.1.2.1.25.2.3.1.5 + indexes: + - labelname: hrStorageIndex + type: gauge + lookups: + - labels: + - hrStorageIndex + labelname: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + - name: hrStorageUsed + oid: 1.3.6.1.2.1.25.2.3.1.6 + type: gauge + help: The amount of the storage represented by this entry that is allocated, in + units of hrStorageAllocationUnits. - 1.3.6.1.2.1.25.2.3.1.6 + indexes: + - labelname: hrStorageIndex + type: gauge + lookups: + - labels: + - hrStorageIndex + labelname: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + - name: hrStorageAllocationFailures + oid: 1.3.6.1.2.1.25.2.3.1.7 + type: counter + help: The number of requests for storage represented by this entry that could + not be honored due to not enough storage - 1.3.6.1.2.1.25.2.3.1.7 + indexes: + - labelname: hrStorageIndex + type: gauge + lookups: + - labels: + - hrStorageIndex + labelname: hrStorageDescr + oid: 1.3.6.1.2.1.25.2.3.1.3 + type: DisplayString + - name: hrDeviceIndex + oid: 1.3.6.1.2.1.25.3.2.1.1 + type: gauge + help: A unique value for each device contained by the host - 1.3.6.1.2.1.25.3.2.1.1 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrDeviceType + oid: 1.3.6.1.2.1.25.3.2.1.2 + type: OctetString + help: An indication of the type of device - 1.3.6.1.2.1.25.3.2.1.2 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrDeviceDescr + oid: 1.3.6.1.2.1.25.3.2.1.3 + type: DisplayString + help: A textual description of this device, including the device's manufacturer + and revision, and optionally, its serial number. - 1.3.6.1.2.1.25.3.2.1.3 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrDeviceID + oid: 1.3.6.1.2.1.25.3.2.1.4 + type: OctetString + help: The product ID for this device. - 1.3.6.1.2.1.25.3.2.1.4 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrDeviceStatus + oid: 1.3.6.1.2.1.25.3.2.1.5 + type: gauge + help: The current operational state of the device described by this row of the + table - 1.3.6.1.2.1.25.3.2.1.5 + indexes: + - labelname: hrDeviceIndex + type: gauge + enum_values: + 1: unknown + 2: running + 3: warning + 4: testing + 5: down + - name: hrDeviceErrors + oid: 1.3.6.1.2.1.25.3.2.1.6 + type: counter + help: The number of errors detected on this device - 1.3.6.1.2.1.25.3.2.1.6 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrProcessorFrwID + oid: 1.3.6.1.2.1.25.3.3.1.1 + type: OctetString + help: The product ID of the firmware associated with the processor. - 1.3.6.1.2.1.25.3.3.1.1 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrProcessorLoad + oid: 1.3.6.1.2.1.25.3.3.1.2 + type: gauge + help: The average, over the last minute, of the percentage of time that this processor + was not idle - 1.3.6.1.2.1.25.3.3.1.2 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrNetworkIfIndex + oid: 1.3.6.1.2.1.25.3.4.1.1 + type: gauge + help: The value of ifIndex which corresponds to this network device - 1.3.6.1.2.1.25.3.4.1.1 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrPrinterStatus + oid: 1.3.6.1.2.1.25.3.5.1.1 + type: gauge + help: The current status of this printer device. - 1.3.6.1.2.1.25.3.5.1.1 + indexes: + - labelname: hrDeviceIndex + type: gauge + enum_values: + 1: other + 2: unknown + 3: idle + 4: printing + 5: warmup + - name: hrPrinterDetectedErrorState + oid: 1.3.6.1.2.1.25.3.5.1.2 + type: OctetString + help: This object represents any error conditions detected by the printer - 1.3.6.1.2.1.25.3.5.1.2 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrDiskStorageAccess + oid: 1.3.6.1.2.1.25.3.6.1.1 + type: gauge + help: An indication if this long-term storage device is readable and writable + or only readable - 1.3.6.1.2.1.25.3.6.1.1 + indexes: + - labelname: hrDeviceIndex + type: gauge + enum_values: + 1: readWrite + 2: readOnly + - name: hrDiskStorageMedia + oid: 1.3.6.1.2.1.25.3.6.1.2 + type: gauge + help: An indication of the type of media used in this long- term storage device. + - 1.3.6.1.2.1.25.3.6.1.2 + indexes: + - labelname: hrDeviceIndex + type: gauge + enum_values: + 1: other + 2: unknown + 3: hardDisk + 4: floppyDisk + 5: opticalDiskROM + 6: opticalDiskWORM + 7: opticalDiskRW + 8: ramDisk + - name: hrDiskStorageRemoveble + oid: 1.3.6.1.2.1.25.3.6.1.3 + type: gauge + help: Denotes whether or not the disk media may be removed from the drive. - 1.3.6.1.2.1.25.3.6.1.3 + indexes: + - labelname: hrDeviceIndex + type: gauge + enum_values: + 1: "true" + 2: "false" + - name: hrDiskStorageCapacity + oid: 1.3.6.1.2.1.25.3.6.1.4 + type: gauge + help: The total size for this long-term storage device - 1.3.6.1.2.1.25.3.6.1.4 + indexes: + - labelname: hrDeviceIndex + type: gauge + - name: hrPartitionIndex + oid: 1.3.6.1.2.1.25.3.7.1.1 + type: gauge + help: A unique value for each partition on this long-term storage device - 1.3.6.1.2.1.25.3.7.1.1 + indexes: + - labelname: hrDeviceIndex + type: gauge + - labelname: hrPartitionIndex + type: gauge + - name: hrPartitionLabel + oid: 1.3.6.1.2.1.25.3.7.1.2 + type: OctetString + help: A textual description of this partition. - 1.3.6.1.2.1.25.3.7.1.2 + indexes: + - labelname: hrDeviceIndex + type: gauge + - labelname: hrPartitionIndex + type: gauge + - name: hrPartitionID + oid: 1.3.6.1.2.1.25.3.7.1.3 + type: OctetString + help: A descriptor which uniquely represents this partition to the responsible + operating system - 1.3.6.1.2.1.25.3.7.1.3 + indexes: + - labelname: hrDeviceIndex + type: gauge + - labelname: hrPartitionIndex + type: gauge + - name: hrPartitionSize + oid: 1.3.6.1.2.1.25.3.7.1.4 + type: gauge + help: The size of this partition. - 1.3.6.1.2.1.25.3.7.1.4 + indexes: + - labelname: hrDeviceIndex + type: gauge + - labelname: hrPartitionIndex + type: gauge + - name: hrPartitionFSIndex + oid: 1.3.6.1.2.1.25.3.7.1.5 + type: gauge + help: The index of the file system mounted on this partition - 1.3.6.1.2.1.25.3.7.1.5 + indexes: + - labelname: hrDeviceIndex + type: gauge + - labelname: hrPartitionIndex + type: gauge + - name: hrFSIndex + oid: 1.3.6.1.2.1.25.3.8.1.1 + type: gauge + help: A unique value for each file system local to this host - 1.3.6.1.2.1.25.3.8.1.1 + indexes: + - labelname: hrFSIndex + type: gauge + - name: hrFSMountPoint + oid: 1.3.6.1.2.1.25.3.8.1.2 + type: OctetString + help: The path name of the root of this file system. - 1.3.6.1.2.1.25.3.8.1.2 + indexes: + - labelname: hrFSIndex + type: gauge + - name: hrFSRemoteMountPoint + oid: 1.3.6.1.2.1.25.3.8.1.3 + type: OctetString + help: A description of the name and/or address of the server that this file system + is mounted from - 1.3.6.1.2.1.25.3.8.1.3 + indexes: + - labelname: hrFSIndex + type: gauge + - name: hrFSType + oid: 1.3.6.1.2.1.25.3.8.1.4 + type: OctetString + help: The value of this object identifies the type of this file system. - 1.3.6.1.2.1.25.3.8.1.4 + indexes: + - labelname: hrFSIndex + type: gauge + - name: hrFSAccess + oid: 1.3.6.1.2.1.25.3.8.1.5 + type: gauge + help: An indication if this file system is logically configured by the operating + system to be readable and writable or only readable - 1.3.6.1.2.1.25.3.8.1.5 + indexes: + - labelname: hrFSIndex + type: gauge + enum_values: + 1: readWrite + 2: readOnly + - name: hrFSBootable + oid: 1.3.6.1.2.1.25.3.8.1.6 + type: gauge + help: A flag indicating whether this file system is bootable. - 1.3.6.1.2.1.25.3.8.1.6 + indexes: + - labelname: hrFSIndex + type: gauge + enum_values: + 1: "true" + 2: "false" + - name: hrFSStorageIndex + oid: 1.3.6.1.2.1.25.3.8.1.7 + type: gauge + help: The index of the hrStorageEntry that represents information about this file + system - 1.3.6.1.2.1.25.3.8.1.7 + indexes: + - labelname: hrFSIndex + type: gauge + - name: hrFSLastFullBackupDate + oid: 1.3.6.1.2.1.25.3.8.1.8 + type: DateAndTime + help: The last date at which this complete file system was copied to another storage + device for backup - 1.3.6.1.2.1.25.3.8.1.8 + indexes: + - labelname: hrFSIndex + type: gauge + - name: hrFSLastPartialBackupDate + oid: 1.3.6.1.2.1.25.3.8.1.9 + type: DateAndTime + help: The last date at which a portion of this file system was copied to another + storage device for backup - 1.3.6.1.2.1.25.3.8.1.9 + indexes: + - labelname: hrFSIndex + type: gauge + - name: hrSWOSIndex + oid: 1.3.6.1.2.1.25.4.1 + type: gauge + help: The value of the hrSWRunIndex for the hrSWRunEntry that represents the primary + operating system running on this host - 1.3.6.1.2.1.25.4.1 + - name: hrSWRunIndex + oid: 1.3.6.1.2.1.25.4.2.1.1 + type: gauge + help: A unique value for each piece of software running on the host - 1.3.6.1.2.1.25.4.2.1.1 + indexes: + - labelname: hrSWRunIndex + type: gauge + - name: hrSWRunName + oid: 1.3.6.1.2.1.25.4.2.1.2 + type: OctetString + help: A textual description of this running piece of software, including the manufacturer, + revision, and the name by which it is commonly known - 1.3.6.1.2.1.25.4.2.1.2 + indexes: + - labelname: hrSWRunIndex + type: gauge + - name: hrSWRunID + oid: 1.3.6.1.2.1.25.4.2.1.3 + type: OctetString + help: The product ID of this running piece of software. - 1.3.6.1.2.1.25.4.2.1.3 + indexes: + - labelname: hrSWRunIndex + type: gauge + - name: hrSWRunPath + oid: 1.3.6.1.2.1.25.4.2.1.4 + type: OctetString + help: A description of the location on long-term storage (e.g - 1.3.6.1.2.1.25.4.2.1.4 + indexes: + - labelname: hrSWRunIndex + type: gauge + - name: hrSWRunParameters + oid: 1.3.6.1.2.1.25.4.2.1.5 + type: OctetString + help: A description of the parameters supplied to this software when it was initially + loaded. - 1.3.6.1.2.1.25.4.2.1.5 + indexes: + - labelname: hrSWRunIndex + type: gauge + - name: hrSWRunType + oid: 1.3.6.1.2.1.25.4.2.1.6 + type: gauge + help: The type of this software. - 1.3.6.1.2.1.25.4.2.1.6 + indexes: + - labelname: hrSWRunIndex + type: gauge + enum_values: + 1: unknown + 2: operatingSystem + 3: deviceDriver + 4: application + - name: hrSWRunStatus + oid: 1.3.6.1.2.1.25.4.2.1.7 + type: gauge + help: The status of this running piece of software - 1.3.6.1.2.1.25.4.2.1.7 + indexes: + - labelname: hrSWRunIndex + type: gauge + enum_values: + 1: running + 2: runnable + 3: notRunnable + 4: invalid + - name: hrSWRunPerfCPU + oid: 1.3.6.1.2.1.25.5.1.1.1 + type: gauge + help: The number of centi-seconds of the total system's CPU resources consumed + by this process - 1.3.6.1.2.1.25.5.1.1.1 + indexes: + - labelname: hrSWRunIndex + type: gauge + - name: hrSWRunPerfMem + oid: 1.3.6.1.2.1.25.5.1.1.2 + type: gauge + help: The total amount of real system memory allocated to this process. - 1.3.6.1.2.1.25.5.1.1.2 + indexes: + - labelname: hrSWRunIndex + type: gauge + - name: hrSWInstalledLastChange + oid: 1.3.6.1.2.1.25.6.1 + type: gauge + help: The value of sysUpTime when an entry in the hrSWInstalledTable was last + added, renamed, or deleted - 1.3.6.1.2.1.25.6.1 + - name: hrSWInstalledLastUpdateTime + oid: 1.3.6.1.2.1.25.6.2 + type: gauge + help: The value of sysUpTime when the hrSWInstalledTable was last completely updated + - 1.3.6.1.2.1.25.6.2 + - name: hrSWInstalledIndex + oid: 1.3.6.1.2.1.25.6.3.1.1 + type: gauge + help: A unique value for each piece of software installed on the host - 1.3.6.1.2.1.25.6.3.1.1 + indexes: + - labelname: hrSWInstalledIndex + type: gauge + - name: hrSWInstalledName + oid: 1.3.6.1.2.1.25.6.3.1.2 + type: OctetString + help: A textual description of this installed piece of software, including the + manufacturer, revision, the name by which it is commonly known, and optionally, + its serial number. - 1.3.6.1.2.1.25.6.3.1.2 + indexes: + - labelname: hrSWInstalledIndex + type: gauge + - name: hrSWInstalledID + oid: 1.3.6.1.2.1.25.6.3.1.3 + type: OctetString + help: The product ID of this installed piece of software. - 1.3.6.1.2.1.25.6.3.1.3 + indexes: + - labelname: hrSWInstalledIndex + type: gauge + - name: hrSWInstalledType + oid: 1.3.6.1.2.1.25.6.3.1.4 + type: gauge + help: The type of this software. - 1.3.6.1.2.1.25.6.3.1.4 + indexes: + - labelname: hrSWInstalledIndex + type: gauge + enum_values: + 1: unknown + 2: operatingSystem + 3: deviceDriver + 4: application + - name: hrSWInstalledDate + oid: 1.3.6.1.2.1.25.6.3.1.5 + type: DateAndTime + help: The last-modification date of this application as it would appear in a directory + listing - 1.3.6.1.2.1.25.6.3.1.5 + indexes: + - labelname: hrSWInstalledIndex + type: gauge + - name: ifInMulticastPkts + oid: 1.3.6.1.2.1.31.1.1.1.2 + type: counter + help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, + which were addressed to a multicast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.2 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifInBroadcastPkts + oid: 1.3.6.1.2.1.31.1.1.1.3 + type: counter + help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, + which were addressed to a broadcast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.3 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutMulticastPkts + oid: 1.3.6.1.2.1.31.1.1.1.4 + type: counter + help: The total number of packets that higher-level protocols requested be transmitted, + and which were addressed to a multicast address at this sub-layer, including + those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.4 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifOutBroadcastPkts + oid: 1.3.6.1.2.1.31.1.1.1.5 + type: counter + help: The total number of packets that higher-level protocols requested be transmitted, + and which were addressed to a broadcast address at this sub-layer, including + those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.5 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCInOctets + oid: 1.3.6.1.2.1.31.1.1.1.6 + type: counter + help: The total number of octets received on the interface, including framing + characters - 1.3.6.1.2.1.31.1.1.1.6 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCInUcastPkts + oid: 1.3.6.1.2.1.31.1.1.1.7 + type: counter + help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, + which were not addressed to a multicast or broadcast address at this sub-layer + - 1.3.6.1.2.1.31.1.1.1.7 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCInMulticastPkts + oid: 1.3.6.1.2.1.31.1.1.1.8 + type: counter + help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, + which were addressed to a multicast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.8 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCInBroadcastPkts + oid: 1.3.6.1.2.1.31.1.1.1.9 + type: counter + help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, + which were addressed to a broadcast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.9 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCOutOctets + oid: 1.3.6.1.2.1.31.1.1.1.10 + type: counter + help: The total number of octets transmitted out of the interface, including framing + characters - 1.3.6.1.2.1.31.1.1.1.10 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCOutUcastPkts + oid: 1.3.6.1.2.1.31.1.1.1.11 + type: counter + help: The total number of packets that higher-level protocols requested be transmitted, + and which were not addressed to a multicast or broadcast address at this sub-layer, + including those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.11 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCOutMulticastPkts + oid: 1.3.6.1.2.1.31.1.1.1.12 + type: counter + help: The total number of packets that higher-level protocols requested be transmitted, + and which were addressed to a multicast address at this sub-layer, including + those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.12 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifHCOutBroadcastPkts + oid: 1.3.6.1.2.1.31.1.1.1.13 + type: counter + help: The total number of packets that higher-level protocols requested be transmitted, + and which were addressed to a broadcast address at this sub-layer, including + those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.13 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifLinkUpDownTrapEnable + oid: 1.3.6.1.2.1.31.1.1.1.14 + type: gauge + help: Indicates whether linkUp/linkDown traps should be generated for this interface + - 1.3.6.1.2.1.31.1.1.1.14 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: enabled + 2: disabled + - name: ifHighSpeed + oid: 1.3.6.1.2.1.31.1.1.1.15 + type: gauge + help: An estimate of the interface's current bandwidth in units of 1,000,000 bits + per second - 1.3.6.1.2.1.31.1.1.1.15 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifPromiscuousMode + oid: 1.3.6.1.2.1.31.1.1.1.16 + type: gauge + help: This object has a value of false(2) if this interface only accepts packets/frames + that are addressed to this station - 1.3.6.1.2.1.31.1.1.1.16 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: "true" + 2: "false" + - name: ifConnectorPresent + oid: 1.3.6.1.2.1.31.1.1.1.17 + type: gauge + help: This object has the value 'true(1)' if the interface sublayer has a physical + connector and the value 'false(2)' otherwise. - 1.3.6.1.2.1.31.1.1.1.17 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: "true" + 2: "false" + - name: ifAlias + oid: 1.3.6.1.2.1.31.1.1.1.18 + type: DisplayString + help: This object is an 'alias' name for the interface as specified by a network + manager, and provides a non-volatile 'handle' for the interface - 1.3.6.1.2.1.31.1.1.1.18 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifCounterDiscontinuityTime + oid: 1.3.6.1.2.1.31.1.1.1.19 + type: gauge + help: The value of sysUpTime on the most recent occasion at which any one or more + of this interface's counters suffered a discontinuity - 1.3.6.1.2.1.31.1.1.1.19 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifStackHigherLayer + oid: 1.3.6.1.2.1.31.1.2.1.1 + type: gauge + help: The value of ifIndex corresponding to the higher sub-layer of the relationship, + i.e., the sub-layer which runs on 'top' of the sub-layer identified by the corresponding + instance of ifStackLowerLayer - 1.3.6.1.2.1.31.1.2.1.1 + indexes: + - labelname: ifStackHigherLayer + type: gauge + - labelname: ifStackLowerLayer + type: gauge + - name: ifStackLowerLayer + oid: 1.3.6.1.2.1.31.1.2.1.2 + type: gauge + help: The value of ifIndex corresponding to the lower sub-layer of the relationship, + i.e., the sub-layer which runs 'below' the sub-layer identified by the corresponding + instance of ifStackHigherLayer - 1.3.6.1.2.1.31.1.2.1.2 + indexes: + - labelname: ifStackHigherLayer + type: gauge + - labelname: ifStackLowerLayer + type: gauge + - name: ifStackStatus + oid: 1.3.6.1.2.1.31.1.2.1.3 + type: gauge + help: The status of the relationship between two sub-layers - 1.3.6.1.2.1.31.1.2.1.3 + indexes: + - labelname: ifStackHigherLayer + type: gauge + - labelname: ifStackLowerLayer + type: gauge + enum_values: + 1: active + 2: notInService + 3: notReady + 4: createAndGo + 5: createAndWait + 6: destroy + - name: ifTestId + oid: 1.3.6.1.2.1.31.1.3.1.1 + type: gauge + help: This object identifies the current invocation of the interface's test. - + 1.3.6.1.2.1.31.1.3.1.1 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifTestStatus + oid: 1.3.6.1.2.1.31.1.3.1.2 + type: gauge + help: This object indicates whether or not some manager currently has the necessary + 'ownership' required to invoke a test on this interface - 1.3.6.1.2.1.31.1.3.1.2 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: notInUse + 2: inUse + - name: ifTestType + oid: 1.3.6.1.2.1.31.1.3.1.3 + type: OctetString + help: A control variable used to start and stop operator- initiated interface + tests - 1.3.6.1.2.1.31.1.3.1.3 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifTestResult + oid: 1.3.6.1.2.1.31.1.3.1.4 + type: gauge + help: This object contains the result of the most recently requested test, or + the value none(1) if no tests have been requested since the last reset - 1.3.6.1.2.1.31.1.3.1.4 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: none + 2: success + 3: inProgress + 4: notSupported + 5: unAbleToRun + 6: aborted + 7: failed + - name: ifTestCode + oid: 1.3.6.1.2.1.31.1.3.1.5 + type: OctetString + help: This object contains a code which contains more specific information on + the test result, for example an error-code after a failed test - 1.3.6.1.2.1.31.1.3.1.5 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifTestOwner + oid: 1.3.6.1.2.1.31.1.3.1.6 + type: DisplayString + help: The entity which currently has the 'ownership' required to invoke a test + on this interface. - 1.3.6.1.2.1.31.1.3.1.6 + indexes: + - labelname: ifIndex + type: gauge + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifRcvAddressAddress + oid: 1.3.6.1.2.1.31.1.4.1.1 + type: PhysAddress48 + help: An address for which the system will accept packets/frames on this entry's + interface. - 1.3.6.1.2.1.31.1.4.1.1 + indexes: + - labelname: ifIndex + type: gauge + - labelname: ifRcvAddressAddress + type: PhysAddress48 + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: ifRcvAddressStatus + oid: 1.3.6.1.2.1.31.1.4.1.2 + type: gauge + help: This object is used to create and delete rows in the ifRcvAddressTable. + - 1.3.6.1.2.1.31.1.4.1.2 + indexes: + - labelname: ifIndex + type: gauge + - labelname: ifRcvAddressAddress + type: PhysAddress48 + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: active + 2: notInService + 3: notReady + 4: createAndGo + 5: createAndWait + 6: destroy + - name: ifRcvAddressType + oid: 1.3.6.1.2.1.31.1.4.1.3 + type: gauge + help: This object has the value nonVolatile(3) for those entries in the table + which are valid and will not be deleted by the next restart of the managed system + - 1.3.6.1.2.1.31.1.4.1.3 + indexes: + - labelname: ifIndex + type: gauge + - labelname: ifRcvAddressAddress + type: PhysAddress48 + lookups: + - labels: + - ifIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + enum_values: + 1: other + 2: volatile + 3: nonVolatile + - name: ifTableLastChange + oid: 1.3.6.1.2.1.31.1.5 + type: gauge + help: The value of sysUpTime at the time of the last creation or deletion of an + entry in the ifTable - 1.3.6.1.2.1.31.1.5 + - name: ifStackLastChange + oid: 1.3.6.1.2.1.31.1.6 + type: gauge + help: The value of sysUpTime at the time of the last change of the (whole) interface + stack - 1.3.6.1.2.1.31.1.6 + - name: mtxrWlStatIndex + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.1.1.1' + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatTxRate + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.2 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.1.1.2 + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatRxRate + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.3 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.1.1.3 + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatStrength + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.4 + type: gauge + help: dBm - 1.3.6.1.4.1.14988.1.1.1.1.1.4 + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatSsid + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.5 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.1.1.5' + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatBssid + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.6 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.1.1.1.6' + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatFreq + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.7 + type: gauge + help: megahertz - 1.3.6.1.4.1.14988.1.1.1.1.1.7 + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatBand + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.8 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.1.1.8' + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatTxCCQ + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.9 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.1.1.9' + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlStatRxCCQ + oid: 1.3.6.1.4.1.14988.1.1.1.1.1.10 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.1.1.10' + indexes: + - labelname: mtxrWlStatIndex + type: gauge + - name: mtxrWlRtabAddr + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.1 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.1' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabIface + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.2 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.2' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabStrength + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.3 + type: gauge + help: dBm - 1.3.6.1.4.1.14988.1.1.1.2.1.3 + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabTxBytes + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.4 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.4' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRxBytes + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.5 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.5' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabTxPackets + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.6 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.6' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRxPackets + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.7 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.7' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabTxRate + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.8 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.2.1.8 + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRxRate + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.9 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.2.1.9 + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRouterOSVersion + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.10 + type: DisplayString + help: RouterOS version - 1.3.6.1.4.1.14988.1.1.1.2.1.10 + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabUptime + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.11 + type: gauge + help: uptime - 1.3.6.1.4.1.14988.1.1.1.2.1.11 + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabSignalToNoise + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.12 + type: gauge + help: Measured in dB, if value does not exist it is indicated with 0 - 1.3.6.1.4.1.14988.1.1.1.2.1.12 + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabTxStrengthCh0 + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.13 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.13' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRxStrengthCh0 + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.14 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.14' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabTxStrengthCh1 + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.15 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.15' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRxStrengthCh1 + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.16 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.16' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabTxStrengthCh2 + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.17 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.17' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRxStrengthCh2 + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.18 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.18' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabTxStrength + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.19 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.19' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlRtabRadioName + oid: 1.3.6.1.4.1.14988.1.1.1.2.1.20 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.2.1.20' + indexes: + - labelname: mtxrWlRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlRtabIface + type: gauge + - name: mtxrWlApIndex + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.1' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApTxRate + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.2 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.3.1.2 + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApRxRate + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.3 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.3.1.3 + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApSsid + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.4 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.4' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApBssid + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.5 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.5' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApClientCount + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.6 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.6' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApFreq + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.7 + type: gauge + help: megahertz - 1.3.6.1.4.1.14988.1.1.1.3.1.7 + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApBand + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.8 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.8' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApNoiseFloor + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.9 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.9' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApOverallTxCCQ + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.10 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.10' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlApAuthClientCount + oid: 1.3.6.1.4.1.14988.1.1.1.3.1.11 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.3.1.11' + indexes: + - labelname: mtxrWlApIndex + type: gauge + - name: mtxrWlRtabEntryCount + oid: 1.3.6.1.4.1.14988.1.1.1.4 + type: gauge + help: Wireless registration table entry count - 1.3.6.1.4.1.14988.1.1.1.4 + - name: mtxrWlCMRtabAddr + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.1 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.1' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabIface + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.2 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.2' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabUptime + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.3 + type: gauge + help: uptime - 1.3.6.1.4.1.14988.1.1.1.5.1.3 + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabTxBytes + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.4 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.4' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabRxBytes + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.5 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.5' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabTxPackets + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.6 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.6' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabRxPackets + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.7 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.7' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabTxRate + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.8 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.5.1.8 + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabRxRate + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.9 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.1.5.1.9 + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabTxStrength + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.10 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.10' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabRxStrength + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.11 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.11' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabSsid + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.12 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.12' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabEapIdent + oid: 1.3.6.1.4.1.14988.1.1.1.5.1.13 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.5.1.13' + indexes: + - labelname: mtxrWlCMRtabAddr + type: PhysAddress48 + fixed_size: 6 + - labelname: mtxrWlCMRtabIface + type: gauge + - name: mtxrWlCMRtabEntryCount + oid: 1.3.6.1.4.1.14988.1.1.1.6 + type: gauge + help: Wireless CAPSMAN registration table entry count - 1.3.6.1.4.1.14988.1.1.1.6 + - name: mtxrWlCMIndex + oid: 1.3.6.1.4.1.14988.1.1.1.7.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.7.1.1' + indexes: + - labelname: mtxrWlCMIndex + type: gauge + - name: mtxrWlCMRegClientCount + oid: 1.3.6.1.4.1.14988.1.1.1.7.1.2 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.7.1.2' + indexes: + - labelname: mtxrWlCMIndex + type: gauge + - name: mtxrWlCMAuthClientCount + oid: 1.3.6.1.4.1.14988.1.1.1.7.1.3 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.7.1.3' + indexes: + - labelname: mtxrWlCMIndex + type: gauge + - name: mtxrWlCMState + oid: 1.3.6.1.4.1.14988.1.1.1.7.1.4 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.7.1.4' + indexes: + - labelname: mtxrWlCMIndex + type: gauge + - name: mtxrWlCMChannel + oid: 1.3.6.1.4.1.14988.1.1.1.7.1.5 + type: DisplayString + help: for master only - 1.3.6.1.4.1.14988.1.1.1.7.1.5 + indexes: + - labelname: mtxrWlCMIndex + type: gauge + - name: mtxrWl60GIndex + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.1' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GMode + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.2 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.2' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + enum_values: + 0: apBridge + 1: stationBridge + 2: sniff + 3: bridge + - name: mtxrWl60GSsid + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.3 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.3' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GConnected + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.4 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.4' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrWl60GRemote + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.5 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.5' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GFreq + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.6 + type: gauge + help: Mhz - 1.3.6.1.4.1.14988.1.1.1.8.1.6 + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GMcs + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.7 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.7' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GSignal + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.8 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.8' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GTxSector + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.9 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.9' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GTxSectorInfo + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.11 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.11' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GRssi + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.12 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.12' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GPhyRate + oid: 1.3.6.1.4.1.14988.1.1.1.8.1.13 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.8.1.13' + indexes: + - labelname: mtxrWl60GIndex + type: gauge + - name: mtxrWl60GStaIndex + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.9.1.1' + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWl60GStaConnected + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.2 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.9.1.2' + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrWl60GStaRemote + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.3 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.1.9.1.3' + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWl60GStaMcs + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.4 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.9.1.4' + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWl60GStaSignal + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.5 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.9.1.5' + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWl60GStaTxSector + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.6 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.9.1.6' + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWl60GStaPhyRate + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.8 + type: gauge + help: Mbits per second - 1.3.6.1.4.1.14988.1.1.1.9.1.8 + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWl60GStaRssi + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.9 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.9.1.9' + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWl60GStaDistance + oid: 1.3.6.1.4.1.14988.1.1.1.9.1.10 + type: gauge + help: meters - 1.3.6.1.4.1.14988.1.1.1.9.1.10 + indexes: + - labelname: mtxrWl60GStaIndex + type: gauge + - name: mtxrWlCMREntryCount + oid: 1.3.6.1.4.1.14988.1.1.1.10 + type: gauge + help: Wireless CAPSMAN remote-cap entry count - 1.3.6.1.4.1.14988.1.1.1.10 + - name: mtxrWlCMRemoteIndex + oid: 1.3.6.1.4.1.14988.1.1.1.11.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.1.11.1.1' + indexes: + - labelname: mtxrWlCMRemoteIndex + type: gauge + - name: mtxrWlCMRemoteName + oid: 1.3.6.1.4.1.14988.1.1.1.11.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.11.1.2' + indexes: + - labelname: mtxrWlCMRemoteIndex + type: gauge + - name: mtxrWlCMRemoteState + oid: 1.3.6.1.4.1.14988.1.1.1.11.1.3 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.11.1.3' + indexes: + - labelname: mtxrWlCMRemoteIndex + type: gauge + - name: mtxrWlCMRemoteAddress + oid: 1.3.6.1.4.1.14988.1.1.1.11.1.4 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.1.11.1.4' + indexes: + - labelname: mtxrWlCMRemoteIndex + type: gauge + - name: mtxrWlCMRemoteRadios + oid: 1.3.6.1.4.1.14988.1.1.1.11.1.5 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.1.11.1.5' + indexes: + - labelname: mtxrWlCMRemoteIndex + type: gauge + - name: mtxrQueueSimpleIndex + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.1' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleName + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.2' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleSrcAddr + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.3 + type: InetAddressIPv4 + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.3' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleSrcMask + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.4 + type: InetAddressIPv4 + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.4' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleDstAddr + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.5 + type: InetAddressIPv4 + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.5' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleDstMask + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.6 + type: InetAddressIPv4 + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.6' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleIface + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.7 + type: gauge + help: interface index - 1.3.6.1.4.1.14988.1.1.2.1.1.7 + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleBytesIn + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.8 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.8' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleBytesOut + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.9 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.9' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimplePacketsIn + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.10 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.10' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimplePacketsOut + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.11 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.11' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimplePCQQueuesIn + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.12 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.12' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimplePCQQueuesOut + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.13 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.13' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleDroppedIn + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.14 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.14' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueSimpleDroppedOut + oid: 1.3.6.1.4.1.14988.1.1.2.1.1.15 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.1.1.15' + indexes: + - labelname: mtxrQueueSimpleIndex + type: gauge + - name: mtxrQueueTreeIndex + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.2.2.1.1' + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreeName + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.2.2.1.2' + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreeFlow + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.3 + type: DisplayString + help: flowmark - 1.3.6.1.4.1.14988.1.1.2.2.1.3 + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreeParentIndex + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.4 + type: gauge + help: index of parent tree queue or parent interface - 1.3.6.1.4.1.14988.1.1.2.2.1.4 + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreeBytes + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.5 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.2.1.5' + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreePackets + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.6 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.2.1.6' + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreeHCBytes + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.7 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.2.1.7' + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreePCQQueues + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.8 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.2.1.8' + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrQueueTreeDropped + oid: 1.3.6.1.4.1.14988.1.1.2.2.1.9 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.2.2.1.9' + indexes: + - labelname: mtxrQueueTreeIndex + type: gauge + - name: mtxrHlCoreVoltage + oid: 1.3.6.1.4.1.14988.1.1.3.1 + type: gauge + help: core voltage - 1.3.6.1.4.1.14988.1.1.3.1 + - name: mtxrHlThreeDotThreeVoltage + oid: 1.3.6.1.4.1.14988.1.1.3.2 + type: gauge + help: 3.3V voltage - 1.3.6.1.4.1.14988.1.1.3.2 + - name: mtxrHlFiveVoltage + oid: 1.3.6.1.4.1.14988.1.1.3.3 + type: gauge + help: 5V voltage - 1.3.6.1.4.1.14988.1.1.3.3 + - name: mtxrHlTwelveVoltage + oid: 1.3.6.1.4.1.14988.1.1.3.4 + type: gauge + help: 12V voltage - 1.3.6.1.4.1.14988.1.1.3.4 + - name: mtxrHlSensorTemperature + oid: 1.3.6.1.4.1.14988.1.1.3.5 + type: gauge + help: temperature at sensor chip - 1.3.6.1.4.1.14988.1.1.3.5 + - name: mtxrHlCpuTemperature + oid: 1.3.6.1.4.1.14988.1.1.3.6 + type: gauge + help: temperature near cpu - 1.3.6.1.4.1.14988.1.1.3.6 + - name: mtxrHlBoardTemperature + oid: 1.3.6.1.4.1.14988.1.1.3.7 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.3.7' + - name: mtxrHlVoltage + oid: 1.3.6.1.4.1.14988.1.1.3.8 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.3.8' + - name: mtxrHlActiveFan + oid: 1.3.6.1.4.1.14988.1.1.3.9 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.3.9' + - name: mtxrHlTemperature + oid: 1.3.6.1.4.1.14988.1.1.3.10 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.3.10' + - name: mtxrHlProcessorTemperature + oid: 1.3.6.1.4.1.14988.1.1.3.11 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.3.11' + - name: mtxrHlPower + oid: 1.3.6.1.4.1.14988.1.1.3.12 + type: gauge + help: Watts - 1.3.6.1.4.1.14988.1.1.3.12 + - name: mtxrHlCurrent + oid: 1.3.6.1.4.1.14988.1.1.3.13 + type: gauge + help: mA - 1.3.6.1.4.1.14988.1.1.3.13 + - name: mtxrHlProcessorFrequency + oid: 1.3.6.1.4.1.14988.1.1.3.14 + type: gauge + help: Mhz - 1.3.6.1.4.1.14988.1.1.3.14 + - name: mtxrHlPowerSupplyState + oid: 1.3.6.1.4.1.14988.1.1.3.15 + type: gauge + help: PSU state ok - 1.3.6.1.4.1.14988.1.1.3.15 + enum_values: + 0: "false" + 1: "true" + - name: mtxrHlBackupPowerSupplyState + oid: 1.3.6.1.4.1.14988.1.1.3.16 + type: gauge + help: backup PSU state ok - 1.3.6.1.4.1.14988.1.1.3.16 + enum_values: + 0: "false" + 1: "true" + - name: mtxrHlFanSpeed1 + oid: 1.3.6.1.4.1.14988.1.1.3.17 + type: gauge + help: rpm - 1.3.6.1.4.1.14988.1.1.3.17 + - name: mtxrHlFanSpeed2 + oid: 1.3.6.1.4.1.14988.1.1.3.18 + type: gauge + help: rpm - 1.3.6.1.4.1.14988.1.1.3.18 + - name: mtxrGaugeIndex + oid: 1.3.6.1.4.1.14988.1.1.3.100.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.3.100.1.1' + indexes: + - labelname: mtxrGaugeIndex + type: gauge + - name: mtxrGaugeName + oid: 1.3.6.1.4.1.14988.1.1.3.100.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.3.100.1.2' + indexes: + - labelname: mtxrGaugeIndex + type: gauge + - name: mtxrGaugeValue + oid: 1.3.6.1.4.1.14988.1.1.3.100.1.3 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.3.100.1.3' + indexes: + - labelname: mtxrGaugeIndex + type: gauge + - name: mtxrGaugeUnit + oid: 1.3.6.1.4.1.14988.1.1.3.100.1.4 + type: gauge + help: units - 1.3.6.1.4.1.14988.1.1.3.100.1.4 + indexes: + - labelname: mtxrGaugeIndex + type: gauge + enum_values: + 1: celsius + 2: rpm + 3: dV + 4: dA + 5: dW + 6: status + - name: mtxrLicSoftwareId + oid: 1.3.6.1.4.1.14988.1.1.4.1 + type: DisplayString + help: software id - 1.3.6.1.4.1.14988.1.1.4.1 + - name: mtxrLicUpgrUntil + oid: 1.3.6.1.4.1.14988.1.1.4.2 + type: DateAndTime + help: current key allows upgrading until this date - 1.3.6.1.4.1.14988.1.1.4.2 + - name: mtxrLicLevel + oid: 1.3.6.1.4.1.14988.1.1.4.3 + type: gauge + help: current key level - 1.3.6.1.4.1.14988.1.1.4.3 + - name: mtxrLicVersion + oid: 1.3.6.1.4.1.14988.1.1.4.4 + type: DisplayString + help: software version - 1.3.6.1.4.1.14988.1.1.4.4 + - name: mtxrLicUpgradableTo + oid: 1.3.6.1.4.1.14988.1.1.4.5 + type: gauge + help: upgradable to - 1.3.6.1.4.1.14988.1.1.4.5 + - name: mtxrHotspotActiveUserIndex + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.1' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserServerID + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.2 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.2' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserName + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.3 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.3' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserDomain + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.4 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.4' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserIP + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.5 + type: InetAddressIPv4 + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.5' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserMAC + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.6 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.6' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserConnectTime + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.7 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.7' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserValidTillTime + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.8 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.8' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserIdleStartTime + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.9 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.9' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserIdleTimeout + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.10 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.10' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserPingTimeout + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.11 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.11' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserBytesIn + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.12 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.12' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserBytesOut + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.13 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.13' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserPacketsIn + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.14 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.14' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserPacketsOut + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.15 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.15' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserLimitBytesIn + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.16 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.16' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserLimitBytesOut + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.17 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.17' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserAdvertStatus + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.18 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.18' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserRadius + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.19 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.19' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrHotspotActiveUserBlockedByAdvert + oid: 1.3.6.1.4.1.14988.1.1.5.1.1.20 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.5.1.1.20' + indexes: + - labelname: mtxrHotspotActiveUserIndex + type: gauge + - name: mtxrDHCPLeaseCount + oid: 1.3.6.1.4.1.14988.1.1.6.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.6.1' + - name: mtxrSystemReboot + oid: 1.3.6.1.4.1.14988.1.1.7.1 + type: gauge + help: set non zero to reboot - 1.3.6.1.4.1.14988.1.1.7.1 + - name: mtxrUSBPowerReset + oid: 1.3.6.1.4.1.14988.1.1.7.2 + type: gauge + help: switches off usb power for specified amout of seconds - 1.3.6.1.4.1.14988.1.1.7.2 + - name: mtxrSerialNumber + oid: 1.3.6.1.4.1.14988.1.1.7.3 + type: DisplayString + help: RouterBOARD serial number - 1.3.6.1.4.1.14988.1.1.7.3 + - name: mtxrFirmwareVersion + oid: 1.3.6.1.4.1.14988.1.1.7.4 + type: DisplayString + help: Current firmware version - 1.3.6.1.4.1.14988.1.1.7.4 + - name: mtxrNote + oid: 1.3.6.1.4.1.14988.1.1.7.5 + type: DisplayString + help: note - 1.3.6.1.4.1.14988.1.1.7.5 + - name: mtxrBuildTime + oid: 1.3.6.1.4.1.14988.1.1.7.6 + type: DisplayString + help: build time - 1.3.6.1.4.1.14988.1.1.7.6 + - name: mtxrFirmwareUpgradeVersion + oid: 1.3.6.1.4.1.14988.1.1.7.7 + type: DisplayString + help: Upgrade firmware version - 1.3.6.1.4.1.14988.1.1.7.7 + - name: mtxrBoardName + oid: 1.3.6.1.4.1.14988.1.1.7.8 + type: DisplayString + help: board name - 1.3.6.1.4.1.14988.1.1.7.8 + - name: mtxrScriptIndex + oid: 1.3.6.1.4.1.14988.1.1.8.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.8.1.1.1' + indexes: + - labelname: mtxrScriptIndex + type: gauge + - name: mtxrScriptName + oid: 1.3.6.1.4.1.14988.1.1.8.1.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.8.1.1.2' + indexes: + - labelname: mtxrScriptIndex + type: gauge + - name: mtxrScriptRunCmd + oid: 1.3.6.1.4.1.14988.1.1.8.1.1.3 + type: gauge + help: set non zero to run - 1.3.6.1.4.1.14988.1.1.8.1.1.3 + indexes: + - labelname: mtxrScriptIndex + type: gauge + - name: mtxrDnStatIndex + oid: 1.3.6.1.4.1.14988.1.1.10.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.10.1.1.1' + indexes: + - labelname: mtxrDnStatIndex + type: gauge + - name: mtxrDnStatTxRate + oid: 1.3.6.1.4.1.14988.1.1.10.1.1.2 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.10.1.1.2 + indexes: + - labelname: mtxrDnStatIndex + type: gauge + - name: mtxrDnStatRxRate + oid: 1.3.6.1.4.1.14988.1.1.10.1.1.3 + type: gauge + help: bits per second - 1.3.6.1.4.1.14988.1.1.10.1.1.3 + indexes: + - labelname: mtxrDnStatIndex + type: gauge + - name: mtxrDnStatTxStrength + oid: 1.3.6.1.4.1.14988.1.1.10.1.1.4 + type: gauge + help: dBm - 1.3.6.1.4.1.14988.1.1.10.1.1.4 + indexes: + - labelname: mtxrDnStatIndex + type: gauge + - name: mtxrDnStatRxStrength + oid: 1.3.6.1.4.1.14988.1.1.10.1.1.5 + type: gauge + help: dBm - 1.3.6.1.4.1.14988.1.1.10.1.1.5 + indexes: + - labelname: mtxrDnStatIndex + type: gauge + - name: mtxrDnConnected + oid: 1.3.6.1.4.1.14988.1.1.10.1.1.6 + type: gauge + help: 0 - not connected, connected otherwise - 1.3.6.1.4.1.14988.1.1.10.1.1.6 + indexes: + - labelname: mtxrDnStatIndex + type: gauge + - name: mtxrNeighborIndex + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.1' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrNeighborIpAddress + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.2 + type: InetAddressIPv4 + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.2' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrNeighborMacAddress + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.3 + type: PhysAddress48 + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.3' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrNeighborVersion + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.4 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.4' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrNeighborPlatform + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.5 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.5' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrNeighborIdentity + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.6 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.6' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrNeighborSoftwareID + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.7 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.7' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrNeighborInterfaceID + oid: 1.3.6.1.4.1.14988.1.1.11.1.1.8 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.11.1.1.8' + indexes: + - labelname: mtxrNeighborIndex + type: gauge + - name: mtxrDate + oid: 1.3.6.1.4.1.14988.1.1.12.1 + type: gauge + help: UNIX time - 1.3.6.1.4.1.14988.1.1.12.1 + - name: mtxrLongtitude + oid: 1.3.6.1.4.1.14988.1.1.12.2 + type: DisplayString + help: longtitude - 1.3.6.1.4.1.14988.1.1.12.2 + - name: mtxrLatitude + oid: 1.3.6.1.4.1.14988.1.1.12.3 + type: DisplayString + help: latitude - 1.3.6.1.4.1.14988.1.1.12.3 + - name: mtxrAltitude + oid: 1.3.6.1.4.1.14988.1.1.12.4 + type: DisplayString + help: altitude - 1.3.6.1.4.1.14988.1.1.12.4 + - name: mtxrSpeed + oid: 1.3.6.1.4.1.14988.1.1.12.5 + type: DisplayString + help: speed - 1.3.6.1.4.1.14988.1.1.12.5 + - name: mtxrSattelites + oid: 1.3.6.1.4.1.14988.1.1.12.6 + type: gauge + help: visible sattelite count - 1.3.6.1.4.1.14988.1.1.12.6 + - name: mtxrValid + oid: 1.3.6.1.4.1.14988.1.1.12.7 + type: gauge + help: is the data valid - 1.3.6.1.4.1.14988.1.1.12.7 + - name: mtxrWirelessModemSignalStrength + oid: 1.3.6.1.4.1.14988.1.1.13.1 + type: gauge + help: signal strength in dBm (if first ppp-client modem supports) - 1.3.6.1.4.1.14988.1.1.13.1 + - name: mtxrWirelessModemSignalECIO + oid: 1.3.6.1.4.1.14988.1.1.13.2 + type: gauge + help: signal EC/IO in dB (if first ppp-client modem supports) - 1.3.6.1.4.1.14988.1.1.13.2 + - name: mtxrInterfaceStatsIndex + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.1' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsName + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.2' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsDriverRxBytes + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.11 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.11' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsDriverRxPackets + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.12 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.12' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsDriverTxBytes + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.13 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.13' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsDriverTxPackets + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.14 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.14' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxRx64 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.15 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.15' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxRx65To127 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.16 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.16' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxRx128To255 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.17 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.17' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxRx256To511 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.18 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.18' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxRx512To1023 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.19 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.19' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxRx1024To1518 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.20 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.20' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxRx1519ToMax + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.21 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.21' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxBytes + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.31 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.31' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxPackets + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.32 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.32' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxTooShort + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.33 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.33' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRx64 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.34 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.34' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRx65To127 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.35 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.35' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRx128To255 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.36 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.36' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRx256To511 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.37 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.37' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRx512To1023 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.38 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.38' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRx1024To1518 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.39 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.39' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRx1519ToMax + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.40 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.40' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxTooLong + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.41 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.41' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxBroadcast + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.42 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.42' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxPause + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.43 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.43' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxMulticast + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.44 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.44' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxFCSError + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.45 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.45' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxAlignError + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.46 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.46' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxFragment + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.47 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.47' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxOverflow + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.48 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.48' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxControl + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.49 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.49' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxUnknownOp + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.50 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.50' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxLengthError + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.51 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.51' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxCodeError + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.52 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.52' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxCarrierError + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.53 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.53' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxJabber + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.54 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.54' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsRxDrop + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.55 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.55' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxBytes + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.61 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.61' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxPackets + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.62 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.62' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxTooShort + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.63 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.63' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTx64 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.64 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.64' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTx65To127 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.65 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.65' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTx128To255 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.66 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.66' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTx256To511 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.67 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.67' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTx512To1023 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.68 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.68' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTx1024To1518 + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.69 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.69' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTx1519ToMax + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.70 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.70' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxTooLong + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.71 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.71' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxBroadcast + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.72 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.72' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxPause + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.73 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.73' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxMulticast + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.74 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.74' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxUnderrun + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.75 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.75' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxCollision + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.76 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.76' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxExcessiveCollision + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.77 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.77' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxMultipleCollision + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.78 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.78' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxSingleCollision + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.79 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.79' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxExcessiveDeferred + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.80 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.80' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxDeferred + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.81 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.81' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxLateCollision + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.82 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.82' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxTotalCollision + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.83 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.83' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxPauseHonored + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.84 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.84' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxDrop + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.85 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.85' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxJabber + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.86 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.86' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxFCSError + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.87 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.87' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxControl + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.88 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.88' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsTxFragment + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.89 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.89' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrInterfaceStatsLinkDowns + oid: 1.3.6.1.4.1.14988.1.1.14.1.1.90 + type: counter + help: ' - 1.3.6.1.4.1.14988.1.1.14.1.1.90' + indexes: + - labelname: mtxrInterfaceStatsIndex + type: gauge + lookups: + - labels: + - mtxrInterfaceStatsIndex + labelname: ifName + oid: 1.3.6.1.2.1.31.1.1.1.1 + type: DisplayString + - name: mtxrPOEInterfaceIndex + oid: 1.3.6.1.4.1.14988.1.1.15.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.15.1.1.1' + indexes: + - labelname: mtxrPOEInterfaceIndex + type: gauge + - name: mtxrPOEName + oid: 1.3.6.1.4.1.14988.1.1.15.1.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.15.1.1.2' + indexes: + - labelname: mtxrPOEInterfaceIndex + type: gauge + - name: mtxrPOEStatus + oid: 1.3.6.1.4.1.14988.1.1.15.1.1.3 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.15.1.1.3' + indexes: + - labelname: mtxrPOEInterfaceIndex + type: gauge + enum_values: + 1: disabled + 2: waitingForLoad + 3: poweredOn + 4: overload + - name: mtxrPOEVoltage + oid: 1.3.6.1.4.1.14988.1.1.15.1.1.4 + type: gauge + help: V - 1.3.6.1.4.1.14988.1.1.15.1.1.4 + indexes: + - labelname: mtxrPOEInterfaceIndex + type: gauge + - name: mtxrPOECurrent + oid: 1.3.6.1.4.1.14988.1.1.15.1.1.5 + type: gauge + help: mA - 1.3.6.1.4.1.14988.1.1.15.1.1.5 + indexes: + - labelname: mtxrPOEInterfaceIndex + type: gauge + - name: mtxrPOEPower + oid: 1.3.6.1.4.1.14988.1.1.15.1.1.6 + type: gauge + help: W - 1.3.6.1.4.1.14988.1.1.15.1.1.6 + indexes: + - labelname: mtxrPOEInterfaceIndex + type: gauge + - name: mtxrLTEModemInterfaceIndex + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.1' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemSignalRSSI + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.2 + type: gauge + help: dBm - 1.3.6.1.4.1.14988.1.1.16.1.1.2 + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemSignalRSRQ + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.3 + type: gauge + help: dB - 1.3.6.1.4.1.14988.1.1.16.1.1.3 + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemSignalRSRP + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.4 + type: gauge + help: dBm - 1.3.6.1.4.1.14988.1.1.16.1.1.4 + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemCellId + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.5 + type: gauge + help: current cell ID - 1.3.6.1.4.1.14988.1.1.16.1.1.5 + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemAccessTechnology + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.6 + type: gauge + help: as reported by +CREG - 1.3.6.1.4.1.14988.1.1.16.1.1.6 + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + enum_values: + -1: unknown + 0: gsmcompact + 1: gsm + 2: utran + 3: egprs + 4: hsdpa + 5: hsupa + 6: hsdpahsupa + 7: eutran + - name: mtxrLTEModemSignalSINR + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.7 + type: gauge + help: dB - 1.3.6.1.4.1.14988.1.1.16.1.1.7 + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemEnbId + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.8 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.8' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemSectorId + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.9 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.9' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemLac + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.10 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.10' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemIMEI + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.11 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.11' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemIMSI + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.12 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.12' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemUICC + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.13 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.13' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrLTEModemRAT + oid: 1.3.6.1.4.1.14988.1.1.16.1.1.14 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.16.1.1.14' + indexes: + - labelname: mtxrLTEModemInterfaceIndex + type: gauge + - name: mtxrPartitionIndex + oid: 1.3.6.1.4.1.14988.1.1.17.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.17.1.1.1' + indexes: + - labelname: mtxrPartitionIndex + type: gauge + - name: mtxrPartitionName + oid: 1.3.6.1.4.1.14988.1.1.17.1.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.17.1.1.2' + indexes: + - labelname: mtxrPartitionIndex + type: gauge + - name: mtxrPartitionSize + oid: 1.3.6.1.4.1.14988.1.1.17.1.1.3 + type: gauge + help: MB - 1.3.6.1.4.1.14988.1.1.17.1.1.3 + indexes: + - labelname: mtxrPartitionIndex + type: gauge + - name: mtxrPartitionVersion + oid: 1.3.6.1.4.1.14988.1.1.17.1.1.4 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.17.1.1.4' + indexes: + - labelname: mtxrPartitionIndex + type: gauge + - name: mtxrPartitionActive + oid: 1.3.6.1.4.1.14988.1.1.17.1.1.5 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.17.1.1.5' + indexes: + - labelname: mtxrPartitionIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrPartitionRunning + oid: 1.3.6.1.4.1.14988.1.1.17.1.1.6 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.17.1.1.6' + indexes: + - labelname: mtxrPartitionIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrScriptRunIndex + oid: 1.3.6.1.4.1.14988.1.1.18.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.18.1.1.1' + indexes: + - labelname: mtxrScriptRunIndex + type: gauge + - name: mtxrScriptRunOutput + oid: 1.3.6.1.4.1.14988.1.1.18.1.1.2 + type: DisplayString + help: this oid on get request will run script and return it's output - 1.3.6.1.4.1.14988.1.1.18.1.1.2 + indexes: + - labelname: mtxrScriptRunIndex + type: gauge + - name: mtxrOpticalIndex + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.1' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrOpticalName + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.2 + type: DisplayString + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.2' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrOpticalRxLoss + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.3 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.3' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrOpticalTxFault + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.4 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.4' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrOpticalWavelength + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.5 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.5' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrOpticalTemperature + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.6 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.6' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrOpticalSupplyVoltage + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.7 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.7' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrOpticalTxBiasCurrent + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.8 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.8' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrOpticalTxPower + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.9 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.9' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrOpticalRxPower + oid: 1.3.6.1.4.1.14988.1.1.19.1.1.10 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.19.1.1.10' + indexes: + - labelname: mtxrOpticalIndex + type: gauge + - name: mtxrIkeSACount + oid: 1.3.6.1.4.1.14988.1.1.20.1 + type: gauge + help: IKE SA count - 1.3.6.1.4.1.14988.1.1.20.1 + - name: mtxrIkeSAIndex + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.1 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.1' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAInitiatorCookie + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.2 + type: DisplayString + help: initiator SPI - 1.3.6.1.4.1.14988.1.1.20.2.1.2 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAResponderCookie + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.3 + type: DisplayString + help: responder SPI - 1.3.6.1.4.1.14988.1.1.20.2.1.3 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAResponder + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.4 + type: gauge + help: IKE side - 1.3.6.1.4.1.14988.1.1.20.2.1.4 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrIkeSANatt + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.5 + type: gauge + help: NAT is detected - 1.3.6.1.4.1.14988.1.1.20.2.1.5 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + enum_values: + 0: "false" + 1: "true" + - name: mtxrIkeSAVersion + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.6 + type: gauge + help: protocol version - 1.3.6.1.4.1.14988.1.1.20.2.1.6 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAState + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.7 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.7' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + enum_values: + 1: exchange + 2: established + 3: expired + 4: eap + - name: mtxrIkeSAUptime + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.8 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.8' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSASeen + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.9 + type: gauge + help: time elapsed since last valid IKE packet - 1.3.6.1.4.1.14988.1.1.20.2.1.9 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAIdentity + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.10 + type: DisplayString + help: peer identity - 1.3.6.1.4.1.14988.1.1.20.2.1.10 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAPh2Count + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.11 + type: gauge + help: total ph2 SA pairs - 1.3.6.1.4.1.14988.1.1.20.2.1.11 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSALocalAddressType + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.12 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.12' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + enum_values: + 0: unknown + 1: ipv4 + 2: ipv6 + 3: ipv4z + 4: ipv6z + 16: dns + - name: mtxrIkeSALocalAddress + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.13 + type: InetAddress + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.13' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSALocalPort + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.14 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.14' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAPeerAddressType + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.15 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.15' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + enum_values: + 0: unknown + 1: ipv4 + 2: ipv6 + 3: ipv4z + 4: ipv6z + 16: dns + - name: mtxrIkeSAPeerAddress + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.16 + type: InetAddress + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.16' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSAPeerPort + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.17 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.17' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSADynamicAddressType + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.18 + type: gauge + help: ' - 1.3.6.1.4.1.14988.1.1.20.2.1.18' + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + enum_values: + 0: unknown + 1: ipv4 + 2: ipv6 + 3: ipv4z + 4: ipv6z + 16: dns + - name: mtxrIkeSADynamicAddress + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.19 + type: InetAddress + help: dynamic address allocated by mode config - 1.3.6.1.4.1.14988.1.1.20.2.1.19 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSATxBytes + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.20 + type: counter + help: ph2 SA tx bytes - 1.3.6.1.4.1.14988.1.1.20.2.1.20 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSARxBytes + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.21 + type: counter + help: ph2 SA rx bytes - 1.3.6.1.4.1.14988.1.1.20.2.1.21 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSATxPackets + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.22 + type: counter + help: ph2 SA tx packets - 1.3.6.1.4.1.14988.1.1.20.2.1.22 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: mtxrIkeSARxPackets + oid: 1.3.6.1.4.1.14988.1.1.20.2.1.23 + type: counter + help: ph2 SA rx packets - 1.3.6.1.4.1.14988.1.1.20.2.1.23 + indexes: + - labelname: mtxrIkeSAIndex + type: gauge + - name: laIndex + oid: 1.3.6.1.4.1.2021.10.1.1 + type: gauge + help: reference index/row number for each observed loadave. - 1.3.6.1.4.1.2021.10.1.1 + indexes: + - labelname: laIndex + type: gauge + lookups: + - labels: + - laIndex + labelname: laNames + oid: 1.3.6.1.4.1.2021.10.1.2 + type: DisplayString + - labels: [] + labelname: laIndex