| 1 | plugin_name: tc.plugin |
| 2 | modules: |
| 3 | - meta: |
| 4 | plugin_name: tc.plugin |
| 5 | module_name: tc.plugin |
| 6 | monitored_instance: |
| 7 | name: tc QoS classes |
| 8 | link: "https://wiki.linuxfoundation.org/networking/iproute2" |
| 9 | categories: |
| 10 | - data-collection.networking |
| 11 | icon_filename: "netdata.png" |
| 12 | related_resources: |
| 13 | integrations: |
| 14 | list: [] |
| 15 | info_provided_to_referring_integrations: |
| 16 | description: "" |
| 17 | keywords: [] |
| 18 | overview: |
| 19 | data_collection: |
| 20 | metrics_description: "Examine tc metrics to gain insights into Linux traffic control operations. Study packet flow rates, queue lengths, and drop rates to optimize network traffic flow." |
| 21 | method_description: "The plugin uses `tc` command to collect information about Traffic control." |
| 22 | supported_platforms: |
| 23 | include: |
| 24 | - Linux |
| 25 | exclude: [] |
| 26 | multi_instance: true |
| 27 | additional_permissions: |
| 28 | description: "The plugin needs to access command `tc` to get the necessary metrics. To achieve this netdata modifies permission of file `/usr/libexec/netdata/plugins.d/tc-qos-helper.sh`." |
| 29 | default_behavior: |
| 30 | auto_detection: |
| 31 | description: "" |
| 32 | limits: |
| 33 | description: "" |
| 34 | performance_impact: |
| 35 | description: "" |
| 36 | setup: |
| 37 | prerequisites: |
| 38 | list: |
| 39 | - title: Create `tc-qos-helper.conf` |
| 40 | description: | |
| 41 | In order to view tc classes, you need to create the file `/etc/netdata/tc-qos-helper.conf` with content: |
| 42 | |
| 43 | ```text |
| 44 | tc_show="class" |
| 45 | ``` |
| 46 | configuration: |
| 47 | file: |
| 48 | name: "netdata.conf" |
| 49 | section_name: "[plugin:tc]" |
| 50 | description: "The main configuration file." |
| 51 | options: |
| 52 | description: "" |
| 53 | folding: |
| 54 | title: "Config option" |
| 55 | enabled: true |
| 56 | list: |
| 57 | - name: script to run to get tc values |
| 58 | description: Path to script `tc-qos-helper.sh` |
| 59 | default_value: "usr/libexec/netdata/plugins.d/tc-qos-helper.s" |
| 60 | required: false |
| 61 | - name: enable show all classes and qdiscs for all interfaces |
| 62 | description: yes/no flag to control what data is presented. |
| 63 | default_value: "yes" |
| 64 | required: false |
| 65 | examples: |
| 66 | folding: |
| 67 | enabled: false |
| 68 | title: "Config" |
| 69 | list: |
| 70 | - name: Basic |
| 71 | description: | |
| 72 | A basic example configuration using classes defined in `/etc/iproute2/tc_cls`. |
| 73 | |
| 74 | An example of class IDs mapped to names in that file can be: |
| 75 | |
| 76 | ```text |
| 77 | 2:1 Standard |
| 78 | 2:8 LowPriorityData |
| 79 | 2:10 HighThroughputData |
| 80 | 2:16 OAM |
| 81 | 2:18 LowLatencyData |
| 82 | 2:24 BroadcastVideo |
| 83 | 2:26 MultimediaStreaming |
| 84 | 2:32 RealTimeInteractive |
| 85 | 2:34 MultimediaConferencing |
| 86 | 2:40 Signalling |
| 87 | 2:46 Telephony |
| 88 | 2:48 NetworkControl |
| 89 | ``` |
| 90 | |
| 91 | You can read more about setting up the tc rules in rc.local in this [GitHub issue](https://github.com/netdata/netdata/issues/4563#issuecomment-455711973). |
| 92 | |
| 93 | config: | |
| 94 | [plugin:tc] |
| 95 | script to run to get tc values = /usr/libexec/netdata/plugins.d/tc-qos-helper.sh |
| 96 | enable show all classes and qdiscs for all interfaces = yes |
| 97 | troubleshooting: |
| 98 | problems: |
| 99 | list: [] |
| 100 | alerts: [] |
| 101 | metrics: |
| 102 | folding: |
| 103 | title: Metrics |
| 104 | enabled: false |
| 105 | description: "" |
| 106 | availability: [] |
| 107 | scopes: |
| 108 | - name: network device direction |
| 109 | description: "Metrics related to QoS network device directions. Each direction (in/out) produces its own set of the following metrics." |
| 110 | labels: |
| 111 | - name: device |
| 112 | description: The network interface. |
| 113 | - name: device_name |
| 114 | description: The network interface name |
| 115 | - name: group |
| 116 | description: The device family |
| 117 | metrics: |
| 118 | - name: tc.qos |
| 119 | description: Class Usage |
| 120 | unit: "kilobits/s" |
| 121 | chart_type: stacked |
| 122 | dimensions: |
| 123 | - name: a dimension per class |
| 124 | - name: tc.qos_packets |
| 125 | description: Class Packets |
| 126 | unit: "packets/s" |
| 127 | chart_type: stacked |
| 128 | dimensions: |
| 129 | - name: a dimension per class |
| 130 | - name: tc.qos_dropped |
| 131 | description: Class Dropped Packets |
| 132 | unit: "packets/s" |
| 133 | chart_type: stacked |
| 134 | dimensions: |
| 135 | - name: a dimension per class |
| 136 | - name: tc.qos_tokens |
| 137 | description: Class Tokens |
| 138 | unit: "tokens" |
| 139 | chart_type: line |
| 140 | dimensions: |
| 141 | - name: a dimension per class |
| 142 | - name: tc.qos_ctokens |
| 143 | description: Class cTokens |
| 144 | unit: "ctokens" |
| 145 | chart_type: line |
| 146 | dimensions: |
| 147 | - name: a dimension per class |