Releases: cilium/tetragon
v1.6.0
Changes from v1.5.0 to v1.6.0
All contributions - total: 362 commits, prs: 187 pr commits: 362
Excluding cilium-renovate[bot] - total: 288 commits, prs: 114 pr commits: 288
Upgrade notes
Read the upgrade notes carefully before upgrading Tetragon.
Depending on your setup, changes listed here might require a manual intervention.
Helm Values
-
The
tetragonOperator.securityContextfield has been deprecated in favor oftetragonOperator.containerSecurityContextfor clarity. The old field is still supported for backward compatibility but might be removed in a future release. Users should migrate their configurations to use the new field. -
The Tetragon Operator now defaults to running as a non-root user (UID 65532) for improved security. A new
tetragonOperator.runAsRootoption has been added to override this behavior and run as root when needed. SettetragonOperator.runAsRoot: trueto maintain the previous root-based behavior if required.
Changelog
Bugfixes
- Fix bug in process modeling where long executable filenames may cause command-line argument capture corruption. (#3972) by @acamatcisco
- helm: Quote tetragon.processAncestors.enabled (#4013) by @michi-covalent
- selectors: Ignore empty matchBinaries (#4022) by @tpapagian
- pkg/cgroups/fsscan: fix incorrect path returned (#4117) by @mtardy
- pkg/crdutils: fix standalone custom resources validation (#4140) by @mtardy
- selectors: fix off by one bounds check (#4170) by @andrewstrohman
Minor Changes
- option: Remove deprecated enable-process-ancestors boolean flags (#3955) by @t0x01
- tetragon: Enable TestTracepointLoadFormat on 6.1 and bpf-next (#3978) by @olsajiri
- More robust process argument parsing logic. (#3974) by @acamatcisco
- tetragon: Add usdt sensor (#3943) by @olsajiri
- tetragon: Change generic usdt op number (#4000) by @olsajiri
- k8s: Enable k8s control plane for non-k8s deployment (#4011) by @sayboras
- tetragon: assorted fixes (#4023) by @olsajiri
- fix: reject NotifyEnforcer kprobe action without an Enforcer (#4008) by @dwindsor
- tetragon: Make TestUsdtArgs amd64 only (#4047) by @olsajiri
- fix: detectUprobeRefCtrOffsetOnce init logic (#4036) by @zeyuwzy
- bpf: turn environment configuration storage into a BPF ARRAY storage (#4035) by @tixxdz
- new(tetra/getevents): allow to filter events by container name regex. (#4051) by @FedeDP
- assorted fixes (#4053) by @olsajiri
- api: Add pod uid field for k8s Pod (#4069) by @sayboras
- k8s: Reduce RBAC permission for non-k8s deployment (#4060) by @sayboras
- tetragon: support for current task data (#4064) by @olsajiri
- tetragon: add usdt action support (#4078) by @olsajiri
- tracingpolicy: add counters about actions performed for every policy (#4074) by @kkourt
- helm: run the Tetragon operator as non-root by default (#3909) by @calghar
- tetra: add "probe config" command to check kernel configuration. (#4020) by @zeyuwzy
- tetragon: allow to parse usdt sib argument (#4095) by @olsajiri
- tetragon: Fix TestControllerSuite flake panic (#4110) by @olsajiri
- tetragon: Fix struct perf_event_info_type layout (#4126) by @olsajiri
- kprobe: Add support for bpf_prog argument (#4124) by @tpapagian
- tetragon: add range filter (#4109) by @olsajiri
- tetragon: Fix k8s validation of ArgSelector fields (#4143) by @olsajiri
- Adds support for bpf ring buffer and sets that as the default from kernels v5.11 onwards. (#4075) by @kevsecurity
- k8s: Add retry support for ControllerManager (#4135) by @shpalani
- feat: add nameOverride support for tetragon-rthooks (#4134) by @EfratRub
- tetragon: remove unused execve event flags bits (#4138) by @olsajiri
- fix: Controller manager retry logic (#4153) by @shpalani
- tetragon: add support for usdt set action (#4005) by @olsajiri
- tetragon: assorted fixes (#4155) by @olsajiri
- Helm chart: add support for export.stdout.envFromSecrets to inject environment variables from Kubernetes secrets (#4025) by @Bagautdino
- tetragon: uprobe fixes (#4172) by @olsajiri
- Dockerfile.clang: upgrade to clang-20 (#4196) by @olsajiri
- tetragon: assorted fixes (#4131) by @olsajiri
- policies: support for resolve: in USDT policies (#4198) by @kkourt
- tetragon: add uprobe override action (#4173) by @olsajiri
- tetragon: Add missing switch break to do_action (#4218) by @olsajiri
CI Changes
- renovate: Remove manual step for cilium/cilium dep (#3966) by @sayboras
- ci: Re-enable label checker in ARM (#3968) by @sayboras
- fix: Resolve error message typo in TestHelperMain(). (#3975) by @acamatcisco
- pin alexellis/arkade-get github action by hash (#3986) by @datosh
- renovate: sync helm chart version/appVersion update with image tag (#4027) by @alero-awani
- chore(ci): always use
actions/setup-goafter repo clone. (#4054) by @FedeDP - Makefile alias for docs generation and renovate config update (#4112) by @mtardy
- Makefile: add checkpatch target (#4125) by @mtardy
- Fix flaky downloads of eBPF for Windows deps (#4128) by @ygvalent
- ci: always upload Go test artifacts for easier debugging (#4133) by @AritraDey-Dev
- check-links: fix the periodic check issue creation (#4183) by @mtardy
- vmtests: add kernel 6.12 to test matrix (#4235) by @AritraDey-Dev
Documentation changes
- Update tetragon enteprise URL (#3954) by @saintdle
- Fix a typo in kubectl in the runtime hook documentation (#3957) by @uhlhosting
- docs: improve path retrieval limits formatting (#3989) by @UtkarshSiddhpura
- docs: Fix swapped event filters descriptions (#4003) by @t0x01
- docs: fix the yaml indent in selector semantics (#4094) by @kemingy
- Adds Tracing Policy API reference documentation (#4059) by @bschaatsbergen
- doc: add contribution ladder section (#4123) by @paularah
- Chore: Add KubeCon NA 2025 to Announcement banner (#4142) by @thisisobate
- docs: fix broken link in docs detected by the periodic check (#4181) by @mtardy
- ARM64 users: Tetragon may run on v4.19/v5.4 kernels with limited functionality; use v5.10 or later. (#4206) by @AritraDey-Dev
- Documentation Fix: Correct followChildren Example (#4232) by @ossie-git
Dependency updates
- chore(deps): update module github.com/docker/docker to v28.3.3+incompatible [security] (main) (#3958) by @cilium-renovate[bot]
- chore(deps): update renovatebot/github-action action to v43 (main) (#3965) by @cilium-renovate[bot]
- chore(deps): update module github.com/cilium/cilium to v1.18.0 (main) (#3964) by @cilium-renovate[bot]
- chore(deps): update all github action dependencies (main) (#3963) by @cilium-renovate[bot]
- chore(deps): update all lvh-images main (main) (patch) (#3970) by @cilium-renovate[bot]
- chore(deps): update dependency cilium/cilium-cli to v0.18.6 (main) (#3976) by @cilium-renovate[bot]
- fix(deps): update module github.com/prometheus/client_golang to v1.23.0 (main) (#3977) by @cilium-renovate[bot]
- chore(deps): update all lvh-images main (main) (patch) (https://github....
v1.6.0-rc.1
Changes from v1.6.0-pre.0 to v1.6.0-rc.1
total: 280 commits, prs: 107 pr commits: 280
Bugfixes
- Fix bug in process modeling where long executable filenames may cause command-line argument capture corruption.
- helm: Quote tetragon.processAncestors.enabled
- selectors: Ignore empty matchBinaries
- pkg/cgroups/fsscan: fix incorrect path returned
- pkg/crdutils: fix standalone custom resources validation
- selectors: fix off by one bounds check
Minor Changes
- option: Remove deprecated enable-process-ancestors boolean flags
- tetragon: Enable TestTracepointLoadFormat on 6.1 and bpf-next
- More robust process argument parsing logic.
- tetragon: Add usdt sensor
- tetragon: Change generic usdt op number
- k8s: Enable k8s control plane for non-k8s deployment
- tetragon: assorted fixes
- fix: reject NotifyEnforcer kprobe action without an Enforcer
- tetragon: Make TestUsdtArgs amd64 only
- fix: detectUprobeRefCtrOffsetOnce init logic
- bpf: turn environment configuration storage into a BPF ARRAY storage
- new(tetra/getevents): allow to filter events by container name regex.
- assorted fixes
- api: Add pod uid field for k8s Pod
- k8s: Reduce RBAC permission for non-k8s deployment
- tetragon: support for current task data
- tetragon: add usdt action support
- tracingpolicy: add counters about actions performed for every policy
- helm: run the Tetragon operator as non-root by default
- tetra: add "probe config" command to check kernel configuration.
- tetragon: allow to parse usdt sib argument
- tetragon: Fix TestControllerSuite flake panic
- tetragon: Fix struct perf_event_info_type layout
- kprobe: Add support for bpf_prog argument
- tetragon: add range filter
- tetragon: Fix k8s validation of ArgSelector fields
- Adds support for bpf ring buffer and sets that as the default from kernels v5.11 onwards.
- k8s: Add retry support for ControllerManager
- feat: add nameOverride support for tetragon-rthooks
- tetragon: remove unused execve event flags bits
- fix: Controller manager retry logic
- tetragon: add support for usdt set action
- tetragon: assorted fixes
- Helm chart: add support for export.stdout.envFromSecrets to inject environment variables from Kubernetes secrets
- tetragon: uprobe fixes
- Dockerfile.clang: upgrade to clang-20
- tetragon: assorted fixes
- policies: support for resolve: in USDT policies
- tetragon: add uprobe override action
- tetragon: Add missing switch break to do_action
CI Changes
- renovate: Remove manual step for cilium/cilium dep
- ci: Re-enable label checker in ARM
- fix: Resolve error message typo in TestHelperMain().
- pin alexellis/arkade-get github action by hash
- renovate: sync helm chart version/appVersion update with image tag
- chore(ci): always use
actions/setup-goafter repo clone. - Makefile alias for docs generation and renovate config update
- Makefile: add checkpatch target
- Fix flaky downloads of eBPF for Windows deps
- ci: always upload Go test artifacts for easier debugging
- check-links: fix the periodic check issue creation
Documentation changes
- Update tetragon enteprise URL
- Fix a typo in kubectl in the runtime hook documentation
- docs: improve path retrieval limits formatting
- docs: Fix swapped event filters descriptions
- docs: fix the yaml indent in selector semantics
- Adds Tracing Policy API reference documentation
- doc: add contribution ladder section
- Chore: Add KubeCon NA 2025 to Announcement banner
- docs: fix broken link in docs detected by the periodic check
- ARM64 users: Tetragon may run on v4.19/v5.4 kernels with limited functionality; use v5.10 or later.
Dependency updates
- chore(deps): update all lvh-images main (main) (patch)
Misc Changes
- Starting v1.6 development
- Restore upgrade notes in v1.5.0.md
- bpf: remove unused func UpdateElementFromPointers
- fix: Refactor SIZEOF_EVENT constant to not be a hard-coded value.
- rthooks: Log container ID as a key-value pair
- Update release template
- lint: Ignore error check for cgroups.DiscoverSubSysIds call
- deps: remove direct gopkg.in/yaml.v2 dep
- fix: Remove unused constants from bpf/lib/process.h
- e2e: Remove Cilium related flags
- USDT ancestors support
- pkg/cgroups/fsscan: add FindPodPath
- contrib: Remove Vagrantfile and related docs
- chore: Update goimport config with local-prefixes for consistency
- helm: Add 'containers.extra' helper function
- renovate: Allow go 1.24 for v1.3 branch
- linters/staticcheck: fix underscore in names
- helm: Add a Role for tetragon service account
- Optimize Kprobe Rate Limit Test Performance
- pkg/sensors: initialize RewriteConstant map in builder
- new(cmd/tetra,pkg/bugtool): allow to extend bugtool with custom commands and grpc calls.
- FindProgramFileUnderLocations: error logging
- policy_stats: use the map only for policy sensors
- k8s: Add alias for getting k8s config
- bpf: additional errmetrics
- chore(bpf, pkg/errmetrics): some probe_read() bpf errmetrics
- policies: only warn once for stats and mode
- pkg/errmetrics: expose error metrics via Prometheus metrics
- k8s: Avoid hard coded CRD.spec.group
- fix: always close the bpf link in
detectKprobeMultibefore returning - observer: deal with empty data in HandlePerfData
- tetragon: assorted fixes
- tetragon: testutils service both perf and bpf ring
- cleanup: remove old build constraint syntax
- pkg/asm: fuzz Assignment func parsing strings
- new(tests/e2e): add a metrics checker on e2e tests.
- fix(bpf/process): fix some missing
breakstatements. - fix(bpf): force explicit switch case fallthrough
- Prepare for v1.6.0-rc.1 release
v1.5.0
Upgrade notes
Read the upgrade notes carefully before upgrading Tetragon.
Depending on your setup, changes listed here might require a manual intervention.
-
Enabling ancestors for process events is now configured by a new
--enable-ancestorsflag.
The following flags are being deprecarted in this (1.5) and are scheduled for removal in the next (1.6):--enable-process-ancestors--enable-process-kprobe-ancestors--enable-process-tracepoint-ancestors--enable-process-uprobe-ancestors--enable-process-lsm-ancestors
-
The logging library used by Tetragon is migrated from
logrustolog/slog.
This change is not expected to affect the end user, but it may require some adjustments in custom scripts or tools
that parse Tetragon logs.level=warningis nowlevel=warn
Helm Values
-
The default value of metrics scrape interval in both agent and operator
ServiceMonitors (tetragon.prometheus.serviceMonitor.scrapeIntervaland
tetragonOperator.prometheus.serviceMonitor.scrapeIntervalvalues
respectively) is changed from 10s to 60s. -
OciHookSetup section is removed after being deprecated in 1.2.
Changes from v1.4.1 to v1.5.0
total: 391 commits, prs: 182 pr commits: 390
Major Changes
- tetragon/windows: Support Windows create and exit process - observer changes (#3577) by @ExceptionalHandler
- tetragon/windows: Support Windows create and exit process - sensor changes (#3578) by @ExceptionalHandler
- tetragon/Windows: Add support for process create and exit - ring-buffer (#3591) by @ExceptionalHandler
- tetragon/windows: Port tetragon on Windows - cmd/tetragon/main.go (#3592) by @ExceptionalHandler
Bugfixes
- helm: fix extraHookargs in rthooks (#3566) by @kkourt
- Fix event source pod attribution when env var HUBBLE_NODE_NAME is set (#3609) by @odinuge
- fix(chart): correct operator securityContext values (#3681) by @JefeDavis
- tracingpolicy: fix issue in argument order with the resolve argument option (#3737) by @kkourt
- Fix an issue where inInitTree was not properly accounting processes started before Tetragon. (#3827) by @will-isovalent
- tracinpolicy: respect syscall attribute in lists (#3895) by @kkourt
- Fixes load sensor failure when mixing rate limited and non rate limited kprobes. (#3903) by @mtardy
- bpf: fix issue with multiple inactive selectors (#3947) by @kkourt
Minor Changes
- tetragon/windows: Compilation only change to build config package (#3537) by @ExceptionalHandler
- tetragon/windows: Port reader/namespace package to Windows (#3548) by @ExceptionalHandler
- tetragon/windows: Port package errmetrics to Windows (#3534) by @ExceptionalHandler
- tetragon/windows: Compilation only change for pkg/metrics/syscallmetrics (#3530) by @ExceptionalHandler
- tetragon/windows: Port pkg/kernels to Windows (#3529) by @ExceptionalHandler
- tetragon/windows: Compilation only change to compile cgroups package (#3536) by @ExceptionalHandler
- tetragon/windows: Port pidfile package on Windows (#3532) by @ExceptionalHandler
- tetragon/windows: Compilation only Change for pkg/procsyms on Windows (#3533) by @ExceptionalHandler
- Windows: Build tetragon on Windows (Part -2) (#3488) by @ExceptionalHandler
- tetragon/windows: Compilation only change for pkg/metricconfig package on Windows (#3531) by @ExceptionalHandler
- tetragon: add support for path offload (#3480) by @olsajiri
- tetragon/windows: port package sensors/exec/procevents into Windows (#3561) by @ExceptionalHandler
- tetragon/windows: Compilation change to build testutils (#3539) by @ExceptionalHandler
- tetragon/windows: Add default definitions for Windows (#3538) by @ExceptionalHandler
- tetragon/widows: Add signal translation for Windows (#3547) by @ExceptionalHandler
- tetragon/windows: Port bpf package into Windows (#3563) by @ExceptionalHandler
- tetragon/windows: Port cmd/tetra binary into Windows (#3573) by @ExceptionalHandler
- tetragon: rhel7 changes (#3574) by @olsajiri
- tetragon: fix path permissions (#3599) by @olsajiri
- Enhance Tetragon Events with Pod Annotations Support (#3527) by @cy83rc0llect0r
- tetragon: add raw tracepoints (#3558) by @olsajiri
- PodInfo: Add .process.pod.container.privileged field (#3661) by @tpapagian
- helm: Change default metrics scrape interval to 60s (#3675) by @ghost
- k8s: Remove the logic to handle v1beta1 CRDs (#3677) by @michi-covalent
- tetragon: Allow uprobes to use actions (#3676) by @olsajiri
- tetragon: Fix check_cap tester program call (#3688) by @olsajiri
- helm: remove deprecated ociHookSetup section (#3704) by @kkourt
- policyfilter: Add support for repo key in containerSelector (#3709) by @tpapagian
- tetragon/windows: Fix observer to make it event independent (#3716) by @ExceptionalHandler
- tracingpolicy: support IPv4-mapped IPv6 address form in selectors. (#3714) by @kobrineli
- tetragon: Fix kprobe argument printers order (#3725) by @olsajiri
- tetragon: Move some event_config values to arrays (#3738) by @olsajiri
- tetragon: allow to define uprobe with offset and ref_ctr_offset (#3695) by @olsajiri
- Tetragon events now contain Kubernetes node labels. (#3759) by @michi-covalent
- tetragon: Remove superficial program.MapLoad.Index (#3756) by @olsajiri
- tetragon: Deprecate enable-process-ancestors boolean flags (#3581) by @t0x01
- tetragon: assorted fixes (#3804) by @olsajiri
- tetragon: do proper cleanup for uprobe and tracepoint sensors (#3822) by @olsajiri
- tracingpolicy: allow to ignore kprobes for calls that cannot be found (#3825) by @kkourt
- logging: Migrate from logrus to slog (#3814) by @sayboras
- tetragon/windows: Support multiple programs from a single collection (#3832) by @ExceptionalHandler
- RFC tetragon: Do not rate limit exit events (#3842) by @olsajiri
- tetragon: assorted fixes (#3846) by @olsajiri
- tetragon/windows: Add bind program type GUID (#3851) by @ExceptionalHandler
- sensor: reduce logs in loading/unloading (#3853) by @kkourt
- tetragon: factor args processing (#3730) by @olsajiri
- tetragon: matchBinaries followChildren fixes (#3821) by @olsajiri
- tetragon: Add macros for atomic instructions (#3869) by @olsajiri
- tracingpolicies: add CapabiliitesGained operator (#3887) by @kkourt
- helm: add
tetragon.nameOverrideandtetragonOperator.nameOverride(#3864) by @slntopp - bugtool: Collect pprof CPU profile (#3916) by @michi-covalent
- tetragon: add support to follow children of old process (#3901) by @olsajiri
- tracingpolicy: return error on unsupported number of values (#3934) by @kkourt
CI Changes
- e2e: port forwarding fixes (#3555) by @kkourt
- ci: In "Tetragon Go Test" add vmlinux in artifact when test fails (#3526) by @tdaudi
- Revert "renovate: add v1.2 for golang 1.23" (#3598) by @mtardy
- Update golangci-lint to v2 and fix newly discovered issues in the code base (#3607) by @mtardy
- linters: take the golangci-lint v2 bump opportunity to enable more linters (#3608) by @mtardy
- tetragon/windows: Add windows compile as a ci step (#3611) by @ExceptionalHan...
v1.4.1
Changes
Bugfixes
- tetragon: Fix storing of flags and mode for path (#3634) by @olsajiri
- [backport/v1.4] Do proper cleanup on maps during sensor unload (#3816) by @tpapagian
- 1.4 backports (#3569) by @kkourt
- 1.4 backports (#3610) by @kkourt
- 1.4 backports (#3739) by @kkourt
CI Changes
Dependency updates
- chore(deps): update go to v1.24.2 (v1.4) (patch) (#3597) by @cilium-renovate[bot]
- chore(deps): update module golang.org/x/net to v0.38.0 [security] (v1.4) (#3649) by @cilium-renovate[bot]
- fix(deps): update module github.com/cilium/cilium to v1.17.3 [security] (v1.4) (#3660) by @cilium-renovate[bot]
- chore(deps): update go to v1.24.3 (v1.4) (patch) (#3722) by @cilium-renovate[bot]
- chore(deps): update docker.io/library/alpine docker tag to v3.22.0 (v1.4) (#3784) by @cilium-renovate[bot]
- chore(deps): update go to v1.24.4 (v1.4) (patch) (#3811) by @cilium-renovate[bot]
- chore(deps): update module github.com/go-viper/mapstructure/v2 to v2.3.0 [security] (v1.4) (#3862) by @cilium-renovate[bot]
- chore(deps): update go to v1.24.5 (v1.4) (patch) (#3880) by @cilium-renovate[bot]
v1.4.0
Release notes
Upgrade notes
Read the upgrade notes carefully before upgrading Tetragon.
Depending on your setup, changes listed here might require a manual intervention.
Helm Values
- It's now supported to run multiple Tetragon operator replicas simultaneously. Enable it by setting
tetragonOperator.replicas=2andtetragonOperator.failoverLease.enabled=true. tetragonOperator.strategynow sets a defaultrollingUpdatestrategy (maxSurge=1,maxUnavailable=0) to reduce downtime during an upgrade.- The Tetragon operator Deployment now sets a default
podAntiAffinity(preferredDuringSchedulingIgnoredDuringExecution) to improve the Pod distribution (if possible), without enforcing it to avoid being stuck during upgrades on single or two node clusters.
TracingPolicy (k8s CRD)
FollowFD,UnfollowFD, andCopyFDactions are being deprecarted in this (1.4) and are
scheduled for removal in the next (1.5)
Metrics
tetragon_map_errors_totalmetric is replaced bymap_errors_update_totalandmap_errors_delete_total.
Changes
total: 298 commits, prs: 110 pr commits: 298
Major Changes
- feat: include ancestors in process events (#2938) by @t0x01
- Add attribute resolution (#3143) by @ScriptSathi
- policies: add support for setting a monitoring mode in tracing policies (#3393) by @kkourt
- Windows: Build tetragon on Windows (Part -1) (#3445) by @ExceptionalHandler
Bugfixes
- [fix] fix probe_read_str return type (#3236) by @arthur-zhang
- tetragon: avoid the agent from hanging in some corner error conditions (#3321) by @kkourt
- Fix in_init_tree flag for processes started before Tetragon. (#3338) by @will-isovalent
- Fix a bug where unloading programs where detaching them even in the case of unpin false (i.e.) --keep-sensors-on-exit (#3347) by @mtardy
- Fix path truncations in event values for cwd and path/file function arguments. The function responsible for reading dentry was upgraded to 4096 but some users were still using the previous limitation of 256. (#3427) by @mtardy
- Use BTF to access skb_ext (#3439) by @xabrouck
- watcher: Fix K8sWatcher.FindPod (#3409) by @lambdanis
Minor Changes
-
fix: nspid assign is not correct (#3267) by @arthur-zhang
-
bug: fix assign vfsmnt correctly (#3261) by @arthur-zhang
-
[bug] matchPIDs is using first pid only (#3255) by @arthur-zhang
-
tetragon: Fix override program pin for fmodret and kprobe multi (#3298) by @olsajiri
-
doc: note that kernels >= 6.11 require new cgroupv1 configs (#3284) by @tixxdz
-
tetragon: Add map_errors_update_total/map_errors_delete_total metrics (#3346) by @olsajiri
-
Add support for struct socket and struct sockaddr. (#3358) by @kevsecurity
-
tetragon: Add GetExecveEntries function (#3390) by @olsajiri
-
helm: add cri.enabled, cri.socketHostPath, and cgidmap.enables variables (#3382) by @kkourt
metrics: add metrics for cgidmap CRI resolution
-
cgroups: relax deployment detection logic (#3400) by @tixxdz
-
tetragon: Move extract code into separate function (#3416) by @olsajiri
-
gRPC: the deprecated sensors API is now removed. (#3437) by @kkourt
-
helm: Removed default toleration (
operator: Exists) for the operator Deployment (#3442) by @PhilipSchmid -
Remove kernel version check for LSM Resolve flag (#3415) by @ScriptSathi
-
tetragon: Pass argument pointer to extract_arg (#3441) by @olsajiri
-
rthooks: Fix rootDir in createRuntime hook (#3466) by @tpapagian
-
tetra: increase connection timeout to 30s (#3468) by @kkourt
-
tetragon: Add extra bounds check to extract_arg (#3503) by @olsajiri
-
helm: Allow extending clusterroles and operator configmap (#3482) by @lambdanis
-
tracingpolicy: FollowFD, UnfollowFD, and CopyFD actions are deprecarted (#3491) by @kkourt
-
pkg/bpf: mount securityfs to check lsm bpf (#3512) by @anfedotoff
-
operator: Support running multiple operator replicas simultaneously (#3443) by @PhilipSchmid
CI Changes
- [CI] Fix virt-customize issue in vmtests (#3232) by @tpapagian
- ci: remove buildjet runners and use GitHub arm64 runners (#3280) by @mtardy
- renovate: disable digest update on Dockerfiles (#3285) by @mtardy
- renovate: fix for config change 70ad4e7 (#3286) by @mtardy
- renovate: remove matchBaseBranches on main for grouping rules (#3324) by @mtardy
- renovate: update various versions in source code (#3342) by @mtardy
- CI: build tetragon on every commit of a PR (#3354) by @mtardy
- renovate: Group cel-go together with k8s dependencies (#3383) by @lambdanis
- workflows: only run build every commit on pull request event (#3386) by @mtardy
- renovate: more robust parser for Go version in go.mod (#3401) by @mtardy
- Various renovate config tunings (#3420) by @mtardy
- fix bug in e2e tests and update its dependencies (#3421) by @mtardy
- workflow: fix a bug in build every commit (#3449) by @mtardy
- chore: added verifier tests (#3433) by @AshishNaware
- renovate config: automerge more (#3505) by @mtardy
- ci: Refactor linters, formatters and generators checks (#3509) by @lambdanis
- api: Copy API reference into docs (#3525) by @lambdanis
Documentation changes
- docs: Add dev setup instructions for Apple silicon Macs (#3231) by @michi-covalent
- docs: local dev with Apple Silicon small fixes (#3237) by @mtardy
- docs: remove redundance CLI command in tracing policy example (#3256) by @arthur-zhang
- docs: enhancements to the troubleshooting section (#3238) by @mtardy
- fix: correcting the script path for minikube installation steps in do… (#3111) by @d-cryptic
- Add link to Kubecon NA 2024 talk discussing Tetragon (#3303) by @daxmc99
- fix: Troubleshooting documentation for System dump (#3325) by @z63d
- docs: fix typo referencing kube-system as kubesystem (#3334) by @z63d
- docs: fix the Example jq filter in Observability Policies (#3367) by @z63d
- fix: returnArg index of TracingPolicy is not specified (#3388) by @z63d
- docs: fix tracing policy options (#3470) by @z63d
- docs: Remove incorrect event types from field filter docs examples. (https://github.com/cilium/...
Release v1.3.0
Please update the description with the actual release notes and publish the release.
See the release issue for instructions.
If this release was created from a test tag, please delete it.
v1.3.0
total: 364 commits, prs: 130 pr commits: 364
Upgrade notes
Read the upgrade notes carefully before upgrading Tetragon.
Depending on your setup, changes listed here might require a manual intervention.
- Behavior of
export-file-permflag (and corresponding Helm valuetetragon.exportFilePerm) changed. In case the export file exists, but has different permissions than specified in the option, Tetragon will change the file permissions on the next log rotation. In older versions, log rotation preserved permissions of the existing file. Before upgrading check if permissions of the existing export file match the option (600 by default), and set the agent flag or Helm value to the desired value if needed.
Events (protobuf API)
New events for syscall64 type
Previous versions of Tetragon did not distinguish between different ABIs when using the syscall64 type
because the output was just a size_arg with the id. When executing the getcpu syscall, for example, the JSON
for 64- and 32-bits would be:
"args":[{"size_arg":"309"}]
"args":[{"size_arg":"318"}]
Note that id 318 for x86_64 is a different syscall: getrandom so we cannot distinguish between a getrandom syscall on x86_64
and a getcpu call on 32-bit (i386). To address this issue, the output of syscall64 was changed to a SyscallId object that
also includes the ABI. So the JSON for 64- and 32-bits getcpu now is:
"args":[{"syscall_id":{"id":309,"abi":"x64"}}]
"args":[{"syscall_id":{"id":318,"abi":"i386"}}]
Users that want to maintain the old behavior can use the --enable-compatibility-syscall64-size-type flag for this version.
The flag will be removed in v1.4.
Metrics
tetragon_ratelimit_dropped_totalmetric is renamed totetragon_export_ratelimit_events_dropped_total
Major Changes:
- IMA hashes in LSM events (#2818) by @anfedotoff
- tetragon: add support for associating pod information when nested cgroups are used (#3170) by @kkourt
Bugfixes:
- Fix clone event eventcache retry handler when missing pod info. (#2899) by @tpapagian
- pkg/sensors: fix memory use of unloaded sensors (#3021) by @mtardy
- tetragon: fix the process exit signal when core dumped (#3039) by @justin0u0
- tetragon: improve how we handle cgroupv1 and cgroupv2 (#3053) by @tixxdz
- [metrics] Fix overhead_program metrics for return probes (#3074) by @tpapagian
- exec: fix tracking of matchBinary children (#3186) by @kkourt
Minor Changes:
-
Refactor & rename ratelimit metrics (#2890) by @lambdanis
-
bpf: improve the bpffs layout of tetragon objects (#2128) by @olsajiri
-
tracing: support 32-bit ARM (aarch32) syscalls (#2898) by @kkourt
-
tetragon: Fix map PinPath setup in case the map is shared (#2944) by @olsajiri
-
Added metrics for LRU data cache (#2908) by @AshishNaware
-
bpf: support all operators (including Mask) for the syscall64 type (#2948) by @kkourt
-
tracingpolicy: add BPF operations support (#2943) by @tixxdz
-
Add an "enabled" switch to enable/disable the gops server via the Helm chart. It is now disabled by default. (#2961) by @XelK
-
Enabled
tetrabash autocompletion in the Tetragon image (#2965) by @PhilipSchmid -
tracing: include ABI information for syscall64 type (#2986) by @kkourt
-
Expose BPF map kernel memory use by tracing policy via the gRPC API and the metrics. Use
tetra tp listto see the breakdown of BPF map memory use by policy or look for thetetragon_tracingpolicy_kernel_memory_bytesmetric. (#2984) by @mtardy -
tetragon: Use namespace in sensor policy directory (#2987) by @olsajiri
-
tetragon: Unpin map only if you are owner (#3004) by @olsajiri
-
enforcer: add
tetragon_enforcer_missed_notifications_totalmetric (#2994) by @kkourt -
ci:github: retry Test Tetragon on failure (#3001) by @tixxdz
-
Add an optional cluster_name field to GetEventsResponse (#3025) by @michi-covalent
-
tetragon: Make sure lsm programs return bounded value (#3032) by @olsajiri
-
tetragon: Fix TestCopyFd test on new v5.10 kernels (#3037) by @olsajiri
-
metrics: add version to build information (#3035) by @kkourt
-
Remove --expose-kernel-addresses and --pprof-addr flags (#3042) by @michi-covalent
-
Remove --enable-process-ancestors flag (#3043) by @michi-covalent
-
tetra: fix
--policy-namesto apply all event types (#3044) by @justin0u0 -
helm: Add part-of and component labels (#3052) by @lambdanis
-
tetragon: Load base sensor via sensor manager (#3045) by @olsajiri
-
crd: Added shortnames and catagory for Tetragon CRDs (#3065) by @PhilipSchmid
-
tetragon: Move procevents.GetRunningProcs call from base sensor load (#3097) by @olsajiri
-
Add Common Expression Language filter (#3098) by @michi-covalent
-
tetragon: Allow multiple symbol instances in kprobe spec (#3121) by @olsajiri
-
tetragon: Unflake the TestGeneratedExecEvents test (#3141) by @olsajiri
-
tetragon: Setup tailcalls directly in bpf programs (#3002) by @olsajiri
-
Implement new regex filter type for parent process arguments. (#3155) by @will-isovalent
-
sensors: reduce logging information by not emitting one line per map/prog being loaded by default (#3174) by @kkourt
-
tetragon: Remove not needed rule commands (#3197) by @olsajiri
-
-
Introduce the in_init_tree flag for process events which indicates whether a process spawned from its container's init process tree (#3209) by @will-isovalent
-
Introduce a container_id export filter
-
Introduce an in_init_tree export filter
-
-
tetragon: setup to let match binary names use args as well (#3210) by @jrfastab
-
- add IP and CIDR helpers to CEL filters (#3211) by @will-isovalent
CI Changes:
- renovate: run make vendor on any Go update (#2909) by @mtardy
- CI: Improved lint Helm CI workflow (#2971) by @PhilipSchmid
- vmtests: use ubuntu-latest (#2985) by @kkourt
- vmtests: install dhclient (#3005) by @kkourt
- workflows: fix usage of untrusted input in check links (#3029) by @mtardy
- workflows: use GitHub arm64 runners instead of actuated (#3034) by @mtardy
- workflows: simplify build image CI (#3031) by @mtardy
- Renovate: Extend Helm files coverage (#3077) by @lambdanis
- Fixes and QoF improvements on renovate config (#3132) by @mtardy
- workflows: only run cron jobs on main repo (#3139) by @mtardy
- digestcheck: take a list of files as input (#3145) by @mtardy
**Documentatio...
Release v1.2.1
Changes from v1.2.0 to v1.2.1
Bugfixes:
- [backport/v1.2][bugfix] Fix clone event caching due to missing pod info
- [v1.2] helm: Remove deprecated tetragon.skipCRDCreation value
Minor Changes:
- tetragon: make eventCache number of retries and delays tunable.
- tetragon: pod association: add a cache for deleted pods
- Implement new regex filter type for parent process arguments.
Misc Changes:
- Prepare for v1.2.0 release
- helm: Set rthooks.podSecurityContext to empty by default
- chore: update containers/common
- [v1.2 backport] Memory optimizations: remove BTF and kallsyms caches
- [backport/v1.2] Add support to dump processLRU
- [backport/v1.2] Add support to exclude valid processes from dump processCache
- Backports/v1.2: tetragon: probe_read usage may cause issues with newer kernels
- Prepare for v1.2.1 release
What's Changed
- [backport/v1.2][bugfix] Fix clone event caching due to missing pod info by @tpapagian in #2903
- [v1.2] helm: Remove deprecated tetragon.skipCRDCreation value by @lambdanis in #2924
- helm: Set rthooks.podSecurityContext to empty by default by @michi-covalent in #2934
- v1.2 backports by @kkourt in #2958
- chore: update containers/common by @kkourt in #3008
- chore(deps): update docker.io/library/golang:1.22.6 docker digest to a632201 (v1.2) by @cilium-renovate in #3015
- fix(deps): update module github.com/containers/common to v0.60.4 [security] (v1.2) by @cilium-renovate in #3014
- chore(deps): update go to v1.22.8 (v1.2) (patch) by @cilium-renovate in #3017
- chore(deps): update docker.io/library/alpine docker tag to v3.20.3 (v1.2) by @cilium-renovate in #3016
- chore(deps): update docker.io/library/golang:1.22.8 docker digest to 0ca97f4 (v1.2) by @cilium-renovate in #3022
- fix(deps): update module github.com/cilium/cilium to v1.15.10 [security] (v1.2) by @cilium-renovate in #3028
- [v1.2 backport] Memory optimizations: remove BTF and kallsyms caches by @mtardy in #3036
- [backport/v1.2] Add support to dump processLRU by @tpapagian in #3038
- [backport/v1.2] Add support to exclude valid processes from dump processCache by @tpapagian in #3104
- Backports/v1.2: tetragon: probe_read usage may cause issues with newer kernels by @kevsecurity in #3105
- chore(deps): update docker.io/library/alpine:3.20.3 docker digest to 1e42bbe (v1.2) by @cilium-renovate in #3137
- chore(deps): update go to v1.22.9 (v1.2) (patch) by @cilium-renovate in #3138
- backports/v1.2: filters: implement parent_arguments_regex by @will-isovalent in #3157
- Prepare for v1.2.1 release by @tpapagian in #3168
Full Changelog: v1.2.0...v1.2.1
v1.2.0
v1.2.0 Releases notes
Upgrade notes
Read the upgrade notes carefully before upgrading Tetragon.
Depending on your setup, changes listed here might require a manual intervention.
Helm Values
- Tetragon container now uses the gRPC liveness probe by default. To continue using "tetra status" for liveness probe,
specifytetragon.livenessProbeHelm value. For example:
tetragon:
livenessProbe:
timeoutSeconds: 60
exec:
command:
- tetra
- status
- --server-address
- "54321"
- --retries
- "5"-
Deprecated
tetragonOperator.skipCRDCreationHelm value is removed. Usecrds.installMethod=noneinstead. -
tetragon.ociHookSetupHelm value is deprecated. Usetetragon.rthooksinstead.
Events (protobuf API)
- Sensor managing methods have been deprecated:
ListSensorsEnableSensorDisableSensorRemoveSensor
Metrics
tetragon_policyfilter_metrics_totalmetric is renamed totetragon_policyfilter_operations_total, and itsop
label is renamed tooperation.tetragon_missed_events_totalmetric is renamed totetragon_bpf_missed_events_total.- Metrics related to ring buffer and events queue are renamed:
tetragon_ringbuf_perf_event_errors_total->tetragon_observer_ringbuf_errors_totaltetragon_ringbuf_perf_event_received_total->tetragon_observer_ringbuf_events_received_totaltetragon_ringbuf_perf_event_lost_total->tetragon_observer_ringbuf_events_lost_totaltetragon_ringbuf_queue_received_total->tetragon_observer_ringbuf_queue_events_received_totaltetragon_ringbuf_queue_lost_total->tetragon_observer_ringbuf_queue_events_lost_total
tetragon_errors_total{type="process_cache_evicted"}metric is replaced bytetragon_process_cache_evicted_total.tetragon_errors_total{type=~"process_cache_miss_on_get|process_cache_miss_on_remove"}metrics are replaced by
tetragon_process_cache_misses_total{operation=~"get|remove"}.tetragon_event_cache_<entry_type>_errors_totalmetrics are replaced by
tetragon_event_cache_fetch_failures_total{entry_type="<entry_type>"}.tetragon_event_cache_accesses_totalmetric is renamed totetragon_event_cache_inserts_total.tetragon_event_cache_retries_totalmetric is renamed totetragon_event_cache_fetch_retries_total.tetragon_errors_total{type="event_missing_process_info"}metric is replaced by
tetragon_events_missing_process_info_total.tetragon_errors_total{type="handler_error"}metric is removed. Usetetragon_handler_errors_totalinstead.
Major Changes:
- feat: Username for process_exec events (#2369) by @anfedotoff
- tetragon: Allow persistent enforcement during tetragon restart (#2600) by @olsajiri
- LSM sensor (#2566) by @anfedotoff
Bugfixes:
- bpf: use CORE for execve hook (#2399) by @kkourt
- Don't create PodInfo if the pod is being deleted (#2431) by @michi-covalent
- tetragon: allow namespaced and non-namespaced policies to have the same name (#2337) by @joshuajorel
- operator: Don't start metrics server if Helm value
tetragonOperator.prometheus.enabledis set to false. (#2484) by @yukinakanaka - enforcer: fix issue when using multiple calls with fmod_ret (#2524) by @kkourt
- Reduce the kernel memory footprint (accounted by the cgroup memory controller) of the stack trace feature when unused. (#2546) by @mtardy
- Reduce the kernel memory footprint (accounted by the cgroup memory controller) of the ratelimit feature when unused (around ~10MB per kprobe). (#2551) by @mtardy
- Reduce the kernel memory footprint (accounted by the cgroup memory controller) of the fdinstall feature when unused (around ~11MB per kprobe). (#2563) by @mtardy
- Do not increase the reference count when we cannot find a parent in kthreads. (#2620) by @tpapagian
- Reduce the kernel memory footprint (accounted by the cgroup v2 memory controller) of the override feature when unused (around ~3MB per kprobe). (#2692) by @mtardy
- Fix a bug related to the matchBinaries Prefix operator by increasing the buffer size used by our dentry walk. Now the matchBinaries Prefix operator can correctly trigger a match on any path above 255 chars. (#2764) by @mtardy
- Fix a bug where the tetra getevents command would timeout even if the connection was successful. (#2765) by @mtardy
- Fix missing cases in the compact encoder for tetra. (#2819) by @willfindlay
- add support for pod association via cgroup id (#2776) by @kkourt
- Allow disabling gRPC either by selecting 'enabled:false' in the helm chart or by passing an empty address to the agent (#2826) by @kkourt
- Fix tetragon_process_cache_size metric (#2827) by @lambdanis
Minor Changes:
- proc: set auid to -1 for generated kernel pid 0 (#2400) by @tixxdz
- Wait for Tetragon's images exist before run test (#2401) by @Trung-DV
- tetragon: Add cgroup rate support (#2177) by @olsajiri
- oci-hook: allow users to set a list of namespace exceptions and define default (#2404) by @f1ko
- test: fix TestTraceKernelModule test (#2433) by @tixxdz
- tetragon: Add inline function macro (#2452) by @olsajiri
- helm: Add tetragon.livenessProbe value (#2469) by @michi-covalent
- tetragon: Use static funcs in few places (#2453) by @olsajiri
- btf: print original error returned by ebpf btf.TypeByName() (#2458) by @tixxdz
- tetragon: cache username lookups (#2448) by @tixxdz
- helm: Remove deprecated tetragon.skipCRDCreation value (#2498) by @lambdanis
- btf: take first entry on multiple btf validation (#2488) by @tixxdz
- tetragon: Add LoadProgramOpts function (#2489) by @olsajiri
- tetragon: Remove bpf_globals object (#2521) by @olsajiri
- sensors: allow reporting policy status when loading/unloading sensors (#2506) by @kkourt
- tetragon: Limit max entries of cgroup_rate_map when it's not used (#2555) by @olsajiri
- tetragon: Factor the maps max entries setup (#2565) by @olsajiri
- tetragon:username: use login name instead of display name (#2585) by @tixxdz
- process:bpf: report euid as the process.uid (#2575) by @tixxdz
- Implement an export filter to target parent process binary name. (#2607) by @willfindlay
- tetragon: fail if --username-metadata receives invalid value (#2596) by @tixxdz
- tetragon: resolve uid to username for exec events from /proc fs (#2588) by @tixxdz
- cmd: Move metrics-docs out of tetra and refactor it (#2611) by @lambdanis
- Reorg to factor mac entries setup and add a max entries test (#2587) by @olsajiri
- tetragon: Add debug interface to track cgroups to workload/ns mappings (#2540) by @jrfastab
- rthooks: support NRI (#2608) by @kkourt
- helm, doc: Added debug Helm flag for the agent (#2622) by @PhilipSchmid
- deprecate sensors gRPC API (#2630) by @kkourt
- helm: Don't give operator permissions to create CRDs if not needed (#2326) by @itsCheithanya
- store thread leader namespaces at fork and reduce false positives (#2695) by @tixxdz
- tetragon: make resolving uid to username work with a processapi struct (#2705) by @tixxdz
- tetra: LSM events compact print support (#2703) by @anfedotoff
- tetragon: only allow single instance to run on a node (#2747) by @inliquid
- tetragon: Factor loader tailcall setup (#2719) by @olsajiri
- tracing: introduce FollowChildren attribute in MatchBinaries selector (#2720) by @kkourt
- Add missed probes metrics (#1941) by @olsajiri
tetragon_policyfilter_metrics_totalmetric is renamed totetragon_policyfilter_operations_total, and itsoplabel is renamed tooperation. (#2784) by @lambdanis- tetragon: persistent monitoring fixes (https://github.com/cilium/t...
Release v1.1.2
Upgrade notes for version v1.1.2
Helm
The default livenessProbe was changed to use a gRPC liveness probe instead of the tetra status
command.
Users can migrate to the old behavior by using a helm configuration such as:
tetragon:
livenessProbe:
timeoutSeconds: 60
exec:
command:
- tetra
- status
- --server-address
- "54321"
- --retries
Summary of changes
Bugfixes:
- Don't create PodInfo if the pod is being deleted
- [v1.1] backport: bpf: use CORE for execve hook
- enforcer: fix issue when using multiple calls with fmod_ret
Minor Changes:
- backports:1.1:tests: fix trace module testing
- backports:1.1: uid username resolution support
- helm: Add tetragon.livenessProbe value
- backport:v1.1: btf: take first entry on multiple function matches
Misc Changes:
- Prepare for v1.1.0 release
- Use gRPC-based liveness probe instead of tetra status.
- [v1.1] Introduce upgrade notes
- Prepare for v1.1.1 release
- [v1.1] Makefile: exclude api tags from version
- v1.1: misc updates relating to release process
- Prepare for v1.1.2 release
All PRs
- fix(deps): update module k8s.io/kube-openapi to v0.0.0-20240430033511-f0e62f92d13f (v1.1) by @cilium-renovate in #2398
- chore(deps): update dependency go to v1.22.2 (v1.1) by @cilium-renovate in #2394
- chore(deps): update quay.io/lvh-images/kernel-images docker tag to bpf-next-20240501.013106 (v1.1) by @cilium-renovate in #2408
- fix(deps): update module google.golang.org/protobuf to v1.34.1 (v1.1) by @cilium-renovate in #2411
- fix(deps): update module github.com/sryoya/protorand to v0.0.0-20240429201223-e7440656b2a4 (v1.1) by @cilium-renovate in #2410
- Don't create PodInfo if the pod is being deleted by @michi-covalent in #2435
- backports:1.1:tests: fix trace module testing by @tixxdz in #2437
- backports:1.1: uid username resolution support by @tixxdz in #2447
- chore(deps): update docker.io/library/alpine docker tag to v3.20.0 (v1.1) by @cilium-renovate in #2466
- helm: Add tetragon.livenessProbe value by @michi-covalent in #2471
- [v1.1] backport: bpf: use CORE for execve hook by @kkourt in #2468
- [backport/v1.1] Use gRPC-based liveness probe instead of tetra status by @tpapagian in #2480
- [v1.1] Introduce upgrade notes by @lambdanis in #2499
- backport:v1.1: btf: take first entry on multiple function matches by @tixxdz in #2504
- chore(deps): update go to v1.22.4 (v1.1) (patch) by @cilium-renovate in #2513
- [v1.1] enforcer backport by @kkourt in #2528
- Prepare for v1.1.1 release by @kkourt in #2535
- [v1.1] Makefile: exclude api tags from version by @kkourt in #2539
- v1.1: misc updates relating to release process by @kkourt in #2537
- Prepare for v1.1.2 release by @kkourt in #2543
Full Changelog: v1.1.0...v1.1.2
v1.1.0
Release notes
v1.1.0 release is here! Please consider upgrading. This edition adds some notable features including user space stack traces, the enforcer sensor to easily deny system calls, metrics improvements, and numerous other fixes and improvements. Before upgrading please review deprecated fields and metric updates to check for any changes here that may impact your upgrade.
As always huge thanks to all the contributors, especially the new contributors. Also we appreciate all the bug reports, features requests and feedback from the users. Keep it coming this helps everyone everything from reading docs and just hearing user stories is great. Reach out and file an issue or ping @jrfastab if you have any feedback.
Additionally I wanted to thank @dwindsor, @vparla and their colleagues for detailed bug reports (#2069) and identifying multiple issues that the team was able to fix/improve in this release. 🚀 See the commit list below for details.
Upgrade notes
Read the upgrade notes carefully before upgrading Tetragon.
Depending on your setup, changes listed here might require a manual intervention.
Helm Values
tetragonOperator.skipCRDCreationvalue is deprecated and will be removed. Usecrds.installMethod=noneinstead.
TracingPolicy (k8s CRD)
- The
symbolfield (string) in uprobe spec is replaced withsymbols(array of strings). If using policies with uprobes, you need to replace the symbol field. (#1975) by @olsajiri - Killer is renamed to enforcer. If using policies with killers, you need to replace
killerswithenforcersandaction: NotifyKillerwithaction: NotifyEnforcer. (#2117) by @olsajiri - To distinguish different stacktraces, kernel stacktraces are now enabled with
kernelStackTracepolicy field (renamed fromstackTrace).
Events (protobuf API)
- Deprecated
pod.labelsfield is removed. Usepod.pod_labelsinstead. (#1848) by @michi-covalent - To distinguish different stacktraces, kernel stacktraces are now posted in
kernel_stack_traceevent field (renamed fromstack_trace).
Metrics
- Metrics related to monitoring BPF maps and userspace caches are fixed: (#1950) by @sadath-12
- tetragon_map_drops_total is removed (it was duplicating tetragon_errors_total{type="process_cache_evicted"})
- tetragon_map_in_use_gauge{map="eventcache"} is removed (event cache is not a BPF map)
- tetragon_map_in_use_gauge{map="processLru"} is replaced with tetragon_process_cache_size (process cache is not a BPF map)
- Metrics with known labels values are initialized to 0 on startup. (#2162) by @lambdanis
This helps to ensure stable resources usage and metrics queries. This also involves changes in several metrics labels:- error_type label on tetragon_handler_errors_total metric is either "unknown_opcode" or "event_handler_failed" instead of the Go type of the error
- event_type label on tetragon_event_cache*_errors_total metrics is one of the values defined in Tetragon API (tetragon.EventType) instead of the Go type of the event
- error label on tetragon_event_cache_errors_total metric is "nil_process_pid"
- error label is removed from tetragon_policyfilter_metrics_total metric
- Metrics for map and cache sizes are improved: (#2291) by @lambdanis
- tetragon_map_in_use_gauge metric is renamed to tetragon_map_entries and doesn't have total label anymore
- New tetragon_map_capacity metric exposes the BPF maps capacity
- New tetragon_event_cache_entries metric measures the event cache size
- New tetragon_process_cache_size metric measures the process cache size
- New tetragon_process_cache_capacity metric exposes the process cache capacity
New Contributors
- @lmb made their first contribution in #1734
- @PhilipSchmid made their first contribution in #1780
- @hungran made their first contribution in #1797
- @sadath-12 made their first contribution in #1915
- @ioandr made their first contribution in #1965
- @rpahli made their first contribution in #2006
- @aohoyd made their first contribution in #1931
- @christian-2 made their first contribution in #2038
- @h3x-eilidh made their first contribution in #2059
- @dwindsor made their first contribution in #1986
- @next-ramses made their first contribution in #2084
- @sfc-gh-gshe made their first contribution in #2144
- @janvi01 made their first contribution in #2115
- @Jianlin-lv made their first contribution in #2222
- @f1ko made their first contribution in #2258
- @yukinakanaka made their first contribution in #2310
- @anfedotoff made their first contribution in #2175
- @strongjz made their first contribution in #2316
- @BonySmoke made their first contribution in #2231
- @zazathomas made their first contribution in #2318
- @alexeysofin made their first contribution in #2262
- @Trung-DV made their first contribution in #2354
Major Changes:
- Tetragon oci hook setup (#1842) by @kkourt
- tetragon: detect execve of anonymous binaries (#499) by @tixxdz
- Introduce an export filter type for process capabilities. (#2107) by @willfindlay
- Introduce redaction filters for censoring sensitive string data in process events. (#2243) by @willfindlay
- tracing: add multi-link uprobe support (#1914) by @olsajiri
- policyfilter: add a containerSelector that allows filtering policies by container name (#2231) by @BonySmoke
- Support user mode stacktraces in events. To enable this feature, set userStackTrace: true in the policy Post action. (#2175) by @anfedotoff
Bugfixes:
- Fix a segmentation fault related to filtering out pid information with field filters (#1700) by @willfindlay
- Fix a number of segmentation faults related to field filters. (#1712) by @willfindlay
- pkg/option: add metrics-label-filter flags (#1678) by @Jack-R-lantern
- Do not add a new entry in the execve_map during clone events that we cannot find our parent. Additionally, return early on kernel threads. (#1708) by @tpapagian
- Rework the matchBinaries selector implementation (#1731) by @mtardy
- Fix a few bugs related to field filter configuration and significantly improve performance of field filters. (#1763) by @willfindlay
- Fix a few bugs related to field filter configuration and significantly improve performance of field filters. (#1762) by @willfindlay
- Fix an issue that caused Tetragon to hang when it encounters an error early on in its init phase. (#1770) by @willfindlay
- Adds validation for sock and skb types (#1807) by @kevsecurity
- Fixes prefix and postfix matching for strings longer than the prefix or postfix maximum length (#1806) by @kevsecurity
- helm: Fix templating securityContext and tolerations (#1837) by @lambdanis
- pkg/kernels: Fix large patch numbers (#1870) by @tpapagian
- Fix a regression related to field filters that could cause top-level information to be missing from events. (#1882) by @willfindlay
- bpf: unit tests and fixes for
prepend_namefunction (#1902) by @mtardy - metrics: Do not return when we cannot find a _stats map (#1949) by @tpapagian
- bpf: read and copy proc exe at execve for matchBinaries (#1926) by @mtardy
- Dockerfile: bump bpftool revision to 7.3.0 (#1972) by @mtardy
- Fix a hang when the event exporter fails to start. (#2119) by @willfindlay
- tetra: avoid panic in the decoder (#2116) by @kkourt
- Set events node_name field to the hostname in the standalone (non-k8s) mode. (#2123) by @lambdanis
- policyfilter: fix issue in container fs scanning under cri-o (#2188) by @kkourt
- metrics: Remove pod from the queue after deleting metrics (#2287) by @lambdanis
- helm: Fix name and selector in operator ServiceMonitor (https://github.com/cilium/...