Operators
Operators are the cornerstones of the Inspektor Gadget architecture. They are modular components implementing the same interfaces: DataOperator and ImageOperator. They are responsible for specific tasks, such as loading eBPF programs, enriching events, sorting output, etc. All operators can generate, drop or manipulate data and few of them handle the layers of gadget OCI image.
Operators are arranged in a pipeline according to their priority:
Operators are enabled automatically based on the gadget that's being run, according to the layers present on the OCI image, the types used by the eBPF programs, etc. It's currently not possible to explicitly disable an operator. Also, all operators are currently built-in, we however plan to support third-party operators in the future.
Parametersโ
Operators expose parameters to control them. There are two kinds of parameters:
Globalโ
These parameters have a global scope and can only be set on the server part when deploying Inspektor Gadget in Kubernetes, running it as a daemon or running it locally. It means, these paremeters aren't available to users running gadgetctl or kubectl-gadget. They are intended to control sensitive things like security configuration that can only be set by the system administrator.
Instanceโ
These parameters can be set each time a gadget is run and only have impact on the gadget being run.
Parameters are passed as flags when running a gadget using the CLI tools (kubectl-gadget / gadgetctl / ig). When using the APIs, it's required to use the full qualified name.
Available Operatorsโ
๐๏ธ oci
The OCI operator handles Gadgets images. It pulls images from the OCI registries
๐๏ธ ebpf
The eBPF operator handles the ebpf layer
๐๏ธ WASM
The WASM operator runs the WASM module present on the [wasm
๐๏ธ btfgen
The btfgen operator loads the BTF files present on the [btfgen
๐๏ธ CLI
The CLI operator is the default output operator - it prints all information and
๐๏ธ Combiner
The Combiner operator combines the data coming from different servers when using
๐๏ธ Filter
The Filter operator filters events in user space. Since the filtering in user
๐๏ธ Formatters
The Formatters operator provides a human readable representation of things like
๐๏ธ KubeIPResolver
The KubeIPResolver operator enriches IP addresses with pod and service
๐๏ธ KubeManager
The KubeManager operator is used when Inspektor Gadget is deployed to Kubernetes
๐๏ธ Limiter
The Limiter operator limits the number of entries in each batch of data. This
๐๏ธ LocalManager
The LocalManager operator is used by the ig binary. This operator keeps track
๐๏ธ otel-metrics
The otel-metrics operator handles collecting and exporting metrics using the
๐๏ธ SocketEnricher
The Socket enricher operator provides information about the socket owner, i.e.
๐๏ธ Sort
The Sort operator sorts the output. This operator is only enabled for data
๐๏ธ UidGidResolver
The UidGidResolver data operator resolves uid and gid (user and group identifiers) values to the corresponding user and group names.