Netflow Receiver
contrib
Maintainers: @evan-bradley, @dlopes7
Source: opentelemetry-collector-contrib
Supported Telemetry
Overview
This receiver gives OpenTelemetry users the capability of monitoring network traffic, and answer questions like:- Which protocols are passing through the network?
- Which servers and clients are producing the highest amount of traffic?
- What ports are involved in these network calls?
- How many bytes and packets are being sent and received?
Getting started
By default the receiver will listen for ipfix and netflow on port2055. The receiver can be configured to listen on different ports and protocols.
Example configuration:
sending_queue::batch option to reduce the number of log requests being sent by the exporter. The batch option will batch log records together and send them in a single request to the exporter.
You would then configure your network devices to send netflow, sflow, or ipfix data to the Collector on the specified ports.
Configuration
When
send_raw is set to true, the receiver will:
- Skip parsing the netflow/sflow messages
- Send the raw message as the log body
Data format
The netflow data is standardized for the different schemas and is converted to OpenTelemetry log records following the semantic conventions The log record will have the following attributes (with examples):- source.address: Str(132.189.238.100)
- source.port: Int(1255)
- destination.address: Str(241.171.33.110)
- destination.port: Int(64744)
- network.transport: Str(tcp)
- network.type: Str(ipv4)
- flow.io.bytes: Int(853)
- flow.io.packets: Int(83)
- flow.type: Str(netflow_v5)
- flow.sequence_num: Int(191)
- flow.time_received: Int(1736309689918929427)
- flow.start: Int(1736309689830846400)
- flow.end: Int(1736309689871846400)
- flow.sampling_rate: Int(0)
- flow.sampler_address: Str(172.28.176.1)
- flow.tcp_flags: Int(0)
- flow.in_if: Int(5)
- flow.out_if: Int(10)
- flow.ip_tos: Int(46)
- flow.ip_ttl: Int(64)
- flow.ip_flags: Int(2)
- flow.fragment_id: Int(0)
- flow.fragment_offset: Int(0)
- flow.ipv6_flow_label: Int(0)
- flow.icmp_type: Int(0)
- flow.icmp_code: Int(0)
- flow.src_mac: Str(00:11:22:33:44:55)
- flow.dst_mac: Str(aa:bb:cc:dd:ee:ff)
- flow.src_vlan: Int(0)
- flow.dst_vlan: Int(0)
- flow.vlan_id: Int(0)
- flow.next_hop: Str(10.0.0.1)
- flow.next_hop_as: Int(0)
- flow.src_as: Int(65000)
- flow.dst_as: Int(65001)
- flow.bgp_next_hop: Str(10.0.0.2)
- flow.src_net: Int(24)
- flow.dst_net: Int(32)
- flow.forwarding_status: Int(0)
- flow.observation_domain_id: Int(0)
- flow.observation_point_id: Int(0)
- Observed timestamp: The time the flow was received.
- Timestamp: The flow
startfield.
Schema support
netflow
- Process Template Records if present
- Process Netflow V5, V9, and IPFIX messages
- Extract the attributes documented above
- Mapping of custom fields is not yet supported
sflow
- Process sFlow version 5 datagrams
flow_sampleandflow_sample_expandedare supported.counter_sampleandcounter_sample_expandedare NOT yet supported.- Mapping of custom fields is not yet supported
Configuration
Example Configuration
Last generated: 2026-08-24