Chapter 15. Network flows format reference
These are the specifications for network flows format, used both internally and when exporting flows to Kafka.
15.1. Network flows format reference
This is the specification of the network flows format. That format is used when a Kafka exporter is configured, for Prometheus metrics labels as well as internally for the Loki store.
The "Filter ID" column shows which related name to use when defining Quick Filters (see spec.consolePlugin.quickFilters
in the FlowCollector
specification).
The "Loki label" column is useful when querying Loki directly: label fields need to be selected using stream selectors.
The "Cardinality" column contains information about the implied metric cardinality if this field was to be used as a Prometheus label with the FlowMetrics
API. For more information, see the FlowMetrics
documentation for more information on using this API.
Name | Type | Description | Filter ID | Loki label | Cardinality | OpenTelemetry |
---|---|---|---|---|---|---|
| number | Number of bytes | n/a | no | avoid | bytes |
| number | Error number returned from DNS tracker ebpf hook function |
| no | fine | dns.errno |
| number | DNS flags for DNS record | n/a | no | fine | dns.flags |
| string | Parsed DNS header RCODEs name |
| no | fine | dns.responsecode |
| number | DNS record id |
| no | avoid | dns.id |
| number | Time between a DNS request and response, in milliseconds |
| no | avoid | dns.latency |
| number | Differentiated Services Code Point (DSCP) value |
| no | fine | dscp |
| string | Destination IP address (ipv4 or ipv6) |
| no | avoid | destination.address |
| string | Destination node IP |
| no | fine | destination.k8s.host.address |
| string | Destination node name |
| no | fine | destination.k8s.host.name |
| string | Name of the destination Kubernetes object, such as Pod name, Service name or Node name. |
| no | careful | destination.k8s.name |
| string | Destination namespace |
| yes | fine | destination.k8s.namespace.name |
| string | Name of the destination owner, such as Deployment name, StatefulSet name, etc. |
| yes | fine | destination.k8s.owner.name |
| string | Kind of the destination owner, such as Deployment, StatefulSet, etc. |
| no | fine | destination.k8s.owner.kind |
| string | Kind of the destination Kubernetes object, such as Pod, Service or Node. |
| yes | fine | destination.k8s.kind |
| string | Destination availability zone |
| yes | fine | destination.zone |
| string | Destination MAC address |
| no | avoid | destination.mac |
| number | Destination port |
| no | careful | destination.port |
| string | Destination subnet label |
| no | fine | n/a |
| boolean | Indicates if this flow was also captured from another interface on the same host | n/a | no | fine | n/a |
| number |
Logical OR combination of unique TCP flags comprised in the flow, as per RFC-9293, with additional custom flags to represent the following per-packet combinations: |
| no | fine | tcp.flags |
| number |
Flow interpreted direction from the node observation point. Can be one of: |
| yes | fine | host.direction |
| number | ICMP code |
| no | fine | icmp.code |
| number | ICMP type |
| no | fine | icmp.type |
| number |
Flow directions from the network interface observation point. Can be one of: |
| no | fine | interface.directions |
| string | Network interfaces |
| no | careful | interface.names |
| string | Cluster name or identifier |
| yes | fine | k8s.cluster.name |
| string | Flow layer: 'app' or 'infra' |
| yes | fine | k8s.layer |
| string | Network events flow monitoring |
| no | avoid | n/a |
| number | Number of packets | n/a | no | avoid | packets |
| number | Number of bytes dropped by the kernel | n/a | no | avoid | drops.bytes |
| string | Latest drop cause |
| no | fine | drops.latestcause |
| number | TCP flags on last dropped packet | n/a | no | fine | drops.latestflags |
| string | TCP state on last dropped packet |
| no | fine | drops.lateststate |
| number | Number of packets dropped by the kernel | n/a | no | avoid | drops.packets |
| number | L4 protocol |
| no | fine | protocol |
| string | Source IP address (ipv4 or ipv6) |
| no | avoid | source.address |
| string | Source node IP |
| no | fine | source.k8s.host.address |
| string | Source node name |
| no | fine | source.k8s.host.name |
| string | Name of the source Kubernetes object, such as Pod name, Service name or Node name. |
| no | careful | source.k8s.name |
| string | Source namespace |
| yes | fine | source.k8s.namespace.name |
| string | Name of the source owner, such as Deployment name, StatefulSet name, etc. |
| yes | fine | source.k8s.owner.name |
| string | Kind of the source owner, such as Deployment, StatefulSet, etc. |
| no | fine | source.k8s.owner.kind |
| string | Kind of the source Kubernetes object, such as Pod, Service or Node. |
| yes | fine | source.k8s.kind |
| string | Source availability zone |
| yes | fine | source.zone |
| string | Source MAC address |
| no | avoid | source.mac |
| number | Source port |
| no | careful | source.port |
| string | Source subnet label |
| no | fine | n/a |
| number | End timestamp of this flow, in milliseconds | n/a | no | avoid | timeflowend |
| number | TCP Smoothed Round Trip Time (SRTT), in nanoseconds |
| no | avoid | tcp.rtt |
| number | Start timestamp of this flow, in milliseconds | n/a | no | avoid | timeflowstart |
| number | Timestamp when this flow was received and processed by the flow collector, in seconds | n/a | no | avoid | timereceived |
| string | In conversation tracking, the conversation identifier |
| no | avoid | n/a |
| string | Type of record: 'flowLog' for regular flow logs, or 'newConnection', 'heartbeat', 'endConnection' for conversation tracking |
| yes | fine | n/a |