![]() |
VOOZH | about |
The NetFlow view in Network Device Monitoring provides visibility into network traffic flows collected from devices that export flow data (for example, routers, firewalls, or switches). You can analyze traffic volume, identify top talkers, and understand how data moves through your network.
The NetFlow view displays traffic metrics aggregated by device and interface. Use it to identify which devices or interfaces are consuming the most bandwidth, generating the most packets, or contributing to traffic spikes.
Use the left-hand navigation to explore additional NetFlow views:
To use NetFlow Monitoring with Network Device Monitoring, ensure you are using the Agent version 7.45 or newer.
Note: Configuring metric collection from Network Device Monitoring is not a requirement for sending NetFlow data, although it is strongly recommended as this extra data can be used to enrich your flow records with information such as the device name, model, and vendor, as well as the inbound/outbound interface name.
To configure your devices to send NetFlow, jFlow, sFlow, or IPFIX traffic to the Agent NetFlow server, your devices must be configured to send traffic to the IP address that the Datadog Agent is installed on, specifically the flow_type and port.
datadog.yaml Agent configuration file to enable NetFlow:network_devices:netflow:enabled:truelisteners:- flow_type: netflow9 # choices:netflow5, netflow9, ipfix, sflow5port:2055# devices need to be configured to the same port number- flow_type:netflow5port:2056- flow_type:ipfixport:4739- flow_type:sflow5port:6343## Set to true to enable reverse DNS enrichment of private source and destination IP addresses in NetFlow recordsreverse_dns_enrichment_enabled:falseAfter saving your changes, restart the Agent.
Note: Ensure that your firewall rules allow incoming UDP traffic on the configured ports.
The Datadog Agent automatically aggregates the data received into NetFlow to limit the number of records sent to the platform while maintaining most of the information. By default, flow recordings that have the same identifiers, such as source, destination address, port, and protocol, are aggregated together in five minute intervals. Additionally, the Datadog Agent can detect ephemeral ports and remove them. As a result, you may see Flows with port:*.
Your NetFlow data is processed by the Datadog backend and enriched with the available metadata from your devices and interfaces. Enrichment is based on the NetFlow exporter IP and the interface indexes. To disambiguate possible collisions between reused private IPs, you can configure a different namespace for each Agent configuration file (with the setting network_devices.namespace).
If the NetFlow exporter IP is one of the device IPs, but not the one configured on the SNMP integration, Datadog attempts to locate the device that the exporter IP belongs to, and enriches your NetFlow data with it is as long as the match is unique.
Datadog enriches IPs with public cloud provider service and region for IPv4 addresses, so you can filter for flow records from a specific service and region.
Datadog enriches ports in NetFlow with IANA (Internet Assigned Numbers Authority) data to resolve well known port mappings (such as Postgres on 5432 and HTTPS on 443).
You can also add your own custom enrichments to map ports and protocols to specific applications (for example, if a custom service runs on a specific port). This makes it easier for network engineers and their teams to interpret and query NetFlow data with human-readable names.
From the Configuration tab in NetFlow, click + Add Enrichment to upload the CSV file containing your custom enrichments.
You can also add your own custom enrichments to map IPs and CIDRs to custom tags (for example, to categorize services running on specific IP addresses). This makes it easier for network engineers and their teams to interpret and query NetFlow data with human-readable names.
From the Enrichment settings page, click + Add Enrichment to add mappings manually or upload a CSV file to add mappings in bulk.
Enable Reverse DNS private IP enrichment to perform DNS lookups for hostnames associated with source or destination IP addresses. When enabled, the Agent conducts reverse DNS lookups on source and destination IPs within private address ranges, enriching NetFlow records with the corresponding hostnames.
By default, the Reverse DNS IP enrichment in your datadog.yaml file is disabled. To enable, see the Configuration section of this page.
Search for DNS in the + Filter menu to locate flows associated with Reverse DNS IP enrichment:
Note: Reverse DNS entries are cached and subject to rate limiting to minimize DNS queries and reduce the load on DNS servers. For more configuration options, including modifying default caching and rate limiting, see the full configuration file.
In the Conversations view, you can view the Public IP address of the Destination IP. Hover over the IP to display rich metadata about the IP and a link to View Related Network Connections where you can inspect the connectivity in more detail.
You can visualize the flows in NetFlow Monitoring by clicking on the Flows menu and hovering over a flow from the list to view additional information about Source IP, Ingress Interface Name, Device name, and Destination IP across related network connections.
Dynamic Tests for NetFlow can automatically run Network Path tests from the Agent that collects NetFlow traffic to destination IPs observed in NetFlow records. Use Dynamic Tests for NetFlow to add hop-by-hop route and latency context to your NetFlow destinations.
Dynamic Tests for NetFlow are experimental and require Agent v7.81+. To set up Dynamic Tests for NetFlow, see Network Path setup.
Click on the Create Monitor icon from any of the views to create a NetFlow monitor. When creating the monitor, consider the following fields with respect to the source IP or destination IP from the perspective of the device. These fields provide insights into network traffic patterns and help with optimizing performance and security.
The following fields represent details about the ingress and egress interfaces.
| Field Name | Field Description |
|---|---|
| Egress Interface Alias | Alias of the egress interface. |
| Egress Interface Index | Index of the egress interface. |
| Egress Interface Name | Name of the egress interface. |
| Ingress Interface Alias | Alias of the ingress interface. |
| Ingress Interface Index | Index of the ingress interface. |
| Ingress Interface Name | Name of the ingress interface. |
The following fields represent details related to the device generating NetFlow records.
| Field Name | Field Description |
|---|---|
| Device IP | IP address used to map to a device in NDM for enrichment purposes. |
| Exporter IP | IP address from which NetFlow packets originate. |
| Device Model | Model of the device. |
| Device Name | Name of the device. |
| Device Namespace | Namespace of the device. |
| Device Vendor | Vendor of the device. |
The following fields represent characteristics of the network flow.
| Field Name | Field Description |
|---|---|
| Direction | Indicates whether the flow is inbound or outbound. |
| Start Time | Timestamp of the first network packet between the source and destination IP addresses. |
| End Time | Timestamp of the last network packet between the source and destination IP addresses. |
| Ether Type | Type of Ethernet frame encapsulation (IPv4 or IPv6). |
| Flow Type | Type of NetFlow data format (IPFIX, sFlow5, NetFlow5, NetFlow9, or Unknown). |
| IP Protocol | Protocol used for communication (such as ICMP, TCP, or UDP). |
| Next Hop IP | IP address of the next hop in the network path. |
| TCP Flag | Union of all TCP flags observed over the life of the flow. |
| Bytes | Total number of bytes transferred. |
| Packets | Total number of packets transferred. |
In addition to fields, you can also use out-of-the-box facets to start analyzing traffic patterns based on NetFlow destination and source IP addresses.
| Facet Name | Facet Description |
|---|---|
| Destination AS Domain | The domain associated with the Autonomous System (AS) to which the destination IP belongs. |
| Destination AS Name | The name of the Autonomous System (AS) to which the destination IP belongs. |
| Destination AS Number | The number assigned to the Autonomous System (AS) to which the destination IP belongs. |
| Destination AS Route | The route information associated with the Autonomous System (AS) to which the destination IP belongs. |
| Destination AS Type | The type of Autonomous System (AS) to which the destination IP belongs (such as transit, customer, peer). |
| Destination Application Name | The name of the application associated with the destination IP. |
| Destination City Name | The name of the city associated with the destination IP. |
| Destination Cloud Provider Name | The name of the cloud provider associated with the destination IP. |
| Destination Cloud Provider Region | The region of the cloud provider associated with the destination IP. |
| Destination Cloud Provider Service | The service provided by the cloud provider associated with the destination IP. |
| Destination Continent Code | The code representing the continent associated with the destination IP. |
| Destination Continent Name | The name of the continent associated with the destination IP. |
| Destination Country ISO Code | The ISO code representing the country associated with the destination IP. |
| Destination Country Name | The name of the country associated with the destination IP. |
| Destination IP | The destination IP address. |
| Destination Latitude | The latitude coordinate associated with the destination IP. |
| Destination Longitude | The longitude coordinate associated with the destination IP. |
| Destination MAC | The Media Access Control (MAC) address associated with the destination IP. |
| Destination Mask | The subnet mask associated with the destination IP. |
| Destination Port | The destination port number. |
| Destination Reverse DNS Hostname | The DNS hostname associated with the destination IP. |
| Destination Subdivision ISO Code | The ISO code representing the subdivision (such as state or province) associated with the destination IP. |
| Destination Subdivision Name | The name of the subdivision (such as state or province) associated with the destination IP. |
| Destination Timezone | The timezone associated with the destination IP. |
| Facet Name | Facet Description |
|---|---|
| Source AS Domain | The domain associated with the Autonomous System (AS) to which the source IP belongs. |
| Source AS Name | The name of the Autonomous System (AS) to which the source IP belongs. |
| Source AS Number | The number assigned to the Autonomous System (AS) to which the source IP belongs. |
| Source AS Route | The route information associated with the Autonomous System (AS) to which the source IP belongs. |
| Source AS Type | The type of Autonomous System (AS) to which the source IP belongs (such as transit, customer, peer). |
| Source Application Name | The name of the application associated with the source IP. |
| Source City Name | The name of the city associated with the source IP. |
| Source Cloud Provider Name | The name of the cloud provider associated with the source IP. |
| Source Cloud Provider Region | The region of the cloud provider associated with the source IP. |
| Source Cloud Provider Service | The service provided by the cloud provider associated with the source IP. |
| Source Continent Code | The code representing the continent associated with the source IP. |
| Source Continent Name | The name of the continent associated with the source IP. |
| Source Country ISO Code | The ISO code representing the country associated with the source IP. |
| Source Country Name | The name of the country associated with the source IP. |
| Source IP | The source IP address. |
| Source Latitude | The latitude coordinate associated with the source IP. |
| Source Longitude | The longitude coordinate associated with the source IP. |
| Source MAC | The Media Access Control (MAC) address associated with the source IP. |
| Source Mask | The subnet mask associated with the source IP. |
| Source Port | The source port number. |
| Source Reverse DNS Hostname | The DNS hostname associated with the source IP. |
| Source Subdivision ISO Code | The ISO code representing the subdivision (such as state or province) associated with the source IP. |
| Source Subdivision Name | The name of the subdivision (such as state or province) associated with the source IP. |
| Source Timezone | The timezone associated with the source IP. |
By default, NetFlow records separate unidirectional flows for each direction of traffic between two endpoints (A → B and B → A). Conversation stitching combines these into a single bidirectional record, giving you a complete view of the total traffic exchanged between two endpoints (A ↔ B).
With conversation stitching, you can:
To toggle between stitched (bidirectional) and unstitched (unidirectional) views, navigate to any endpoint-based NetFlow view and use the Bidirectional toggle under the time picker.
NetFlow’s sampling rate is taken into account in the computation of bytes and packets by default. The displayed values for bytes and packets are computed with the sampling rate applied. Additionally, you can query for Bytes (Adjusted) (@adjusted_bytes) and Packets (Adjusted) (@adjusted_packets) in dashboards and notebooks to visualize them.
To visualize the raw bytes/packets (sampled) sent by your devices, you can query for Bytes (Sampled) (@bytes) and Packets (Sampled) (@packets) in dashboards and notebooks.
NetFlow data is retained for 30 days by default, with options for 15, 30, 60, and 90 day retention.
To control NetFlow volume and associated costs, configure the Agent to cap the number of flow records submitted per flush interval. The flush interval is the period during which flows are aggregated before being forwarded to Datadog.
When this limit is enabled, the Agent retains only the top flows by byte count up to the configured maximum, and drops lower-volume flows for that flush interval.
Note: Requires Agent version 7.75.1 or later.
Configure the following in your datadog.yaml:
network_devices:netflow:enabled:trueaggregator_max_flows_per_flush_interval:10000With this configuration, the Agent submits at most 10,000 NetFlow records per flush interval (5 minutes by default). The Agent prioritizes the highest-volume flows and drops the rest.
Your approximate daily maximum flow count is:
max_flows_per_flush_interval * (minutes_per_day / flush_interval_minutes)
For example, with 10,000 flows per flush and a 5-minute flush interval:
10,000 * (1440 / 5) = 2,880,000 flows/day
When flow limiting is enabled, the Agent emits metrics you can use to understand how much data is being kept versus dropped:
ndm.flow_truncation.flows_totalndm.flow_truncation.flows_keptndm.flow_truncation.flows_droppedndm.flow_truncation.keep_rationdm.flow_truncation.threshold_valuendm.flow_truncation.runtime_msUse these metrics to validate your chosen cap and to detect when truncation is occurring frequently (which may indicate you should adjust the cap or the flush interval).
NetFlow packet drops can occur when there are a high number of NetFlow packets per second, typically greater than 50,000. The following steps can help identify and mitigate NetFlow packet drops:
Use the netstat -s command to see if there are any dropped UDP packets:
netstat -s
Increase the number of NetFlow listeners by using a configuration similar to the following: Datadog recommends setting the number of workers to match the number of CPU cores in your system:
netflow:enabled:truelisteners:- flow_type:netflow9port:2055workers:4# 4 CPUsAdjusting your system’s UDP queue length can help accommodate the higher volume of NetFlow packets. Increase the UDP receive buffer size to 25MB by executing the following commands:
sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.rmem_default=26214400
To make these changes permanent, add the following lines to your /etc/sysctl.conf file:
net.core.rmem_max=26214400
net.core.rmem_default=26214400
Additional helpful documentation, links, and articles:
| |