Documentation ¶
Overview ¶
Package metricsmap represents the BPF metrics map in the BPF programs. It is implemented as a hash table containing an entry of different drop and forward counts for different drop/forward reasons and directions. +groupName=maps
Index ¶
Constants ¶
const ( // MapName for metrics map. MapName = "cilium_metrics" // MaxEntries is the maximum number of keys that can be present in the // Metrics Map. // // Currently max. 2 bits of the Key.Dir member are used (unknown, // ingress or egress). Thus we can reduce from the theoretical max. size // of 2**16 (2 uint8) to 2**10 (1 uint8 + 2 bits). MaxEntries = 1024 )
Variables ¶
var (
// Metrics is the bpf metrics map
Metrics metricsMap
)
Functions ¶
func MetricDirection ¶
MetricDirection gets the direction in human readable string format
func SyncMetricsMap ¶
SyncMetricsMap is called periodically to sync off the metrics map by aggregating it into drops (by drop reason and direction) and forwards (by direction) with the prometheus server.
Types ¶
type IterateCallback ¶
IterateCallback represents the signature of the callback function expected by the IterateWithCallback method, which in turn is used to iterate all the keys/values of a metrics map.
type Key ¶
type Key struct { Reason uint8 `align:"reason"` Dir uint8 `align:"dir"` Reserved [3]uint16 `align:"reserved"` }
Key must be in sync with struct metrics_key in <bpf/lib/common.h>
func (*Key) DropForwardReason ¶
DropForwardReason gets the forwarded/dropped reason in human readable string format
type MetricsMap ¶
type MetricsMap interface {
IterateWithCallback(IterateCallback) error
}
MetricsMap interface represents a metrics map, and can be reused to implement mock maps for unit tests.