From 5f2a3a9757cc67827e87dfc8452557e624ca1814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?zoe=C2=A0=E2=9C=A8?= <9274242+zoedt@users.noreply.github.com> Date: Thu, 30 Apr 2026 15:44:31 -0400 Subject: [PATCH] Revert "Kylerkang new dashboards (#23427)" This reverts commit 4f8c1f475394722c4e86c95383811da9be09c5a0. --- snmp/assets/dashboards/bgp_ospf_overview.json | 2130 +++---- .../dashboards/datacenter_overview.json | 4571 +------------- .../dashboards/interface_performance.json | 2878 +-------- .../dashboards/ndm_troubleshooting.json | 5462 +++++++++-------- .../assets/dashboards/netflow_monitoring.json | 4793 ++++++--------- 5 files changed, 5951 insertions(+), 13883 deletions(-) diff --git a/snmp/assets/dashboards/bgp_ospf_overview.json b/snmp/assets/dashboards/bgp_ospf_overview.json index 6146ddde4441a..50ce9ee9c40e4 100644 --- a/snmp/assets/dashboards/bgp_ospf_overview.json +++ b/snmp/assets/dashboards/bgp_ospf_overview.json @@ -1,1336 +1,888 @@ { - "title": "NDM BGP/OSPF Overview", - "description": "SNMP routing health: device context, BGP sessions (state, flap history, updates), and OSPF interfaces and neighbors. Scope with template variables; metrics require a profile that collects BGP4-MIB and OSPF-MIB.\n\n", - "widgets": [ - { - "id": 4041809847829585, - "definition": { - "type": "image", - "url": "https://imgix.datadoghq.com/img/blog/monitor-snmp-with-datadog/snmp-hero-image.png?fit=crop&w=1200&h=630", - "sizing": "zoom" - }, - "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 3 - } - }, - { - "id": 14, - "definition": { - "type": "note", - "content": "**How to use this board:** Confirm the device and links (**Device context**), then **BGP** (session state, flaps, update activity), then **OSPF** (IGP adjacencies and interface health). All data is from **SNMP** (BGP4-MIB / OSPF-MIB); availability depends on your device profile.\n\n**Filters:** `$profile`, `$snmp_host`, `$snmp_device`, `$interface`, plus `$bgp_neighbor`, `$bgp_remote_as`, `$ospf_neighbor_id`, `$ospf_neighbor_ip`. See [template variables](https://docs.datadoghq.com/dashboards/template_variables/).\n\n**Tip:** Use `*` only when the environment is small; narrow **device** first, then **neighbor** filters, so charts stay readable.", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 3 - } - }, - { - "id": 1059248410633808, - "definition": { - "title": "Device context", - "background_color": "green", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 23, + "title": "NDM BGP/OSPF Overview", + "description": "This dashboard is meant to be a generic view for any type of device, use the template variables above to dynamically filter widgets in a dashboard.", + "widgets": [ + { + "id": 13, "definition": { - "title": "System uptime by device (days)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "distribution", - "xaxis": { - "scale": "linear", - "min": "auto", - "max": "auto", - "include_zero": true - }, - "yaxis": { - "scale": "linear", - "min": "auto", - "max": "auto", - "include_zero": true - }, - "requests": [ - { - "formulas": [ - { - "formula": "query1 / 8640000" - } - ], - "queries": [ - { - "query": "max:snmp.sysUpTimeInstance{$profile,$snmp_host,$snmp_device} by {snmp_host}", - "data_source": "metrics", - "name": "query1", - "aggregator": "min" - } - ], - "response_format": "scalar" - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 4 - } - }, - { - "id": 19, - "definition": { - "title": "Interface admin / oper status", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "query": "max:snmp.interface.status{$profile,$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_alias,admin_status,oper_status}", - "data_source": "metrics", - "name": "query2", - "aggregator": "last" - } - ], - "text_formats": [ - [], - [], - [], - [ - { - "match": { - "type": "is", - "value": "up" - }, - "palette": "black_on_light_green" - }, - { - "match": { - "type": "is", - "value": "down" - }, - "palette": "black_on_light_red" - }, - { - "match": { - "type": "is", - "value": "testing" - }, - "palette": "black_on_light_yellow" - } - ], - [ - { - "match": { - "type": "is", - "value": "up" - }, - "palette": "black_on_light_green" - }, - { - "match": { - "type": "is", - "value": "down" - }, - "palette": "black_on_light_red" - }, - { - "match": { - "type": "is", - "value": "testing" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "unknown" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "dormant" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "not_present" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "lower_layer_down" - }, - "palette": "black_on_light_yellow" - } - ], - [ - { - "match": { - "type": "is", - "value": "up" - }, - "palette": "black_on_light_green" - }, - { - "match": { - "type": "is", - "value": "down" - }, - "palette": "black_on_light_red" - }, - { - "match": { - "type": "is", - "value": "testing" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "unknown" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "dormant" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "not_present" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "lower_layer_down" - }, - "palette": "black_on_light_yellow" - } - ] - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "status", - "cell_display_mode": "number", - "formula": "query2" - } - ] - } - ], - "custom_links": [] - }, - "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 4 - } - }, - { - "id": 27, - "definition": { - "title": "Shortest uptime by device (hours)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "conditional_formats": [ - { - "palette": "white_on_green", - "value": 48, - "comparator": ">=" - }, - { - "palette": "white_on_yellow", - "value": 12, - "comparator": ">" - }, - { - "palette": "white_on_red", - "value": 12, - "comparator": "<=" - } - ], - "response_format": "scalar", - "queries": [ - { - "query": "avg:snmp.sysUpTimeInstance{$profile,$snmp_host,$snmp_device,$interface} by {snmp_host}", - "data_source": "metrics", - "name": "query1", - "aggregator": "last" - } - ], - "formulas": [ - { - "formula": "query1 / 360000" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "asc" - } - ] - } - } - ], - "custom_links": [] + "type": "image", + "url": "https://imgix.datadoghq.com/img/blog/monitor-snmp-with-datadog/snmp-hero-image.png?fit=crop&w=1200&h=630", + "sizing": "zoom" }, "layout": { - "x": 0, - "y": 4, - "width": 6, - "height": 2 + "x": 0, + "y": 0, + "width": 6, + "height": 2 } - }, - { - "id": 22, + }, + { + "id": 14, "definition": { - "type": "note", - "content": "**Uptime:** `sysUpTime` is a 32-bit counter in hundredths of a second, so it **wraps after about 497 days**. After wrap, values look lower until the counter catches up—not necessarily a reboot.", - "background_color": "gray", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left" + "type": "note", + "content": "This dashboard is meant to be a **generic view** of OSPF and BGP information for any type of device, use the [template variables](https://docs.datadoghq.com/dashboards/template_variables/#saved-views) above to dynamically filter widgets in a dashboard.\n\nFor example, use `$snmp_host` to filter by a specific hostname or `$snmp_device` to filter by a device's IP address.", + "background_color": "white", + "font_size": "14", + "text_align": "center", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left" }, "layout": { - "x": 6, - "y": 4, - "width": 6, - "height": 2 + "x": 6, + "y": 0, + "width": 6, + "height": 2 } - } - ] - }, - "layout": { - "x": 0, - "y": 3, - "width": 12, - "height": 7 - } - }, - { - "id": 1738928755750598, - "definition": { - "title": "BGP — session health", - "background_color": "orange", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 31, + }, + { + "id": 1059248410633808, "definition": { - "title": "BGP peers — snapshot", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "query": "max:snmp.bgpPeerNegotiatedVersion{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query3", - "aggregator": "last" - }, - { - "query": "sum:snmp.bgpPeerInUpdates{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query4", - "aggregator": "last" - }, - { - "query": "sum:snmp.bgpPeerOutUpdates{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query5", - "aggregator": "last" - }, - { - "query": "sum:snmp.bgpPeerInTotalMessages{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query6", - "aggregator": "last" - }, - { - "query": "sum:snmp.bgpPeerOutTotalMessages{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query7", - "aggregator": "last" - }, - { - "query": "max:snmp.bgpPeerState{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query8", - "aggregator": "last" - }, - { - "query": "max:snmp.bgpPeerFsmEstablishedTransitions{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query9", - "aggregator": "last" - }, - { - "query": "max:snmp.bgpPeerFsmEstablishedTime{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", - "data_source": "metrics", - "name": "query10", - "aggregator": "last" - } - ], - "text_formats": [ - [], - [], - [], - [ - { - "match": { - "type": "is", - "value": "idle" - }, - "palette": "black_on_light_red" - }, - { - "match": { - "type": "is", - "value": "connect" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "active" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "opensent" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "openconfirm" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "established" - }, - "palette": "black_on_light_green" - } - ], - [ - { - "match": { - "type": "is", - "value": "1" - }, - "palette": "black_on_light_red" - }, - { - "match": { - "type": "is", - "value": "2" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "3" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "4" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "5" - }, - "palette": "black_on_light_yellow" - }, - { - "match": { - "type": "is", - "value": "6" - }, - "palette": "black_on_light_green" - } - ], - [], - [] - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 5, - "order": "asc" - } - ] - }, - "formulas": [ - { - "alias": "Version", - "formula": "query3" - }, - { - "alias": "In Updates", - "formula": "query4" - }, - { - "alias": "Out Updates", - "formula": "query5" - }, - { - "alias": "In Messages", - "formula": "query6" - }, - { - "alias": "Out Messages", - "formula": "query7" - }, - { - "alias": "Peer state (Code)", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "state" + "title": "Device Details", + "background_color": "green", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 23, + "definition": { + "title": "System Uptime by device (days)", + "title_size": "16", + "title_align": "left", + "show_legend": false, + "type": "distribution", + "xaxis": { + "scale": "linear", + "min": "auto", + "max": "auto", + "include_zero": true + }, + "yaxis": { + "scale": "linear", + "min": "auto", + "max": "auto", + "include_zero": true + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1 / 8640000" + } + ], + "queries": [ + { + "query": "max:snmp.sysUpTimeInstance{$profile,$snmp_host,$snmp_device} by {snmp_host}", + "data_source": "metrics", + "name": "query1", + "aggregator": "min" + } + ], + "response_format": "scalar" + } + ] + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 4 } - }, - "formula": "query8" }, { - "alias": "Est. transitions (total)", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "count" + "id": 19, + "definition": { + "title": "All interfaces status", + "type": "query_table", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "query": "max:snmp.interface.status{$profile,$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_profile,snmp_host,admin_status,oper_status}", + "data_source": "metrics", + "name": "query2", + "aggregator": "last" + } + ], + "text_formats": [ + [], + [], + [], + [ + { + "match": { + "type": "is", + "value": "up" + }, + "palette": "black_on_light_green" + }, + { + "match": { + "type": "is", + "value": "down" + }, + "palette": "black_on_light_red" + }, + { + "match": { + "type": "is", + "value": "testing" + }, + "palette": "black_on_light_yellow" + } + ], + [ + { + "match": { + "type": "is", + "value": "up" + }, + "palette": "black_on_light_green" + }, + { + "match": { + "type": "is", + "value": "down" + }, + "palette": "black_on_light_red" + }, + { + "match": { + "type": "is", + "value": "testing" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "unknown" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "dormant" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "not_present" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "lower_layer_down" + }, + "palette": "black_on_light_yellow" + } + ], + [ + { + "match": { + "type": "is", + "value": "up" + }, + "palette": "black_on_light_green" + }, + { + "match": { + "type": "is", + "value": "down" + }, + "palette": "black_on_light_red" + }, + { + "match": { + "type": "is", + "value": "testing" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "unknown" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "dormant" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "not_resent" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "lower_layer_down" + }, + "palette": "black_on_light_yellow" + } + ] + ], + "formulas": [ + { + "alias": "status", + "formula": "query2", + "limit": { + "count": 500, + "order": "desc" + }, + "cell_display_mode": "number" + } + ] + } + ], + "custom_links": [] + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 4 } - }, - "formula": "query9" }, { - "alias": "Time in established (s)", - "number_format": { - "precision": "integer", - "unit": { - "type": "canonical_unit", - "unit_name": "second" + "id": 27, + "definition": { + "title": "Bottom 10 devices by Uptime (hours)", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "formulas": [ + { + "formula": "query1 / 360000", + "limit": { + "count": 10, + "order": "asc" + } + } + ], + "conditional_formats": [ + { + "palette": "white_on_green", + "value": 48, + "comparator": ">=" + }, + { + "palette": "white_on_yellow", + "value": 12, + "comparator": ">" + }, + { + "palette": "white_on_red", + "value": 12, + "comparator": "<=" + } + ], + "response_format": "scalar", + "queries": [ + { + "query": "avg:snmp.sysUpTimeInstance{$profile,$snmp_host,$snmp_device,$interface} by {snmp_host}", + "data_source": "metrics", + "name": "query1", + "aggregator": "last" + } + ] + } + ], + "custom_links": [] + }, + "layout": { + "x": 0, + "y": 4, + "width": 6, + "height": 2 } - }, - "formula": "query10" - } - ] - } - ], - "custom_links": [] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 6 - } - }, - { - "id": 32, - "definition": { - "type": "note", - "content": "### **BGP Connection States:**\n\nThe **ADMIN** metric is the desired state of the BGP connection.\n\n**(1) stop, (2) start:** A transition from stop to start represents the restart of a BGP peer connection.\n\n\nThe **STATE** metric is the current BGP peer connection state.\n\n**(1) idle, (2) connect, (3) active, (4) open sent, (5) open confirm, (6) established**\n\n**Est. transitions** increases each time the session reaches established (watch for steps = flaps). **Time in established** is seconds in the current/last established interval. **Updates / messages** are cumulative SNMP counters; use the **rate** chart below for churn.", - "background_color": "gray", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "right" - }, - "layout": { - "x": 0, - "y": 6, - "width": 12, - "height": 3 - } - }, - { - "id": 9100000000000300, - "definition": { - "title": "BGP peer state over time", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.bgpPeerState{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor}" - } - ], - "formulas": [ + }, { - "formula": "top(query1, 20, 'max', 'desc')", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "state" + "id": 22, + "definition": { + "type": "note", + "content": "The OID that the **UPTIME** metric corresponds to is a 32-bit counter with a maximum value of 2^32 (the integer 4294967296). Because the returned uptime value is given in hundredths of a second, **the maximum possible uptime that can be displayed is 497 days** (4294967296 hundreds of seconds). \n\nIf the uptime exceeds this value, the counter resets to 0 and uptime values will appear lower than they actually are.", + "background_color": "gray", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left" + }, + "layout": { + "x": 6, + "y": 4, + "width": 6, + "height": 2 } - } } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "MIB (6=established)", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] + ] }, "layout": { - "x": 0, - "y": 9, - "width": 6, - "height": 4 + "x": 0, + "y": 2, + "width": 12, + "height": 7 } - }, - { - "id": 9100000000000302, + }, + { + "id": 4112300131729308, "definition": { - "title": "BGP established transitions", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.bgpPeerFsmEstablishedTransitions{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor}" - } - ], - "formulas": [ - { - "formula": "top(query1, 20, 'max', 'desc')", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "transitions" + "title": "OSPF", + "background_color": "blue", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 33, + "definition": { + "title": "OSPF Interfaces", + "title_size": "16", + "title_align": "left", + "type": "query_table", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "query": "avg:snmp.ospfIfRetransInterval{$profile,$snmp_host,$snmp_device} by {snmp_host,ospf_ip_addr,if_state}", + "data_source": "metrics", + "name": "query2", + "aggregator": "avg" + } + ], + "text_formats": [ + [], + [], + [ + { + "match": { + "type": "is", + "value": "down" + }, + "palette": "black_on_light_red", + "replace": { + "type": "all", + "with": "Down" + } + }, + { + "match": { + "type": "is", + "value": "loopback" + }, + "palette": "black_on_light_yellow", + "replace": { + "type": "all", + "with": "Loopback" + } + }, + { + "match": { + "type": "is", + "value": "waiting" + }, + "palette": "black_on_light_yellow", + "replace": { + "type": "all", + "with": "Waiting" + } + }, + { + "match": { + "type": "is", + "value": "point_to_point" + }, + "palette": "black_on_light_green", + "replace": { + "type": "all", + "with": "Point to Point" + } + }, + { + "match": { + "type": "is", + "value": "designated_router" + }, + "palette": "black_on_light_green", + "replace": { + "type": "all", + "with": "Designated Router" + } + }, + { + "match": { + "type": "is", + "value": "backup_designated_router" + }, + "palette": "black_on_light_green", + "replace": { + "type": "all", + "with": "Backup Designated Router" + } + }, + { + "match": { + "type": "is", + "value": "other_designated_router" + }, + "palette": "black_on_light_green", + "replace": { + "type": "all", + "with": "Other Designated Router" + } + } + ] + ], + "formulas": [ + { + "alias": "Retrans (secs)", + "formula": "query2", + "limit": { + "count": 10000, + "order": "desc" + } + } + ] + } + ], + "custom_links": [] + }, + "layout": { + "x": 0, + "y": 0, + "width": 6, + "height": 4 } - } - } - ], - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "Cumulative count", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 6, - "y": 9, - "width": 6, - "height": 4 - } - }, - { - "id": 9100000000000304, - "definition": { - "title": "BGP update rate", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.bgpPeerInUpdates{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor}" }, { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.bgpPeerOutUpdates{$profile,$snmp_host,$snmp_device,$bgp_neighbor,$bgp_remote_as} by {snmp_device,snmp_host,neighbor}" - } - ], - "formulas": [ - { - "alias": "In updates/s", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "updates/s" + "id": 35, + "definition": { + "title": "OSPF Neighbors", + "title_size": "16", + "title_align": "left", + "type": "query_table", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "query": "sum:snmp.ospfNbrEvents{$profile,$snmp_host,$snmp_device,$ospf_neighbor_id,$ospf_neighbor_ip} by {snmp_device,snmp_host,neighbor_id,neighbor_ip,neighbor_state}", + "data_source": "metrics", + "name": "query2", + "aggregator": "last" + }, + { + "query": "max:snmp.ospfNbrLsRetransQLen{$profile,$snmp_host,$snmp_device,$ospf_neighbor_id,$ospf_neighbor_ip} by {snmp_device,snmp_host,neighbor_id,neighbor_ip,neighbor_state}", + "data_source": "metrics", + "name": "query3", + "aggregator": "last" + } + ], + "text_formats": [ + [], + [], + [], + [], + [ + { + "match": { + "type": "is", + "value": "down" + }, + "palette": "black_on_light_red", + "replace": { + "type": "all", + "with": "Down" + } + }, + { + "match": { + "type": "is", + "value": "attempt" + }, + "palette": "black_on_light_red", + "replace": { + "type": "all", + "with": "Attempt" + } + }, + { + "match": { + "type": "is", + "value": "init" + }, + "palette": "black_on_light_yellow", + "replace": { + "type": "all", + "with": "Init" + } + }, + { + "match": { + "type": "is", + "value": "two_way" + }, + "palette": "black_on_light_yellow", + "replace": { + "type": "all", + "with": "Two Way" + } + }, + { + "match": { + "type": "is", + "value": "exchange_start" + }, + "palette": "black_on_light_yellow", + "replace": { + "type": "all", + "with": "Exchange Start" + } + }, + { + "match": { + "type": "is", + "value": "exchange" + }, + "palette": "black_on_light_yellow", + "replace": { + "type": "all", + "with": "Exchange" + } + }, + { + "match": { + "type": "is", + "value": "loading" + }, + "palette": "black_on_light_yellow", + "replace": { + "type": "all", + "with": "Loading" + } + }, + { + "match": { + "type": "is", + "value": "full" + }, + "palette": "black_on_light_green", + "replace": { + "type": "all", + "with": "Full" + } + } + ] + ], + "formulas": [ + { + "alias": "Events", + "formula": "query2", + "limit": { + "count": 10000, + "order": "desc" + } + }, + { + "alias": "Queue Length", + "formula": "query3" + } + ] + } + ], + "custom_links": [] + }, + "layout": { + "x": 6, + "y": 0, + "width": 6, + "height": 4 } - }, - "formula": "top(query1, 20, 'max', 'desc')" }, { - "alias": "Out updates/s", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "updates/s" + "id": 34, + "definition": { + "type": "note", + "content": "### **OSPF Interface States:**\n\nThe **STATE** metric is the current OSPF interface state.\n\n**(1) down, (2) loopback, (3) waiting, (4) point to point, (5) designated router, (6) backup designated router, (7) other designated router**\n\n---------------------\n\nThe **RETRANS** metric is the number of seconds between link state advertisement retransmissions, for adjacencies belonging to this interface.", + "background_color": "gray", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "right" + }, + "layout": { + "x": 0, + "y": 4, + "width": 6, + "height": 3 } - }, - "formula": "top(query2, 20, 'max', 'desc')" - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "Updates per second", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 13, - "width": 12, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 10, - "width": 12, - "height": 18 - } - }, - { - "id": 4112300131729308, - "definition": { - "title": "OSPF — IGP health", - "background_color": "blue", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 33, - "definition": { - "title": "OSPF interfaces", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "query": "avg:snmp.ospfIfRetransInterval{$profile,$snmp_host,$snmp_device} by {snmp_host,ospf_ip_addr,if_state}", - "data_source": "metrics", - "name": "query2", - "aggregator": "avg" }, { - "query": "avg:snmp.ospfIfLsaCount{$profile,$snmp_host,$snmp_device} by {snmp_host,ospf_ip_addr,if_state}", - "data_source": "metrics", - "name": "query_lsa", - "aggregator": "avg" - } - ], - "text_formats": [ - [], - [], - [ - { - "match": { - "type": "is", - "value": "down" - }, - "palette": "black_on_light_red", - "replace": { - "type": "all", - "with": "Down" - } - }, - { - "match": { - "type": "is", - "value": "loopback" - }, - "palette": "black_on_light_yellow", - "replace": { - "type": "all", - "with": "Loopback" + "id": 36, + "definition": { + "type": "note", + "content": "### **OSPF Neighbor States:**\n\nThe **STATE** metric is the state of the relationship with this neighbor.\n\n**(1) down, (2) attempt, (3) init, (4) two way, (5) exchange start, (6) exchange, (7) loading, (8) full** \n\n---------------------\n\nThe **EVENTS** metric is the number of times this neighbor relationship has changed state or an error has occurred. ", + "background_color": "gray", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "right" + }, + "layout": { + "x": 6, + "y": 4, + "width": 6, + "height": 3 } - }, - { - "match": { - "type": "is", - "value": "waiting" - }, - "palette": "black_on_light_yellow", - "replace": { - "type": "all", - "with": "Waiting" - } - }, - { - "match": { - "type": "is", - "value": "point_to_point" - }, - "palette": "black_on_light_green", - "replace": { - "type": "all", - "with": "Point to Point" - } - }, - { - "match": { - "type": "is", - "value": "designated_router" - }, - "palette": "black_on_light_green", - "replace": { - "type": "all", - "with": "Designated Router" - } - }, - { - "match": { - "type": "is", - "value": "backup_designated_router" - }, - "palette": "black_on_light_green", - "replace": { - "type": "all", - "with": "Backup Designated Router" - } - }, - { - "match": { - "type": "is", - "value": "other_designated_router" - }, - "palette": "black_on_light_green", - "replace": { - "type": "all", - "with": "Other Designated Router" - } - } - ], - [] - ], - "sort": { - "count": 10000, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Retrans (secs)", - "formula": "query2" - }, - { - "alias": "LSA count", - "formula": "query_lsa" } - ] - } - ], - "custom_links": [] + ] }, "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 4 + "x": 0, + "y": 9, + "width": 12, + "height": 8 } - }, - { - "id": 35, + }, + { + "id": 1738928755750598, "definition": { - "title": "OSPF neighbors", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "query": "sum:snmp.ospfNbrEvents{$profile,$snmp_host,$snmp_device,$ospf_neighbor_id,$ospf_neighbor_ip} by {snmp_device,snmp_host,neighbor_id,neighbor_ip,neighbor_state}", - "data_source": "metrics", - "name": "query2", - "aggregator": "last" - }, - { - "query": "max:snmp.ospfNbrLsRetransQLen{$profile,$snmp_host,$snmp_device,$ospf_neighbor_id,$ospf_neighbor_ip} by {snmp_device,snmp_host,neighbor_id,neighbor_ip,neighbor_state}", - "data_source": "metrics", - "name": "query3", - "aggregator": "last" - } - ], - "text_formats": [ - [], - [], - [], - [], - [ - { - "match": { - "type": "is", - "value": "down" - }, - "palette": "black_on_light_red", - "replace": { - "type": "all", - "with": "Down" - } - }, - { - "match": { - "type": "is", - "value": "attempt" - }, - "palette": "black_on_light_red", - "replace": { - "type": "all", - "with": "Attempt" - } - }, - { - "match": { - "type": "is", - "value": "init" - }, - "palette": "black_on_light_yellow", - "replace": { - "type": "all", - "with": "Init" - } - }, - { - "match": { - "type": "is", - "value": "two_way" - }, - "palette": "black_on_light_yellow", - "replace": { - "type": "all", - "with": "Two Way" - } - }, - { - "match": { - "type": "is", - "value": "exchange_start" - }, - "palette": "black_on_light_yellow", - "replace": { - "type": "all", - "with": "Exchange Start" + "title": "BGP", + "background_color": "orange", + "show_title": true, + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 31, + "definition": { + "title": "BGP Neighbors", + "title_size": "16", + "title_align": "left", + "time": {}, + "type": "query_table", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "query": "max:snmp.bgpPeerNegotiatedVersion{$profile,$snmp_host,$snmp_device,$bgp_neighbor ,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", + "data_source": "metrics", + "name": "query3", + "aggregator": "last" + }, + { + "query": "sum:snmp.bgpPeerInUpdates{$profile,$snmp_host,$snmp_device,$bgp_neighbor ,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", + "data_source": "metrics", + "name": "query4", + "aggregator": "last" + }, + { + "query": "sum:snmp.bgpPeerOutUpdates{$profile,$snmp_host,$snmp_device,$bgp_neighbor ,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", + "data_source": "metrics", + "name": "query5", + "aggregator": "last" + }, + { + "query": "sum:snmp.bgpPeerInTotalMessages{$profile,$snmp_host,$snmp_device,$bgp_neighbor ,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", + "data_source": "metrics", + "name": "query6", + "aggregator": "last" + }, + { + "query": "sum:snmp.bgpPeerOutTotalMessages{$profile,$snmp_host,$snmp_device,$bgp_neighbor ,$bgp_remote_as} by {snmp_device,snmp_host,neighbor,peer_state,admin_status,remote_as}", + "data_source": "metrics", + "name": "query7", + "aggregator": "last" + } + ], + "text_formats": [ + [], + [], + [], + [ + { + "match": { + "type": "is", + "value": "idle" + }, + "palette": "black_on_light_red" + }, + { + "match": { + "type": "is", + "value": "connect" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "active" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "opensent" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "openconfirm" + }, + "palette": "black_on_light_yellow" + }, + { + "match": { + "type": "is", + "value": "established" + }, + "palette": "black_on_light_green" + } + ] + ], + "formulas": [ + { + "alias": "Version", + "formula": "query3", + "limit": { + "count": 10000, + "order": "desc" + } + }, + { + "alias": "In Updates", + "formula": "query4" + }, + { + "alias": "Out Updates", + "formula": "query5" + }, + { + "alias": "In Messages", + "formula": "query6" + }, + { + "alias": "Out Messages", + "formula": "query7" + } + ] + } + ], + "custom_links": [] + }, + "layout": { + "x": 0, + "y": 0, + "width": 7, + "height": 5 } - }, - { - "match": { - "type": "is", - "value": "exchange" - }, - "palette": "black_on_light_yellow", - "replace": { - "type": "all", - "with": "Exchange" - } - }, - { - "match": { - "type": "is", - "value": "loading" - }, - "palette": "black_on_light_yellow", - "replace": { - "type": "all", - "with": "Loading" - } - }, - { - "match": { - "type": "is", - "value": "full" - }, - "palette": "black_on_light_green", - "replace": { - "type": "all", - "with": "Full" - } - } - ] - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Events", - "formula": "query2" }, { - "alias": "Queue Length", - "formula": "query3" - } - ] - } - ], - "custom_links": [] - }, - "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 4 - } - }, - { - "id": 355285751950157, - "definition": { - "type": "note", - "content": "### **OSPF Interface States:**\n\nThe **STATE** metric is the current OSPF interface state.\n\n**(1) down, (2) loopback, (3) waiting, (4) point to point, (5) designated router, (6) backup designated router, (7) other designated router**\n\n---------------------\n\nThe **RETRANS** metric is the number of seconds between link state advertisement retransmissions, for adjacencies belonging to this interface.", - "background_color": "gray", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "right" - }, - "layout": { - "x": 0, - "y": 4, - "width": 6, - "height": 3 - } - }, - { - "id": 5817781938376, - "definition": { - "type": "note", - "content": "### **OSPF Neighbor States:**\n\nThe **STATE** metric is the state of the relationship with this neighbor.\n\n**(1) down, (2) attempt, (3) init, (4) two way, (5) exchange start, (6) exchange, (7) loading, (8) full** \n\n---------------------\n\nThe **EVENTS** metric is the number of times this neighbor relationship has changed state or an error has occurred. ", - "background_color": "gray", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "right" - }, - "layout": { - "x": 6, - "y": 4, - "width": 6, - "height": 3 - } - }, - { - "id": 3460690404800596, - "definition": { - "title": "OSPF interface state over time", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ospfIfState{$profile,$snmp_host,$snmp_device} by {snmp_host,ospf_ip_addr}" - } - ], - "formulas": [ - { - "formula": "top(query1, 20, 'max', 'desc')", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "state" - } - } - } - ], - "style": { - "palette": "orange", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "MIB interface state", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 7, - "width": 6, - "height": 4 - } - }, - { - "id": 4955445172577666, - "definition": { - "title": "OSPF neighbor state over time", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ospfNbrState{$profile,$snmp_host,$snmp_device,$ospf_neighbor_id,$ospf_neighbor_ip} by {snmp_device,snmp_host,neighbor_id,neighbor_ip}" - } - ], - "formulas": [ - { - "formula": "top(query1, 20, 'max', 'desc')", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "state" + "id": 32, + "definition": { + "type": "note", + "content": "### **BGP Connection States:**\n\nThe **ADMIN** metric is the desired state of the BGP connection.\n\n**(1) stop, (2) start:** A transition from stop to start represents the restart of a BGP peer connection.\n\n---------------------\n\nThe **STATE** metric is the current BGP peer connection state.\n\n**(1) idle, (2) connect, (3) active, (4) open sent, (5) open confirm, (6) established**", + "background_color": "gray", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "right" + }, + "layout": { + "x": 7, + "y": 0, + "width": 5, + "height": 5 } - } } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "MIB (8=full)", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] + ] }, "layout": { - "x": 6, - "y": 7, - "width": 6, - "height": 4 + "x": 0, + "y": 17, + "width": 12, + "height": 6 } - } - ] - }, - "layout": { - "x": 0, - "y": 56, - "width": 12, - "height": 12, - "is_column_break": true - } - } - ], - "template_variables": [ - { - "name": "profile", - "prefix": "snmp_profile", - "available_values": [], - "default": "*" - }, - { - "name": "snmp_host", - "prefix": "snmp_host", - "available_values": [], - "default": "*" - }, - { - "name": "snmp_device", - "prefix": "snmp_device", - "available_values": [], - "default": "*" - }, - { - "name": "bgp_neighbor", - "prefix": "neighbor", - "available_values": [], - "default": "*" - }, - { - "name": "bgp_remote_as", - "prefix": "remote_as", - "available_values": [], - "default": "*" - }, - { - "name": "ospf_neighbor_id", - "prefix": "neighbor_id", - "available_values": [], - "default": "*" - }, - { - "name": "ospf_neighbor_ip", - "prefix": "neighbor_ip", - "available_values": [], - "default": "*" - }, - { - "name": "interface", - "prefix": "interface", - "available_values": [], - "default": "*" - } - ], - "layout_type": "ordered", - "notify_list": [], - "pause_auto_refresh": false, - "reflow_type": "fixed" -} + } + ], + "template_variables": [ + { + "name": "profile", + "prefix": "snmp_profile", + "available_values": [], + "default": "*" + }, + { + "name": "snmp_host", + "prefix": "snmp_host", + "available_values": [], + "default": "*" + }, + { + "name": "snmp_device", + "prefix": "snmp_device", + "available_values": [], + "default": "*" + }, + { + "name": "bgp_neighbor", + "prefix": "neighbor", + "available_values": [], + "default": "*" + }, + { + "name": "bgp_remote_as", + "prefix": "remote_as", + "available_values": [], + "default": "*" + }, + { + "name": "ospf_neighbor_id", + "prefix": "neighbor_id", + "available_values": [], + "default": "*" + }, + { + "name": "ospf_neighbor_ip", + "prefix": "neighbor_ip", + "available_values": [], + "default": "*" + }, + { + "name": "interface", + "prefix": "interface", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed", + "tags": [] +} \ No newline at end of file diff --git a/snmp/assets/dashboards/datacenter_overview.json b/snmp/assets/dashboards/datacenter_overview.json index 44bc2c67e3ce7..8d5d5aeb6f365 100644 --- a/snmp/assets/dashboards/datacenter_overview.json +++ b/snmp/assets/dashboards/datacenter_overview.json @@ -2,363 +2,27 @@ "title": "Network Device Monitoring", "description": "## Network Device Monitoring Dashboard\n\nKeep track of all of your monitored on-premise appliances monitored with SNMP all in one place. At a glance, see all of the devices currently responding metrics, top interfaces reporting bandwidth and forecasted performance.\nRead more about: \n\nRead more about:\n\n* [Monitoring datacenters and network devices with Datadog](https://www.datadoghq.com/blog/datacenter-monitoring-dashboards/)\n* [Monitoring network devices with SNMP](https://www.datadoghq.com/blog/monitor-snmp-with-datadog/)\n* Learn more about the data collected in our [docs](https://docs.datadoghq.com/network_performance_monitoring/devices) ", "widgets": [ - { - "id": 1317082135420750, - "definition": { - "title": "Network overview", - "background_color": "green", - "show_title": true, - "powerpack_id": "bd1322fa-3972-11f1-9f25-da7ad0900002", - "template_variables": { - "controlled_externally": [ - { - "name": "interface", - "prefix": "interface", - "values": [ - "*" - ] - } - ], - "controlled_by_powerpack": [] - }, - "type": "powerpack" - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 1 - } - }, - { - "id": 6236562878226818, - "definition": { - "title": "Global Search", - "background_color": "vivid_purple", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 2684492343358142, - "definition": { - "title": "Global Search — Type in the search bar to find any device, interface, or circuit", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{*} by {snmp_device,snmp_host,interface,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifHCOutOctets.rate{*} by {snmp_device,snmp_host,interface,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifBandwidthInUsage.rate{*} by {snmp_device,snmp_host,interface,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query4", - "query": "avg:snmp.ifBandwidthOutUsage.rate{*} by {snmp_device,snmp_host,interface,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query5", - "query": "avg:snmp.ifInErrors{*} by {snmp_device,snmp_host,interface,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query6", - "query": "avg:snmp.ifOutErrors{*} by {snmp_device,snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "sort": { - "count": 100000, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "In (bytes/s)", - "cell_display_mode": "number", - "formula": "query1" - }, - { - "alias": "Out (bytes/s)", - "cell_display_mode": "number", - "formula": "query2" - }, - { - "alias": "In BW %", - "cell_display_mode": "bar", - "formula": "query3" - }, - { - "alias": "Out BW %", - "cell_display_mode": "bar", - "formula": "query4" - }, - { - "alias": "In Errors", - "cell_display_mode": "number", - "formula": "query5" - }, - { - "alias": "Out Errors", - "cell_display_mode": "number", - "formula": "query6" - } - ] - } - ], - "has_search_bar": "always", - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - }, - { - "link": "/devices?query=snmp_device%3A{{snmp_device.value}}", - "label": "View Device" - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 1, - "width": 12, - "height": 1 - } - }, { "id": 7507125964146004, "definition": { - "title": "Fleet pulse, reachability & hot interfaces", - "background_color": "vivid_green", - "show_title": true, + "title": "Network Summary", + "reflow_type": "fixed", "type": "group", "layout_type": "ordered", "widgets": [ - { - "id": 9400000000000000, - "definition": { - "title": "Monitored devices", - "title_size": "14", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "sum", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.devices_monitored{$snmp_host,$snmp_device}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "text_align": "center", - "precision": 0 - }, - "layout": { - "x": 0, - "y": 0, - "width": 3, - "height": 3 - } - }, - { - "id": 6037890565984311, - "definition": { - "title": "Reachable", - "title_size": "14", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "conditional_formats": [ - { - "comparator": ">", - "palette": "black_on_light_green", - "value": 0 - }, - { - "comparator": "<=", - "palette": "red_on_white", - "value": 0 - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "sum", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.device.reachable{$snmp_host,$snmp_device}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "text_align": "center", - "precision": 0 - }, - "layout": { - "x": 3, - "y": 0, - "width": 3, - "height": 3 - } - }, - { - "id": 9400000000000002, - "definition": { - "title": "Unreachable", - "title_size": "14", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "conditional_formats": [ - { - "comparator": ">", - "palette": "red_on_white", - "value": 0 - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "sum", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.device.unreachable{$snmp_host,$snmp_device}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "text_align": "center", - "precision": 0 - }, - "layout": { - "x": 6, - "y": 0, - "width": 3, - "height": 3 - } - }, - { - "id": 9400000000000004, - "definition": { - "type": "note", - "content": "**Tip:** Pulse counts follow `$snmp_host` / `$snmp_device`. Reachable / Unreachable use conditional coloring. **Coverage note:** Fleet-level scalars for total interface count, oper≠up, utilization above a threshold, or “any errors/discards” often need [metric monitors](https://docs.datadoghq.com/monitors/) or composite metrics; the top lists and **Interface state** section below approximate those views. **Transitions / flaps:** pair this board with [Events](https://docs.datadoghq.com/events/) or monitors on `snmp.ifOperStatus` / link-down—gauges alone won’t show change history.", - "background_color": "transparent", - "font_size": "12", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "has_padding": true - }, - "layout": { - "x": 9, - "y": 0, - "width": 3, - "height": 3 - } - }, { "id": 5962709499618832, "definition": { "type": "note", - "content": "**What’s on this board:** The reachability strip and top lists surface polling health and the hottest interfaces (utilization, errors, discards). **Device inventory** is per-device uptime; **Traffic patterns** are aggregate load and short-term utilization; **Device resources** are CPU and memory.\n\n**Further down** (optional depth): Interfaces, NetFlow Traffic, Network Path, Synthetics, Anomaly Tests, bit rate vs nominal speed, broadcast/multicast mix, IPsec, etc.\n\n**Filters:** `$snmp_host`, `$snmp_device`, `$interface`, `$snmp_profile`. The green/red strip is clickable for per-device reachability. [NDM docs](https://docs.datadoghq.com/network_monitoring/devices/).", - "background_color": "transparent", + "content": "This dashboard provides an overview of how all the network devices in your datacenter are performing. \n\nFor more information on monitoring on-premise gear with Datadog, check out: \n\n- Our blog post on [Monitoring Datacenters and network devices with Datadog](https://www.datadoghq.com/blog/datacenter-monitoring-dashboards/)\n- Our blog post on [Monitoring network devices with SNMP](https://www.datadoghq.com/blog/monitor-snmp-with-datadog/)\n- Network Device Monitoring [docs](https://docs.datadoghq.com/network_performance_monitoring/devices) ", + "background_color": "white", "font_size": "14", "text_align": "left", - "vertical_align": "top", "show_tick": false, "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 3, - "width": 12, - "height": 2 - } - }, - { - "id": 2230642517625219, - "definition": { - "title": "Network Path Alerts", - "type": "manage_status", - "display_format": "countsAndList", - "color_preference": "text", - "hide_zero_counts": true, - "show_status": true, - "last_triggered_format": "relative", - "query": "netpath", - "sort": "status,asc", - "count": 50, - "start": 0, - "summary_type": "monitors", - "show_priority": false, - "show_last_triggered": false + "tick_edge": "left" }, - "layout": { - "x": 0, - "y": 5, - "width": 4, - "height": 3 - } + "layout": { "x": 0, "y": 0, "width": 4, "height": 3 } }, { "id": 3322305298444164, @@ -366,3810 +30,192 @@ "title": "Devices Responding", "title_size": "16", "title_align": "center", - "time": { - "live_span": "1d" - }, + "time": { "live_span": "1d" }, "type": "check_status", "check": "snmp.can_check", "grouping": "cluster", - "group_by": [ - "snmp_host", - "snmp_device" - ], - "tags": [ - "*" - ] + "group_by": ["snmp_host", "snmp_device"], + "tags": ["*"] }, - "layout": { - "x": 4, - "y": 5, - "width": 8, - "height": 2 - } + "layout": { "x": 4, "y": 0, "width": 8, "height": 2 } }, { "id": 5972374734903110, "definition": { "type": "note", - "content": "Click the strip above for reachable (green) vs unreachable (red) devices.", - "background_color": "transparent", + "content": "**Tip:** The above box indicates which devices we are currently able to poll for SNMP metrics. \nClick the box to see a list of reachable (green) or unreachable (red) devices by name and IP. ", + "background_color": "green", "font_size": "14", "text_align": "left", "show_tick": false, "tick_pos": "50%", "tick_edge": "top" }, - "layout": { - "x": 4, - "y": 7, - "width": 8, - "height": 1 - } + "layout": { "x": 4, "y": 2, "width": 8, "height": 1 } }, { "id": 4112468581782098, "definition": { - "title": "Highest inbound utilization ", + "title": "Top Bandwidth by Interface (inbound)", "title_size": "16", "title_align": "left", "type": "toplist", "requests": [ { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } + "q": "top(avg:snmp.ifBandwidthInUsage.rate{$snmp_host,$interface} by {snmp_host,interface}, 5, 'mean', 'desc')" } ], "custom_links": [ { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", + "link": "/screen/integration/Interface%20Performance?from_ts=1611075730040&live=true&to_ts=1611079330040&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", "label": "Interface Performance" } ] }, - "layout": { - "x": 0, - "y": 8, - "width": 3, - "height": 2 - } + "layout": { "x": 0, "y": 3, "width": 3, "height": 2 } }, { "id": 6552096466900108, "definition": { - "title": "Highest outbound utilization", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthOutUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 3, - "y": 8, - "width": 3, - "height": 2 - } - }, - { - "id": 1132807365192448, - "definition": { - "title": "Most errors ", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInErrors{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifOutErrors{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}.as_count()", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1 + query2" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 6, - "y": 8, - "width": 3, - "height": 2 - } - }, - { - "id": 1701250073322308, - "definition": { - "title": "Most discards ", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInDiscards{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifOutDiscards{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}.as_count()", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1 + query2" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 9, - "y": 8, - "width": 3, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 2, - "width": 12, - "height": 1 - } - }, - { - "id": 1774932878642760, - "definition": { - "title": "Fleet aggregates", - "background_color": "vivid_blue", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 3309355292256966, - "definition": { - "type": "note", - "content": "**Tip:** These series are fleet-wide sums and respect the same template variables. **Insight:** “How many interfaces are down over time” is usually easier to read from an `snmp.ifOperStatus` monitor or Events than from a single rolled-up metric here.", - "background_color": "transparent", - "font_size": "12", - "text_align": "left", - "vertical_align": "top", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 1 - } - }, - { - "id": 9400000000000006, - "definition": { - "title": "Fleet total throughput", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "q1", - "query": "sum:snmp.ifHCInOctets.rate{$snmp_host,$snmp_device,$interface}" - }, - { - "data_source": "metrics", - "name": "q2", - "query": "sum:snmp.ifHCOutOctets.rate{$snmp_host,$snmp_device,$interface}" - } - ], - "formulas": [ - { - "formula": "q1", - "alias": "in" - }, - { - "formula": "q2", - "alias": "out" - } - ], - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 1, - "width": 12, - "height": 3 - } - }, - { - "id": 9400000000000008, - "definition": { - "title": "Fleet errors + discards", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "q1", - "query": "sum:snmp.ifInErrors{$snmp_host,$snmp_device,$interface}.as_count()" - }, - { - "data_source": "metrics", - "name": "q2", - "query": "sum:snmp.ifOutErrors{$snmp_host,$snmp_device,$interface}.as_count()" - }, - { - "data_source": "metrics", - "name": "q3", - "query": "sum:snmp.ifInDiscards{$snmp_host,$snmp_device,$interface}.as_count()" - }, - { - "data_source": "metrics", - "name": "q4", - "query": "sum:snmp.ifOutDiscards{$snmp_host,$snmp_device,$interface}.as_count()" - } - ], - "formulas": [ - { - "formula": "q1 + q2", - "alias": "errors" - }, - { - "formula": "q3 + q4", - "alias": "discards" - } - ], - "style": { - "palette": "warm", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 3 - } - } - ] - }, - "layout": { - "x": 0, - "y": 3, - "width": 12, - "height": 1 - } - }, - { - "id": 8097009467479108, - "definition": { - "title": "Device inventory & uptime", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 1932169840365744, - "definition": { - "title": "Devices — uptime & reachability", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.sysUpTimeInstance{$snmp_host,$snmp_device} by {snmp_device,snmp_host}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.device.reachable{$snmp_host,$snmp_device} by {snmp_device,snmp_host}", - "aggregator": "avg" - } - ], - "sort": { - "count": 100, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "asc" - } - ] - }, - "formulas": [ - { - "formula": "query1 / 8640000", - "alias": "uptime (days)", - "conditional_formats": [ - { - "comparator": "<", - "palette": "red_on_white", - "value": 1 - } - ], - "cell_display_mode": "bar" - }, - { - "formula": "query2", - "alias": "reachable", - "conditional_formats": [ - { - "comparator": "<", - "palette": "red_on_white", - "value": 1 - } - ], - "cell_display_mode": "bar" - } - ] - } - ], - "has_search_bar": "auto", - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}", - "label": "Interface Performance" - }, - { - "link": "/dash/integration/Datadog%20NDM%20Environment?tpl_var_SNMP_Device={{snmp_device.value}}", - "label": "Open NDM troubleshooting (device)" - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 7 - } - }, - { - "id": 7962336691536866, - "definition": { - "type": "note", - "content": "Use the row action **Interface Performance** to open the interface dashboard scoped to that device.", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left" - }, - "layout": { - "x": 0, - "y": 7, - "width": 12, - "height": 1 - } - } - ] - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 1 - } - }, - { - "id": 2041537512615478, - "definition": { - "title": "Device resources (CPU & memory)", - "background_color": "orange", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 2999908314339602, - "definition": { - "title": "Devices with Highest CPU Utilization (%)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.cpmCPUTotalMonIntervalValue{$snmp_device,$snmp_host} by {snmp_host,snmp_device}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 4, - "height": 3 - } - }, - { - "id": 1242618941206424, - "definition": { - "title": "Average CPU Utilization (%)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_size": "0", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.cpmCPUTotalMonIntervalValue{$snmp_device,$snmp_host} by {snmp_host}" - } - ], - "formulas": [ - { - "formula": "query1", - "alias": "cpu" - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - }, - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.hrProcessorLoad{$snmp_device,$snmp_host} by {snmp_host}" - } - ], - "formulas": [ - { - "formula": "query1", - "alias": "cpu" - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - }, - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.cpmCPUTotal1minRev{$snmp_device,$snmp_host} by {snmp_host}" - } - ], - "formulas": [ - { - "formula": "query1", - "alias": "cpu" - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 4, - "y": 0, - "width": 8, - "height": 3 - } - }, - { - "id": 2329854184707894, - "definition": { - "title": "Devices with Highest Memory Utilization (%)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.cpmCPUMemoryFree{$snmp_device,$snmp_host} by {snmp_host,snmp_device}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "(query1 / (query1 + query2)) * 100" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ] - }, - "layout": { - "x": 0, - "y": 3, - "width": 4, - "height": 3 - } - }, - { - "id": 4598955149199596, - "definition": { - "title": "Average Memory Utilization (%)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_size": "0", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.cpmCPUMemoryFree{$snmp_device,$snmp_host} by {snmp_host,snmp_device}" - } - ], - "formulas": [ - { - "formula": "(query1 / (query1 + query2)) * 100", - "alias": "memory" - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 4, - "y": 3, - "width": 8, - "height": 3 - } - }, - { - "id": 9100000000000410, - "definition": { - "title": "CPU utilization (%)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.cpu.usage{$snmp_host,$snmp_device} by {snmp_host,snmp_device}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 0, - "y": 6, - "width": 6, - "height": 3 - } - }, - { - "id": 9100000000000412, - "definition": { - "title": "Memory utilization (%)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.memory.usage{$snmp_host,$snmp_device} by {snmp_host,snmp_device}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 6, - "y": 6, - "width": 6, - "height": 3 - } - } - ] - }, - "layout": { - "x": 0, - "y": 5, - "width": 12, - "height": 1 - } - }, - { - "id": 9300000000000004, - "definition": { - "title": "Interfaces", - "background_color": "green", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 1986600726983262, - "definition": { - "title": "Interface utilization", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifBandwidthOutUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifHCInOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query4", - "query": "avg:snmp.ifHCOutOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query5", - "query": "avg:snmp.ifHighSpeed{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}.as_count()", - "aggregator": "avg" - } - ], - "sort": { - "count": 25, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Utilization (%) in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" - } - }, - "cell_display_mode": "bar", - "formula": "query1" - }, - { - "alias": "Utilization (%) out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" - } - }, - "cell_display_mode": "bar", - "formula": "query2" - }, - { - "alias": "Nominal speed (Mbps)", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "Mbps" - } - }, - "cell_display_mode": "bar", - "formula": "query5" - }, - { - "alias": "bits/s in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - }, - "cell_display_mode": "bar", - "formula": "query3 * 8" - }, - { - "alias": "bits/s out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - }, - "cell_display_mode": "bar", - "formula": "query4 * 8" - } - ] - } - ], - "has_search_bar": "auto" - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 7 - } - }, - { - "id": 6685704945359284, - "definition": { - "title": "Devices with Interface Flaps (24h)", - "title_size": "16", - "title_align": "left", - "time": { - "type": "live", - "unit": "day", - "value": 1 - }, - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "max_status", - "query": "max:snmp.ifOperStatus{*} by {snmp_host,interface,interface_alias}", - "aggregator": "max" - }, - { - "data_source": "metrics", - "name": "min_status", - "query": "min:snmp.ifOperStatus{*} by {snmp_host,interface,interface_alias}", - "aggregator": "min" - } - ], - "sort": { - "count": 100, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Flapped", - "conditional_formats": [ - { - "comparator": ">=", - "palette": "white_on_red", - "value": 1 - } - ], - "formula": "max_status - min_status" - } - ] - } - ], - "has_search_bar": "always", - "custom_links": [ - { - "link": "/devices?query=snmp_host%3A{{snmp_host.value}}", - "label": "View Device" - } - ] - }, - "layout": { - "x": 0, - "y": 7, - "width": 12, - "height": 6 - } - }, - { - "id": 3910733247030919, - "definition": { - "title": "Interfaces with the Most Discarded Packets", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInDiscards{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifOutDiscards{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1 + query2" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 13, - "width": 6, - "height": 3 - } - }, - { - "id": 4528571268105864, - "definition": { - "title": "Interfaces with the Most Errors", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInErrors{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifOutErrors{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1 + query2" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 13, - "width": 6, - "height": 3 - } - }, - { - "id": 5259511170185834, - "definition": { - "title": "Top Bandwidth by Interface (outbound) ", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthOutUsage.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 16, - "width": 6, - "height": 3 - } - }, - { - "id": 7240373445421603, - "definition": { - "title": "Top Bandwidth by Interface (inbound)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1611075730040&live=true&to_ts=1611079330040&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 16, - "width": 6, - "height": 3 - } - }, - { - "id": 5312254214658929, - "definition": { - "title": "Top 10 Interface Throughput (outbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 19, - "width": 6, - "height": 3 - } - }, - { - "id": 5971540123891772, - "definition": { - "title": "Top 10 Interface Throughput (inbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 19, - "width": 6, - "height": 3 - } - }, - { - "id": 8807455257172173, - "definition": { - "title": "Top 10 Interface Throughput (outbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 22, - "width": 6, - "height": 3 - } - }, - { - "id": 6915151477089216, - "definition": { - "title": "Top 10 Interface Throughput (inbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 22, - "width": 6, - "height": 3 - } - } - ] - }, - "layout": { - "x": 0, - "y": 6, - "width": 12, - "height": 1 - } - }, - { - "id": 4698059169179016, - "definition": { - "title": "NetFlow traffic", - "background_color": "vivid_purple", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 8261001203867056, - "definition": { - "title": "NetFlow Traffic Sankey", - "title_size": "16", - "title_align": "left", - "type": "sankey", - "requests": [ - { - "request_type": "netflow_sankey", - "query": { - "data_source": "network_device_flows", - "mode": "target", - "query_string": "", - "group_by": [ - "@source.ip", - "@ingress.interface.name", - "@device.ip", - "@egress.interface.name", - "@destination.ip" - ], - "limit": 10, - "sort": { - "field": "@adjusted_bytes:sum", - "order": "desc" - } - } - } - ], - "sort_nodes": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } - }, - { - "id": 31075914448257, - "definition": { - "title": "Top Conversations through Source → Device → Destination (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "name": "query1", - "data_source": "network_device_flows", - "search": { - "query": "" - }, - "indexes": [ - "*" - ], - "group_by": [ - { - "facet": "@source.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@device.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@device.name", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@destination.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": false - } - ], - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "storage": "hot" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 4 - } - }, - { - "id": 2574238884839782, - "definition": { - "title": "Top Conversations through Source → Device → Destination (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "dogcat" - }, - "formulas": [ - { - "formula": "query1" - } - ] - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 8, - "width": 12, - "height": 4 - } - }, - { - "id": 5269164740115408, - "definition": { - "title": "Top 10 Sources Sending the Most Traffic by Device (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "cell_display_mode": "number", - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 12, - "width": 6, - "height": 4 - } - }, - { - "id": 7202600922510727, - "definition": { - "title": "Volume of Traffic Sent by Source, Device (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 6, - "y": 12, - "width": 6, - "height": 4 - } - }, - { - "id": 2456646380716592, - "definition": { - "title": "Top 10 Destinations Receiving the Most Traffic by Device (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 100, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "cell_display_mode": "number", - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 16, - "width": 6, - "height": 4 - } - }, - { - "id": 316982276884060, - "definition": { - "title": "Volume of Traffic Received by Destination, Device (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "blue", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 6, - "y": 16, - "width": 6, - "height": 4 - } - }, - { - "id": 2614085082803921, - "definition": { - "title": "Top Applications by Source Port (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@source.port", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 20, - "width": 6, - "height": 4 - } - }, - { - "id": 6602387036511575, - "definition": { - "title": "Top Source Ports (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@source.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 6, - "y": 20, - "width": 6, - "height": 4 - } - }, - { - "id": 982685803041564, - "definition": { - "title": "Top Applications by Destination Port (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.port", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 24, - "width": 6, - "height": 4 - } - }, - { - "id": 8766633907631501, - "definition": { - "title": "Top Destination Ports (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "semantic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 6, - "y": 24, - "width": 6, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 7, - "width": 12, - "height": 1 - } - }, - { - "id": 9300000000000012, - "definition": { - "title": "Throughput and line speed", - "background_color": "pink", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 9300000000000006, - "definition": { - "type": "note", - "content": "**Capacity:** Compare `ifHC*Octets.rate` (bits on the wire) with `ifHighSpeed` (nominal port speed, Mbps). High utilization % with errors may indicate congestion or duplex issues.", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 1 - } - }, - { - "id": 9300000000000008, - "definition": { - "title": "Highest inbound bit rate", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 20, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 0, - "y": 1, - "width": 6, - "height": 4 - } - }, - { - "id": 7934001310861701, - "definition": { - "title": "Highest outbound bit rate ", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutOctets.rate{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 20, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 6, - "y": 1, - "width": 6, - "height": 4 - } - }, - { - "id": 8684051250556283, - "definition": { - "title": "Nominal port speed ", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHighSpeed{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 20, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 0, - "y": 5, - "width": 6, - "height": 3 - } - }, - { - "id": 9300000000000010, - "definition": { - "title": "Device aggregate throughput ", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.ifHCInOctets.rate{$snmp_host,$snmp_device} by {snmp_host,snmp_device}" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "sum:snmp.ifHCOutOctets.rate{$snmp_host,$snmp_device} by {snmp_host,snmp_device}" - } - ], - "formulas": [ - { - "formula": "query1", - "alias": "in" - }, - { - "formula": "query2", - "alias": "out" - } - ], - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 6, - "y": 5, - "width": 6, - "height": 3 - } - } - ] - }, - "layout": { - "x": 0, - "y": 8, - "width": 12, - "height": 1 - } - }, - { - "id": 6262650537169241, - "definition": { - "title": "Network Path", - "background_color": "vivid_orange", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 5749852941395346, - "definition": { - "title": "Latency (4h)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "horizontal", - "legend_columns": [ - "avg", - "max", - "value" - ], - "time": { - "type": "live", - "unit": "hour", - "value": 4 - }, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "name": "query1", - "data_source": "network_path", - "search": { - "query": "" - }, - "indexes": [ - "netpath-path" - ], - "group_by": [], - "compute": { - "aggregation": "avg", - "metric": "e2e_probe.rtt.avg" - }, - "storage": "hot" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "include_zero": true, - "scale": "linear", - "label": "ms", - "min": "auto", - "max": "auto" - } - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } - }, - { - "id": 5941460811179607, - "definition": { - "title": "NetPath Check Duration", - "show_legend": true, - "legend_layout": "horizontal", - "legend_columns": [ - "avg", - "min", - "max", - "value" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "q_lon97" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "q_lon97", - "query": "avg:datadog.network_path.check_duration{*}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "blue", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "include_zero": true, - "label": "", - "scale": "linear", - "min": "auto", - "max": "auto" - } - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 4 - } - }, - { - "id": 4574405935327782, - "definition": { - "title": "NetPath Status", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.network_path.path.monitored{*} by {host,target}", - "aggregator": "last" - } - ], - "response_format": "scalar", - "sort": { - "count": 20, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Path Monitored", - "conditional_formats": [ - { - "comparator": ">=", - "value": 1, - "palette": "white_on_green" - }, - { - "comparator": "<", - "value": 1, - "palette": "white_on_red" - } - ], - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 8, - "width": 6, - "height": 3 - } - }, - { - "id": 1142569567999854, - "definition": { - "title": "Active NetPaths", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.network_path.path.monitored{*}", - "aggregator": "last" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 0 - }, - "layout": { - "x": 6, - "y": 8, - "width": 3, - "height": 3 - } - }, - { - "id": 8596658229604522, - "definition": { - "title": "Check Interval (s)", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.network_path.check_interval{*}", - "aggregator": "last" - } - ], - "response_format": "scalar" - } - ], - "autoscale": false, - "precision": 0 - }, - "layout": { - "x": 9, - "y": 8, - "width": 3, - "height": 3 - } - } - ] - }, - "layout": { - "x": 0, - "y": 9, - "width": 12, - "height": 1 - } - }, - { - "id": 419124869612077, - "definition": { - "title": "Synthetic Tests", - "background_color": "gray", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 181953780508839, - "definition": { - "title": "Synthetics Test Status", - "title_size": "16", - "title_align": "left", - "type": "manage_status", - "display_format": "list", - "color_preference": "text", - "hide_zero_counts": true, - "show_status": true, - "last_triggered_format": "relative", - "query": " type:synthetics ", - "sort": "name,asc", - "count": 50, - "start": 0, - "summary_type": "monitors", - "show_priority": false, - "show_last_triggered": false - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 6 - } - } - ] - }, - "layout": { - "x": 0, - "y": 10, - "width": 12, - "height": 1 - } - }, - { - "id": 2599738421216094, - "definition": { - "title": "Anomaly Tests", - "background_color": "orange", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 4297484177162754, - "definition": { - "title": "ICMP Stats by Device", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:synthetics.icmp.hops{*} by {device,location,location_name}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:synthetics.icmp.latency_avg{*} by {device,location,location_name}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:synthetics.icmp.packet_loss_percentage{*} by {device,location,location_name}", - "aggregator": "avg" - } - ], - "response_format": "scalar", - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Hop Count", - "cell_display_mode": "bar", - "formula": "query1" - }, - { - "alias": "Latency Avg", - "cell_display_mode": "bar", - "formula": "query3" - }, - { - "alias": "Packet Loss", - "cell_display_mode": "bar", - "formula": "query2" - } - ] - } - ], - "has_search_bar": "auto", - "custom_links": [] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 5 - } - }, - { - "id": 1481915787053225, - "definition": { - "title": "ICMP Latency", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "horizontal", - "legend_columns": [ - "avg", - "max", - "value" - ], - "time": { - "type": "live", - "unit": "day", - "value": 1 - }, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Avg Latency (ms)", - "formula": "query1" - }, - { - "alias": "Max Latency (ms)", - "formula": "query2" - }, - { - "alias": "Jitter / StdDev (ms)", - "formula": "query3" - }, - { - "alias": "Packet Loss %", - "formula": "query4" - } - ], - "queries": [ - { - "name": "query1", - "data_source": "metrics", - "query": "avg:synthetics.icmp.latency_avg{*}" - }, - { - "name": "query2", - "data_source": "metrics", - "query": "max:synthetics.icmp.latency_max{*}" - }, - { - "name": "query3", - "data_source": "metrics", - "query": "avg:synthetics.icmp.latency_stddev{*}" - }, - { - "name": "query4", - "data_source": "metrics", - "query": "avg:synthetics.icmp.packet_loss_percentage{*}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - }, - { - "formulas": [ - { - "alias": "Anomaly Bounds", - "formula": "anomalies(query5, 'agile', 3)" - } - ], - "queries": [ - { - "name": "query5", - "data_source": "metrics", - "query": "avg:synthetics.icmp.latency_avg{*}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "warm", - "line_type": "solid", - "line_width": "thin" - }, - "display_type": "line" - } - ], - "markers": [ - { - "label": "Threshold: 90ms", - "value": "y = 90", - "display_type": "error dashed" - } - ], - "custom_links": [ - { - "label": "View Synthetics Test", - "link": "https://app.datadoghq.com/synthetics/details/jz4-wmb-eg4" - }, - { - "label": "View Anomaly Monitor", - "link": "https://app.datadoghq.com/monitors/266666670" - } - ] - }, - "layout": { - "x": 0, - "y": 5, - "width": 12, - "height": 4 - } - }, - { - "id": 5351272533148717, - "definition": { - "title": "HTTP Response Time", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "horizontal", - "legend_columns": [ - "avg", - "max", - "value" - ], - "time": { - "type": "live", - "unit": "day", - "value": 1 - }, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query_irv" - } - ], - "queries": [ - { - "name": "query_irv", - "data_source": "metrics", - "query": "avg:synthetics.http.response.time{*}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "markers": [ - { - "label": "Threshold: 1000 ms", - "value": "y = 1000", - "display_type": "error dashed" - } - ], - "custom_links": [ - { - "label": "Irvine Synthetic", - "link": "https://app.datadoghq.com/synthetics/details/j2w-g39-new" - }, - { - "label": "Las Vegas Synthetic", - "link": "https://app.datadoghq.com/synthetics/details/dic-eim-uh4" - }, - { - "label": "Azure Synthetic", - "link": "https://app.datadoghq.com/synthetics/details/iy6-ej9-yym" - } - ] - }, - "layout": { - "x": 0, - "y": 9, - "width": 12, - "height": 4 - } - }, - { - "id": 8502117490716056, - "definition": { - "title": "Response Time by Runner", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "data_source": "metrics", - "name": "avg_rt", - "query": "avg:synthetics.http.response.time{*} by {runner-location}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "max_rt", - "query": "max:synthetics.http.response.time{*} by {runner-location}", - "aggregator": "max" - }, - { - "data_source": "metrics", - "name": "dns_time", - "query": "avg:synthetics.http.dns.time{*} by {runner-location}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "ssl_time", - "query": "avg:synthetics.http.ssl.time{*} by {runner-location}", - "aggregator": "avg" - } - ], - "response_format": "scalar", - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Avg Response (ms)", - "cell_display_mode": "bar", - "formula": "avg_rt" - }, - { - "alias": "Max Response (ms)", - "cell_display_mode": "bar", - "formula": "max_rt" - }, - { - "alias": "DNS (ms)", - "cell_display_mode": "bar", - "formula": "dns_time" - }, - { - "alias": "SSL (ms)", - "cell_display_mode": "bar", - "formula": "ssl_time" - } - ] - } - ], - "has_search_bar": "auto", - "custom_links": [] - }, - "layout": { - "x": 0, - "y": 13, - "width": 12, - "height": 4 - } - }, - { - "id": 3726746940391628, - "definition": { - "title": "ICMP Latency Avg", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "max", - "value" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "name": "query1", - "data_source": "metrics", - "query": "avg:synthetics.icmp.latency_avg{*}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "blue", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "include_zero": true, - "label": "ms", - "scale": "linear" - }, - "markers": [ - { - "label": "Alert threshold 200ms", - "value": "y = 200", - "display_type": "error dashed" - }, - { - "label": "Critical threshold 300ms", - "value": "y = 300", - "display_type": "error bold" - } - ], - "custom_links": [] - }, - "layout": { - "x": 0, - "y": 17, - "width": 12, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 11, - "width": 12, - "height": 1 - } - }, - { - "id": 9300000000000016, - "definition": { - "title": "Packet mix (unicast / multicast / broadcast)", - "background_color": "green", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 9300000000000014, - "definition": { - "title": "Outbound: unicast / multicast / broadcast (pkt/s)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.ifHCOutUcastPkts{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}.as_count()" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifHCOutMulticastPkts{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "sum:snmp.ifHCOutBroadcastPkts{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}.as_count()" - } - ], - "formulas": [ - { - "alias": "out_ucast", - "formula": "top(query1, 10, 'max', 'desc')" - }, - { - "alias": "out_mcast", - "formula": "top(query2, 10, 'max', 'desc')" - }, - { - "alias": "out_bcast", - "formula": "top(query3, 10, 'max', 'desc')" - } - ], - "style": { - "palette": "orange", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } - }, - { - "id": 7838338517289553, - "definition": { - "type": "note", - "content": "**Packet types:** Rising multicast/broadcast rates can indicate storms or misconfigured VLANs.", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "has_padding": true - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 1 - } - }, - { - "id": 2307045808190393, - "definition": { - "title": "Inbound: unicast / multicast / broadcast (pkt/s)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.ifHCInUcastPkts{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}.as_count()" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "sum:snmp.ifHCInMulticastPkts{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}.as_count()" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifHCInBroadcastPkts{$snmp_host,$snmp_device,$interface,$snmp_profile} by {snmp_host,snmp_device,interface}" - } - ], - "formulas": [ - { - "alias": "in_ucast", - "formula": "top(query1, 10, 'max', 'desc')" - }, - { - "alias": "in_mcast", - "formula": "top(query2, 10, 'max', 'desc')" - }, - { - "alias": "in_bcast", - "formula": "top(query3, 10, 'max', 'desc')" - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [], - "custom_links": [ - { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ] - }, - "layout": { - "x": 0, - "y": 5, - "width": 12, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 12, - "width": 12, - "height": 1 - } - }, - { - "id": 9300000000000020, - "definition": { - "title": "IPsec VPN tunnels (SNMP)", - "background_color": "vivid_purple", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 2476696154918570, - "definition": { - "type": "note", - "content": "**IPsec (Cisco-style OIDs):** Tunnel octets, auth/decrypt failures. Tags vary by profile—narrow `$snmp_device` when noise is high.", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "has_padding": true + "title": "Top Bandwidth by Interface (outbound) ", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "q": "top(avg:snmp.ifBandwidthOutUsage.rate{$snmp_host,$interface} by {snmp_host,interface}, 5, 'mean', 'desc')" + } + ], + "custom_links": [ + { + "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", + "label": "Interface Performance" + } + ] }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 1 - } + "layout": { "x": 3, "y": 3, "width": 3, "height": 2 } }, { - "id": 5127371063424390, + "id": 1132807365192448, "definition": { - "title": "IPsec auth failures", + "title": "Interfaces with the Most Errors", "title_size": "16", "title_align": "left", "type": "toplist", "requests": [ { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "q1", - "query": "avg:snmp.cipSecTunInAuthFails{$snmp_host,$snmp_device} by {snmp_host,snmp_device}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "q2", - "query": "avg:snmp.cipSecTunOutAuthFails{$snmp_host,$snmp_device} by {snmp_host,snmp_device}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "q1 + q2" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } + "q": "top(avg:snmp.ifInErrors{$snmp_host,$interface} by {snmp_host,interface}.as_count()+avg:snmp.ifOutErrors{$snmp_host,$interface} by {snmp_host,interface}.as_count(),5,'mean','desc')" + } + ], + "custom_links": [ + { + "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", + "label": "Interface Performance" } ] }, - "layout": { - "x": 0, - "y": 1, - "width": 6, - "height": 3 - } + "layout": { "x": 6, "y": 3, "width": 3, "height": 2 } }, { - "id": 9300000000000018, + "id": 1701250073322308, "definition": { - "title": "IPsec crypto failures ", + "title": "Interfaces with the Most Discarded Packets", "title_size": "16", "title_align": "left", "type": "toplist", "requests": [ { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "q1", - "query": "avg:snmp.cipSecTunInDecryptFails{$snmp_host,$snmp_device} by {snmp_host,snmp_device}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "q2", - "query": "avg:snmp.cipSecTunOutEncryptFails{$snmp_host,$snmp_device} by {snmp_host,snmp_device}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "q1 + q2" - } - ], - "sort": { - "count": 15, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } + "q": "top(avg:snmp.ifInDiscards{$snmp_host,$interface} by {snmp_host,interface}.as_count()+avg:snmp.ifOutDiscards{$snmp_host,$interface} by {snmp_host,interface}.as_count(),5,'mean','desc')" + } + ], + "custom_links": [ + { + "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", + "label": "Interface Performance" } ] }, - "layout": { - "x": 6, - "y": 1, - "width": 6, - "height": 3 - } - }, + "layout": { "x": 9, "y": 3, "width": 3, "height": 2 } + } + ] + } + }, + { + "id": 8097009467479108, + "definition": { + "title": "Device Inventory", + "reflow_type": "fixed", + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "id": 3650908890031789, + "id": 1932169840365744, "definition": { - "title": "Tunnel throughput ", + "title": "Device Inventory", "title_size": "16", "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", + "type": "query_table", "requests": [ { - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.cipSecTunHcInOctets{$snmp_host,$snmp_device} by {snmp_host,snmp_device}" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.cipSecTunHcOutOctets{$snmp_host,$snmp_device} by {snmp_host,snmp_device}" - } - ], - "formulas": [ - { - "alias": "in", - "formula": "top(query1, 10, 'max', 'desc')" - }, - { - "alias": "out", - "formula": "top(query2, 10, 'max', 'desc')" - } + "aggregator": "avg", + "cell_display_mode": ["bar"], + "conditional_formats": [ + { "comparator": "<", "palette": "red_on_white", "value": 1 } ], - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" + "q": "avg:snmp.sysUpTimeInstance{*,*,$snmp_device,$snmp_host} by {snmp_device,snmp_host}/8640000", + "alias": "uptime (days)", + "limit": 100, + "order": "asc" } ], - "yaxis": { - "scale": "linear", - "label": "", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] + "has_search_bar": "auto", + "custom_links": [ + { + "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}", + "label": "Interface Performance" + } + ] + }, + "layout": { "x": 0, "y": 0, "width": 12, "height": 7 } + }, + { + "id": 7962336691536866, + "definition": { + "type": "note", + "content": "**Tip:** Click any row in the _Device Inventory_ table, and select the `Interface Performance` custom link to drill into the performance across all interfaces filtered to that specific device. ", + "background_color": "green", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left" }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 4 - } + "layout": { "x": 0, "y": 7, "width": 12, "height": 1 } } ] - }, - "layout": { - "x": 0, - "y": 13, - "width": 12, - "height": 1 } }, { "id": 5111334103889042, "definition": { - "title": "Capacity: outliers & utilization forecast", - "background_color": "yellow", - "show_title": true, + "title": "Traffic Patterns", + "reflow_type": "fixed", "type": "group", "layout_type": "ordered", "widgets": [ { "id": 1444179790663982, "definition": { - "title": "Inbound Throughput", + "title": "Outliers on Total Inbound Device Throughput", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], + "show_legend": false, + "legend_size": "0", "type": "timeseries", "requests": [ { + "q": "outliers(avg:snmp.ifHCInOctets.rate{$snmp_device,$snmp_host,$interface} by {snmp_host,snmp_device}.as_count(), 'DBSCAN', 3)", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{$snmp_device,$snmp_host,$interface} by {snmp_host,snmp_device}.as_count()" - } - ], - "formulas": [ - { - "formula": "outliers(query1, \"DBSCAN\", 3)" - } - ], "style": { "palette": "purple", "line_type": "solid", @@ -4188,50 +234,26 @@ "markers": [], "custom_links": [ { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}", + "link": "/screen/integration/Interface%20Performance?&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}", "label": "Interface Performance" } ] }, - "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 3 - } + "layout": { "x": 0, "y": 0, "width": 6, "height": 3 } }, { "id": 6775115446963994, "definition": { - "title": "Outbound Throughput", + "title": "Outliers on Total Outbound Device Throughput ", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], + "show_legend": false, + "legend_size": "0", "type": "timeseries", "requests": [ { + "q": "outliers(avg:snmp.ifHCOutOctets.rate{$snmp_device,$snmp_host} by {snmp_host,snmp_device}.as_count(), 'DBSCAN', 3)", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutOctets.rate{$snmp_device,$snmp_host} by {snmp_host,snmp_device}.as_count()" - } - ], - "formulas": [ - { - "formula": "outliers(query1, \"DBSCAN\", 3)" - } - ], "style": { "palette": "cool", "line_type": "solid", @@ -4250,50 +272,26 @@ "markers": [], "custom_links": [ { - "link": "/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}", + "link": "/screen/integration/Interface%20Performance?&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}", "label": "Interface Performance" } ] }, - "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 3 - } + "layout": { "x": 6, "y": 0, "width": 6, "height": 3 } }, { "id": 7113375781270598, "definition": { - "title": "Inbound utilization % ", + "title": "Forecast Inbound Bandwidth on Top 5 Interfaces", "title_size": "16", "title_align": "left", "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], + "legend_size": "0", "type": "timeseries", "requests": [ { + "q": "forecast(top(avg:snmp.ifBandwidthInUsage.rate{$snmp_device,$snmp_host,$interface} by {interface,snmp_device,snmp_host}, 5, 'mean', 'desc'), 'linear', 1)", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{$snmp_device,$snmp_host,$interface} by {interface,snmp_device,snmp_host}" - } - ], - "formulas": [ - { - "formula": "forecast(top(query1, 5, \"mean\", \"desc\"), \"linear\", 1)" - } - ], "style": { "palette": "purple", "line_type": "solid", @@ -4312,50 +310,26 @@ "markers": [], "custom_links": [ { - "link": "/dash/integration/Interface%20Performance?tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", + "link": "/screen/integration/Interface%20Performance?&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", "label": "Interface Performance" } ] }, - "layout": { - "x": 0, - "y": 3, - "width": 6, - "height": 3 - } + "layout": { "x": 0, "y": 3, "width": 6, "height": 3 } }, { "id": 5085712062550646, "definition": { - "title": "Outbound utilization %", + "title": "Forecast Outbound Bandwidth on Top 5 Interfaces", "title_size": "16", "title_align": "left", "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], + "legend_size": "0", "type": "timeseries", "requests": [ { + "q": "forecast(top(avg:snmp.ifBandwidthOutUsage.rate{$snmp_device,$snmp_host,$interface} by {interface,snmp_device,snmp_host}, 5, 'mean', 'desc'), 'linear', 1)", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthOutUsage.rate{$snmp_device,$snmp_host,$interface} by {interface,snmp_device,snmp_host}" - } - ], - "formulas": [ - { - "formula": "forecast(top(query1, 5, \"mean\", \"desc\"), \"linear\", 1)" - } - ], "style": { "palette": "cool", "line_type": "solid", @@ -4374,242 +348,187 @@ "markers": [], "custom_links": [ { - "link": "/dash/integration/Interface%20Performance?tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", + "link": "/screen/integration/Interface%20Performance?&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}", "label": "Interface Performance" } ] }, - "layout": { - "x": 6, - "y": 3, - "width": 6, - "height": 3 - } + "layout": { "x": 6, "y": 3, "width": 6, "height": 3 } }, { "id": 4250738380129082, "definition": { "type": "note", - "content": "**How to read this section:** **Outliers** flag devices whose *aggregate* inbound or outbound throughput is unusual vs other devices (DBSCAN)—good for spotting sudden shifts. **Forecast** applies a simple linear trend to the five interfaces with highest mean *utilization %* (not raw bps)—good for saturation planning, not long-range prediction.", - "background_color": "transparent", + "content": "**Tip:** Outlier detection is an algorithmic feature that allows you to detect when a specific group is behaving different compared to its peers. Total throughput outliers measures the total throughput across all interfaces on a device and displays devices whose total throughput is an outlier in relation to its usual total throughput.", + "background_color": "green", "font_size": "14", "text_align": "left", "show_tick": false, "tick_pos": "50%", "tick_edge": "left" }, - "layout": { - "x": 0, - "y": 6, - "width": 12, - "height": 1 - } + "layout": { "x": 0, "y": 6, "width": 12, "height": 1 } } ] - }, - "layout": { - "x": 0, - "y": 28, - "width": 12, - "height": 1, - "is_column_break": true } }, { - "id": 7382045468782430, + "id": 2041537512615478, "definition": { - "title": "Network events", - "background_color": "pink", - "show_title": true, + "title": "Device Health", + "reflow_type": "fixed", "type": "group", "layout_type": "ordered", "widgets": [ { - "id": 4374357669222129, + "id": 2999908314339602, "definition": { - "title": "Syslog events from devices", + "title": "Devices with Highest CPU Utilization (%)", + "title_size": "16", + "title_align": "left", + "type": "toplist", "requests": [ { - "query": { - "query_string": "service:syslog $interface", - "sort": { - "column": "timestamp", - "order": "desc" - }, - "data_source": "logs_stream", - "storage": "hot", - "indexes": [] - }, - "response_format": "event_list", - "columns": [ - { - "field": "status_line", - "width": "auto" - }, - { - "field": "timestamp", - "width": "auto" - }, - { - "field": "service", - "width": "auto" - }, - { - "field": "status", - "width": "auto" - }, - { - "field": "device_namespace", - "width": "auto" - }, - { - "field": "content", - "width": "auto" - } - ] + "q": "top(avg:snmp.cpmCPUTotalMonIntervalValue{$snmp_device,$snmp_host} by {snmp_host,snmp_device}, 10, 'mean', 'desc')" } - ], - "type": "list_stream" + ] }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } + "layout": { "x": 0, "y": 0, "width": 4, "height": 3 } }, { - "id": 198026602160327, + "id": 1242618941206424, "definition": { - "title": "Triggering SNMP Traps", + "title": "Average CPU Utilization (%)", "title_size": "16", "title_align": "left", + "show_legend": false, + "legend_size": "0", + "type": "timeseries", "requests": [ { - "query": { - "query_string": "source:snmp-traps $interface", - "sort": { - "column": "timestamp", - "order": "desc" - }, - "data_source": "logs_stream", - "storage": "hot", - "indexes": [] - }, - "columns": [ - { - "field": "status_line", - "width": "auto" - }, - { - "field": "timestamp", - "width": "auto" - }, - { - "field": "@snmpTrapName", - "width": "auto" - }, - { - "field": "@device.ip", - "width": "auto" - }, + "q": "avg:snmp.cpmCPUTotalMonIntervalValue{$snmp_device,$snmp_host} by {snmp_host}", + "on_right_yaxis": false, + "metadata": [ { - "field": "@ifAdminStatus", - "width": "auto" - }, + "expression": "avg:snmp.cpmCPUTotalMonIntervalValue{$snmp_device,$snmp_host} by {snmp_host}", + "alias_name": "cpu" + } + ], + "style": { + "palette": "cool", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + }, + { + "q": "avg:snmp.hrProcessorLoad{$snmp_device,$snmp_host} by {snmp_host}", + "on_right_yaxis": false, + "metadata": [ { - "field": "@ifOperStatus", - "width": "auto" - }, + "expression": "avg:snmp.hrProcessorLoad{$snmp_device,$snmp_host} by {snmp_host}", + "alias_name": "cpu" + } + ], + "style": { + "palette": "cool", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + }, + { + "q": "avg:snmp.cpmCPUTotal1minRev{$snmp_device,$snmp_host} by {snmp_host}", + "on_right_yaxis": false, + "metadata": [ { - "field": "content", - "width": "auto" + "expression": "avg:snmp.cpmCPUTotal1minRev{$snmp_device,$snmp_host} by {snmp_host}", + "alias_name": "cpu" } ], - "response_format": "event_list" + "style": { + "palette": "cool", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" } ], - "type": "list_stream" + "yaxis": { + "scale": "linear", + "label": "", + "include_zero": true, + "min": "auto", + "max": "auto" + }, + "markers": [] }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 29, - "width": 12, - "height": 1 - } - }, - { - "id": 5492308471172360, - "definition": { - "title": "Related dashboards & data limits", - "type": "group", - "layout_type": "ordered", - "widgets": [ + "layout": { "x": 4, "y": 0, "width": 8, "height": 3 } + }, { - "id": 1402254784464534, + "id": 2329854184707894, "definition": { - "type": "note", - "content": "**This board** surfaces fleet pulse, the SNMP reachability strip, conditional reachability counts, top-N hot interfaces, and a device table with links to [NDM troubleshooting](/dash/integration/Datadog%20NDM%20Environment?tpl_var_SNMP_Device={{snmp_device.value}}) and [Interface Performance](/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}). Add `site`, `vendor`, or `role` to `by {…}` when your org tags devices that way. **Shift context** (above) is fleet throughput and errors/discards. **Oper / flap history** is clearer in Events or monitors than on SNMP gauges alone.\n\n**[NetFlow monitoring](/dash/integration/Netflow%20Monitoring)** answers flow-level “who talks to whom”; use the same device/interface template variables on [Interface Performance](/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}) or a [Screenboard](https://docs.datadoghq.com/dashboards/guide/screenboard/) if you want utilization and flows together. Longer windows and compare-to-prior help capacity questions; tables support copy-out for tickets.\n\n**[NDM Environment](/dash/integration/Datadog%20NDM%20Environment)** emphasizes agent and NetFlow **pipeline** health. **Per-interface** utilization, errors, packet mix, and state history live on Interface Performance—set `snmp_device` + `interface` there to match `$SNMP_Device` here (same device tag).", - "background_color": "transparent", - "font_size": "12", - "text_align": "left", - "vertical_align": "top", - "has_padding": true + "title": "Devices with Highest Memory Utilization (%)", + "title_size": "16", + "title_align": "left", + "type": "toplist", + "requests": [ + { + "q": "top((avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}/(avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}+avg:snmp.cpmCPUMemoryFree{$snmp_device,$snmp_host} by {snmp_host,snmp_device}))*100,10,'mean','desc')" + } + ] + }, + "layout": { "x": 0, "y": 3, "width": 4, "height": 3 } + }, + { + "id": 4598955149199596, + "definition": { + "title": "Average Memory Utilization (%)", + "title_size": "16", + "title_align": "left", + "show_legend": false, + "legend_size": "0", + "type": "timeseries", + "requests": [ + { + "q": "(avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}/(avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}+avg:snmp.cpmCPUMemoryFree{$snmp_device,$snmp_host} by {snmp_host,snmp_device}))*100", + "on_right_yaxis": false, + "metadata": [ + { + "expression": "(avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}/(avg:snmp.cpmCPUMemoryUsed{$snmp_device,$snmp_host} by {snmp_host,snmp_device}+avg:snmp.cpmCPUMemoryFree{$snmp_device,$snmp_host} by {snmp_host,snmp_device}))*100", + "alias_name": "memory" + } + ], + "style": { + "palette": "cool", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ], + "yaxis": { + "scale": "linear", + "label": "", + "include_zero": true, + "min": "auto", + "max": "auto" + }, + "markers": [] }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 2 - } + "layout": { "x": 4, "y": 3, "width": 8, "height": 3 } } ] - }, - "layout": { - "x": 0, - "y": 30, - "width": 12, - "height": 3 } } ], "template_variables": [ - { - "name": "snmp_device", - "prefix": "snmp_device", - "available_values": [], - "default": "*" - }, - { - "name": "snmp_host", - "prefix": "snmp_host", - "available_values": [], - "default": "*" - }, - { - "name": "interface", - "prefix": "interface", - "available_values": [], - "default": "*" - }, - { - "name": "snmp_profile", - "prefix": "snmp_profile", - "available_values": [], - "default": "*" - } + { "name": "snmp_device", "default": "*", "prefix": "snmp_device" }, + { "name": "snmp_host", "default": "*", "prefix": "snmp_host" }, + { "name": "interface", "default": "*", "prefix": "interface" } ], "layout_type": "ordered", + "is_read_only": true, "notify_list": [], - "pause_auto_refresh": false, "reflow_type": "fixed" } diff --git a/snmp/assets/dashboards/interface_performance.json b/snmp/assets/dashboards/interface_performance.json index 6fe707ee4145c..138f85b5a2d5a 100644 --- a/snmp/assets/dashboards/interface_performance.json +++ b/snmp/assets/dashboards/interface_performance.json @@ -1,1340 +1,27 @@ { "title": "Interface Performance", - "description": "Monitor SNMP network interfaces: utilization, traffic, errors, discards, admin and oper status, and packet mix. Use $snmp_host, $snmp_device, and $interface to focus on a host, device, or port.\n\n", + "description": "Use this dashboard to view the performance of all the interfaces on your network devices. This dashboard can be filtered across a specific interfaces to view the specific performance of one single interface, or across a device by name to see the entire device's performance. (cloned)", "widgets": [ { - "id": 9100000000000100, + "id": 5803655382122172, "definition": { - "title": "Overview", - "title_align": "left", - "background_color": "yellow", - "show_title": true, + "title": "Utilization", + "reflow_type": "fixed", "type": "group", "layout_type": "ordered", "widgets": [ { - "id": 9100000000000098, + "id": 3306437627726454, "definition": { - "type": "note", - "content": "**Filters:** `$snmp_host`, `$snmp_device`, and `$interface` control what appears on the board. Use `*` to include everything, or narrow to a specific device or interface.\n\n**What you’ll see:** Summary tables highlight interfaces with high utilization or errors. The rest of the dashboard shows trends for utilization, throughput, errors and discards, admin and oper status, packet types, and a sortable list of all interfaces in scope.\n\n**Tip:** If a chart is crowded, tighten the filters or shorten the time range.", - "background_color": "pink", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 3 - } - }, - { - "id": 9100000000000006, - "definition": { - "title": "All interfaces ", - "title_align": "left", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 2833473954669631, - "definition": { - "title": "All interfaces — throughput, speed & state", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifHighSpeed{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query4", - "query": "avg:snmp.ifOperStatus{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}", - "aggregator": "last" - }, - { - "data_source": "metrics", - "name": "query5", - "query": "avg:snmp.ifAdminStatus{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}", - "aggregator": "last" - }, - { - "data_source": "metrics", - "name": "query6", - "query": "avg:snmp.interface.status{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifHCOutOctets.rate{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}", - "aggregator": "avg" - } - ], - "sort": { - "count": 50, - "order_by": [ - { - "type": "formula", - "index": 4, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Nominal speed (ifHighSpeed)", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "Mbps" - } - }, - "cell_display_mode": "bar", - "formula": "query3" - }, - { - "alias": "Oper Status", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "code" - } - }, - "conditional_formats": [ - { - "comparator": "<", - "palette": "white_on_green", - "value": 2 - }, - { - "comparator": "<=", - "palette": "white_on_red", - "value": 2 - }, - { - "comparator": "<=", - "palette": "white_on_yellow", - "value": 3 - }, - { - "custom_bg_color": "#cfcdcd", - "comparator": ">", - "palette": "custom_bg", - "value": 3 - } - ], - "cell_display_mode": "bar", - "formula": "query4" - }, - { - "alias": "Admin Status", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "code" - } - }, - "conditional_formats": [ - { - "comparator": "<=", - "palette": "white_on_green", - "value": 1 - }, - { - "comparator": "<=", - "palette": "white_on_red", - "value": 2 - }, - { - "comparator": "<=", - "palette": "white_on_yellow", - "value": 3 - } - ], - "cell_display_mode": "bar", - "formula": "query5" - }, - { - "alias": "IF Status", - "cell_display_mode": "bar", - "conditional_formats": [ - { - "comparator": "<=", - "value": 1, - "palette": "white_on_green" - }, - { - "comparator": "<=", - "value": 2, - "palette": "white_on_red" - }, - { - "comparator": "<=", - "value": 3, - "palette": "white_on_yellow" - } - ], - "formula": "query6", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "code" - } - } - }, - { - "alias": "b/s in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - }, - "cell_display_mode": "bar", - "formula": "query1 * 8" - }, - { - "alias": "b/s out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - }, - "cell_display_mode": "bar", - "formula": "query2 * 8" - } - ] - } - ], - "has_search_bar": "auto" - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 6 - } - } - ] - }, - "layout": { - "x": 0, - "y": 3, - "width": 12, - "height": 1 - } - }, - { - "id": 4085823964181445, - "definition": { - "title": "Top Flapping Interfaces", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 8060512974836418, - "definition": { - "title": "Devices with Interface Flaps (24h)", - "title_size": "16", - "title_align": "left", - "time": { - "type": "live", - "unit": "day", - "value": 1 - }, - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "max_status", - "query": "max:snmp.ifOperStatus{*} by {snmp_host,interface,interface_alias}", - "aggregator": "max" - }, - { - "data_source": "metrics", - "name": "min_status", - "query": "min:snmp.ifOperStatus{*} by {snmp_host,interface,interface_alias}", - "aggregator": "min" - } - ], - "sort": { - "count": 100, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Flapped", - "conditional_formats": [ - { - "comparator": ">=", - "palette": "white_on_red", - "value": 1 - } - ], - "formula": "max_status - min_status" - } - ] - } - ], - "has_search_bar": "always", - "custom_links": [ - { - "link": "/devices?query=snmp_host%3A{{snmp_host.value}}", - "label": "View Device" - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 6 - } - } - ] - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 1 - } - }, - { - "id": 9100000000000004, - "definition": { - "title": "Throughput & utilization", - "title_align": "left", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 9100000000000040, - "definition": { - "type": "note", - "content": "**Throughput and utilization:** Interface utilization (%) and traffic rates (bits/s). Narrow **$snmp_device** or **$interface** when you want to focus on particular ports.", - "background_color": "pink", - "font_size": "13", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 1 - } - }, - { - "id": 2219176291443264, - "definition": { - "title": "Top Bandwidth by Interface (outbound) ", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthOutUsage.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 1, - "width": 6, - "height": 3 - } - }, - { - "id": 5456732904611231, - "definition": { - "title": "Top Bandwidth by Interface (inbound)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1611075730040&live=true&to_ts=1611079330040&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 1, - "width": 6, - "height": 3 - } - }, - { - "id": 4224670610784808, - "definition": { - "title": "Top 10 Interface Throughput (outbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 4, - "width": 6, - "height": 3 - } - }, - { - "id": 5340755547380008, - "definition": { - "title": "Top 10 Interface Throughput (inbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 4, - "width": 6, - "height": 3 - } - }, - { - "id": 8222666460674068, - "definition": { - "title": "Top 10 Interface Throughput (outbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 7, - "width": 6, - "height": 3 - } - }, - { - "id": 1210504657783681, - "definition": { - "title": "Top 10 Interface Throughput (inbound bps)", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{*} by {snmp_host,interface,interface_alias}", - "aggregator": "avg" - } - ], - "formulas": [ - { - "alias": "bps", - "formula": "query1 * 8" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 7, - "width": 6, - "height": 3 - } - }, - { - "id": 9100000000000044, - "definition": { - "title": "Inbound utilization (%)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc')", - "alias": "Utilization (%) in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" - } - } - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "Percent", - "include_zero": true, - "min": "auto", - "max": "100" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 10, - "width": 6, - "height": 4 - } - }, - { - "id": 1071517627673985, - "definition": { - "title": "Outbound utilization (%)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthOutUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc')", - "alias": "Utilization (%) out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" - } - } - } - ], - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "Percent", - "include_zero": true, - "min": "auto", - "max": "100" - }, - "markers": [] - }, - "layout": { - "x": 6, - "y": 10, - "width": 6, - "height": 4 - } - }, - { - "id": 9100000000000046, - "definition": { - "title": "Bits/s in ", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc') * 8", - "alias": "bits/s in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - } - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "bits/s", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 14, - "width": 6, - "height": 4 - } - }, - { - "id": 9100000000000048, - "definition": { - "title": "Bits/s out", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc') * 8", - "alias": "bits/s out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - } - } - ], - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "bits/s", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 6, - "y": 14, - "width": 6, - "height": 4 - } - }, - { - "id": 6606416482556952, - "definition": { - "title": "Throughput (bits/s) & inbound utilization (%) — dual axis", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "type": "timeseries", - "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifHCOutOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc') * 8", - "alias": "bits/s in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - } - }, - { - "formula": "top(query2, 25, 'max', 'desc') * 8", - "alias": "bits/s out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - } - } - ], - "style": { - "palette": "cool", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - }, - { - "on_right_yaxis": true, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc')", - "alias": "Utilization (%) in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" - } - } - } - ], - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "scale": "linear", - "label": "bits/s", - "include_zero": true, - "min": "auto", - "max": "auto" - }, - "right_yaxis": { - "scale": "linear", - "label": "Utilization (%)", - "include_zero": true, - "min": "auto", - "max": "100" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 18, - "width": 12, - "height": 4 - } - }, - { - "id": 9100000000000020, - "definition": { - "title": "Interface utilization", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifBandwidthInUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifBandwidthOutUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifHCInOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query4", - "query": "avg:snmp.ifHCOutOctets.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query5", - "query": "avg:snmp.ifHighSpeed{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}.as_count()", - "aggregator": "avg" - } - ], - "sort": { - "count": 25, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Utilization (%) in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" - } - }, - "cell_display_mode": "bar", - "formula": "query1" - }, - { - "alias": "Utilization (%) out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" - } - }, - "cell_display_mode": "bar", - "formula": "query2" - }, - { - "alias": "Nominal speed (Mbps)", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "Mbps" - } - }, - "cell_display_mode": "bar", - "formula": "query5" - }, - { - "alias": "bits/s in", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - }, - "cell_display_mode": "bar", - "formula": "query3 * 8" - }, - { - "alias": "bits/s out", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "bit_in_bits_family", - "per_unit_name": "second" - } - }, - "cell_display_mode": "bar", - "formula": "query4 * 8" - } - ] - } - ], - "has_search_bar": "auto" - }, - "layout": { - "x": 0, - "y": 22, - "width": 12, - "height": 7 - } - }, - { - "id": 1888575667818755, - "definition": { - "type": "note", - "content": "**Tip:** Bandwidth is calculation measured as the rate at which traffic is sent or received on a specific port over the max speed that traffic can be sent. \n\nWe use the following formula: \n\n![bandwidth usage formula](https://github.com/DataDog/integrations-core/blob/5c17b0323172687c4ae0fdd75c56b5f8dd1c2dec/snmp/assets/images/bandwidth-usage-formula-small.png?raw=true)\n\nDatadog Agent version 7.25+ includes a packaged metric that calculates bandwidth automatically:\n\n`snmp.ifBandwidthInUsage.rate` & `snmp.ifBandwidthOutUsage.rate`", - "background_color": "pink", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left" - }, - "layout": { - "x": 0, - "y": 29, - "width": 12, - "height": 3 - } - } - ] - }, - "layout": { - "x": 0, - "y": 5, - "width": 12, - "height": 33 - } - }, - { - "id": 7496199602009546, - "definition": { - "title": "Errors & discards", - "title_align": "left", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 7729852584360387, - "definition": { - "title": "Interfaces with the Most Discarded Packets", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInDiscards{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifOutDiscards{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1 + query2" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 3 - } - }, - { - "id": 759128088942464, - "definition": { - "title": "Interfaces with the Most Errors", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInErrors{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifOutErrors{*} by {snmp_host,interface}.as_count()", - "aggregator": "avg" - } - ], - "formulas": [ - { - "formula": "query1 + query2" - } - ], - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "custom_links": [ - { - "link": "/screen/integration/Interface%20Performance?from_ts=1602800672906&live=true&to_ts=1602804272906&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_interface={{interface.value}}", - "label": "Interface Performance" - } - ], - "style": {} - }, - "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 3 - } - }, - { - "id": 9100000000000032, - "definition": { - "title": "Errors — inbound", + "title": "Inbound Bandwidth (%)", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ { + "q": "avg:snmp.ifBandwidthInUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInErrors{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc')", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "errors/s" - } - } - } - ], "style": { "palette": "cool", "line_type": "solid", @@ -1345,51 +32,27 @@ ], "yaxis": { "scale": "linear", - "label": "errors/s", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 0, - "y": 3, - "width": 6, - "height": 4 - } + "layout": { "x": 0, "y": 0, "width": 6, "height": 3 } }, { - "id": 8176929307200002, + "id": 2898630490041394, "definition": { - "title": "Errors — outbound", + "title": "Outbound Bandwidth (%)", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ { + "q": "avg:snmp.ifBandwidthOutUsage.rate{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifOutErrors{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc')", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "errors/s" - } - } - } - ], "style": { "palette": "purple", "line_type": "solid", @@ -1400,49 +63,31 @@ ], "yaxis": { "scale": "linear", - "label": "errors/s", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 6, - "y": 3, - "width": 6, - "height": 4 - } + "layout": { "x": 6, "y": 0, "width": 6, "height": 3 } }, { - "id": 9100000000000036, + "id": 2923885312771994, "definition": { - "title": "Discards — inbound", + "title": "Bits Received by Interface", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ { + "q": "avg:snmp.ifHCInOctets{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}.as_count()*8", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ + "metadata": [ { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInDiscards{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 25, 'max', 'desc')", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "discards/s" - } - } + "expression": "avg:snmp.ifHCInOctets{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}.as_count()*8", + "alias_name": "bits in" } ], "style": { @@ -1455,49 +100,31 @@ ], "yaxis": { "scale": "linear", - "label": "discards/s", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 0, - "y": 7, - "width": 6, - "height": 4 - } + "layout": { "x": 0, "y": 3, "width": 6, "height": 3 } }, { - "id": 9100000000000034, + "id": 6773822003742794, "definition": { - "title": "Discards — outbound", + "title": "Bits Sent by Interface", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ { + "q": "avg:snmp.ifHCOutOctets{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}.as_count()*8", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifOutDiscards{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ + "metadata": [ { - "formula": "top(query1, 25, 'max', 'desc')", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "discards/s" - } - } + "expression": "avg:snmp.ifHCOutOctets{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}.as_count()*8", + "alias_name": "bits out" } ], "style": { @@ -1510,226 +137,53 @@ ], "yaxis": { "scale": "linear", - "label": "discards/s", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 6, - "y": 7, - "width": 6, - "height": 4 - } + "layout": { "x": 6, "y": 3, "width": 6, "height": 3 } }, { - "id": 3828107670972108, + "id": 7393572788857220, "definition": { - "title": "Interface errors & discards", + "title": "In/Out Bytes & Max Speed", "title_size": "16", "title_align": "left", "type": "query_table", "requests": [ { - "response_format": "scalar", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifInErrors{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifOutErrors{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifInDiscards{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query4", - "query": "avg:snmp.ifOutDiscards{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "avg" - }, - { - "data_source": "metrics", - "name": "query5", - "query": "avg:snmp.ifOperStatus{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface,interface_index,interface_alias}", - "aggregator": "last" - } - ], - "sort": { - "count": 25, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Errors/s in", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "errors/s" - } - }, - "cell_display_mode": "bar", - "formula": "query1" - }, - { - "alias": "Errors/s out", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "errors/s" - } - }, - "cell_display_mode": "bar", - "formula": "query2" - }, - { - "alias": "Discards/s in", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "discards/s" - } - }, - "cell_display_mode": "bar", - "formula": "query3" - }, - { - "alias": "Discards/s out", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "discards/s" - } - }, - "cell_display_mode": "bar", - "formula": "query4" - }, - { - "alias": "Oper status (code)", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "code" - } - }, - "conditional_formats": [ - { - "comparator": "<", - "palette": "white_on_green", - "value": 2 - }, - { - "comparator": "<=", - "palette": "white_on_red", - "value": 2 - }, - { - "comparator": "<=", - "palette": "white_on_yellow", - "value": 3 - }, - { - "custom_bg_color": "#cfcdcd", - "comparator": ">", - "palette": "custom_bg", - "value": 3 - } - ], - "cell_display_mode": "bar", - "formula": "query5" - } - ] + "aggregator": "avg", + "cell_display_mode": ["bar"], + "q": "avg:snmp.ifHCInOctets.rate{$snmp_host,$interface,$snmp_device} by {snmp_host,interface}.as_count()", + "alias": "Bytes In", + "limit": 50, + "order": "desc" + }, + { + "q": "avg:snmp.ifHCOutOctets.rate{$snmp_host,$interface,$snmp_device} by {snmp_host,interface}", + "aggregator": "avg", + "cell_display_mode": ["bar"], + "alias": "Bytes Out" + }, + { + "q": "avg:snmp.ifHighSpeed{$snmp_host,$interface,$snmp_device} by {snmp_host,interface}.as_count()", + "aggregator": "avg", + "cell_display_mode": ["bar"], + "alias": "Speed" } ], "has_search_bar": "auto" }, - "layout": { - "x": 0, - "y": 11, - "width": 12, - "height": 7 - } - } - ] - }, - "layout": { - "x": 0, - "y": 38, - "width": 12, - "height": 1 - } - }, - { - "id": 9100000000000000, - "definition": { - "title": "Oper & admin status", - "title_align": "left", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 3763492863117901, - "definition": { - "type": "note", - "content": "**Tip:** To fully understand the current state of an interface, we compare two different metrics, `snmp.AdminStatus` and `snmp.OperStatus`.\n\n**Admin Status** is defined by the owner of the device. This is the state a port is supposed to be at configuration time.\n\nMeanwhile, the actual current state of the interface is known as the **Operational Status**.\n\nWe can infer a healthy interface when the interface is operationally the same as its administratively defined states. ", - "background_color": "pink", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left" - }, - "layout": { - "x": 0, - "y": 0, - "width": 8, - "height": 3 - } + "layout": { "x": 0, "y": 6, "width": 12, "height": 6 } }, { - "id": 6197778322888030, + "id": 6062104962740908, "definition": { "type": "note", - "content": "**Admin Status**\n```\n1 - up \n2 - down\n3 - testing\n```", - "background_color": "pink", - "font_size": "14", - "text_align": "left", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left" - }, - "layout": { - "x": 8, - "y": 0, - "width": 2, - "height": 3 - } - }, - { - "id": 5759135064811185, - "definition": { - "type": "note", - "content": "**Oper Status** \n```\n1 - up\n2 - down\n3 - testing\n4 - unknown\n5 - dormant\n6 - notPresent\n7 - lowerLayerDown\n```", + "content": "**Tip:** Bandwidth is calculation measured as the rate at which traffic is sent or received on a specific port over the max speed that traffic can be sent. \n\nWe use the following formula: \n\n![bandwidth usage formula](https://github.com/DataDog/integrations-core/blob/5c17b0323172687c4ae0fdd75c56b5f8dd1c2dec/snmp/assets/images/bandwidth-usage-formula-small.png?raw=true)\n\nDatadog Agent version 7.25+ includes a packaged metric that calculates bandwidth automatically:\n\n`snmp.ifBandwidthInUsage.rate` & `snmp.ifBandwidthOutUsage.rate`", "background_color": "pink", "font_size": "14", "text_align": "left", @@ -1737,45 +191,31 @@ "tick_pos": "50%", "tick_edge": "left" }, - "layout": { - "x": 10, - "y": 0, - "width": 2, - "height": 3 - } - }, + "layout": { "x": 0, "y": 12, "width": 12, "height": 3 } + } + ] + } + }, + { + "id": 1483901448268600, + "definition": { + "title": "Errors & Discards", + "reflow_type": "fixed", + "type": "group", + "layout_type": "ordered", + "widgets": [ { - "id": 7371043321634065, + "id": 1700626972109850, "definition": { - "title": "ifOperStatus over time", + "title": "Inbound Errors by Interface", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ - { - "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifOperStatus{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "query1", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "ifOperStatus" - } - } - } - ], + { + "q": "avg:snmp.ifInErrors{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}", + "on_right_yaxis": false, "style": { "palette": "cool", "line_type": "solid", @@ -1786,52 +226,27 @@ ], "yaxis": { "scale": "linear", - "label": "MIB value (1=up, 2=down, …)", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 0, - "y": 3, - "width": 12, - "height": 4 - } + "layout": { "x": 0, "y": 0, "width": 6, "height": 3 } }, { - "id": 9100000000000014, + "id": 8896998123028100, "definition": { - "title": "ifAdminStatus over time", + "title": "Outbound Errors by Interface", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ { + "q": "avg:snmp.ifOutErrors{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifAdminStatus{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "query1", - "number_format": { - "precision": "integer", - "unit": { - "type": "custom_unit_label", - "label": "ifAdminStatus" - } - } - } - ], "style": { "palette": "purple", "line_type": "solid", @@ -1842,101 +257,27 @@ ], "yaxis": { "scale": "linear", - "label": "MIB value (1=up, 2=down, 3=testing)", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 0, - "y": 7, - "width": 12, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 39, - "width": 12, - "height": 1 - } - }, - { - "id": 7767139202770638, - "definition": { - "title": "Packet mix (pkts/s)", - "title_align": "left", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ + "layout": { "x": 6, "y": 0, "width": 6, "height": 3 } + }, { - "id": 9100000000000050, + "id": 169728333312990, "definition": { - "title": "Packet mix — inbound (pkts/s)", + "title": "Inbound Discarded Packets by Interface", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ { + "q": "avg:snmp.ifInDiscards{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCInUcastPkts{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifHCInMulticastPkts{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifHCInBroadcastPkts{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 20, 'max', 'desc')", - "alias": "Unicast in", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "pkts/s" - } - } - }, - { - "formula": "top(query2, 20, 'max', 'desc')", - "alias": "Multicast in", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "pkts/s" - } - } - }, - { - "formula": "top(query3, 20, 'max', 'desc')", - "alias": "Broadcast in", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "pkts/s" - } - } - } - ], "style": { "palette": "cool", "line_type": "solid", @@ -1947,84 +288,29 @@ ], "yaxis": { "scale": "linear", - "label": "pkts/s", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } + "layout": { "x": 0, "y": 3, "width": 6, "height": 3 } }, { - "id": 9100000000000052, + "id": 4219009026623818, "definition": { - "title": "Packet mix — outbound (pkts/s)", + "title": "Outbound Discarded Packets by Interface", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", + "show_legend": false, "type": "timeseries", "requests": [ { + "q": "avg:snmp.ifOutDiscards{$snmp_host,$snmp_device,$interface} by {snmp_host,snmp_device,interface}", "on_right_yaxis": false, - "response_format": "timeseries", - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.ifHCOutUcastPkts{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - }, - { - "data_source": "metrics", - "name": "query2", - "query": "avg:snmp.ifHCOutMulticastPkts{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - }, - { - "data_source": "metrics", - "name": "query3", - "query": "avg:snmp.ifHCOutBroadcastPkts{$snmp_host,$snmp_device,$interface} by {snmp_device,snmp_host,interface}" - } - ], - "formulas": [ - { - "formula": "top(query1, 20, 'max', 'desc')", - "alias": "Unicast out", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "pkts/s" - } - } - }, - { - "formula": "top(query2, 20, 'max', 'desc')", - "alias": "Multicast out", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "pkts/s" - } - } - }, - { - "formula": "top(query3, 20, 'max', 'desc')", - "alias": "Broadcast out", - "number_format": { - "unit": { - "type": "custom_unit_label", - "label": "pkts/s" - } - } - } - ], "style": { - "palette": "cool", + "palette": "purple", "line_type": "solid", "line_width": "normal" }, @@ -2033,904 +319,310 @@ ], "yaxis": { "scale": "linear", - "label": "pkts/s", + "label": "", "include_zero": true, "min": "auto", "max": "auto" }, "markers": [] }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 4 - } + "layout": { "x": 6, "y": 3, "width": 6, "height": 3 } } ] - }, - "layout": { - "x": 0, - "y": 80, - "width": 12, - "height": 1, - "is_column_break": true } }, { - "id": 5438428427836517, + "id": 228168866067746, "definition": { - "title": "NetFlow traffic", - "background_color": "yellow", - "show_title": true, + "title": "Packets", + "reflow_type": "fixed", "type": "group", "layout_type": "ordered", "widgets": [ { - "id": 2132593531889111, + "id": 5588540879200634, "definition": { - "title": "NetFlow Traffic Sankey", + "title": "Packets In (uni, multi & broadcast)", "title_size": "16", "title_align": "left", - "type": "sankey", - "requests": [ - { - "request_type": "netflow_sankey", - "query": { - "data_source": "network_device_flows", - "mode": "target", - "query_string": "", - "group_by": [ - "@source.ip", - "@ingress.interface.name", - "@device.ip", - "@egress.interface.name", - "@destination.ip" - ], - "limit": 10, - "sort": { - "field": "@adjusted_bytes:sum", - "order": "desc" - } - } - } - ], - "sort_nodes": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } - }, - { - "id": 8700092008086793, - "definition": { - "title": "Top Conversations through Source → Device → Destination (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], + "show_legend": false, "type": "timeseries", "requests": [ { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + "q": "avg:snmp.ifHCInUcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "on_right_yaxis": false, + "metadata": [ { - "name": "query1", - "data_source": "network_device_flows", - "search": { - "query": "" - }, - "indexes": [ - "*" - ], - "group_by": [ - { - "facet": "@source.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@device.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@device.name", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@destination.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": false - } - ], - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "storage": "hot" + "expression": "avg:snmp.ifHCInUcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "alias_name": "unicast" } ], - "response_format": "timeseries", "style": { "palette": "dog_classic", "line_type": "solid", "line_width": "normal" }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 4 - } - }, - { - "id": 932800830244655, - "definition": { - "title": "Top Conversations through Source → Device → Destination (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ + "display_type": "line" + }, { - "queries": [ + "q": "avg:snmp.ifHCInBroadcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "on_right_yaxis": false, + "metadata": [ { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } + "expression": "avg:snmp.ifHCInBroadcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "alias_name": "broadcast" } ], - "response_format": "scalar", "style": { - "palette": "dogcat" + "palette": "dog_classic", + "line_type": "dotted", + "line_width": "normal" }, - "formulas": [ - { - "formula": "query1" - } - ] - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 8, - "width": 12, - "height": 4 - } - }, - { - "id": 608348101055784, - "definition": { - "title": "Top 10 Sources Sending the Most Traffic by Device (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ + "display_type": "line" + }, { - "queries": [ + "q": "avg:snmp.ifHCInMulticastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "on_right_yaxis": false, + "metadata": [ { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } + "expression": "avg:snmp.ifHCInMulticastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "alias_name": "multicast" } ], - "response_format": "scalar", - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] + "style": { + "palette": "dog_classic", + "line_type": "dashed", + "line_width": "normal" }, - "formulas": [ - { - "cell_display_mode": "number", - "formula": "query1" - } - ] + "display_type": "line" } - ] + ], + "yaxis": { + "scale": "linear", + "label": "", + "include_zero": true, + "min": "auto", + "max": "auto" + }, + "markers": [] }, - "layout": { - "x": 0, - "y": 12, - "width": 6, - "height": 4 - } + "layout": { "x": 0, "y": 0, "width": 6, "height": 3 } }, { - "id": 3749666581008658, + "id": 1878660176861228, "definition": { - "title": "Volume of Traffic Sent by Source, Device (Bytes)", + "title": "Packets Out (uni, multi & broadcast)", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], + "show_legend": false, "type": "timeseries", "requests": [ { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + "q": "avg:snmp.ifHCOutUcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "on_right_yaxis": false, + "metadata": [ { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } + "expression": "avg:snmp.ifHCOutUcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "alias_name": "unicast" } ], - "response_format": "timeseries", "style": { - "palette": "purple", + "palette": "dog_classic", "line_type": "solid", "line_width": "normal" }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 6, - "y": 12, - "width": 6, - "height": 4 - } - }, - { - "id": 438190237099837, - "definition": { - "title": "Top 10 Destinations Receiving the Most Traffic by Device (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ + "display_type": "line" + }, { - "queries": [ + "q": "avg:snmp.ifHCOutBroadcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "on_right_yaxis": false, + "metadata": [ { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } + "expression": "avg:snmp.ifHCOutBroadcastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "alias_name": "broadcast" } ], - "response_format": "scalar", - "sort": { - "count": 100, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] + "style": { + "palette": "dog_classic", + "line_type": "dotted", + "line_width": "normal" }, - "formulas": [ - { - "cell_display_mode": "number", - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 16, - "width": 6, - "height": 4 - } - }, - { - "id": 8389535321483684, - "definition": { - "title": "Volume of Traffic Received by Destination, Device (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ + "display_type": "line" + }, { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + "q": "avg:snmp.ifHCOutMulticastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "on_right_yaxis": false, + "metadata": [ { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$interface" - } + "expression": "avg:snmp.ifHCOutMulticastPkts{$snmp_host,$interface,$snmp_device} by {interface,snmp_host}.as_count()", + "alias_name": "multicast" } ], - "response_format": "timeseries", "style": { - "palette": "blue", - "line_type": "solid", + "palette": "dog_classic", + "line_type": "dashed", "line_width": "normal" }, - "display_type": "area" + "display_type": "line" } - ] + ], + "yaxis": { + "scale": "linear", + "label": "", + "include_zero": true, + "min": "auto", + "max": "auto" + }, + "markers": [] + }, + "layout": { "x": 6, "y": 0, "width": 6, "height": 3 } + } + ] + } + }, + { + "id": 2411712431918596, + "definition": { + "title": "Interface State", + "reflow_type": "fixed", + "type": "group", + "layout_type": "ordered", + "widgets": [ + { + "id": 7158881371559176, + "definition": { + "type": "note", + "content": "**Tip:** To fully understand the current state of an interface, we compare two different metrics, `snmp.AdminStatus` and `snmp.OperStatus`.\n\n**Admin Status** is defined by the owner of the device. This is the state a port is supposed to be at configuration time.\n\nMeanwhile, the actual current state of the interface is known as the **Operational Status**.\n\nWe can infer a healthy interface when the interface is operationally the same as its administratively defined states. ", + "background_color": "pink", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left" }, - "layout": { - "x": 6, - "y": 16, - "width": 6, - "height": 4 - } + "layout": { "x": 0, "y": 0, "width": 8, "height": 3 } }, { - "id": 2939938754839815, + "id": 5324644455644750, "definition": { - "title": "Top Applications by Source Port (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@source.port", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } + "type": "note", + "content": "**Oper Status** \n```\n1 - up\n2 - down\n3 - testing\n4 - unknown\n5 - dormant\n6 - notPresent\n7 - lowerLayerDown\n```", + "background_color": "pink", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left" }, - "layout": { - "x": 0, - "y": 20, - "width": 6, - "height": 4 - } + "layout": { "x": 8, "y": 0, "width": 2, "height": 3 } }, { - "id": 6047605352933597, + "id": 6121921241158846, "definition": { - "title": "Top Source Ports (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@source.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] + "type": "note", + "content": "**Admin Status**\n```\n1 - up \n2 - down\n3 - testing\n```", + "background_color": "pink", + "font_size": "14", + "text_align": "left", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left" }, - "layout": { - "x": 6, - "y": 20, - "width": 6, - "height": 4 - } + "layout": { "x": 10, "y": 0, "width": 2, "height": 3 } }, { - "id": 3440711973800048, + "id": 6490840222049614, "definition": { - "title": "Top Applications by Destination Port (Bytes)", + "title": "Current State", "title_size": "16", "title_align": "left", + "type": "query_table", "requests": [ { - "queries": [ + "aggregator": "last", + "cell_display_mode": ["bar"], + "conditional_formats": [ { - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.port", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ + "comparator": "<", + "palette": "white_on_green", + "value": 2 + }, + { + "comparator": "<=", + "palette": "white_on_red", + "value": 2 + }, + { + "comparator": "<=", + "palette": "white_on_yellow", + "value": 3 + }, { - "formula": "query1" + "custom_bg_color": "#cfcdcd", + "comparator": ">", + "palette": "custom_bg", + "value": 3 } ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } + "q": "avg:snmp.ifOperStatus{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}", + "alias": "oper status", + "limit": 50, + "order": "desc" } ], - "type": "sunburst", - "legend": { - "type": "table" - } + "has_search_bar": "auto" }, - "layout": { - "x": 0, - "y": 24, - "width": 6, - "height": 4 - } + "layout": { "x": 0, "y": 3, "width": 6, "height": 6 } }, { - "id": 463451865116624, + "id": 6987392975637046, "definition": { - "title": "Top Destination Ports (Bytes)", + "title": "User/Pre-Defined State", "title_size": "16", "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", + "type": "query_table", "requests": [ { - "formulas": [ + "aggregator": "last", + "cell_display_mode": ["bar"], + "conditional_formats": [ { - "formula": "query1" - } - ], - "queries": [ + "comparator": "<=", + "palette": "white_on_green", + "value": 1 + }, + { + "comparator": "<=", + "palette": "white_on_red", + "value": 2 + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "" - } + "comparator": "<=", + "palette": "white_on_yellow", + "value": 3 } ], - "response_format": "timeseries", - "style": { - "palette": "semantic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" + "q": "avg:snmp.ifAdminStatus{$snmp_host,$interface,$snmp_device} by {snmp_device,snmp_host,interface}", + "alias": "admin status", + "limit": 50, + "order": "desc" } - ] + ], + "has_search_bar": "auto" }, - "layout": { - "x": 6, - "y": 24, - "width": 6, - "height": 4 - } + "layout": { "x": 6, "y": 3, "width": 6, "height": 6 } } ] - }, - "layout": { - "x": 0, - "y": 81, - "width": 12, - "height": 1 } } ], "template_variables": [ - { - "name": "snmp_host", - "prefix": "snmp_host", - "available_values": [], - "default": "*" - }, - { - "name": "snmp_device", - "prefix": "snmp_device", - "available_values": [], - "default": "*" - }, - { - "name": "interface", - "prefix": "interface", - "available_values": [], - "default": "*" - } + { "name": "snmp_host", "default": "*", "prefix": "snmp_host" }, + { "name": "snmp_device", "default": "*", "prefix": "snmp_device" }, + { "name": "interface", "default": "*", "prefix": "interface" } ], "layout_type": "ordered", + "is_read_only": true, "notify_list": [], - "pause_auto_refresh": false, "reflow_type": "fixed" } diff --git a/snmp/assets/dashboards/ndm_troubleshooting.json b/snmp/assets/dashboards/ndm_troubleshooting.json index 00f4c039b12c6..4cc297e401558 100644 --- a/snmp/assets/dashboards/ndm_troubleshooting.json +++ b/snmp/assets/dashboards/ndm_troubleshooting.json @@ -1,2850 +1,2862 @@ { - "title": "NDM troubleshooting", - "description": "NDM platform health: agents, SNMP reachability and poll cost, traps, NetFlow pipeline internals, ICMP and SNMP integration memory. Pair with Interface Performance (same snmp_device/interface) for per-interface bit rates, errors, and state.\n", - "widgets": [ - { - "id": 2663583616845740, - "definition": { - "title": "NDM Troubleshooting", - "background_color": "green", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 3628964508547190, + "author_name": "Datadog", + "description": null, + "layout_type": "ordered", + "template_variables": [ + { + "available_values": [], + "default": "*", + "name": "Agent_Hostname", + "prefix": "host" + }, + { + "available_values": [], + "default": "*", + "name": "SNMP_Device", + "prefix": "snmp_device" + }, + { + "available_values": [], + "default": "*", + "name": "Netflow_Exporter", + "prefix": "exporter_ip" + }, + { + "available_values": [], + "default": "*", + "name": "Custom_Tag" + } + ], + "title": "NDM Troubleshooting", + "widgets": [ + { "definition": { - "type": "note", - "content": "**Scope here:** Agent health, SNMP check cost, autodiscovery, traps, and NetFlow **pipeline** metrics (receive, flush, index). **Per-interface** utilization, errors, packet mix, and detailed state history live on [Interface Performance](/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}})—set **snmp_device** + **interface** there to match the device you care about here (`$SNMP_Device` is the same device tag as **snmp_device** on that dashboard).\n\n**How the panels fit together:** Agent availability, SNMP reachability and poll duration, trap flow, then NetFlow received/flushed/indexed; version-specific sequence/drop widgets sit with the pipeline section. **At the bottom:** SNMP integration memory and ICMP latency/unreachable help separate agent or path issues from the device’s SNMP behavior.\n\n**Filters:** `$Agent_Hostname`, `$SNMP_Device`, `$Netflow_Exporter`, `$Custom_Tag`. [NDM docs](https://docs.datadoghq.com/network_monitoring/devices/).", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 3 - } - }, - { - "id": 4997228044177920, - "definition": { - "title": "Fleet counts (devices & metrics)", - "background_color": "pink", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 5448907116074094, - "definition": { - "title": "Devices monitored", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "last", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.devices_monitored{agent_host:$Agent_Hostname.value}" + "background_color": "white", + "layout_type": "ordered", + "show_title": true, + "title": "NDM Troubleshooting", + "type": "group", + "widgets": [ + { + "definition": { + "background_color": "transparent", + "content": "This dashboard provides a high-level overview to help you monitor and troubleshoot the health of your Network Device Monitoring environment. You can track health and performance of your running agents, as well as SNMP, Traps, and NetFlow Monitoring integrations.\n\n**Further reading on NDM**\n\n- Our blog post on [Monitoring Datacenters and network devices with Datadog](https://www.datadoghq.com/blog/datacenter-monitoring-dashboards/)\n- Our blog post on [Monitoring network devices with SNMP](https://www.datadoghq.com/blog/monitor-snmp-with-datadog/)\n- Network Device Monitoring [docs](https://docs.datadoghq.com/network_performance_monitoring/devices) ", + "font_size": "14", + "has_padding": true, + "show_tick": false, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "top" + }, + "id": 3628964508547190, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 0 + } } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 0, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } + ] }, + "id": 2663583616845740, "layout": { - "x": 0, - "y": 0, - "width": 3, - "height": 2 + "height": 5, + "width": 6, + "x": 0, + "y": 0 } - }, - { - "id": 3547436194124732, + }, + { "definition": { - "title": "Flows indexed", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ + "background_color": "pink", + "layout_type": "ordered", + "show_title": true, + "title": "Overview", + "type": "group", + "widgets": [ + { + "definition": { + "autoscale": true, + "precision": 0, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.devices_monitored{agent_host:$Agent_Hostname.value}" + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Devices monitored", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 5448907116074094, + "layout": { + "height": 2, + "width": 3, + "x": 0, + "y": 0 + } + }, { - "formula": "query3" - } - ], - "queries": [ + "definition": { + "autoscale": true, + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "sum", + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.snmp.submitted_metrics{agent_host:$Agent_Hostname.value}" + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Submitted metrics", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 3962787759927314, + "layout": { + "height": 2, + "width": 3, + "x": 3, + "y": 0 + } + }, { - "compute": { - "aggregation": "count" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query3", - "search": { - "query": "@exporter.ip:$Netflow_Exporter.value" - } + "definition": { + "autoscale": true, + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:snmp-traps" + } + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Traps indexed", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 6115005518968934, + "layout": { + "height": 2, + "width": 3, + "x": 0, + "y": 2 + } + }, + { + "definition": { + "autoscale": true, + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "query3" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query3", + "search": { + "query": "@exporter.ip:$Netflow_Exporter.value" + } + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Flows indexed", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 3547436194124732, + "layout": { + "height": 2, + "width": 3, + "x": 3, + "y": 2 + } } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 2, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } + ] }, + "id": 4997228044177920, "layout": { - "x": 3, - "y": 0, - "width": 3, - "height": 2 + "height": 5, + "width": 6, + "x": 6, + "y": 0 } - }, - { - "id": 6115005518968934, + }, + { "definition": { - "title": "Traps indexed", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ + "background_color": "blue", + "layout_type": "ordered", + "show_title": true, + "title": "Agents", + "type": "group", + "widgets": [ + { + "definition": { + "has_search_bar": "auto", + "requests": [ + { + "formulas": [ + { + "alias": "CPU", + "cell_display_mode": "bar", + "formula": "query1", + "limit": { + "count": 500, + "order": "desc" + } + }, + { + "alias": "MEMORY", + "cell_display_mode": "bar", + "formula": "(query2 / query3) * 100", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + } + }, + { + "alias": "DISK", + "cell_display_mode": "bar", + "formula": "(query4 / query5) * 100", + "number_format": { + "unit": { + "type": "canonical_unit", + "unit_name": "percent" + } + } + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query2", + "query": "avg:system.mem.used{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query3", + "query": "avg:system.mem.total{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query4", + "query": "avg:system.disk.used{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query5", + "query": "avg:system.disk.total{$Agent_Hostname,$Custom_Tag} by {host}" + } + ], + "response_format": "scalar" + } + ], + "title": "Running Agents", + "title_align": "left", + "title_size": "16", + "type": "query_table" + }, + "id": 7022637295997678, + "layout": { + "height": 4, + "width": 4, + "x": 0, + "y": 0 + } + }, { - "formula": "query1" - } - ], - "queries": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [ + { + "display_type": "error dashed", + "value": "y = 100" + } + ], + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "CPU", + "formula": "top(query1, 50, 'mean', 'desc')" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.cpu.user{$Agent_Hostname,$Custom_Tag} by {host}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "CPU", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3003257047015150, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 0 + } + }, { - "compute": { - "aggregation": "count" - }, - "data_source": "logs", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "source:snmp-traps" - } - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 2, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } - }, - "layout": { - "x": 6, - "y": 0, - "width": 3, - "height": 2 - } - }, - { - "id": 3962787759927314, - "definition": { - "title": "Submitted metrics", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Used", + "formula": "top(query1, 50, 'mean', 'desc')" + }, + { + "alias": "Total", + "formula": "top(query2, 50, 'mean', 'desc')" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:system.mem.used{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:system.mem.total{$Agent_Hostname,$Custom_Tag} by {host}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Memory", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3478725624423596, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 0 + } + }, { - "formula": "query1" - } - ], - "queries": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.agent.running{$Agent_Hostname,$Custom_Tag} by {version}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Running versions", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3765410346567274, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 2 + } + }, { - "aggregator": "sum", - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.snmp.submitted_metrics{agent_host:$Agent_Hostname.value}" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.agent.started{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Agent Restarts", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5753872191409390, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 2 + } } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 2, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } + ] }, + "id": 7775029902313268, "layout": { - "x": 9, - "y": 0, - "width": 3, - "height": 2 + "height": 5, + "width": 12, + "x": 0, + "y": 5 } - } - ] - }, - "layout": { - "x": 0, - "y": 3, - "width": 12, - "height": 3 - } - }, - { - "id": 7775029902313268, - "definition": { - "title": "Agents", - "background_color": "blue", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 7022637295997678, + }, + { "definition": { - "title": "Running Agents", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "aggregator": "avg", - "data_source": "metrics", - "name": "query1", - "query": "avg:system.cpu.user{$Agent_Hostname,$Custom_Tag} by {host}" + "background_color": "green", + "layout_type": "ordered", + "show_title": true, + "title": "SNMP", + "type": "group", + "widgets": [ + { + "definition": { + "autoscale": true, + "precision": 2, + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "palette": "black_on_light_green", + "value": 0 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.device.reachable{agent_host:$Agent_Hostname.value,$Custom_Tag}" + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Devices reachable", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 1777355458473480, + "layout": { + "height": 2, + "width": 3, + "x": 0, + "y": 0 + } }, { - "aggregator": "avg", - "data_source": "metrics", - "name": "query2", - "query": "avg:system.mem.used{$Agent_Hostname,$Custom_Tag} by {host}" + "definition": { + "background_color": "white", + "content": "**Why are my devices unreachable?**\n\nAn unreachable device means that the agent cannot collect metrics from it.\nReachability is determined by performing a GETNEXT on the OID '1.0'. \n- Try loosening ACLs/firewall rules for your devices. To check connectivity from the Agent host to a network device, use the integrated `agent snmp walk` command.", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "75%", + "type": "note", + "vertical_align": "center" + }, + "id": 7875957059726684, + "layout": { + "height": 4, + "width": 3, + "x": 3, + "y": 0 + } }, { - "aggregator": "avg", - "data_source": "metrics", - "name": "query3", - "query": "avg:system.mem.total{$Agent_Hostname,$Custom_Tag} by {host}" + "definition": { + "custom_links": [ + { + "is_hidden": true, + "override_label": "traces" + }, + { + "is_hidden": true, + "override_label": "profiles" + }, + { + "label": "Device performance", + "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&live=true&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" + } + ], + "has_search_bar": "auto", + "requests": [ + { + "formulas": [ + { + "alias": "Status", + "cell_display_mode": "bar", + "conditional_formats": [ + { + "comparator": ">", + "palette": "black_on_light_green", + "value": 0 + }, + { + "comparator": "<", + "palette": "black_on_light_red", + "value": 1 + } + ], + "formula": "exclude_null(query1)", + "limit": { + "count": 500, + "order": "asc" + } + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "avg:snmp.device.reachable{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_host,snmp_device,snmp_profile}" + } + ], + "response_format": "scalar" + } + ], + "title": "Device status", + "title_align": "left", + "title_size": "16", + "type": "query_table" + }, + "id": 5449853565034480, + "layout": { + "height": 8, + "width": 6, + "x": 6, + "y": 0 + } }, { - "aggregator": "avg", - "data_source": "metrics", - "name": "query4", - "query": "avg:system.disk.used{$Agent_Hostname,$Custom_Tag} by {host}" + "definition": { + "autoscale": true, + "precision": 0, + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">=", + "palette": "red_on_white", + "value": 1 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.device.unreachable{agent_host:$Agent_Hostname.value,$Custom_Tag}" + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Devices unreachable", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 780110642340810, + "layout": { + "height": 2, + "width": 3, + "x": 0, + "y": 2 + } }, { - "aggregator": "avg", - "data_source": "metrics", - "name": "query5", - "query": "avg:system.disk.total{$Agent_Hostname,$Custom_Tag} by {host}" - } - ], - "response_format": "scalar", - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "CPU", - "cell_display_mode": "bar", - "formula": "query1" + "definition": { + "background_color": "white", + "content": "**Are you using the Python integration ?**\n\nNetwork Device Monitoring requires the SNMP core check, which is substantially faster and includes the latest features.\n\n To migrate from the Python integration to the core check, see [Migrating to the SNMP Core Check](https://docs.datadoghq.com/network_monitoring/devices/guide/migrating-to-snmp-core-check).", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "right", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 792699600428684, + "layout": { + "height": 2, + "width": 3, + "x": 0, + "y": 4 + } }, { - "alias": "MEMORY", - "cell_display_mode": "bar", - "formula": "(query2 / query3) * 100", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" + "definition": { + "autoscale": true, + "precision": 0, + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">=", + "palette": "black_on_light_yellow", + "value": 1 + } + ], + "formulas": [ + { + "formula": "default_zero(query1)" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.devices_monitored{loader:python,agent_host:$Agent_Hostname.value,$Custom_Tag}" + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Devices monitored using the Python integration", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 7163614881507442, + "layout": { + "height": 2, + "width": 3, + "x": 3, + "y": 4 } - } }, { - "alias": "DISK", - "cell_display_mode": "bar", - "formula": "(query4 / query5) * 100", - "number_format": { - "unit": { - "type": "canonical_unit", - "unit_name": "percent" + "definition": { + "autoscale": true, + "precision": 0, + "requests": [ + { + "conditional_formats": [ + { + "comparator": ">", + "palette": "black_on_light_yellow", + "value": 0 + } + ], + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "last", + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.devices_monitored{snmp_profile IN (generic-router,generic-device) AND agent_host:$Agent_Hostname.value AND $Custom_Tag}" + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Devices monitored using generic profile", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 6148374944546170, + "layout": { + "height": 2, + "width": 3, + "x": 0, + "y": 6 } - } - } - ] - } - ], - "has_search_bar": "auto" - }, - "layout": { - "x": 0, - "y": 0, - "width": 4, - "height": 4 - } - }, - { - "id": 3003257047015150, - "definition": { - "title": "CPU", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "CPU", - "formula": "top(query1, 50, 'mean', 'desc')" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:system.cpu.user{$Agent_Hostname,$Custom_Tag} by {host}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "markers": [ - { - "value": "y = 100", - "display_type": "error dashed" - } - ] - }, - "layout": { - "x": 4, - "y": 0, - "width": 4, - "height": 2 - } - }, - { - "id": 3478725624423596, - "definition": { - "title": "Memory", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Used", - "formula": "top(query1, 50, 'mean', 'desc')" }, { - "alias": "Total", - "formula": "top(query2, 50, 'mean', 'desc')" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:system.mem.used{$Agent_Hostname,$Custom_Tag} by {host}" + "definition": { + "background_color": "white", + "content": "**Why are my devices matched to the generic device profile?**\n\nSome devices may not be supported out-of-the-box and default to the generic device profile, which may cause some missing metrics.\n\n To create a custom SNMP profile for your network devices, see [Build a NDM Profile](https://docs.datadoghq.com/network_monitoring/devices/guide/build-ndm-profile/).", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 8897893996896618, + "layout": { + "height": 2, + "width": 3, + "x": 3, + "y": 6 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "avg:system.mem.total{$Agent_Hostname,$Custom_Tag} by {host}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "markers": [] - }, - "layout": { - "x": 8, - "y": 0, - "width": 4, - "height": 2 - } - }, - { - "id": 3765410346567274, - "definition": { - "title": "Running versions", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.agent.running{$Agent_Hostname,$Custom_Tag} by {version}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 4, - "y": 2, - "width": 4, - "height": 2 - } - }, - { - "id": 5753872191409390, - "definition": { - "title": "Agent Restarts", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.agent.started{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 8, - "y": 2, - "width": 4, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 6, - "width": 12, - "height": 5 - } - }, - { - "id": 1819147315966742, - "definition": { - "title": "SNMP", - "background_color": "green", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 1777355458473480, - "definition": { - "title": "Devices reachable", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "conditional_formats": [ - { - "comparator": ">", - "palette": "black_on_light_green", - "value": 0 - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "last", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.device.reachable{agent_host:$Agent_Hostname.value,$Custom_Tag}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 2, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } - }, - "layout": { - "x": 0, - "y": 0, - "width": 3, - "height": 2 - } - }, - { - "id": 7875957059726684, - "definition": { - "type": "note", - "content": "**Why are my devices unreachable?**\n\nAn unreachable device means that the agent cannot collect metrics from it.\nReachability is determined by performing a GETNEXT on the OID '1.0'. \n- Try loosening ACLs/firewall rules for your devices. To check connectivity from the Agent host to a network device, use the integrated `agent snmp walk` command.", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "75%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 3, - "y": 0, - "width": 3, - "height": 4 - } - }, - { - "id": 5449853565034480, - "definition": { - "title": "Device status", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "aggregator": "avg", - "data_source": "metrics", - "name": "query1", - "query": "avg:snmp.device.reachable{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_host,snmp_device,snmp_profile}" - } - ], - "response_format": "scalar", - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "asc" - } - ] - }, - "formulas": [ - { - "alias": "Status", - "cell_display_mode": "bar", - "conditional_formats": [ - { - "comparator": ">", - "palette": "black_on_light_green", - "value": 0 + "definition": { + "custom_links": [ + { + "is_hidden": true, + "override_label": "traces" + }, + { + "is_hidden": true, + "override_label": "profiles" + }, + { + "label": "Device performance", + "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&live=true&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" + } + ], + "has_search_bar": "auto", + "requests": [ + { + "formulas": [ + { + "alias": "Check duration", + "cell_display_mode": "bar", + "conditional_formats": [ + { + "comparator": "<", + "palette": "green_on_white", + "value": 1 + }, + { + "comparator": ">=", + "palette": "yellow_on_white", + "value": 1 + }, + { + "comparator": ">=", + "palette": "red_on_white", + "value": 5 + } + ], + "formula": "query1", + "limit": { + "count": 500, + "order": "desc" + } + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.snmp.check_duration{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_host,snmp_device,snmp_profile}" + } + ], + "response_format": "scalar" + } + ], + "title": "Check duration", + "title_align": "left", + "title_size": "16", + "type": "query_table" }, - { - "comparator": "<", - "palette": "black_on_light_red", - "value": 1 + "id": 735654265082152, + "layout": { + "height": 8, + "width": 6, + "x": 0, + "y": 8 } - ], - "formula": "exclude_null(query1)" - } - ] - } - ], - "has_search_bar": "auto", - "custom_links": [ - { - "is_hidden": true, - "override_label": "traces" - }, - { - "is_hidden": true, - "override_label": "profiles" - }, - { - "label": "Device performance", - "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&live=true&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" - } - ] - }, - "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 8 - } - }, - { - "id": 780110642340810, - "definition": { - "title": "Devices unreachable", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "conditional_formats": [ - { - "comparator": ">=", - "palette": "red_on_white", - "value": 1 - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "last", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.device.unreachable{agent_host:$Agent_Hostname.value,$Custom_Tag}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 0, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } - }, - "layout": { - "x": 0, - "y": 2, - "width": 3, - "height": 2 - } - }, - { - "id": 792699600428684, - "definition": { - "type": "note", - "content": "**Are you using the Python integration ?**\n\nNetwork Device Monitoring requires the SNMP core check, which is substantially faster and includes the latest features.\n\n To migrate from the Python integration to the core check, see [Migrating to the SNMP Core Check](https://docs.datadoghq.com/network_monitoring/devices/guide/migrating-to-snmp-core-check).", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "right", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 4, - "width": 3, - "height": 2 - } - }, - { - "id": 7163614881507442, - "definition": { - "title": "Devices monitored using the Python integration", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "conditional_formats": [ - { - "comparator": ">=", - "palette": "black_on_light_yellow", - "value": 1 - } - ], - "formulas": [ - { - "formula": "default_zero(query1)" - } - ], - "queries": [ - { - "aggregator": "last", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.devices_monitored{loader:python,agent_host:$Agent_Hostname.value,$Custom_Tag}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 0, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } - }, - "layout": { - "x": 3, - "y": 4, - "width": 3, - "height": 2 - } - }, - { - "id": 6148374944546170, - "definition": { - "title": "Devices monitored using generic profile", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "conditional_formats": [ - { - "comparator": ">", - "palette": "black_on_light_yellow", - "value": 0 - } - ], - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "last", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.devices_monitored{snmp_profile IN (generic-router,generic-device) AND agent_host:$Agent_Hostname.value AND $Custom_Tag}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 0, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } - }, - "layout": { - "x": 0, - "y": 6, - "width": 3, - "height": 2 - } - }, - { - "id": 8897893996896618, - "definition": { - "type": "note", - "content": "**Why are my devices matched to the generic device profile?**\n\nSome devices may not be supported out-of-the-box and default to the generic device profile, which may cause some missing metrics.\n\n To create a custom SNMP profile for your network devices, see [Build a NDM Profile](https://docs.datadoghq.com/network_monitoring/devices/guide/build-ndm-profile/).", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 3, - "y": 6, - "width": 3, - "height": 2 - } - }, - { - "id": 735654265082152, - "definition": { - "title": "Check duration", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "aggregator": "avg", - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.snmp.check_duration{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_host,snmp_device,snmp_profile}" - } - ], - "response_format": "scalar", - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ + }, { - "alias": "Check duration", - "cell_display_mode": "bar", - "conditional_formats": [ - { - "comparator": "<", - "palette": "green_on_white", - "value": 1 - }, - { - "comparator": ">=", - "palette": "yellow_on_white", - "value": 1 + "definition": { + "background_color": "white", + "content": "**Abnormal check duration/interval?**\n\n- Try increasing the number of check runners (`check_runners:`) in your `datadog.yaml` configuration.\n- Try also increasing the `oid_batch_size` in your SNMP configuration. **Note:** A high value can lead to timeouts on some network devices.\n- If neither suggestions work, you may need to split the monitoring of your devices across several agents.", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" }, - { - "comparator": ">=", - "palette": "red_on_white", - "value": 5 + "id": 7849039364315490, + "layout": { + "height": 2, + "width": 6, + "x": 6, + "y": 8 } - ], - "formula": "query1" - } - ] - } - ], - "has_search_bar": "auto", - "custom_links": [ - { - "is_hidden": true, - "override_label": "traces" - }, - { - "is_hidden": true, - "override_label": "profiles" - }, - { - "label": "Device performance", - "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&live=true&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" - } - ] - }, - "layout": { - "x": 0, - "y": 8, - "width": 6, - "height": 8 - } - }, - { - "id": 7849039364315490, - "definition": { - "type": "note", - "content": "**Abnormal check duration/interval?**\n\n- Try increasing the number of check runners (`check_runners:`) in your `datadog.yaml` configuration.\n- Try also increasing the `oid_batch_size` in your SNMP configuration. **Note:** A high value can lead to timeouts on some network devices.\n- If neither suggestions work, you may need to split the monitoring of your devices across several agents.", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 6, - "y": 8, - "width": 6, - "height": 2 - } - }, - { - "id": 4206875433855820, - "definition": { - "title": "Check duration", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "distribution", - "xaxis": { - "include_zero": true, - "max": "auto", - "min": "auto", - "scale": "linear" - }, - "yaxis": { - "include_zero": true, - "max": "auto", - "min": "auto", - "scale": "linear" - }, - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "aggregator": "avg", - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.snmp.check_duration{$Custom_Tag,agent_host:$Agent_Hostname.value} by {snmp_host}" - } - ], - "response_format": "scalar", - "style": { - "palette": "dog_classic" - } - } - ] - }, - "layout": { - "x": 6, - "y": 10, - "width": 6, - "height": 2 - } - }, - { - "id": 6160580379144472, - "definition": { - "title": "Check duration by device", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Check duration", - "formula": "query1" }, { - "alias": "Average check duration", - "formula": "query2", - "style": { - "palette": "warm", - "palette_index": 5 - } - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.snmp.check_duration{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_device,snmp_host}" + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.snmp.check_duration{$Custom_Tag,agent_host:$Agent_Hostname.value} by {snmp_host}" + } + ], + "response_format": "scalar", + "style": { + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "Check duration", + "title_align": "left", + "title_size": "16", + "type": "distribution", + "xaxis": { + "include_zero": true, + "max": "auto", + "min": "auto", + "scale": "linear" + }, + "yaxis": { + "include_zero": true, + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 4206875433855820, + "layout": { + "height": 2, + "width": 6, + "x": 6, + "y": 10 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "avg:datadog.snmp.check_duration{agent_host:$Agent_Hostname.value,$Custom_Tag}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "include_zero": true, - "label": "", - "scale": "linear", - "min": "auto", - "max": "auto" - }, - "markers": [], - "custom_links": [ - { - "is_hidden": true, - "override_label": "traces" - }, - { - "is_hidden": true, - "override_label": "profiles" - }, - { - "label": "Device performance", - "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&live=true&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" - } - ] - }, - "layout": { - "x": 6, - "y": 12, - "width": 6, - "height": 2 - } - }, - { - "id": 5001526233424088, - "definition": { - "title": "Check interval by device", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Interval", - "formula": "query2" + "definition": { + "custom_links": [ + { + "is_hidden": true, + "override_label": "traces" + }, + { + "is_hidden": true, + "override_label": "profiles" + }, + { + "label": "Device performance", + "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&live=true&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" + } + ], + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Check duration", + "formula": "query1" + }, + { + "alias": "Average check duration", + "formula": "query2", + "style": { + "palette": "warm", + "palette_index": 5 + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.snmp.check_duration{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_device,snmp_host}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:datadog.snmp.check_duration{agent_host:$Agent_Hostname.value,$Custom_Tag}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Check duration by device", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 6160580379144472, + "layout": { + "height": 2, + "width": 6, + "x": 6, + "y": 12 + } }, { - "alias": "Mean", - "formula": "query1", - "style": { - "palette": "red" - } - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query2", - "query": "avg:datadog.snmp.check_interval{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {agent_host,snmp_device}.as_count()" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Interval", + "formula": "query2" + }, + { + "alias": "Mean", + "formula": "query1", + "style": { + "palette": "red" + } + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "avg:datadog.snmp.check_interval{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {agent_host,snmp_device}.as_count()" + }, + { + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.snmp.check_interval{agent_host:$Agent_Hostname.value,$Custom_Tag} by {agent_host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Check interval by device", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 5001526233424088, + "layout": { + "height": 2, + "width": 6, + "x": 6, + "y": 14 + } }, { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.snmp.check_interval{agent_host:$Agent_Hostname.value,$Custom_Tag} by {agent_host}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "include_zero": true, - "label": "", - "scale": "linear", - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 6, - "y": 14, - "width": 6, - "height": 2 - } - }, - { - "id": 5801694486858972, - "definition": { - "title": "Submitted metrics by device", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.snmp.submitted_metrics{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_device,snmp_host}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ], - "custom_links": [ - { - "is_hidden": true, - "override_label": "traces" - }, - { - "is_hidden": true, - "override_label": "profiles" - }, - { - "label": "Device performance", - "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" - } - ] - }, - "layout": { - "x": 0, - "y": 16, - "width": 6, - "height": 2 - } - }, - { - "id": 4718119505230002, - "definition": { - "type": "note", - "content": "**Why are no metrics being collected?**\n\n- Try loosening ACLs/firewall rules for your devices. You can check connectivity from the Agent host to a network device by using the integrated `agent snmp walk` command.\n- Check connectivity between the Agent host and Datadog.", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 6, - "y": 16, - "width": 6, - "height": 2 - } - }, - { - "id": 5659283089795536, - "definition": { - "title": "Autodiscovery subnets", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "count_not_null(query1)" - } - ], - "queries": [ - { - "aggregator": "avg", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.devices_monitored{agent_host:$Agent_Hostname.value,autodiscovery_subnet:*,$Custom_Tag} by {autodiscovery_subnet}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 2, - "timeseries_background": { - "type": "area", - "yaxis": { - "include_zero": false - } - } - }, - "layout": { - "x": 0, - "y": 18, - "width": 4, - "height": 2 - } - }, - { - "id": 8213948129173374, - "definition": { - "title": "Autodiscovery subnets", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "aggregator": "avg", - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.devices_monitored{autodiscovery_subnet:*,$Custom_Tag} by {autodiscovery_subnet}" - } - ], - "response_format": "scalar", - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Devices", - "cell_display_mode": "bar", - "formula": "query1" - } - ] - } - ], - "has_search_bar": "auto" - }, - "layout": { - "x": 4, - "y": 18, - "width": 4, - "height": 4 - } - }, - { - "id": 7889780943665434, - "definition": { - "type": "note", - "content": "You can find more information on how to setup network devices Autodiscovery using the Datadog Agent. \n\n See [Collect SNMP Metrics From Your Network Devices](https://docs.datadoghq.com/network_monitoring/devices/snmp_metrics/?tab=snmpv2#autodiscovery).", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 8, - "y": 18, - "width": 4, - "height": 4 - } - }, - { - "id": 3939913409583366, - "definition": { - "title": "Devices autodiscovered", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:snmp.devices_monitored{agent_host:$Agent_Hostname.value,autodiscovery_subnet:*,$Custom_Tag} by {autodiscovery_subnet}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ], - "yaxis": { - "include_zero": true, - "label": "", - "scale": "linear", - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 20, - "width": 4, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 11, - "width": 12, - "height": 23 - } - }, - { - "id": 5474701659400592, - "definition": { - "title": "Traps", - "background_color": "orange", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 2416305919884594, - "definition": { - "title": "Traps received, forwarded and stored in Datadog", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Traps stored", - "formula": "query1" + "definition": { + "custom_links": [ + { + "is_hidden": true, + "override_label": "traces" + }, + { + "is_hidden": true, + "override_label": "profiles" + }, + { + "label": "Device performance", + "link": "/dash/integration/Datacenter%20Overview?tpl_var_snmp_device[0]={{snmp_device}}&tpl_var_snmp_host[0]={{snmp_host}}&from_ts={{timestamp_start}}&to_ts={{timestamp_end}}" + } + ], + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.snmp.submitted_metrics{agent_host:$Agent_Hostname.value,snmp_device:$SNMP_Device.value,$Custom_Tag} by {snmp_device,snmp_host}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Submitted metrics by device", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5801694486858972, + "layout": { + "height": 2, + "width": 6, + "x": 0, + "y": 16 + } }, { - "alias": "Traps received", - "formula": "query2" + "definition": { + "background_color": "white", + "content": "**Why are no metrics being collected?**\n\n- Try loosening ACLs/firewall rules for your devices. You can check connectivity from the Agent host to a network device by using the integrated `agent snmp walk` command.\n- Check connectivity between the Agent host and Datadog.", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 4718119505230002, + "layout": { + "height": 2, + "width": 6, + "x": 6, + "y": 16 + } }, { - "alias": "Traps forwarded", - "formula": "query3" - } - ], - "queries": [ + "definition": { + "autoscale": true, + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "count_not_null(query1)" + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.devices_monitored{agent_host:$Agent_Hostname.value,autodiscovery_subnet:*,$Custom_Tag} by {autodiscovery_subnet}" + } + ], + "response_format": "scalar" + } + ], + "timeseries_background": { + "type": "area", + "yaxis": { + "include_zero": false + } + }, + "title": "Autodiscovery subnets", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 5659283089795536, + "layout": { + "height": 2, + "width": 4, + "x": 0, + "y": 18 + } + }, { - "compute": { - "aggregation": "count" - }, - "data_source": "logs", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "source:snmp-traps snmp_device:$SNMP_Device.value" - } + "definition": { + "has_search_bar": "auto", + "requests": [ + { + "formulas": [ + { + "alias": "Devices", + "cell_display_mode": "bar", + "conditional_formats": [], + "formula": "query1", + "limit": { + "count": 500, + "order": "desc" + } + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.devices_monitored{autodiscovery_subnet:*,$Custom_Tag} by {autodiscovery_subnet}" + } + ], + "response_format": "scalar" + } + ], + "title": "Autodiscovery subnets", + "title_align": "left", + "title_size": "16", + "type": "query_table" + }, + "id": 8213948129173374, + "layout": { + "height": 4, + "width": 4, + "x": 4, + "y": 18 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "sum:datadog.snmp_traps.received{$SNMP_Device, $Agent_Hostname, $Custom_Tag}.as_count()" + "definition": { + "background_color": "white", + "content": "You can find more information on how to setup network devices Autodiscovery using the Datadog Agent. \n\n See [Collect SNMP Metrics From Your Network Devices](https://docs.datadoghq.com/network_monitoring/devices/snmp_metrics/?tab=snmpv2#autodiscovery).", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 7889780943665434, + "layout": { + "height": 4, + "width": 4, + "x": 8, + "y": 18 + } }, { - "data_source": "metrics", - "name": "query3", - "query": "sum:datadog.snmp_traps.forwarded{$SNMP_Device, $Agent_Hostname, $Custom_Tag}.as_count()" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:snmp.devices_monitored{agent_host:$Agent_Hostname.value,autodiscovery_subnet:*,$Custom_Tag} by {autodiscovery_subnet}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Devices autodiscovered", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 3939913409583366, + "layout": { + "height": 2, + "width": 4, + "x": 0, + "y": 20 + } } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ], - "yaxis": { - "include_zero": true, - "label": "", - "scale": "linear", - "min": "auto", - "max": "auto" - }, - "markers": [] - }, - "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 2 - } - }, - { - "id": 6823560756326244, - "definition": { - "type": "note", - "content": "**Why are traps not being received?**\n\n- Check your device configuration and ensure it is sending traps to the right port.\n- Check the Traps server listening port and ensure it is using an unprivileged port (> 1024). Or, allow the Datadog Agent to listen on privileged ports.\n\nTraps telemetry metrics requires Agent 7.47+", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true + ] }, + "id": 1819147315966742, "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 2 + "height": 23, + "width": 12, + "x": 0, + "y": 10 } - } - ] - }, - "layout": { - "x": 0, - "y": 68, - "width": 12, - "height": 3, - "is_column_break": true - } - }, - { - "id": 2504847901545020, - "definition": { - "title": "Netflow", - "background_color": "purple", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 2668407055310816, + }, + { "definition": { - "title": "Netflow records received, flushed, and stored in Datadog", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Raw flows received by agent", - "formula": "query1" + "background_color": "orange", + "layout_type": "ordered", + "show_title": true, + "title": "Traps", + "type": "group", + "widgets": [ + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [], + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Traps stored", + "formula": "query1" + }, + { + "alias": "Traps received", + "formula": "query2" + }, + { + "alias": "Traps forwarded", + "formula": "query3" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "logs", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "source:snmp-traps snmp_device:$SNMP_Device.value" + } + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:datadog.snmp_traps.received{$SNMP_Device, $Agent_Hostname, $Custom_Tag}.as_count()" + }, + { + "data_source": "metrics", + "name": "query3", + "query": "sum:datadog.snmp_traps.forwarded{$SNMP_Device, $Agent_Hostname, $Custom_Tag}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Traps received, forwarded and stored in Datadog", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": true, + "label": "", + "max": "auto", + "min": "auto", + "scale": "linear" + } + }, + "id": 2416305919884594, + "layout": { + "height": 2, + "width": 6, + "x": 0, + "y": 0 + } }, { - "alias": "Flows sent by agent to backend", - "formula": "query2" + "definition": { + "background_color": "white", + "content": "**Why are traps not being received?**\n\n- Check your device configuration and ensure it is sending traps to the right port.\n- Check the Traps server listening port and ensure it is using an unprivileged port (> 1024). Or, allow the Datadog Agent to listen on privileged ports.\n\nTraps telemetry metrics requires Agent 7.47+", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "top" + }, + "id": 6823560756326244, + "layout": { + "height": 2, + "width": 6, + "x": 6, + "y": 0 + } }, { - "alias": "Flows stored in backend", - "formula": "query3" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.aggregator.flows_received{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.snmp_traps.invalid_packet{$SNMP_Device, $Agent_Hostname, $Custom_Tag} by {snmp_device,reason}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Invalid packets", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 4099907010209564, + "layout": { + "height": 2, + "width": 4, + "x": 0, + "y": 2 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "sum:datadog.netflow.aggregator.flows_flushed{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.snmp_traps.incorrect_format{$SNMP_Device, $Agent_Hostname, $Custom_Tag} by {error}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "time": {}, + "title": "Traps incorrectly formatted", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6797913275200746, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 2 + } }, { - "compute": { - "aggregation": "count" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query3", - "search": { - "query": "" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 7, - "height": 2 - } - }, - { - "id": 2155094662673870, - "definition": { - "type": "note", - "content": "**Why is there a difference between the number of received Netflow records and Netflow records sent to Datadog?**\n\nNetflow records are aggregated Agent side, with a default flush time of 5 minutes. It means that if two records with the same source, destination, and protocol are collected within 5 minutes, they appear as one in the UI. \n", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 7, - "y": 0, - "width": 5, - "height": 2 - } - }, - { - "id": 7915767577147442, - "definition": { - "title": "Exporters", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "aggregator": "avg", - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.last{$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" - } - ], - "response_format": "scalar", - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "alias": "Flows", - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 2, - "width": 4, - "height": 4 - } - }, - { - "id": 1581438962270510, - "definition": { - "title": "NetFlow packets per Exporter IP", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query3" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query3", - "query": "sum:datadog.netflow.traffic.packets{$Agent_Hostname,$Netflow_Exporter,$Custom_Tag} by {listener_port,exporter_ip}.as_count()" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Traps not enriched", + "formula": "query1" + }, + { + "alias": "Variables not enriched", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.snmp_traps.traps_not_enriched{$SNMP_Device, $Agent_Hostname, $Custom_Tag}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:datadog.snmp_traps.vars_not_enriched{$SNMP_Device, $Agent_Hostname, $Custom_Tag}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "time": {}, + "title": "Traps and variables not enriched", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6242616545438898, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 2 + } } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] + ] }, + "id": 5474701659400592, "layout": { - "x": 4, - "y": 2, - "width": 4, - "height": 2 + "height": 5, + "is_column_break": true, + "width": 12, + "x": 0, + "y": 33 } - }, - { - "id": 5931787176867662, + }, + { "definition": { - "title": "Gap in Flows (Agent Flushed - Stored in Datadog)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Gap", - "formula": "query2 - query3" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query2", - "query": "sum:datadog.netflow.aggregator.flows_flushed{$Agent_Hostname}.as_count()" + "background_color": "purple", + "layout_type": "ordered", + "show_title": true, + "title": "Netflow", + "type": "group", + "widgets": [ + { + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Raw flows received by agent", + "formula": "query1" + }, + { + "alias": "Flows sent by agent to backend", + "formula": "query2" + }, + { + "alias": "Flows stored in backend", + "formula": "query3" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.aggregator.flows_received{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:datadog.netflow.aggregator.flows_flushed{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + }, + { + "compute": { + "aggregation": "count" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query3", + "search": { + "query": "" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Netflow records received, flushed, and stored in Datadog", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2668407055310816, + "layout": { + "height": 2, + "width": 7, + "x": 0, + "y": 0 + } }, { - "compute": { - "aggregation": "count" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query3", - "search": { - "query": "" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 8, - "y": 2, - "width": 4, - "height": 2 - } - }, - { - "id": 94895140851006, - "definition": { - "title": "NetFlow records indexed by Exporter IP", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query3" - } - ], - "queries": [ - { - "compute": { - "aggregation": "count", - "interval": 30000 - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@exporter.ip", - "limit": 10, - "sort": { - "aggregation": "count", - "order": "desc" - } + "definition": { + "background_color": "white", + "content": "**Why is there a difference between the number of received Netflow records and Netflow records sent to Datadog?**\n\nNetflow records are aggregated Agent side, with a default flush time of 5 minutes. It means that if two records with the same source, destination, and protocol are collected within 5 minutes, they appear as one in the UI. \n", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "top" + }, + "id": 2155094662673870, + "layout": { + "height": 2, + "width": 5, + "x": 7, + "y": 0 } - ], - "indexes": [ - "*" - ], - "name": "query3", - "search": { - "query": "@exporter.ip:$Netflow_Exporter.value" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 4, - "y": 4, - "width": 4, - "height": 2 - } - }, - { - "id": 2983214365183878, - "definition": { - "title": "Flows flushed", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.netflow.aggregator.flows_flushed{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 8, - "y": 4, - "width": 4, - "height": 2 - } - }, - { - "id": 5636371141448454, - "definition": { - "title": "Flow contexts", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.netflow.aggregator.flows_contexts{$Agent_Hostname,$Custom_Tag} by {host}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 0, - "y": 6, - "width": 4, - "height": 2 - } - }, - { - "id": 562795752102848, - "definition": { - "title": "Flush duration and interval", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Duration", - "formula": "query1" }, { - "alias": "Interval", - "formula": "query2" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.netflow.aggregator.flush_duration{$Agent_Hostname,$Custom_Tag} by {host}" + "definition": { + "requests": [ + { + "formulas": [ + { + "alias": "Flows", + "formula": "query1", + "limit": { + "count": 500, + "order": "desc" + } + } + ], + "queries": [ + { + "aggregator": "avg", + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.aggregator.sequence.last{$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" + } + ], + "response_format": "scalar" + } + ], + "title": "Exporters", + "title_align": "left", + "title_size": "16", + "type": "query_table" + }, + "id": 7915767577147442, + "layout": { + "height": 4, + "width": 4, + "x": 0, + "y": 2 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "avg:datadog.netflow.aggregator.flush_interval{$Agent_Hostname,$Custom_Tag} by {host}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 4, - "y": 6, - "width": 4, - "height": 2 - } - }, - { - "id": 439388606056846, - "definition": { - "title": "Flows decoded vs processed", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Decoded", - "formula": "query1" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query3" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query3", + "query": "sum:datadog.netflow.traffic.packets{$Agent_Hostname,$Netflow_Exporter,$Custom_Tag} by {listener_port,exporter_ip}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "NetFlow packets per Exporter IP", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1581438962270510, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 2 + } }, { - "alias": "Processed", - "formula": "query2" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.decoder.messages{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "alias": "Gap", + "formula": "query2 - query3" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query2", + "query": "sum:datadog.netflow.aggregator.flows_flushed{$Agent_Hostname}.as_count()" + }, + { + "compute": { + "aggregation": "count" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query3", + "search": { + "query": "" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "purple" + } + } + ], + "show_legend": true, + "title": "Gap in Flows (Agent Flushed - Stored in Datadog)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5931787176867662, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 2 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "sum:datadog.netflow.processor.processed{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 8, - "y": 6, - "width": 4, - "height": 2 - } - }, - { - "id": 8998029467490578, - "definition": { - "type": "note", - "content": "**What is NetFlow port rollup?**\n\nNetFlow records with a source or destination port that is detected as ephemeral are aggregated together. To detect these ephemeral ports, Datadog keeps a record of every source/destination port combination seen in the last 5 minutes. If a specific source port is associated with more than 10 different destination ports during that time, the destination port is marked as ephemeral and all NetFlow records with this source port will be aggregated.\n\n ", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "right", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 8, - "width": 4, - "height": 3 - } - }, - { - "id": 3862271101257530, - "definition": { - "title": "Port rollup", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Current store size", - "formula": "query1" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query3" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count", + "interval": 30000 + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@exporter.ip", + "limit": 10, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query3", + "search": { + "query": "@exporter.ip:$Netflow_Exporter.value" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "NetFlow records indexed by Exporter IP", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 94895140851006, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 4 + } }, { - "alias": "New store size", - "formula": "query2" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.netflow.aggregator.port_rollup.current_store_size{$Agent_Hostname,$Custom_Tag} by {host}" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.netflow.aggregator.flows_flushed{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Flows flushed", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 2983214365183878, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 4 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "avg:datadog.netflow.aggregator.port_rollup.new_store_size{$Agent_Hostname,$Custom_Tag} by {host}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 4, - "y": 8, - "width": 8, - "height": 3 - } - }, - { - "id": 3338699430806034, - "definition": { - "title": "Bytes received", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.traffic.bytes{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 0, - "y": 11, - "width": 4, - "height": 2 - } - }, - { - "id": 3045968110036954, - "definition": { - "title": "Packets received", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.traffic.packets{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 4, - "y": 11, - "width": 4, - "height": 2 - } - }, - { - "id": 1108502935304848, - "definition": { - "type": "note", - "content": "**Why are packets not being received?**\n\n- Check your NetFlow exporter configuration and ensure it is sending flows to the right port.\n- Check the NetFlow server listening port and ensure that it is using an unprivileged port (> 1024). Or, allow the Datadog Agent to listen on privileged ports.\n", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 8, - "y": 11, - "width": 4, - "height": 2 - } - }, - { - "id": 4111141821837056, - "definition": { - "type": "note", - "content": "**Why are there bursts in buffer length?**\n\nIf the buffer length is close to the buffer capacity, you can increase the buffer capacity by updating `aggregator_buffer_size` in your `datadog.yaml` configuration.\n", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "right", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 13, - "width": 4, - "height": 2 - } - }, - { - "id": 7376343243995186, - "definition": { - "title": "Input buffer length and capacity", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "alias": "Length", - "formula": "query1" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.netflow.aggregator.flows_contexts{$Agent_Hostname,$Custom_Tag} by {host}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Flow contexts", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5636371141448454, + "layout": { + "height": 2, + "width": 4, + "x": 0, + "y": 6 + } }, { - "alias": "Capacity", - "formula": "query2" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "avg:datadog.netflow.aggregator.input_buffer.length{$Agent_Hostname,$Custom_Tag} by {host}" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Duration", + "formula": "query1" + }, + { + "alias": "Interval", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.netflow.aggregator.flush_duration{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:datadog.netflow.aggregator.flush_interval{$Agent_Hostname,$Custom_Tag} by {host}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Flush duration and interval", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 562795752102848, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 6 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "avg:datadog.netflow.aggregator.input_buffer.capacity{$Agent_Hostname,$Custom_Tag} by {host}" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "yaxis": { - "include_zero": false - } - }, - "layout": { - "x": 4, - "y": 13, - "width": 4, - "height": 2 - } - }, - { - "id": 6036396658807928, - "definition": { - "title": "Hash collisions", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.aggregator.hash_collisions{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" - } - ], - "response_format": "timeseries", - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 8, - "y": 13, - "width": 4, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 71, - "width": 12, - "height": 16 - } - }, - { - "id": 7355716067222530, - "definition": { - "title": "NetFlow packet drop", - "background_color": "yellow", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 6709450430375580, - "definition": { - "type": "note", - "content": "The following widget is only valid for **NetFlow5/SFlow**.\n", - "background_color": "gray", - "font_size": "14", - "text_align": "center", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "bottom", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 4, - "height": 1 - } - }, - { - "id": 2209019171340808, - "definition": { - "type": "note", - "content": "The following widget is only valid for **NetFlow9/IPFIX**.", - "background_color": "gray", - "font_size": "14", - "text_align": "center", - "vertical_align": "center", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "bottom", - "has_padding": true - }, - "layout": { - "x": 4, - "y": 0, - "width": 4, - "height": 1 - } - }, - { - "id": 1389581184770506, - "definition": { - "type": "note", - "content": "**How can I detect missing NetFlow records?**\n\nNetFlow missing packet detection helps you identify potential issues in your network. It is an estimation of the number of packet (or flows, depending on NetFlow version) that are lost.\n\nThis metric can appear noisy depending on time aggregation, but a significant increase indicates that some NetFlow packets are lost between the exporter and the Datadog Agent.", - "background_color": "white", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": true, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 8, - "y": 0, - "width": 4, - "height": 3 - } - }, - { - "id": 1379019082310528, - "definition": { - "title": "NetFlow5 Missing Flows", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Decoded", + "formula": "query1" + }, + { + "alias": "Processed", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.decoder.messages{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:datadog.netflow.processor.processed{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Flows decoded vs processed", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 439388606056846, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 6 + } + }, { - "formula": "query1 - query2" - } - ], - "queries": [ + "definition": { + "background_color": "white", + "content": "**What is NetFlow port rollup?**\n\nNetFlow records with a source or destination port that is detected as ephemeral are aggregated together. To detect these ephemeral ports, Datadog keeps a record of every source/destination port combination seen in the last 5 minutes. If a specific source port is associated with more than 10 different destination ports during that time, the destination port is marked as ephemeral and all NetFlow records with this source port will be aggregated.\n\n ", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "right", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 8998029467490578, + "layout": { + "height": 3, + "width": 4, + "x": 0, + "y": 8 + } + }, { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Current store size", + "formula": "query1" + }, + { + "alias": "New store size", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.netflow.aggregator.port_rollup.current_store_size{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:datadog.netflow.aggregator.port_rollup.new_store_size{$Agent_Hostname,$Custom_Tag} by {host}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Port rollup", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3862271101257530, + "layout": { + "height": 3, + "width": 8, + "x": 4, + "y": 8 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "sum:datadog.netflow.processor.flowsets{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 0, - "y": 1, - "width": 4, - "height": 2 - } - }, - { - "id": 1165672826764582, - "definition": { - "title": "NetFlow9/IPFIX Missing Packets", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.traffic.bytes{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Bytes received", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3338699430806034, + "layout": { + "height": 2, + "width": 4, + "x": 0, + "y": 11 + } + }, { - "formula": "query1 - query2" - } - ], - "queries": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.traffic.packets{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Packets received", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 3045968110036954, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 11 + } + }, { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + "definition": { + "background_color": "white", + "content": "**Why are packets not being received?**\n\n- Check your NetFlow exporter configuration and ensure it is sending flows to the right port.\n- Check the NetFlow server listening port and ensure that it is using an unprivileged port (> 1024). Or, allow the Datadog Agent to listen on privileged ports.\n", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "top" + }, + "id": 1108502935304848, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 11 + } }, { - "data_source": "metrics", - "name": "query2", - "query": "sum:datadog.netflow.processor.processed{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 4, - "y": 1, - "width": 4, - "height": 2 - } - }, - { - "id": 1630157338757350, - "definition": { - "title": "Sequence Delta", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ + "definition": { + "background_color": "white", + "content": "**Why are there bursts in buffer length?**\n\nIf the buffer length is close to the buffer capacity, you can increase the buffer capacity by updating `aggregator_buffer_size` in your `datadog.yaml` configuration.\n", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "right", + "tick_pos": "50%", + "type": "note", + "vertical_align": "top" + }, + "id": 4111141821837056, + "layout": { + "height": 2, + "width": 4, + "x": 0, + "y": 13 + } + }, { - "formula": "query1" - } - ], - "queries": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "alias": "Length", + "formula": "query1" + }, + { + "alias": "Capacity", + "formula": "query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "avg:datadog.netflow.aggregator.input_buffer.length{$Agent_Hostname,$Custom_Tag} by {host}" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "avg:datadog.netflow.aggregator.input_buffer.capacity{$Agent_Hostname,$Custom_Tag} by {host}" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Input buffer length and capacity", + "title_align": "left", + "title_size": "16", + "type": "timeseries", + "yaxis": { + "include_zero": false + } + }, + "id": 7376343243995186, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 13 + } + }, { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip,flow_type}.as_count().fill(null)" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.aggregator.hash_collisions{$Agent_Hostname,$Custom_Tag} by {host}.as_count()" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "purple" + } + } + ], + "show_legend": true, + "title": "Hash collisions", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 6036396658807928, + "layout": { + "height": 2, + "width": 4, + "x": 8, + "y": 13 + } } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] + ] }, + "id": 2504847901545020, "layout": { - "x": 0, - "y": 3, - "width": 6, - "height": 2 + "height": 16, + "width": 12, + "x": 0, + "y": 38 } - }, - { - "id": 87836312062350, + }, + { "definition": { - "title": "Sequence Reset", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ + "background_color": "yellow", + "layout_type": "ordered", + "show_title": true, + "title": "NetfFlow Packet Drop", + "type": "group", + "widgets": [ + { + "definition": { + "background_color": "gray", + "content": "The following widget is only valid for **NetFlow5/SFlow**.\n", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "center", + "tick_edge": "bottom", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 6709450430375580, + "layout": { + "height": 1, + "width": 4, + "x": 0, + "y": 0 + } + }, { - "formula": "query1" - } - ], - "queries": [ + "definition": { + "background_color": "gray", + "content": "The following widget is only valid for **NetFlow9/IPFIX**.", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "center", + "tick_edge": "bottom", + "tick_pos": "50%", + "type": "note", + "vertical_align": "center" + }, + "id": 2209019171340808, + "layout": { + "height": 1, + "width": 4, + "x": 4, + "y": 0 + } + }, { - "data_source": "metrics", - "name": "query1", - "query": "sum:datadog.netflow.aggregator.sequence.reset{$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 6, - "y": 3, - "width": 6, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 87, - "width": 12, - "height": 6 - } - }, - { - "id": 9300000000000044, - "definition": { - "title": "SNMP agent memory and ICMP reachability", - "background_color": "gray", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 9300000000000040, - "definition": { - "type": "note", - "content": "**Agent-side SNMP & ICMP:** High `datadog.snmp.memory.used` can correlate with large MIB walks. `networkdevice.ping.*` complements SNMP reachability for dual-stack checks.", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 1 - } - }, - { - "id": 5128670484966466, - "definition": { - "title": "Unreachable ICMP targets (count)", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ + "definition": { + "background_color": "white", + "content": "**How can I detect missing NetFlow records?**\n\nNetFlow missing packet detection helps you identify potential issues in your network. It is an estimation of the number of packet (or flows, depending on NetFlow version) that are lost.\n\nThis metric can appear noisy depending on time aggregation, but a significant increase indicates that some NetFlow packets are lost between the exporter and the Datadog Agent.", + "font_size": "14", + "has_padding": true, + "show_tick": true, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note", + "vertical_align": "top" + }, + "id": 1389581184770506, + "layout": { + "height": 3, + "width": 4, + "x": 8, + "y": 0 + } + }, { - "formula": "query1" - } - ], - "queries": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1 - query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:datadog.netflow.processor.flowsets{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "NetFlow5 Missing Flows", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1379019082310528, + "layout": { + "height": 2, + "width": 4, + "x": 0, + "y": 1 + } + }, { - "aggregator": "sum", - "data_source": "metrics", - "name": "query1", - "query": "sum:networkdevice.ping.unreachable{$Agent_Hostname,$SNMP_Device,$Custom_Tag}" - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "precision": 0 - }, - "layout": { - "x": 0, - "y": 1, - "width": 4, - "height": 2 - } - }, - { - "id": 145460786826771, - "definition": { - "title": "Unreachable targets over time", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "timeseries", - "requests": [ - { - "formulas": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1 - query2" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + }, + { + "data_source": "metrics", + "name": "query2", + "query": "sum:datadog.netflow.processor.processed{$Netflow_Exporter} by {exporter_ip}.as_count().fill(null)" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "NetFlow9/IPFIX Missing Packets", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1165672826764582, + "layout": { + "height": 2, + "width": 4, + "x": 4, + "y": 1 + } + }, { - "formula": "query1" - } - ], - "queries": [ + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.aggregator.sequence.delta{$Netflow_Exporter} by {exporter_ip,flow_type}.as_count().fill(null)" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "Sequence Delta", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 1630157338757350, + "layout": { + "height": 2, + "width": 6, + "x": 0, + "y": 3 + } + }, { - "data_source": "metrics", - "name": "query1", - "query": "sum:networkdevice.ping.unreachable{$Agent_Hostname,$SNMP_Device,$Custom_Tag} by {snmp_host}.as_count()" + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "data_source": "metrics", + "name": "query1", + "query": "sum:datadog.netflow.aggregator.sequence.reset{$Netflow_Exporter} by {exporter_ip,flow_type}.fill(null)" + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "Sequence Reset", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 87836312062350, + "layout": { + "height": 2, + "width": 6, + "x": 6, + "y": 3 + } } - ], - "response_format": "timeseries", - "style": { - "palette": "warm", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] + ] }, + "id": 7355716067222530, "layout": { - "x": 4, - "y": 1, - "width": 8, - "height": 2 + "height": 6, + "width": 12, + "x": 0, + "y": 54 } - } - ] - }, - "layout": { - "x": 0, - "y": 93, - "width": 12, - "height": 4 - } - } - ], - "template_variables": [ - { - "name": "Agent_Hostname", - "prefix": "host", - "available_values": [], - "default": "*" - }, - { - "name": "SNMP_Device", - "prefix": "snmp_device", - "available_values": [], - "default": "*" - }, - { - "name": "Netflow_Exporter", - "prefix": "exporter_ip", - "available_values": [], - "default": "*" - }, - { - "name": "Custom_Tag", - "available_values": [], - "default": "*" - } - ], - "layout_type": "ordered", - "notify_list": [], - "pause_auto_refresh": false, - "reflow_type": "fixed" -} + } + ] +} \ No newline at end of file diff --git a/snmp/assets/dashboards/netflow_monitoring.json b/snmp/assets/dashboards/netflow_monitoring.json index 13d49444b0032..8beb8bcd718d4 100644 --- a/snmp/assets/dashboards/netflow_monitoring.json +++ b/snmp/assets/dashboards/netflow_monitoring.json @@ -1,3040 +1,1933 @@ { - "title": "NetFlow Monitoring", - "description": "Flow-level traffic: landscape note and total @bytes volume at the top, then exporters, talkers, protocols, and enrichment. Correlate with SNMP (Interface Performance or a screen) when you need utilization next to flows; use longer windows and table export for capacity and ticketing.\n\n", - "widgets": [ - { - "id": 9400000000000010, - "definition": { - "title": "Traffic landscape & SNMP correlation", - "background_color": "green", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 3126947816472452, + "author_name": "Datadog", + "description": "This dashboard provides an overview of NetFlow Monitoring for the traffic between your network gear. \n\nFor more information on monitoring on-premise gear with Datadog, check out: \n\n- Our blog post on [Monitoring Datacenters and network devices with Datadog](https://www.datadoghq.com/blog/datacenter-monitoring-dashboards/)\n- Our blog post on [Monitoring network devices with SNMP](https://www.datadoghq.com/blog/monitor-snmp-with-datadog/)\n- Network Device Monitoring [docs](https://docs.datadoghq.com/network_performance_monitoring/devices)", + "layout_type": "ordered", + "template_variables": [ + { + "available_values": [], + "default": "*", + "name": "device.name", + "prefix": "@device.name" + }, + { + "available_values": [], + "default": "*", + "name": "device.ip", + "prefix": "@device.ip" + }, + { + "available_values": [], + "default": "*", + "name": "exporter.ip", + "prefix": "@exporter.ip" + }, + { + "available_values": [], + "default": "*", + "name": "source.ip", + "prefix": "@source.ip" + }, + { + "available_values": [], + "default": "*", + "name": "destination.ip", + "prefix": "@destination.ip" + }, + { + "available_values": [], + "default": "*", + "name": "egress.interface.name", + "prefix": "@egress.interface.name" + }, + { + "available_values": [], + "default": "*", + "name": "ingress.interface.name", + "prefix": "@ingress.interface.name" + } + ], + "title": "NetFlow Monitoring", + "widgets": [ + { "definition": { - "title": "NetFlow Traffic Sankey", - "title_size": "16", - "title_align": "left", - "type": "sankey", - "requests": [ - { - "request_type": "netflow_sankey", - "query": { - "data_source": "network_device_flows", - "mode": "target", - "query_string": "", - "group_by": [ - "@source.ip", - "@ingress.interface.name", - "@device.ip", - "@egress.interface.name", - "@destination.ip" - ], - "limit": 10, - "sort": { - "field": "@adjusted_bytes:sum", - "order": "desc" - } - } - } - ], - "sort_nodes": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } - }, - { - "id": 1234034016841184, - "definition": { - "title": "Total flow volume (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 3 - } - }, - { - "id": 9400000000000012, - "definition": { - "type": "note", - "content": "**At a glance:** Aggregate volume and top lists (ASN, protocol, port/service) frame what is on the wire. **Talkers and conversations** tables (filter by exporter, device, interface) drill into sources and destinations. **SNMP side:** [Interface Performance](/dash/integration/Interface%20Performance?live=true&tpl_var_snmp_host={{snmp_host.value}}&tpl_var_snmp_device={{snmp_device.value}}&tpl_var_interface={{interface.value}}) with the same template variables sits next to this view logically; a single chart that overlays SNMP utilization and flow volume usually means a [Screenboard](https://docs.datadoghq.com/dashboards/guide/screenboard/) or notebook. **Trends:** widen to 24h/7d and use compare-to-prior where available. **Handy for tickets:** copy IP, port, and volume from tables—unexpected external traffic often routes to security; sustained growth to capacity planning; a dominant flow on a saturated interface to QoS or change control.", - "background_color": "transparent", - "font_size": "12", - "text_align": "left", - "vertical_align": "top", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 7, - "width": 12, - "height": 2 - } - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 10 - } - }, - { - "id": 8686722288675258, - "definition": { - "title": "Pipeline & volume", - "background_color": "purple", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 7127857026373844, - "definition": { - "type": "note", - "content": "**Pipeline (this section):** distinct exporters, record & byte volume. **Then:** conversations → ports/protocols → **Enrichment** (last section: namespace, vendor, geo, apps, TCP flags, next-hop).\n\n**Filters:** device, exporter, IPs, interfaces. [NDM NetFlow](https://docs.datadoghq.com/network_monitoring/devices/).", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "show_tick": false, - "tick_pos": "50%", - "tick_edge": "left", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 2 - } - }, - { - "id": 6652255485767128, - "definition": { - "title": "Distinct flow exporters", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "cardinality", - "metric": "@exporter.ip" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "text_align": "center" - }, - "layout": { - "x": 6, - "y": 0, - "width": 3, - "height": 3 - } - }, - { - "id": 5184071854652002, - "definition": { - "title": "Distinct exporters over time", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "cardinality", - "metric": "@exporter.ip" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 9, - "y": 0, - "width": 3, - "height": 3 - } - }, - { - "id": 2653281815203992, - "definition": { - "title": "Flow records (total, current scope)", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "count" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "custom_unit": "Records", - "precision": 2 - }, - "layout": { - "x": 0, - "y": 2, - "width": 3, - "height": 3 - } - }, - { - "id": 7958217041811788, - "definition": { - "title": "Flow records over time", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "count" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 3, - "y": 2, - "width": 3, - "height": 3 - } - }, - { - "id": 3864890137082580, - "definition": { - "title": "Bytes (total, current scope)", - "title_size": "16", - "title_align": "left", - "type": "query_value", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "scalar" - } - ], - "autoscale": true, - "custom_unit": "bytes", - "precision": 2 - }, - "layout": { - "x": 6, - "y": 3, - "width": 3, - "height": 3 - } - }, - { - "id": 5457095119768824, - "definition": { - "title": "Bytes over time", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 9, - "y": 3, - "width": 3, - "height": 3 - } - }, - { - "id": 6820980913001244, - "definition": { - "title": "NetFlow Volume (# of Records) by Exporter ", - "title_size": "16", - "title_align": "left", - "type": "toplist", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "count" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@exporter.ip", - "limit": 100, - "sort": { - "aggregation": "count", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "scalar", - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 100, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "style": {} - }, - "layout": { - "x": 0, - "y": 5, - "width": 6, - "height": 3 - } - }, - { - "id": 2587619620190594, - "definition": { - "title": "NetFlow Volume (# of Records) by Exporter ", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "count" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@exporter.ip", - "limit": 100, - "sort": { - "aggregation": "count", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 6, - "y": 6, - "width": 6, - "height": 3 - } - }, - { - "id": 8345924617061054, - "definition": { - "title": "Total Traffic from Top 10 Devices (Bits)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1 * 8" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@device.name", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "background_color": "purple", + "layout_type": "ordered", + "show_title": true, + "title": "Overview", + "type": "group", + "widgets": [ + { + "definition": { + "background_color": "white", + "content": "This dashboard provides an overview of NetFlow Monitoring for the traffic between your network gear. \n\nFor more information on monitoring on-premise gear with Datadog, check out: \n\n- Our blog post on [Monitoring Datacenters and network devices with Datadog](https://www.datadoghq.com/blog/datacenter-monitoring-dashboards/)\n- Our blog post on [Monitoring network devices with SNMP](https://www.datadoghq.com/blog/monitor-snmp-with-datadog/)\n- Network Device Monitoring [docs](https://docs.datadoghq.com/network_performance_monitoring/devices) ", + "font_size": "14", + "show_tick": false, + "text_align": "left", + "tick_edge": "left", + "tick_pos": "50%", + "type": "note" }, - { - "facet": "@exporter.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 7127857026373844, + "layout": { + "height": 3, + "width": 6, + "x": 0, + "y": 0 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ], - "markers": [ - { - "value": "y = 0", - "display_type": "error dashed" - } - ] - }, - "layout": { - "x": 0, - "y": 9, - "width": 12, - "height": 3 - } - }, - { - "id": 3352784985914196, - "definition": { - "title": "Traffic by Interface (Bits)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query4 * 8 / dt(query2)" }, { - "formula": "-query5 * 8 / dt(query1)" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@egress.interface.name", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "autoscale": true, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "cardinality", + "metric": "@exporter.ip" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "scalar" + } + ], + "text_align": "center", + "title": "# devices sending NetFlow data ", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 6652255485767128, + "layout": { + "height": 3, + "width": 3, + "x": 6, + "y": 0 } - ], - "indexes": [ - "*" - ], - "name": "query4", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@egress.interface.name", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "cardinality", + "metric": "@exporter.ip" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "# devices sending NetFlow data ", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 5184071854652002, + "layout": { + "height": 3, + "width": 3, + "x": 9, + "y": 0 } - ], - "indexes": [ - "*" - ], - "name": "query2", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@ingress.interface.name", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "autoscale": true, + "custom_unit": "Records", + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Total NetFlow Volume (# of Records)", + "title_align": "left", + "title_size": "16", + "type": "query_value" + }, + "id": 2653281815203992, + "layout": { + "height": 3, + "width": 3, + "x": 0, + "y": 3 } - ], - "indexes": [ - "*" - ], - "name": "query5", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@ingress.interface.name", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 0, - "y": 12, - "width": 12, - "height": 3 - } - } - ] - }, - "layout": { - "x": 0, - "y": 10, - "width": 12, - "height": 16 - } - }, - { - "id": 6598417582615058, - "definition": { - "title": "Conversations & talkers", - "background_color": "vivid_blue", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 665181245515600, - "definition": { - "title": "Top Conversations through Source → Device → Destination (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "name": "query1", - "data_source": "network_device_flows", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - }, - "indexes": [ - "*" - ], - "group_by": [ - { - "facet": "@source.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@device.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true - }, - { - "facet": "@device.name", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "definition": { + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "Total NetFlow Volume (# of Records)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@destination.ip", - "limit": 2, - "sort": { - "aggregation": "sum", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": false + "id": 7958217041811788, + "layout": { + "height": 3, + "width": 3, + "x": 3, + "y": 3 } - ], - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "storage": "hot" - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 4 - } - }, - { - "id": 8740800319820694, - "definition": { - "title": "Top Conversations through Source → Device → Destination (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "autoscale": true, + "custom_unit": "bytes", + "precision": 2, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Total NetFlow Volume (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "query_value" }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 3864890137082580, + "layout": { + "height": 3, + "width": 3, + "x": 6, + "y": 3 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "dogcat" - }, - "formulas": [ - { - "formula": "query1" - } - ] - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 4, - "width": 12, - "height": 4 - } - }, - { - "id": 7008796735963854, - "definition": { - "title": "Top 10 Sources Sending the Most Traffic by Device (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "Total NetFlow Volume (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 5457095119768824, + "layout": { + "height": 3, + "width": 3, + "x": 9, + "y": 3 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 10, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "cell_display_mode": "number", - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 8, - "width": 6, - "height": 4 - } - }, - { - "id": 5048458159212798, - "definition": { - "title": "Volume of Traffic Sent by Source, Device (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1", + "limit": { + "count": 100, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@exporter.ip", + "limit": 100, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "scalar" + } + ], + "style": {}, + "title": "NetFlow Volume (# of Records) by Exporter ", + "title_align": "left", + "title_size": "16", + "type": "toplist" }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 6820980913001244, + "layout": { + "height": 3, + "width": 6, + "x": 0, + "y": 6 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "purple", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 6, - "y": 8, - "width": 6, - "height": 4 - } - }, - { - "id": 3388273523703648, - "definition": { - "title": "Top 10 Destinations Receiving the Most Traffic by Device (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "count" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@exporter.ip", + "limit": 100, + "sort": { + "aggregation": "count", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "NetFlow Volume (# of Records) by Exporter ", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 2587619620190594, + "layout": { + "height": 3, + "width": 6, + "x": 6, + "y": 6 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 100, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "cell_display_mode": "number", - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 12, - "width": 6, - "height": 4 - } - }, - { - "id": 1516256628387466, - "definition": { - "title": "Volume of Traffic Received by Destination, Device (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "markers": [ + { + "display_type": "error dashed", + "value": "y = 0" + } + ], + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1 * 8" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@device.name", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@exporter.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Total Traffic from Top 10 Devices (Bits)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@device.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 8345924617061054, + "layout": { + "height": 3, + "width": 12, + "x": 0, + "y": 9 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "blue", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 6, - "y": 12, - "width": 6, - "height": 4 - } - }, - { - "id": 64354102688750, - "definition": { - "title": "Protocols (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@ip_protocol", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "formulas": [ - { - "formula": "query1" - } - ] - } - ], - "type": "sunburst" - }, - "layout": { - "x": 0, - "y": 16, - "width": 6, - "height": 4 - } - }, - { - "id": 3454748008141490, - "definition": { - "title": "Protocols over time (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@ip_protocol", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "line" - } - ] - }, - "layout": { - "x": 6, - "y": 16, - "width": 6, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 52, - "width": 12, - "height": 21, - "is_column_break": true - } - }, - { - "id": 4782270084501908, - "definition": { - "title": "Top Applications (by IP, port, protocol)", - "background_color": "vivid_purple", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 5794195048310774, - "definition": { - "title": "Top Applications by Source IP (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ + }, { - "name": "query1", - "data_source": "network_device_flows", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - }, - "indexes": [ - "*" - ], - "group_by": [ - { - "facet": "@source.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query4 * 8 / dt(query2)" + }, + { + "formula": "-query5 * 8 / dt(query1)" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@egress.interface.name", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query4", + "search": { + "query": "$device.ip $device.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip $ingress.interface.name" + } + }, + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@egress.interface.name", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query2", + "search": { + "query": "$device.ip $device.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip $ingress.interface.name" + } + }, + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@ingress.interface.name", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query5", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name" + } + }, + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@ingress.interface.name", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Traffic by Interface (Bits)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@source.ip", - "limit": 10, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "id": 3352784985914196, + "layout": { + "height": 3, + "width": 12, + "x": 0, + "y": 12 } - ], - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "storage": "hot" } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } + ] }, + "id": 8686722288675258, "layout": { - "x": 0, - "y": 0, - "width": 6, - "height": 4 + "height": 16, + "width": 12, + "x": 0, + "y": 0 } - }, - { - "id": 3935983887542291, + }, + { "definition": { - "title": "Top Applications by Source IP (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "name": "query1", - "data_source": "network_device_flows", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - }, - "indexes": [ - "*" - ], - "group_by": [ - { - "facet": "@source.application_name", - "limit": 5, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "background_color": "vivid_blue", + "layout_type": "ordered", + "show_title": true, + "title": "Network Conversations", + "type": "group", + "widgets": [ + { + "definition": { + "legend": { + "type": "table" + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@destination.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "scalar", + "style": { + "palette": "dogcat" + } + } + ], + "title": "Top Conversations through Source \u2192 Device \u2192 Destination (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "sunburst" }, - { - "facet": "@source.ip", - "limit": 5, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "id": 8740800319820694, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 0 } - ], - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "storage": "hot" - } - ], - "response_format": "timeseries", - "style": { - "palette": "datadog16", - "order_by": "values", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 6, - "y": 0, - "width": 6, - "height": 4 - } - }, - { - "id": 4193960588544453, - "definition": { - "title": "Top Applications by Destination IP (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ + }, { - "name": "query1", - "data_source": "network_device_flows", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - }, - "indexes": [ - "*" - ], - "group_by": [ - { - "facet": "@destination.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1", + "limit": { + "count": 1000, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@destination.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Top Conversations through Source \u2192 Device \u2192 Destination (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "query_table" }, - { - "facet": "@destination.ip", - "limit": 10, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "id": 1660964628360356, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 0 } - ], - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "storage": "hot" - } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 4, - "width": 6, - "height": 4 - } - }, - { - "id": 4096423166486603, - "definition": { - "title": "Top Applications by Destination IP (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + }, { - "name": "query1", - "data_source": "network_device_flows", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - }, - "indexes": [ - "*" - ], - "group_by": [ - { - "facet": "@destination.application_name", - "limit": 5, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@destination.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "green" + } + } + ], + "show_legend": true, + "title": "Top Conversations through Source \u2192 Device \u2192 Destination (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@destination.ip", - "limit": 5, - "sort": { - "aggregation": "avg", - "order": "desc", - "metric": "@bytes" - }, - "should_exclude_missing": true + "id": 665181245515600, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 4 } - ], - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "storage": "hot" - } - ], - "response_format": "timeseries", - "style": { - "palette": "datadog16", - "order_by": "values", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "area" - } - ] - }, - "layout": { - "x": 6, - "y": 4, - "width": 6, - "height": 4 - } - }, - { - "id": 7684671657070084, - "definition": { - "title": "Top Applications by Source Port (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@exporter.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Highest Volumes Passed by Device (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@source.port", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } + "id": 3030338556705030, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 4 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 8, - "width": 6, - "height": 4 - } - }, - { - "id": 8236393473691292, - "definition": { - "title": "Top Source Ports (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@source.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "area", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "purple" + } + } + ], + "show_legend": true, + "title": "Volume of Traffic Sent by Source, Device (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 5048458159212798, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 8 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 125, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 6, - "y": 8, - "width": 6, - "height": 4 - } - }, - { - "id": 7272430680549890, - "definition": { - "title": "Top Source Ports (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@source.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "requests": [ + { + "formulas": [ + { + "cell_display_mode": "number", + "formula": "query1", + "limit": { + "count": 10, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Top 10 Sources Sending the Most Traffic by Device (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "query_table" }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 7008796735963854, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 8 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 0, - "y": 12, - "width": 12, - "height": 4 - } - }, - { - "id": 1739322254098132, - "definition": { - "title": "Top Applications by Destination Port (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "avg", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.application_name", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "area", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@destination.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "blue" + } + } + ], + "show_legend": true, + "title": "Volume of Traffic Received by Destination, Device (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@destination.port", - "limit": 10, - "sort": { - "aggregation": "avg", - "metric": "@bytes", - "order": "desc" - } + "id": 1516256628387466, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 12 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "datadog16" - }, - "formulas": [ - { - "formula": "query1" - } - ], - "sort": { - "count": 500, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - } - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 0, - "y": 16, - "width": 6, - "height": 4 - } - }, - { - "id": 1748866876630824, - "definition": { - "title": "Top Destination Ports (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "requests": [ + { + "formulas": [ + { + "cell_display_mode": "number", + "formula": "query1", + "limit": { + "count": 100, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@destination.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Top 10 Destinations Receiving the Most Traffic by Device (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "query_table" }, - { - "facet": "@destination.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 3388273523703648, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 12 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 125, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1" - } - ] - } - ] - }, - "layout": { - "x": 6, - "y": 16, - "width": 6, - "height": 4 - } - }, - { - "id": 8176048779931908, - "definition": { - "title": "Top Destination Ports (Bytes)", - "title_size": "16", - "title_align": "left", - "show_legend": true, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.port", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@ip_protocol", + "limit": 10, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Top Protocols Used by Conversation (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "sunburst" }, - { - "facet": "@destination.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@device.ip", - "limit": 5, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "semantic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 0, - "y": 20, - "width": 12, - "height": 4 - } - } - ] - }, - "layout": { - "x": 0, - "y": 73, - "width": 12, - "height": 25 - } - }, - { - "id": 9300000000000040, - "definition": { - "title": "Enrichment and context", - "background_color": "blue", - "show_title": true, - "type": "group", - "layout_type": "ordered", - "widgets": [ - { - "id": 9300000000000028, - "definition": { - "type": "note", - "content": "**Enrichment:** Uses facets from NDM flow processing (namespace, vendor, GeoIP, L7 apps, TCP flags, next-hop). Empty widgets usually mean the facet is not populated for your traffic or sampling excludes those fields.", - "background_color": "transparent", - "font_size": "14", - "text_align": "left", - "vertical_align": "top", - "has_padding": true - }, - "layout": { - "x": 0, - "y": 0, - "width": 12, - "height": 1 - } - }, - { - "id": 988708575795919, - "definition": { - "title": "Bytes by device namespace", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@device.namespace", - "limit": 15, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 64354102688750, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 16 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 50, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1", - "cell_display_mode": "bar" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 1, - "width": 6, - "height": 3 - } - }, - { - "id": 4127431166792732, - "definition": { - "title": "Bytes by device vendor", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@device.vendor", - "limit": 15, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 50, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1", - "cell_display_mode": "bar" - } - ] - } - ] - }, - "layout": { - "x": 6, - "y": 1, - "width": 6, - "height": 3 - } - }, - { - "id": 9300000000000030, - "definition": { - "title": "Exporter → namespace → destination country (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@exporter.ip", - "limit": 8, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "line", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@ip_protocol", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": false, + "title": "Top Protocols Used by Conversation (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" }, - { - "facet": "@device.namespace", - "limit": 8, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@destination.geoip.country.iso_code", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 3454748008141490, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 16 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "dogcat" - }, - "formulas": [ - { - "formula": "query1" } - ] - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } + ] }, + "id": 6598417582615058, "layout": { - "x": 0, - "y": 4, - "width": 6, - "height": 5 + "height": 21, + "is_column_break": true, + "width": 12, + "x": 0, + "y": 0 } - }, - { - "id": 9300000000000032, + }, + { "definition": { - "title": "Device → src country → dst country (Bytes)", - "title_size": "16", - "title_align": "left", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@device.ip", - "limit": 8, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - }, - { - "facet": "@source.geoip.country.iso_code", - "limit": 8, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "background_color": "vivid_purple", + "layout_type": "ordered", + "show_title": true, + "title": "Source/Destination Ports", + "type": "group", + "widgets": [ + { + "definition": { + "legend": { + "type": "table" + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1", + "limit": { + "count": 500, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "avg", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.application_name", + "limit": 10, + "sort": { + "aggregation": "avg", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@source.port", + "limit": 10, + "sort": { + "aggregation": "avg", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "scalar", + "style": { + "palette": "datadog16" + } + } + ], + "title": "Top Applications by Source Port (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "sunburst" }, - { - "facet": "@destination.geoip.country.iso_code", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "id": 7684671657070084, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 0 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "style": { - "palette": "dogcat" - }, - "formulas": [ - { - "formula": "query1" - } - ] - } - ], - "type": "sunburst", - "legend": { - "type": "table" - } - }, - "layout": { - "x": 6, - "y": 4, - "width": 6, - "height": 5 - } - }, - { - "id": 3636614254463219, - "definition": { - "title": "Top source applications (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@source.application_name", - "limit": 20, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } - } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 50, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1", - "cell_display_mode": "bar" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 9, - "width": 6, - "height": 3 - } - }, - { - "id": 981656513894619, - "definition": { - "title": "Top destination applications (Bytes)", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.application_name", - "limit": 20, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1", + "limit": { + "count": 125, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.port", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@source.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Top Source Ports (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "query_table" + }, + "id": 8236393473691292, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 0 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 50, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1", - "cell_display_mode": "bar" - } - ] - } - ] - }, - "layout": { - "x": 6, - "y": 9, - "width": 6, - "height": 3 - } - }, - { - "id": 9300000000000034, - "definition": { - "title": "Bytes over time by TCP flags (top 10)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@tcp_flags", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@source.port", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@source.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "dog_classic" + } + } + ], + "show_legend": true, + "title": "Top Source Ports (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 7272430680549890, + "layout": { + "height": 4, + "width": 12, + "x": 0, + "y": 4 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "semantic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 0, - "y": 12, - "width": 6, - "height": 4 - } - }, - { - "id": 9300000000000036, - "definition": { - "title": "Bytes over time by next-hop IP (top 10)", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@next_hop.ip", - "limit": 10, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend": { + "type": "table" + }, + "requests": [ + { + "formulas": [ + { + "formula": "query1", + "limit": { + "count": 500, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "avg", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@destination.application_name", + "limit": 10, + "sort": { + "aggregation": "avg", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@destination.port", + "limit": 10, + "sort": { + "aggregation": "avg", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$exporter.ip $device.ip $device.name $source.ip $destination.ip $egress.interface.name $ingress.interface.name" + } + } + ], + "response_format": "scalar", + "style": { + "palette": "datadog16" + } + } + ], + "title": "Top Applications by Destination Port (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "sunburst" + }, + "id": 1739322254098132, + "layout": { + "height": 4, + "width": 6, + "x": 0, + "y": 8 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "timeseries", - "style": { - "palette": "semantic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] - }, - "layout": { - "x": 6, - "y": 12, - "width": 6, - "height": 4 - } - }, - { - "id": 8947715835082878, - "definition": { - "title": "Bytes by destination cloud service", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@destination.cloud_provider.service", - "limit": 15, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "requests": [ + { + "formulas": [ + { + "formula": "query1", + "limit": { + "count": 125, + "order": "desc" + } + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@destination.port", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@destination.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "scalar" + } + ], + "title": "Top Destination Ports (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "query_table" + }, + "id": 1748866876630824, + "layout": { + "height": 4, + "width": 6, + "x": 6, + "y": 8 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 50, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1", - "cell_display_mode": "bar" - } - ] - } - ] - }, - "layout": { - "x": 0, - "y": 16, - "width": 6, - "height": 3 - } - }, - { - "id": 2811578497108845, - "definition": { - "title": "Bytes by flow type / template", - "title_size": "16", - "title_align": "left", - "type": "query_table", - "requests": [ - { - "queries": [ + }, { - "compute": { - "aggregation": "sum", - "metric": "@bytes" - }, - "data_source": "network_device_flows", - "group_by": [ - { - "facet": "@type", - "limit": 15, - "sort": { - "aggregation": "sum", - "metric": "@bytes", - "order": "desc" - } + "definition": { + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "legend_layout": "auto", + "requests": [ + { + "display_type": "bars", + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "compute": { + "aggregation": "sum", + "metric": "@bytes" + }, + "data_source": "network_device_flows", + "group_by": [ + { + "facet": "@destination.port", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@destination.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + }, + { + "facet": "@device.ip", + "limit": 5, + "sort": { + "aggregation": "sum", + "metric": "@bytes", + "order": "desc" + } + } + ], + "indexes": [ + "*" + ], + "name": "query1", + "search": { + "query": "$device.ip $device.name $ingress.interface.name $egress.interface.name $exporter.ip $device.ip $device.name $source.ip $destination.ip" + } + } + ], + "response_format": "timeseries", + "style": { + "line_type": "solid", + "line_width": "normal", + "palette": "semantic" + } + } + ], + "show_legend": true, + "title": "Top Destination Ports (Bytes)", + "title_align": "left", + "title_size": "16", + "type": "timeseries" + }, + "id": 8176048779931908, + "layout": { + "height": 4, + "width": 12, + "x": 0, + "y": 12 } - ], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } - } - ], - "response_format": "scalar", - "sort": { - "count": 50, - "order_by": [ - { - "type": "formula", - "index": 0, - "order": "desc" - } - ] - }, - "formulas": [ - { - "formula": "query1", - "cell_display_mode": "bar" - } - ] - } - ] - }, - "layout": { - "x": 6, - "y": 16, - "width": 6, - "height": 3 - } - }, - { - "id": 9300000000000038, - "definition": { - "title": "Adjusted packet volume ", - "title_size": "16", - "title_align": "left", - "show_legend": false, - "legend_layout": "auto", - "legend_columns": [ - "avg", - "min", - "max", - "value", - "sum" - ], - "type": "timeseries", - "requests": [ - { - "formulas": [ - { - "formula": "query1" - } - ], - "queries": [ - { - "compute": { - "aggregation": "sum", - "metric": "@adjusted_packets" - }, - "data_source": "network_device_flows", - "group_by": [], - "indexes": [ - "*" - ], - "name": "query1", - "search": { - "query": "$device.ip $device.name $exporter.ip $source.ip $destination.ip $ingress.interface.name $egress.interface.name" - } } - ], - "response_format": "timeseries", - "style": { - "palette": "dog_classic", - "line_type": "solid", - "line_width": "normal" - }, - "display_type": "bars" - } - ] + ] }, + "id": 4782270084501908, "layout": { - "x": 0, - "y": 19, - "width": 12, - "height": 3 + "height": 17, + "width": 12, + "x": 0, + "y": 21 } - } - ] - }, - "layout": { - "x": 0, - "y": 98, - "width": 12, - "height": 23 - } - } - ], - "template_variables": [ - { - "name": "device.name", - "prefix": "@device.name", - "available_values": [], - "default": "*" - }, - { - "name": "device.ip", - "prefix": "@device.ip", - "available_values": [], - "default": "*" - }, - { - "name": "exporter.ip", - "prefix": "@exporter.ip", - "available_values": [], - "default": "*" - }, - { - "name": "source.ip", - "prefix": "@source.ip", - "available_values": [], - "default": "*" - }, - { - "name": "destination.ip", - "prefix": "@destination.ip", - "available_values": [], - "default": "*" - }, - { - "name": "egress.interface.name", - "prefix": "@egress.interface.name", - "available_values": [], - "default": "*" - }, - { - "name": "ingress.interface.name", - "prefix": "@ingress.interface.name", - "available_values": [], - "default": "*" - }, - { - "name": "device.namespace", - "prefix": "@device.namespace", - "available_values": [], - "default": "*" - }, - { - "name": "device.vendor", - "prefix": "@device.vendor", - "available_values": [], - "default": "*" - } - ], - "layout_type": "ordered", - "notify_list": [], - "pause_auto_refresh": false, - "reflow_type": "fixed" -} + } + ] +} \ No newline at end of file