From 9f78d9ac916b7af11ffae0a6c8e0ab4c89f898c6 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Wed, 25 Feb 2026 10:23:14 +0100 Subject: [PATCH 01/15] [Metricbeat] Add zswap memory metrics support --- .../fragments/1772011445-zswap-metrics.yaml | 45 ++++++++++++ go.mod | 1 + go.sum | 4 +- metricbeat/module/system/fields.go | 2 +- .../module/system/memory/_meta/fields.yml | 69 +++++++++++++++++++ metricbeat/module/system/test_system.py | 4 +- 6 files changed, 121 insertions(+), 4 deletions(-) create mode 100644 changelog/fragments/1772011445-zswap-metrics.yaml diff --git a/changelog/fragments/1772011445-zswap-metrics.yaml b/changelog/fragments/1772011445-zswap-metrics.yaml new file mode 100644 index 000000000000..e3bd5410f324 --- /dev/null +++ b/changelog/fragments/1772011445-zswap-metrics.yaml @@ -0,0 +1,45 @@ +# REQUIRED +# Kind can be one of: +# - breaking-change: a change to previously-documented behavior +# - deprecation: functionality that is being removed in a later release +# - bug-fix: fixes a problem in a previous version +# - enhancement: extends functionality but does not break or fix existing behavior +# - feature: new functionality +# - known-issue: problems that we are aware of in a given version +# - security: impacts on the security of a product or a user’s deployment. +# - upgrade: important information for someone upgrading from a prior version +# - other: does not fit into any of the other categories +kind: feature + +# REQUIRED for all kinds +# Change summary; a 80ish characters long description of the change. +summary: Add zswap compressed swap cache metrics to system memory metricset + +# REQUIRED for breaking-change, deprecation, known-issue +# Long description; in case the summary is not enough to describe the change +# this field accommodate a description without length limits. +# description: + +# REQUIRED for breaking-change, deprecation, known-issue +# impact: + +# REQUIRED for breaking-change, deprecation, known-issue +# action: + +# REQUIRED for all kinds +# Affected component; usually one of "elastic-agent", "fleet-server", "filebeat", "metricbeat", "auditbeat", "all", etc. +component: metricbeat + +# AUTOMATED +# OPTIONAL to manually add other PR URLs +# PR URL: A link the PR that added the changeset. +# If not present is automatically filled by the tooling finding the PR where this changelog fragment has been added. +# NOTE: the tooling supports backports, so it's able to fill the original PR number instead of the backport PR number. +# Please provide it if you are adding a fragment for a different PR. +# pr: https://github.com/owner/repo/1234 + +# AUTOMATED +# OPTIONAL to manually add other issue URLs +# Issue URL; optional; the GitHub issue related to this changeset (either closes or is part of). +# If not present is automatically filled by the tooling with the issue linked to the PR number. +# issue: https://github.com/owner/repo/1234 diff --git a/go.mod b/go.mod index ed20d70c6986..8991ae54cedc 100644 --- a/go.mod +++ b/go.mod @@ -545,6 +545,7 @@ replace ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/consumption/armconsumption => github.com/elastic/azure-sdk-for-go/sdk/resourcemanager/consumption/armconsumption v1.1.0-elastic github.com/apoydence/eachers => github.com/poy/eachers v0.0.0-20181020210610-23942921fe77 //indirect, see https://github.com/elastic/beats/pull/29780 for details. github.com/dop251/goja => github.com/elastic/goja v0.0.0-20190128172624-dd2ac4456e20 + github.com/elastic/elastic-agent-system-metrics => github.com/orestisfl/elastic-agent-system-metrics v0.0.0-20260225081509-3cdacfb3739f github.com/fsnotify/fsevents => github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 github.com/fsnotify/fsnotify => github.com/elastic/fsnotify v1.6.1-0.20240920222514-49f82bdbc9e3 github.com/google/gopacket => github.com/elastic/gopacket v1.1.20-0.20241002174017-e8c5fda595e6 diff --git a/go.sum b/go.sum index 1538797e19d1..b59be2211cfd 100644 --- a/go.sum +++ b/go.sum @@ -379,8 +379,6 @@ github.com/elastic/elastic-agent-client/v7 v7.18.0 h1:zXdoErqECfvRjj1c+1Ko4VGuUn github.com/elastic/elastic-agent-client/v7 v7.18.0/go.mod h1:ChFjpIfSsQOnhWT3se5Euw/o8P4Vf77FxeObE/vUfSc= github.com/elastic/elastic-agent-libs v0.32.2 h1:2CaO4TAMcZDy0qNxh48Ui1oMc+xExKL+JkpcyOxF7XA= github.com/elastic/elastic-agent-libs v0.32.2/go.mod h1:0xUg7alsNE/WhY9DZRIdTYW75nqSHC1octIAg//j/PQ= -github.com/elastic/elastic-agent-system-metrics v0.14.1 h1:XdV3KWbug/M1dkn8h9Yth9pfdyeFR2Z1iqaypX+ohBg= -github.com/elastic/elastic-agent-system-metrics v0.14.1/go.mod h1:JNfnZrC0viAjlJRUzQKKuMpDlXgjXBn4WdWEXQF7jcA= github.com/elastic/elastic-transport-go/v8 v8.8.0 h1:7k1Ua+qluFr6p1jfJjGDl97ssJS/P7cHNInzfxgBQAo= github.com/elastic/elastic-transport-go/v8 v8.8.0/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 h1:cWPqxlPtir4RoQVCpGSRXmLqjEHpJKbR60rxh1nQZY4= @@ -886,6 +884,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= +github.com/orestisfl/elastic-agent-system-metrics v0.0.0-20260225081509-3cdacfb3739f h1:GOUyYWQy3qBDcAuoiAob4GC/vGgklj8+8Z7V+RfbX4U= +github.com/orestisfl/elastic-agent-system-metrics v0.0.0-20260225081509-3cdacfb3739f/go.mod h1:JNfnZrC0viAjlJRUzQKKuMpDlXgjXBn4WdWEXQF7jcA= github.com/osquery/osquery-go v0.0.0-20231108163517-e3cde127e724 h1:z8XmnNQeCDZB3BwVoRxcqwo7MlDdsB6AJxqTap72S7w= github.com/osquery/osquery-go v0.0.0-20231108163517-e3cde127e724/go.mod h1:mLJRc1Go8uP32LRALGvWj2lVJ+hDYyIfxDzVa+C5Yo8= github.com/oxtoacart/bpool v0.0.0-20150712133111-4e1c5567d7c2 h1:CXwSGu/LYmbjEab5aMCs5usQRVBGThelUKBNnoSOuso= diff --git a/metricbeat/module/system/fields.go b/metricbeat/module/system/fields.go index 33b8724eaa4f..90f1eb0039e6 100644 --- a/metricbeat/module/system/fields.go +++ b/metricbeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded zlib format compressed contents of module/system. func AssetSystem() string { - return "eJzsfXtvI7eS7//5FMRcHIxn19bYTs5s4j8uMBlv7jXuTGyMPWcXWCw0VHdJ4jGb7JBsycqnv+Cj3+yX1JLlrI2DnMSWyF8Vi8V6sXiGHmFzheRGKoh+QEgRReEKvbk3v3jzA0IhyECQWBHOrtD//gEhhOwfkVRYJRJFoAQJ5Cmi5BHQp7tvCLMQRRBxsUGJxAs4RWqJFcICUMAphUBBiOaCR0gtAfEYBFaELRyKyQ8IySUXahpwNieLK6REAj8gJIAClnCFFvgHhOYEaCivDKAzxHAEVygWPAApze8QUptYf1jwJHa/8dCif+7s11JKJu4PxRmKs2i6IfttOs8jbNZchIXfN8ymfx6WkIK1w03Qb1wgeMJRbPgvEsYIW7yZ1GYP4mQSB6o2vwwwhXA6pxwX/zjnIsLqCsUgAmBqADz7BbwAxOdmWRWJAMkYmEKzjVm6jATCAjC/oVgqBCtgalIZkUi0wjQBRCRiGhQlf0KYjsSSaAYinSngAqQRI6KQwGwBsjSakZ1zpDi68DNIKizUVAOu8SksL14HFwzN6yWwEr1rbJZNKAjr81vJf4Y1cluuCJQHQRITCBFhKML6H/YzJ18/fnk3Ke2dTAWgIVvnu/3adxRwpjBhElEeYOpG67uj9HrXmFWcvYMXDsWZHqcARYuSQ6B5jLAW1AUFM5/mGEZRQhUx3yton/SnrHCy1aoQUSSEhKVfp6RQzhaVP7RQo3809E8ald0YOarSJ/8XusskQHoBKa4wrcgi6pJH1CqTPdA/6FkRDhRZgUdtlJbbCzuRIA6PukvrEWaAIRnjABqWpESBIsGjHEciNDgc8YSpHYE5MT9G5j6CYECHUDEigzs5PAAdIwEcH4c5Q5Svz2JBuCBqkx4SIPtQczBOb4uShPQIeW5Q9QB+OEHuAYivMVFHyEuGNDB0whkKiXx814+OQ+qIYfjEH8fHZAliRQLtjWnze4lZSPV/LLEI19qBI0yBEEmsOvej+ONwrB8NteRz9ZLWRePdjsLnXpstkCt4Dlu2h1oibMVpwhQWG6sCnKG7IkIlmJpvrJeEWh95uYk1SyQXtcmMY1ngF1dLEOkRyMWk9oWPK0wonlFAnNGNPjy/MfLUi5GH1IsvjEERD4FOrevl5VA92NODScYd1SOnTh261ZCwRagBos+EJU+9sOFSaGM8ZDiCLXEt//QC8m3IHnCMSx4kQmgJCigPHreDpceZNrjlW/MqXm4kCTC1KG+uNTQXVYjIYqncP+EJgkSBDTLERrgF4FCeoiWwAFCkv6CWmNUm4QzSoMZEDzsh4XcUYIbkEgu7SSSOKp9xpH7fjlEpTaMzy7Al45hlViu8QiDvhyqKIUGhIE5qcSkNSCpcPGu2ifOYAOWIutMX/owFSOcQGaXIpZrYD3N2lkdQa+Plh5VEa0IpWuIVIIwi/ESiJHJRWD5H3y/Oz/+G/sVO992MXRusEKktjoupFuQNUvhRS2Me22WKIxwE5iSwx/2qPqgHi4aydZDrJUSL0C2rBxvlaW3YDU/MRjeLVmR5lkJZCMAKhFEclm/F3MEpInP0Y21YF1EXgLBCH87/pqGdarmywpXpkTiZpNz8bqVnBuji58bF+WtFlf5acZuXGxH5qwQgXpAj+eoqeyh8dTjH8aeeKQvVg5Em+S6RJducqDchBSM4N7f/obVQk1Hye24Z9bJPtCV1lCwYmjk6WkKGHvTHSchOp/1xktT/yD9S/Fuc+8dJyeiH/4sic1sL4DiJfKlmwLFxs48VcJoGQqSvZM041x7aKxbDQy3g/lKKRY65zOJlFCYcYX7/qPPiz52d3P5EfG7k2x5yr+nAIk+0nBL+Q5UVQ9IPeohC/kH/J7q5zQpSe1bCpz/DcxQDU4RZ7bkM8cXw5Tbkmexhh7CBIHj83GoK4a10M2Q5VlN5HuENYlyhmSmNXpHQHuOY0pzptTFdjL6DIAE4nJiEx4ibx1hKBQvDpA1RwPUKaZGRSaAlfJ5QuunAtxZEwd4Bmlm2RGg4ONuo/hm11BT0fWkL8GYYA6MMG9261KRNcZHqVKhiB0oIFBduJJf0JU7SGMJSJpHmjPkUkuRPY4f+/eKy1wo+P4M0DgVsHB6lg/VkU23UbrYZsapcAWll2haMiQjVPkHAWSjzGnetVsyO7bWwzwbR7tlOY3HfAP0YQ67PwZv3t7J8iDeB5PGYxksVo8ahDZdY8IUAKesGAzAleLzZxWLIbRN3e6Y+5nArAKeDTmdEjWrfZWj1wJpJdbiF6pJn9/dzvA7nqeYmtldUuL01xTnN9PJP5798qK3ynFAoXZRCW5mG+TC1ApX8T2PUqWREH+jgMFagcd0L/FZc6/WExYKsCIUFhDYAQZidZuKFHsKKBDByoVvZUi3fufz+PoTVe/3Xi+9eRHrePUDRY1ShwJP66fsE3TAkeQQowBLMDbb/ICzka4lu762/ZMpn0jKN7wnLmP4dYYmwOaetdOuzmdnVJZzZS5hKHwN8DSE6gacJgicFgmFqYMl3/mUxXt005qTBnNyaF2ZgrfPN2LW18S+J2S1jKbWKzieMhyDT8iu7J0+1WxosM5ZjbfHOCLNM5XML6BTNOQ1ByFMkNxEl7FGeGifdynSDwHODzE/N1lx1g1aLyQpaxvDdj2gu4FkVR7uC0OimowpAyVDVw6cyQHKueVzzSoD7oDZ6gW/t3EokHNbJ0hMOhPf8RkIFdFtMPxNDqc/pncwBJ1J2pIJFUNylLmqEFwsBC5yFjbQdb3ZwpRA0/+rOla7bBg5+z7dSvm8kmvOEhS3bZ4ctfUANjn7nRpm6A7mNHm1QDthafvGpcxekEYKctSjkgaxGPH1Li9pVfCu/u9DXcNZ3HcrOWqNiKxutClDvyGcDaNRBB0Cfzj8cQqtbTwzQmCbS8PRd3T2lHIe76KhPd9/MGAivQOAF7KhV3ly8Garp9Z8IW0znOFBcXKGL8/Nh2v5zAb4xprN+JRFhiQL/Hn7z92NC+neHtUHhvLk4KrQXHrh+3KYm4LlkwiMLKCRZkqBfrr9OznMthV9gxqDo2aSrQap2pMl8yE/Rfm/x1LSz7cqzkw1ph6iFk1y/nxFCSQfzbcy55poota/gQX2ab/qI7QXrgG6zdQLzVLuxqNyaZw5XsflWyMFGfggLaBJmHw44s2mX2SY1JwMcLG0XrtrUs2Q+ByHRiYTMIXaswYFKMJ1UzBC/a6En6N0waWeR+mSmSwnmrObJH71j2kv67AJs51TUkXw0o+Xd/CA0bpBe3i5Xo9Wk925bdACz2RFU4Gdho9woJMBpbGn0dUi0pJvbujNQa3D35dy+Y6H5rzxi5VbIe5VS/1Q/iUKIgYWZj3p7bwOf5mZwCAoTKk9RbHQ1CpYQPGbRgsJG+94gEuj5HT3Hbr9eulGISBRgGiTUhDRmWC9LgRfl5HI53P0FojxjZoIh72PBg/cRRITN+WmdF/qHi+KE5mtFcMaHyjVfpunIvDx6FkBPEdQdRP1zy9Dt/X8iYgjFSCZRVUunMkSYa5eWitBtFlw4dd+HP+ob260iz8TCfb2vWDSoN9RHxaFONYd6urL1ZF1tl3aVFa1xVbM167xYwJw8XaE3/2XI+u+qDVgOKmnJM6PktpU2p4hUJJA2hwhhmkLUOEq9T8vRp6HhmWcOLuTE9BWl51Lrxjobhve5NGKe5R/O3uPbqUkj47M6RFBrLh538m7cGAX3xv2mWFFZavGZ/t1Uwc4rEbzDFVOCWg50eI0jWQXfp7KSJ+qgCZ5qeZgsNf31QiTsWREKCICsij17GxkZ4+ARRq2XycG4sXsybH9IRIakJ2MIm4AQXOyHLXZoV/dtERG26LFWh8IkgYXdiAibhILHcX/PdhAiwgIemTIJt3amL8gatL9gp+3BsX0C5Ila8HaAlW7gmK7xpn6anmvT6RqLNWHGSv71/hrNIMCJBGcQawNcQMyFymOAzTX0lfNoKpMowj2ibtlhMQOF+51XX9yJZAvM2EJbhwvKZ5hmqt1Y+0Rtep4/JJ78i3e5+OyfUDMKOhbs5s6mdUE0NI0Oxpzt4VPHdEk45nTfrrunm1KiYOQ5PxMF7ROTIBp1FT998VCaSbmKd7O4VFywtn53UvtAIkB3gisecIpOfn+4e1ft8Y5atswKhNSTlabSn7lCv0wuJ+etmyGlbMllmVPNhlgrB7XaEhBxBej3hztzjQgEwmFYLvAtaM75XIJv6prK7JwXpCKR8RvtoFpxmgSHCdprCt/KLA5LefBYq1W1cN9K9+cTwhCTnsRv+UkMtJUsuDEK8hDnL2bgECt8Wuy1f1p8AKRNOna3vjEluHpyxFgtM7onnq9GZCGwJdS9LFKfsfrGB9q9FG/gex9FNHFDT75u8uvf7EN9vMOEWGizdst5F9vPW/9qnxlZEk1dV0bvxNoDW9QuqnWsdl755IZOCwjrm7GQDYlCStjIMjdPKEUBjyLMwjM9vPXXFbfPlxRBnbqUkDFXPOFrLBZJZOLiEmIssLO5vNUxZMG4gCme8RVcocvzn372n8QSxBZb27bT2W5fB+ttBUyff4QtpiER5mbSZovZga36H//2l9MdJQDYigjO9MqhFRYEzyjIZimwHSa1Svdd5cKF27PoNwHw6/31qY3QW6V/e4/+06/Cys080Xjx2U93385kDAGZk6AYmI3zi8BDo66N7RhQV3ywZwjNcze69JxSW5+GKljbVMM4U3tCmzXp1GBtUNs++GSkx+mLJl53NwFDzxzBHPS0VRKH5vS+UQUHVpKIUCycaead9m96loyRxQlCImOKN7kHq3icquz0fnr9KrKfuQ2tVV4Uhz2Ph+Ujj/mIWEZ0/phYqQltlcUtvVDQgfWCv0dKFbCViX3itWnw1uVt4afvjbYyurBuhA9B1//tNtRWjIX6F1B8Md8deh51nXdd55WnwhwdIkmYSUDat8PzAt0Sy2Iu2ybyK0UWn3gUEYU+LbFYADpRnsKmbGRszZXUu8QML0DoWYzOJMpk9U0iyLlUKZJ3WYtqlw2wRYVEdkuqkPLZEpuayV9BklBvrXtQ6J78CZOKthj88l/XiqSN953RiyQoI2WnDdd4qtw6vjNou8cRffSZFvzPJAlm7tBHTCLb1sRTHrEzZG8wL/9Z4Cv08+Til8lFtZvMEHpL5RT5SZ9SfSKT2MX/034+tl7InZAOI7qcfJj8+NO/NtxpLTX6Qf21/bVp6fP+No33nyJs1MoaizAtLrJVQ/91d3P93+8Jn5QaEDmsGvlQFyXALACq95Hp4jDdSj1V6lzqCdOiesynPLVFVGY9GFfacppB2tCjRS8ADveEcw7K1HZmnZSk4uY6gjasPV2gSg049oQpbXCSxmv7ITJMCpa43upqVzymKY1hkP63k8t3xjROXRe50WqZtqgQy6u9QDMF8opnIMzRrOcrZVu9rKq3/RgOJ0iPUT3iWVrQ1ZcjoyIwQ3ZAyOqX/JGsLYp8fyMUss9w4Xz8NHJv3S6XpEhrbYgsBIPmns5sVrVpEXNxorGNXh5D/d2c7SVxXuaBNOP39mUoiYiaSD5vNnt287T00HaWtKCwA3p2VnqHLEX7CmMHmGldHiy1u1w7bbFCmG2MX9XFiiWuBSvHYoUeel+sKIytWWFsihkggdPGr4LzhmYJgW/jbb0l0woCvYEMHpkfbnYmoy7MVWbjL2H5aGuMIyg/GJ3+uG9lF8kF5LUTNSdZ+1N2ILkksTaQcW1AxtmZZocb2TBQQmkCXnjoqWDxDDV2apkd1JEZ6cFg5KTp5to4jtwc1JhSR41EWEoeEKOH10QtrS2k2eyPTd2YqJ4ARCR7q+y1cj3qzXVmuBZHN6MZutN6du+oeNZSJFZkUYzVcn9M0qOnhoyTo2o+2v1aJjMbJ3srbV8C281lEMvMbIdgmht36ryEnU+T1Nvg8wxytsXSK4zVFGAzuFrCBLUqlBqi5uUM4iRfKCS16ZxQsO/lu55BBi6Wj1nq0m1y75gfg9RBMIcHZ0pw7SgYtbvmWcIwm0rIU/Tpt3uj3b4++AfVf5cKs9CCSTtL0g2aYyLyoZwSjAXXnCacYUqr0TvHHXNb1IWc0phleqsnXbDsCsoayGKpJujrQwGGd1wBmLoAaAWUBCULr515w7veIAjKu0uXF8Aw2V3WQ2EiTNtbtCArYCgGQXjYsNeYzd6wEERG6z8uT4tDE63zxSJVeJE+612ywin15vh5ECc4CJRpWYXDkOiFONWIznKeFE+GBWcmFPePpi6ObuyGkwF1nQ6oh/JD1R1zc53SW5X2VgANuncrCP5Nq3/uttHBjaP5dHMrkeYGcSuVTUqpRqOFubpsHbNt5VEpV4sXMKm1zarDa1DiLQglWl06X4gwxDDjrkVlT1D+IGgZVVMUtBesvsxpzgqOA6aQiSvj6gEQxB4XTx90JoeePvQwbBG9r0rWwW3LthK6nqw64FL64XXiTF+J2tuiOrNlmyVtfKWyDm5bBhbQ9WbVARfVB69V7wdzOXGGRdKu/1uWs+8RZ+YxZ7Bb3IgEIl1dYwYu+RoJWCQUC+1aNg5lqX9b7IGp7R8BkiciAInkkic0NM49YEp5gFXj1QkfT/5IuML7Z8lDJQ/ayBhrcGLqvyBsIKXmPC7akiJhqR2pTTK71OgESxTCnNjYSTOXi8LR1O7Bxz2Tx9o37z6ytHzTpX5N9tjl5kEb5pkBZZ/VLhjmjYOW2tqmkZcSWyeFoql0stBZ8c2cjBPHFBvDihJpXiu4RFroyWJZDOm0sleoI96v2b5s5m/DfjU56qEbVaiJSJiJVx4DM2yFP1uAVMZLJizhiXR7rnFgwipxvvImtq97+7k2xLZ3UrNvNuW10U7VmDuuK0ylUTqlDaM3RVnFNCs3vbUNK4DiWPaWEEu6WgquFIXw4EzQsiKbVnVm2404bOjEEEk8j4anP8WWzoob3Z7emFNL2DgGPS1xYppHmudP5q16qaDutFSXVsgG1YlA5izsq/6rHN//EZqVExkSwsSWaZsrM8Ut+q5wjuYL0mFh+BbKlAEU7yU6U2x1OYgxjRb0IRhTsKpH44s/MpVfVAIpE29lDRoeY7hzo6GTVBkajQtM//ldvR9a8adv6EHyFjuhD+Ia6vvUDEmPEGfVKUQBS2Wbwds10B+UCpswK2dZDDCltmXGLvKKJF6cdzgmqLdzgnrVdhV//AvKVyDQxTnq8vmKZHw4UjI+DCPjx/MjpePH82GENLW1qZPRESPYkQqr/e71rkrVTz/PfZ60OFqjbn1KTaKVhLTnzkeSRAlVmAFPZEMmxDHuVREcCxmviqCLjB6KwLO1f0sobdjatcEKiVcctNQv90q+ulRq+qaJ5xZ0+vOa4sp+njnF5e5QHSakV3x+umBslxqxauVfTMJ32NyDyGxWH72q9AfQm1FaEjzzPlGlRl+rEE1z+o1h69YeRT8eqk4rN9fsXbWEKVdpSSSaJyxISxnMm4iuu3pqHtiLVlj7rlo2TGGDezd3WMynPf82TOIzjhRFOBNfk0mKeNh3UQv4xl7U7F5dqkzq121PfQtZvu02nM37ENBxaGkWySFUdmX+RhenE3vL491wuepMBG63Gg9Nq1G8sDmybPVLIj4vPbvKlx7bWw6H2lsopD+lVgq7n+CZaNYiZZmscoYAB0vz0cpJ3hLDJrL7KG+9poqGWan2umpaYGy79rwaqnsyVIcbpBFEE1vC03RFCfVRq10X+QYQXnycwZVGzTaNtYon6WXRvrmBnOAIPx0P0UvISjgrdxFHpdzenDhGqvP6A2vGlRu5a2rTzkFzUntrNv8xfdXfuUvc9eJiE9kqpK8S2fdQ19ybY0KT/RcVlG8NufRd5Va6vUByUlnTd2hdazGU/wgwz1MMERe+PrCwpOTxtWlsJZdLTv2atIhzSRbL5wGqZx6C9PBKJ2tj8OTD2QnY9EoZqSq3LtSFUn6BlCBxDGEWbrbKn8IKmuJ3fdNolK9bAnvDSwVz8Wxa8+LsWkZGnb4gdH3mj/DTqNPnotRnds6jUWfn5oragNmnj6RHJmUoBD2oltneSPThMSoKPaA+xWoIem9uuT42228J6QMmaXuQkiFonk4xDRvso5TORmocb0zbKWPWsdqNtV4t5vJ9jVklprQ4irsy6+hNzbRczglclWnt1x/2YmBqrr0Mi0uuX47NJdcvzuqS62PyNapa1+zsxhFPatvfeCV176OZ9leb00PIq835anO+AJvTB+PxWKOMLsewt2Dj4/FHG6ss6Aw6No46nDNHbyLyeYU/bWZf48BbmYOPxxlwrK7bmBFHPfZUBfFRqoqSjtCuw8Onu/zpzlrHyiGEHqtqKOqEKsUeHdE45i7a07DpJegJx6wqn2oKo4tLW/uPGbeOU2lUF7L5npXXWWgl3VYpVJ89KhPcmrwvkWzfRM5boN7ctnSRqEDoIaQjAumByL74O8WM+99FLGM7zAb6yDjbRDyRebDFpO1Mqbl9odjcRTkTEABTdHNmVNDJ56/fmqWGEqlK74tE8VyiE7mMIHrn6yncn3lzQg99Gv1GKJzNcPBYek3eMefz128ZuVtQZXh9YHru9KlpJh57jZYEBBbBkgSYTi2rpsd1XhQrYLKgYwrbmZTZq1cF5WkPhOabmKOwS66Pk1t5zKk33xqHLPNzO76lb6e/HE2avfZeVBelndccwqvuyK049Qxqs5lTfoXq5dEW0hHhOIbwuCi+J38WutKfWYjI/Z9GKptV8bg6J8YLmM5xQjtiunu49K51BM5ajpZddiXIYgHCBH/jtlyPgT5QHv7JxfQF0G2AdhCO3nzRn3pj/1OipRYhljd0dRESHKjEXCZYYolUtd19/mOahKv0BTDT2S8kxZanPSVKThtjUXtoJKEnNP803SR4+hJ9dp0Cp8+kbkEHT9pLqvdFCE8KnuuupLQ9YNKLlEMci66KUO8QgZm0D0miZbIAw5d3p4jx5szWuIarkHKqZz4arv1eaZnP5whnjPTya9h9iDWOj4bW+yzDv+XqJQxWJFB4dkQn/pdCjDrAjHFle48FFJMIwsGUHk+7jI53YOxLML9Mfiw971z8+Yv32+jkD+rBI/R6X/+YyHi9r99Fxnb39f+ntuJ41RGvOuJVR3Th2r6nx4w+1h55Q8PuSv5KefCIbm5fr0ju64rkFjckbeuHY7HxbTFC7RE97Z3NQQibNNZerwms6PNkZoQq1O5K4+SopeZnEJsIP0xrk5wBN+9vEY/B9hU0jU41t91hSekOhJtOlJC/0OWaDJr3XjklQe1BxcIG3FEROAD/uNTKIHv5UUBMcaDnN7rmVTscRjv4SBi34iAGcWblVK+3e/6+d8nB1ihqA41avbAjUZ2qZN9Ijif60Td4cTg35bVZ6Ks/8epP9MG1dczhcJHIrG/M6xZ+3cK70vHX2JS5DWAfbpVJFOFSJyRFFAVNoc2w39c/4N2gLbarGyJ7wq7ymiNIJBLG7CMqthSKy5KVKkAfynrSYud039Zs43AjRzvM7qpflsM2cIms4S28oWEJGwlJnsdMGTYECwlr3WV2B2LiuUNQSAoQ74Ml6cDD0Cgex+B/C3wnMHbcQVj+5NGMjL9CdthBSELA47NED9qEAt2otxKtQGxQwih5BOqSvUTZx2pxHAMWaJaYBnrGODdPaWCKJFGJC5EQhSK8cWU8ftLW+BE8Nxh3Jy8d+Ew7PI3sRreMbtCcJ8wYIpyGINxr7//PFhu5ZEbDs/V6lr1A3y/sGIvHPewyO+xY0E8RF+kbryAUJuatWPsaawNdCXtkfF0t1hqBsIyWwushS+vba/c6oSF762oglCCw0natQESmiPxw1VIArtkolQP/wf+hRqu83HeUJ0yZAptCY103rbW8XcfNyiBdj5j7z9FWZvuxFRqw0E12jDqEzWFPE2quSfCW86f8cIOi2QbdvL+d1Gw0gUsBzcF2V+X7w60o/U+vHPjDmF3ijfOGzzZo1XQmY1V712iHeU0hNFEbpyd6IPA1SdgBwMMSzFrYccsA/BzYsGCKTRPr8VB8cm2H9ODIDn6KiMXy9ePNNcJC4I19Ki5MWIiZQn7rgMjH9AbRSJqvoPpc2bqdpGX+fVr4ZobCIpnOtEQaxdaGyZQRjs8SM2zYzRLbwmD8+V1rhM75zf6q5w5agtql1sJbSTWKcGwcIrw2KOwRKb0ojb4dV3IKlaVm8KLQLDkNzU0EdHF++dPZbKMghdAGT+/PPdhKDp/zsB1EW00vTMxMz9uBNtNPICq6y382ZSfODBTud2YVYwTuuV03mzzAoWVu/haOqTqhxS44OJwaadtlNj0KKh1MbXPuPF16Fg6YMpntTqVMZmfDiJxKwmqBWTtnWAdTm9BcFlE4itMJqUnqWPN5idkCJuimBMXcD7BnD2ZhahmeWk9C/09JlMTlhzWKqOEJgmnAw534dH/zfz7938/XSI9j6xwKCN9KFGmnxDkHDQ4JUfay1u5rVlwvPW69PXF91hWwkItpLEBCVdkPmj0EcydnCIrs4dbtXBenbVIFhKXkAcEKQrQmatkotd2+SxAnrh2G93GHAQ7E3TeX4+14ub3Qc4yLTUfTkf7zlxqF1C5QVic3mZeJuXCz06yFTgw2l9N7YQpnAqg1F4+NOHqVrrhB8gLVpj6KvUpVDn3V1pZTNVwsK6CKcfAI21/rG4zLzdeFjCdqV2jeaZtuqBXn3WmhPItQnLNuW3ENbBe3/+HTnRtF5gaePdp2S6qERECzU4opqfVLirFaZhtn0vT9iCxskdsVUiJpKEjNG79FpFYN3heB/twuk1MeYDohVVVhp6/9Gp5wFFO4Qhe/XE7OJ5eTC8QFujw/v7g6v/7156uPv/779dXPf//xw9XVxTCz/rPGgW7uEA5DAVK6K44BZmim7Rd0c7f6SU92c7f6kH2oD20xF/5z2yPiGX2X1beZe8HXU3VgEhBxBUfA8K8GyMgcd9QdhOWOgP48X3I5xIDLgP3bh7PLi4uzi4t/O/vxw4StJ+4vk4DXor4dmO8eviIBAReh99AX6ZpM0I3SJjqfKUwYhGhFMBKwAiHrx/PNHaKcPzaWdFbYAIqG05gmcsrZEHM648fW5GsrGOZzCFxdZ3xmw4chN17ACTx8vn6XWsaOF3rRbIMRzgBFvF7jR/EM6AT9xkWK7NQMoEf71wvjdr+Zcz6ZYTFZcIrZYsLFYvJG8/dN8Re1WPlDdvGdCxSCAhERF1y3w6OARyBd+TZDEM0gDCFEAY83WVAUq9rj6OYLS6Xiq/fv42RGSSCT+Zw8GRy9ZXkKQtQaAuwQePp3PZz70CwlM8CJhHxNjAQ6cUOueVkH4rQuI67VMnedcc3fHHTEpcMEPIow2xaEJwizHYoopGTQxutYNnP/xdGGSkO34oAnP4ZuTsATBIm5Tb0LP8wbiINFwv+t4RM3htQ6pp4nlE4HiELZBm6uTbo3f0eev+9amsTniMfAMvuZ5AVJLkCwkwWNGwoPOoMTdUH+aOSYMWtRVxehMybR6pYTpmABvu4pPW4oaGCGh83oCkYnkQpaM7s7Y8mmMMaPP2ymAr+FueW6aA9s+7XpeJuwmSFdvncPhn0pN0suupJpwOcUzbC0dbR5aAZT7T5o88y2YTHdSWxALTaXEsifMEGfuBAgY/NUs+Lpy4kSTFHPe60x38uNfM9AvSfx6qf3KoinEUSuhgOvMKFakeqpTQXHpPnOYn2noWHRnmaBal9d1DMAxEW8xO1tfppXuidag9judbdIbloItcinS9vM31YKmnTI2ASk+qSb7/30yh7waWhteqYKD6S2CIhcektKRgaY5wAL0w7iZkC5hOkaN76NsRe0FYRaR0xzJFNvMqyMW5HoOGBnQPqglhs2lc2V8gcDneLoi1lAsDoGzBpHH8xzwsyaVENBBwedARmCuhr/eTbUl31QUyzVFAe+DMxBQac4+mDWuuYgJ0i3yiNs4UOcOWnhqObrt+u/iPmqCXlG8zUJj9F8bV9d1NN8PbTx14S65V+y3RFXriUOjhJ8t0N8Lzezdr0Z2CIVFfspF0vYMdWW2ADJJPJXM3hSA+n2Sb9a+TNhcaKm6YciQinxlw/0KGa9vU9pJaw0VL1ULJEgZCfvtygU+8wXCwjPCLOvakuQknBWDSC38bghnLZ1iW/eM8KB8c4qoXbTcId5P7JiaoTyBdGaqzpFS3uKHWm+/jWRrorTjN6HA54k7I4o9NezGqGCNDQsgK9WZJc1yISvb2lKOT3hRTLjnEItPtCJRH/NXL0IrGbCaWaolSO7lIr5VyR947ZS9NeCIeBjS0VhNayCDj2z5CX/OKwdVlvXky8BCc4VuuunE+waTQemXDuP0I+ltKDLSeePw1YA5f/y/wMAAP//MLuwgg==" + return "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" } diff --git a/metricbeat/module/system/memory/_meta/fields.yml b/metricbeat/module/system/memory/_meta/fields.yml index 95314a78b660..772a1dc5a9b3 100644 --- a/metricbeat/module/system/memory/_meta/fields.yml +++ b/metricbeat/module/system/memory/_meta/fields.yml @@ -91,3 +91,72 @@ format: percent description: > The percentage of used swap memory. + + - name: zswap + type: group + description: > + zswap compressed swap cache metrics. Available on Linux when zswap is enabled. + fields: + - name: compressed + type: long + format: bytes + description: > + Current compressed size of data stored in zswap. + + - name: uncompressed + type: long + format: bytes + description: > + Original uncompressed size of data stored in zswap. + + - name: debug + type: group + description: > + Detailed zswap statistics from /sys/kernel/debug/zswap. + Requires debugfs to be mounted and accessible. + fields: + - name: pool_limit_hit + type: long + description: > + Number of times the pool limit was reached. + + - name: pool_total_size + type: long + format: bytes + description: > + Total size of the zswap pool in bytes. + + - name: reject_alloc_fail + type: long + description: > + Number of pages rejected due to zpool allocation failure. + + - name: reject_compress_fail + type: long + description: > + Number of pages rejected due to compression failure. + + - name: reject_compress_poor + type: long + description: > + Number of pages rejected due to poor compression ratio. + + - name: reject_kmemcache_fail + type: long + description: > + Number of pages rejected due to kmemcache allocation failure. + + - name: reject_reclaim_fail + type: long + description: > + Number of pages rejected due to reclaim failure. + + - name: stored_pages + type: long + description: > + Number of pages currently stored in zswap. + + - name: written_back_pages + type: long + description: > + Number of pages written back from zswap to swap. diff --git a/metricbeat/module/system/test_system.py b/metricbeat/module/system/test_system.py index 8509a0cae244..6bc157f384d4 100644 --- a/metricbeat/module/system/test_system.py +++ b/metricbeat/module/system/test_system.py @@ -102,7 +102,7 @@ def is_cpuinfo_supported(): "actual.used.pct"] } SYSTEM_MEMORY[metricbeat.P_LINUX] = SYSTEM_MEMORY[metricbeat.P_DEF] + \ - ["cached", "hugepages", "page_stats"] + ["cached", "hugepages", "page_stats", "zswap"] SYSTEM_MEMORY_FIELDS_LINUX = ["swap", "actual.free", "free", "total", "cached", "used.bytes", "used.pct", "actual.used.bytes", "actual.used.pct"] @@ -351,6 +351,8 @@ def test_memory(self): if re.match("(?i)linux", sys.platform) and not "page_stats" in memory: # Ensure presence of page_stats only in Linux memory["page_stats"] = None + if re.match("(?i)linux", sys.platform) and not "zswap" in memory: + memory["zswap"] = None self.assert_fields_for_platform(SYSTEM_MEMORY, memory) From feb1d4d06f17dcf9e1437932bd9d9c49d1e38aa2 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Wed, 25 Feb 2026 11:45:48 +0100 Subject: [PATCH 02/15] make check --- .../metricbeat/exported-fields-system.md | 80 +++++++++++++++++++ metricbeat/helper/server/udp/udp_test.go | 7 +- 2 files changed, 83 insertions(+), 4 deletions(-) diff --git a/docs/reference/metricbeat/exported-fields-system.md b/docs/reference/metricbeat/exported-fields-system.md index 2f6e2bfcf186..049a00abea30 100644 --- a/docs/reference/metricbeat/exported-fields-system.md +++ b/docs/reference/metricbeat/exported-fields-system.md @@ -776,6 +776,86 @@ This group contains statistics related to the swap memory usage on the system. format: percent +## zswap [_zswap] + +zswap compressed swap cache metrics. Available on Linux when zswap is enabled. + +**`system.memory.zswap.compressed`** +: Current compressed size of data stored in zswap. + + type: long + + format: bytes + + +**`system.memory.zswap.uncompressed`** +: Original uncompressed size of data stored in zswap. + + type: long + + format: bytes + + +## debug [_debug] + +Detailed zswap statistics from /sys/kernel/debug/zswap. Requires debugfs to be mounted and accessible. + +**`system.memory.zswap.debug.pool_limit_hit`** +: Number of times the pool limit was reached. + + type: long + + +**`system.memory.zswap.debug.pool_total_size`** +: Total size of the zswap pool in bytes. + + type: long + + format: bytes + + +**`system.memory.zswap.debug.reject_alloc_fail`** +: Number of pages rejected due to zpool allocation failure. + + type: long + + +**`system.memory.zswap.debug.reject_compress_fail`** +: Number of pages rejected due to compression failure. + + type: long + + +**`system.memory.zswap.debug.reject_compress_poor`** +: Number of pages rejected due to poor compression ratio. + + type: long + + +**`system.memory.zswap.debug.reject_kmemcache_fail`** +: Number of pages rejected due to kmemcache allocation failure. + + type: long + + +**`system.memory.zswap.debug.reject_reclaim_fail`** +: Number of pages rejected due to reclaim failure. + + type: long + + +**`system.memory.zswap.debug.stored_pages`** +: Number of pages currently stored in zswap. + + type: long + + +**`system.memory.zswap.debug.written_back_pages`** +: Number of pages written back from zswap to swap. + + type: long + + ## network [_network] `network` contains network IO metrics for a single network interface. diff --git a/metricbeat/helper/server/udp/udp_test.go b/metricbeat/helper/server/udp/udp_test.go index 8ffa88f0ca9f..e649b6076d1f 100644 --- a/metricbeat/helper/server/udp/udp_test.go +++ b/metricbeat/helper/server/udp/udp_test.go @@ -20,8 +20,8 @@ package udp import ( - "fmt" "net" + "strconv" "testing" "github.com/stretchr/testify/assert" @@ -31,7 +31,7 @@ import ( ) func GetTestUdpServer(host string, port int) (server.Server, error) { - addr, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", host, port)) + addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(host, strconv.Itoa(port))) if err != nil { return nil, err @@ -78,8 +78,7 @@ func TestUdpServer(t *testing.T) { } func writeToServer(t *testing.T, message, host string, port int) { - servAddr := fmt.Sprintf("%s:%d", host, port) - conn, err := net.Dial("udp", servAddr) + conn, err := net.Dial("udp", net.JoinHostPort(host, strconv.Itoa(port))) if err != nil { t.Error(err) t.FailNow() From d5f5908c5c0b2b85da184a99056af002bd902569 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Wed, 25 Feb 2026 11:48:06 +0100 Subject: [PATCH 03/15] make check-default --- NOTICE.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index a5c0c3c8876d..039698ad47f1 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -11174,12 +11174,12 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-l -------------------------------------------------------------------------------- -Dependency : github.com/elastic/elastic-agent-system-metrics -Version: v0.14.1 +Dependency : github.com/orestisfl/elastic-agent-system-metrics +Version: v0.0.0-20260225081509-3cdacfb3739f Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.14.1/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/orestisfl/elastic-agent-system-metrics@v0.0.0-20260225081509-3cdacfb3739f/LICENSE.txt: Apache License Version 2.0, January 2004 From 6ed3a304f252dbf05e44251827a95e34f049e026 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Thu, 26 Feb 2026 16:14:52 +0100 Subject: [PATCH 04/15] v0.14.2 --- go.mod | 3 +-- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 8991ae54cedc..17db3bb1c257 100644 --- a/go.mod +++ b/go.mod @@ -173,7 +173,7 @@ require ( github.com/elastic/ebpfevents v0.8.0 github.com/elastic/elastic-agent-autodiscover v0.10.2 github.com/elastic/elastic-agent-libs v0.32.2 - github.com/elastic/elastic-agent-system-metrics v0.14.1 + github.com/elastic/elastic-agent-system-metrics v0.14.2 github.com/elastic/go-elasticsearch/v8 v8.19.0 github.com/elastic/go-freelru v0.16.0 github.com/elastic/go-quark v0.3.0 @@ -545,7 +545,6 @@ replace ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/consumption/armconsumption => github.com/elastic/azure-sdk-for-go/sdk/resourcemanager/consumption/armconsumption v1.1.0-elastic github.com/apoydence/eachers => github.com/poy/eachers v0.0.0-20181020210610-23942921fe77 //indirect, see https://github.com/elastic/beats/pull/29780 for details. github.com/dop251/goja => github.com/elastic/goja v0.0.0-20190128172624-dd2ac4456e20 - github.com/elastic/elastic-agent-system-metrics => github.com/orestisfl/elastic-agent-system-metrics v0.0.0-20260225081509-3cdacfb3739f github.com/fsnotify/fsevents => github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 github.com/fsnotify/fsnotify => github.com/elastic/fsnotify v1.6.1-0.20240920222514-49f82bdbc9e3 github.com/google/gopacket => github.com/elastic/gopacket v1.1.20-0.20241002174017-e8c5fda595e6 diff --git a/go.sum b/go.sum index b59be2211cfd..e7b3e8a1afa9 100644 --- a/go.sum +++ b/go.sum @@ -379,6 +379,8 @@ github.com/elastic/elastic-agent-client/v7 v7.18.0 h1:zXdoErqECfvRjj1c+1Ko4VGuUn github.com/elastic/elastic-agent-client/v7 v7.18.0/go.mod h1:ChFjpIfSsQOnhWT3se5Euw/o8P4Vf77FxeObE/vUfSc= github.com/elastic/elastic-agent-libs v0.32.2 h1:2CaO4TAMcZDy0qNxh48Ui1oMc+xExKL+JkpcyOxF7XA= github.com/elastic/elastic-agent-libs v0.32.2/go.mod h1:0xUg7alsNE/WhY9DZRIdTYW75nqSHC1octIAg//j/PQ= +github.com/elastic/elastic-agent-system-metrics v0.14.2 h1:OduTwpW4ZiEG3kzMGg31Y0ApJ5fABYFG1U8F5+J3svY= +github.com/elastic/elastic-agent-system-metrics v0.14.2/go.mod h1:JNfnZrC0viAjlJRUzQKKuMpDlXgjXBn4WdWEXQF7jcA= github.com/elastic/elastic-transport-go/v8 v8.8.0 h1:7k1Ua+qluFr6p1jfJjGDl97ssJS/P7cHNInzfxgBQAo= github.com/elastic/elastic-transport-go/v8 v8.8.0/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 h1:cWPqxlPtir4RoQVCpGSRXmLqjEHpJKbR60rxh1nQZY4= @@ -884,8 +886,6 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= -github.com/orestisfl/elastic-agent-system-metrics v0.0.0-20260225081509-3cdacfb3739f h1:GOUyYWQy3qBDcAuoiAob4GC/vGgklj8+8Z7V+RfbX4U= -github.com/orestisfl/elastic-agent-system-metrics v0.0.0-20260225081509-3cdacfb3739f/go.mod h1:JNfnZrC0viAjlJRUzQKKuMpDlXgjXBn4WdWEXQF7jcA= github.com/osquery/osquery-go v0.0.0-20231108163517-e3cde127e724 h1:z8XmnNQeCDZB3BwVoRxcqwo7MlDdsB6AJxqTap72S7w= github.com/osquery/osquery-go v0.0.0-20231108163517-e3cde127e724/go.mod h1:mLJRc1Go8uP32LRALGvWj2lVJ+hDYyIfxDzVa+C5Yo8= github.com/oxtoacart/bpool v0.0.0-20150712133111-4e1c5567d7c2 h1:CXwSGu/LYmbjEab5aMCs5usQRVBGThelUKBNnoSOuso= From bfa8436dadcfce7ae2fe759dd73cacfc28b95722 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Thu, 26 Feb 2026 16:16:09 +0100 Subject: [PATCH 05/15] NOTICE.txt --- NOTICE.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index 039698ad47f1..41c6cb80bd6d 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -11174,12 +11174,12 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-l -------------------------------------------------------------------------------- -Dependency : github.com/orestisfl/elastic-agent-system-metrics -Version: v0.0.0-20260225081509-3cdacfb3739f +Dependency : github.com/elastic/elastic-agent-system-metrics +Version: v0.14.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/orestisfl/elastic-agent-system-metrics@v0.0.0-20260225081509-3cdacfb3739f/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.14.2/LICENSE.txt: Apache License Version 2.0, January 2004 From fa8d9e750b3f180db3f3c25de95acb94cbaf1c9c Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Mon, 2 Mar 2026 17:00:42 +0100 Subject: [PATCH 06/15] cfs.weight field --- metricbeat/module/system/fields.go | 2 +- metricbeat/module/system/process/_meta/fields.yml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/metricbeat/module/system/fields.go b/metricbeat/module/system/fields.go index 90f1eb0039e6..abefc65bec33 100644 --- a/metricbeat/module/system/fields.go +++ b/metricbeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded zlib format compressed contents of module/system. func AssetSystem() string { - return "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" + return "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" } diff --git a/metricbeat/module/system/process/_meta/fields.yml b/metricbeat/module/system/process/_meta/fields.yml index 595adeb811b9..e88de1dde2f3 100644 --- a/metricbeat/module/system/process/_meta/fields.yml +++ b/metricbeat/module/system/process/_meta/fields.yml @@ -265,6 +265,13 @@ available to the tasks in a cgroup. The value specified in the cpu.shares file must be 2 or higher. + - name: cfs.weight + type: long + description: > + CPU weight for the cgroup (cgroupv2). Used by the CFS + scheduler to determine the share of CPU time available + to the cgroup. Range is 1 to 10000, default 100. + - name: rt.period.us type: long description: > From d5f8b934c58a8a33b08adeff25ad547bd3f0ae75 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Mon, 2 Mar 2026 18:05:02 +0100 Subject: [PATCH 07/15] make check --- docs/reference/metricbeat/exported-fields-system.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/reference/metricbeat/exported-fields-system.md b/docs/reference/metricbeat/exported-fields-system.md index 148fc5d95d49..1495e6320cf8 100644 --- a/docs/reference/metricbeat/exported-fields-system.md +++ b/docs/reference/metricbeat/exported-fields-system.md @@ -1318,6 +1318,12 @@ cgroupv2 stats type: long +**`system.process.cgroup.cpu.cfs.weight`** +: CPU weight for the cgroup (cgroupv2). Used by the CFS scheduler to determine the share of CPU time available to the cgroup. Range is 1 to 10000, default 100. + + type: long + + **`system.process.cgroup.cpu.rt.period.us`** : Period of time in microseconds for how regularly a cgroup's access to CPU resources is reallocated. From 39cfbbcbae99d2b252f784f3922c3702bfa77af7 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Tue, 3 Mar 2026 13:04:57 +0100 Subject: [PATCH 08/15] Update to 0.14.3 --- .../metricbeat/exported-fields-system.md | 26 ++++++++++++++----- go.mod | 4 +-- go.sum | 12 +++------ metricbeat/module/system/fields.go | 2 +- .../module/system/memory/_meta/fields.yml | 24 ++++++++++++----- 5 files changed, 43 insertions(+), 25 deletions(-) diff --git a/docs/reference/metricbeat/exported-fields-system.md b/docs/reference/metricbeat/exported-fields-system.md index 1495e6320cf8..f9a3122da132 100644 --- a/docs/reference/metricbeat/exported-fields-system.md +++ b/docs/reference/metricbeat/exported-fields-system.md @@ -800,8 +800,14 @@ zswap compressed swap cache metrics. Available on Linux when zswap is enabled. Detailed zswap statistics from /sys/kernel/debug/zswap. Requires debugfs to be mounted and accessible. +**`system.memory.zswap.debug.decompress_fail`** +: Number of load or writeback attempts that failed due to decompression failure. + + type: long + + **`system.memory.zswap.debug.pool_limit_hit`** -: Number of times the pool limit was reached. +: Number of times the pool limit was hit (see zswap_max_pool_percent). type: long @@ -815,31 +821,37 @@ Detailed zswap statistics from /sys/kernel/debug/zswap. Requires debugfs to be m **`system.memory.zswap.debug.reject_alloc_fail`** -: Number of pages rejected due to zpool allocation failure. +: Number of store attempts that failed because the underlying allocator could not get memory. type: long **`system.memory.zswap.debug.reject_compress_fail`** -: Number of pages rejected due to compression failure. +: Number of store attempts that failed due to compression algorithm failure. type: long **`system.memory.zswap.debug.reject_compress_poor`** -: Number of pages rejected due to poor compression ratio. +: Number of store attempts rejected because the compressed page was too big for the allocator to optimally store. type: long **`system.memory.zswap.debug.reject_kmemcache_fail`** -: Number of pages rejected due to kmemcache allocation failure. +: Number of store attempts that failed because the entry metadata could not be allocated (rare). type: long **`system.memory.zswap.debug.reject_reclaim_fail`** -: Number of pages rejected due to reclaim failure. +: Number of store attempts that failed due to a reclaim failure after pool limit was reached. + + type: long + + +**`system.memory.zswap.debug.stored_incompressible_pages`** +: Number of incompressible pages currently stored in zswap. type: long @@ -851,7 +863,7 @@ Detailed zswap statistics from /sys/kernel/debug/zswap. Requires debugfs to be m **`system.memory.zswap.debug.written_back_pages`** -: Number of pages written back from zswap to swap. +: Number of pages written back from zswap to swap when pool limit was reached. type: long diff --git a/go.mod b/go.mod index e7ab04d81883..504179c41b35 100644 --- a/go.mod +++ b/go.mod @@ -67,7 +67,7 @@ require ( github.com/elastic/go-seccomp-bpf v1.5.0 github.com/elastic/go-structform v0.0.12 github.com/elastic/go-sysinfo v1.15.3 - github.com/elastic/go-ucfg v0.8.8 + github.com/elastic/go-ucfg v0.9.0 github.com/elastic/gosigar v0.14.3 github.com/fatih/color v1.16.0 // indirect github.com/fearful-symmetry/gorapl v0.0.4 @@ -173,7 +173,7 @@ require ( github.com/elastic/ebpfevents v0.8.0 github.com/elastic/elastic-agent-autodiscover v0.10.2 github.com/elastic/elastic-agent-libs v0.33.3 - github.com/elastic/elastic-agent-system-metrics v0.14.2 + github.com/elastic/elastic-agent-system-metrics v0.14.3 github.com/elastic/go-elasticsearch/v8 v8.19.0 github.com/elastic/go-freelru v0.16.0 github.com/elastic/go-quark v0.3.0 diff --git a/go.sum b/go.sum index 1dea85d3569f..841f64fe02f3 100644 --- a/go.sum +++ b/go.sum @@ -379,8 +379,8 @@ github.com/elastic/elastic-agent-client/v7 v7.18.0 h1:zXdoErqECfvRjj1c+1Ko4VGuUn github.com/elastic/elastic-agent-client/v7 v7.18.0/go.mod h1:ChFjpIfSsQOnhWT3se5Euw/o8P4Vf77FxeObE/vUfSc= github.com/elastic/elastic-agent-libs v0.33.3 h1:Gsq5FA29sUbbZVJbeLCKPyRkAxCrOhv3VtXvuG9Uu6k= github.com/elastic/elastic-agent-libs v0.33.3/go.mod h1:0xUg7alsNE/WhY9DZRIdTYW75nqSHC1octIAg//j/PQ= -github.com/elastic/elastic-agent-system-metrics v0.14.2 h1:OduTwpW4ZiEG3kzMGg31Y0ApJ5fABYFG1U8F5+J3svY= -github.com/elastic/elastic-agent-system-metrics v0.14.2/go.mod h1:JNfnZrC0viAjlJRUzQKKuMpDlXgjXBn4WdWEXQF7jcA= +github.com/elastic/elastic-agent-system-metrics v0.14.3 h1:v867kcgCVguOX3AYIHEVn2RNracdH40FqqXiZq71pDU= +github.com/elastic/elastic-agent-system-metrics v0.14.3/go.mod h1:JNfnZrC0viAjlJRUzQKKuMpDlXgjXBn4WdWEXQF7jcA= github.com/elastic/elastic-transport-go/v8 v8.8.0 h1:7k1Ua+qluFr6p1jfJjGDl97ssJS/P7cHNInzfxgBQAo= github.com/elastic/elastic-transport-go/v8 v8.8.0/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 h1:cWPqxlPtir4RoQVCpGSRXmLqjEHpJKbR60rxh1nQZY4= @@ -415,8 +415,8 @@ github.com/elastic/go-structform v0.0.12 h1:HXpzlAKyej8T7LobqKDThUw7BMhwV6Db24Vw github.com/elastic/go-structform v0.0.12/go.mod h1:CZWf9aIRYY5SuKSmOhtXScE5uQiLZNqAFnwKR4OrIM4= github.com/elastic/go-sysinfo v1.15.3 h1:W+RnmhKFkqPTCRoFq2VCTmsT4p/fwpo+3gKNQsn1XU0= github.com/elastic/go-sysinfo v1.15.3/go.mod h1:K/cNrqYTDrSoMh2oDkYEMS2+a72GRxMvNP+GC+vRIlo= -github.com/elastic/go-ucfg v0.8.8 h1:54KIF/2zFKfl0MzsSOCGOsZ3O2bnjFQJ0nDJcLhviyk= -github.com/elastic/go-ucfg v0.8.8/go.mod h1:4E8mPOLSUV9hQ7sgLEJ4bvt0KhMuDJa8joDT2QGAEKA= +github.com/elastic/go-ucfg v0.9.0 h1:QRO2O8rv6oORD6N1gDc27bj2jgSdlPFW+t+Uf3MJkik= +github.com/elastic/go-ucfg v0.9.0/go.mod h1:6Z66LNkFK5xAlWg3Ny7qgtrvBUadaAcor+kYxw2pXBk= github.com/elastic/go-windows v1.0.2 h1:yoLLsAsV5cfg9FLhZ9EXZ2n2sQFKeDYrHenkcivY4vI= github.com/elastic/go-windows v1.0.2/go.mod h1:bGcDpBzXgYSqM0Gx3DM4+UxFj300SZLixie9u9ixLM8= github.com/elastic/goja v0.0.0-20190128172624-dd2ac4456e20 h1:bVZ3kDKa8Tqw9qvNrD91MwJMW6alg4Wn31l1TQ6RlTY= @@ -858,7 +858,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s= github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= @@ -1493,7 +1492,6 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= @@ -1502,7 +1500,6 @@ gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY= gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0= -gopkg.in/hjson/hjson-go.v3 v3.0.1/go.mod h1:X6zrTSVeImfwfZLfgQdInl9mWjqPqgH90jom9nym/lw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/mcuadros/go-syslog.v2 v2.3.0 h1:kcsiS+WsTKyIEPABJBJtoG0KkOS6yzvJ+/eZlhD79kk= @@ -1515,7 +1512,6 @@ gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/metricbeat/module/system/fields.go b/metricbeat/module/system/fields.go index abefc65bec33..fb9e710e521e 100644 --- a/metricbeat/module/system/fields.go +++ b/metricbeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded zlib format compressed contents of module/system. func AssetSystem() string { - return "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" + return "eJzsfXtvI7eS7//5FMRcHMSza8v2JCeb+I8LTGY29xo3iY2x5+wCi4WG6i5JPO4mOyRbsvLpL1hkv9kvvazJ2lhkz9gS+atisVisFy/IE2xuiNooDfE3hGimI7ghbx7wF2++ISQEFUiWaCb4Dfnf3xBCiP0jUZrqVJEYtGSBOicRewLy4f4zoTwkMcRCbkiq6ALOiV5STagEEogogkBDSOZSxEQvgYgEJNWMLxyKyTeEqKWQehoIPmeLG6JlCt8QIiECquCGLOg3hMwZRKG6QUAXhNMYbkgiRQBK4e8I0ZvEfFiKNHG/8dBifu7t1zJKJu4P5RnKsxi6If9tNs8TbNZChqXft8xmfh6XkIG1w03IL0ISeKZxgvyXKeeML95MGrMHSTpJAt2YXwU0gnA6jwQt/3EuZEz1DUlABsD1CHj2C3QBRMxxWTWLgagEuCazDS5dTgLjAeBvIqo0gRVwPamNyBRZ0SgFwhThBlTE/oQwG4mn8QxkNlMgJCgUI6aJpHwBqjIays4V0YJc+xmkNJV6agA3+BRWF6+HC0jzegm8Qu+a4rJJDWFzfiv5L7BGbsuVgYogSBMGIWGcxNT8x37m7NP7395OKnsnVwFkzNb5Yr/2hQSCa8q4IpEIaORGG7qjzHo3mFWevYcXDsWFGacExYiSQ2B4TKgR1EUEOJ/hGCVxGmmG3ytpn+ynqnDy1aoRUSaEhZVfZ6REgi9qf+igxvwY6B8MKrsxClSVT/4vcp9LgPIC0kLTqCaLpE8eSadMDkD/aGYlNNBsBR61UVluL+xUgTw+6j6txzgCIyqhAbQsSYUCzYIntR+JMOBoLFKudwTmxPwUmfsEkkM0hoo9MriXwyPQcRbA6XFYcBKJ9UUimZBMb7JDAtQQao7G6W1RsjA6QZ4jqgHAjyfIAwCJNWX6BHnJiQFGzgQnIVNPb4fRcUwdMQ6f/OP0mKxArlhgbmPG/F5SHkbmH0sqw7W5wDGuQco00b37Uf5xPNbvDbUSc/01rYvBux2FL702WyDX8BK27AC1xPhKRCnXVG6sCnCG7opJndIIv7FessjekZebxLBECdmYDC+WJX4JvQSZHYFCThpfeL+iLKKzCIjg0cYcnp85ex7EyGPqxa+MQbEIIZraq5eXQ01nzwAm4XXUjJxd6sidgUQtQgOQ/Mp4+jwIG624NvaHjMawJa7ln15Avg05AA5eyYNUSiNBQSSCp+1gmXGmLdfyrXmVLDeKBTSyKG8/GmjOqxCzxVK7/8IzBKkG62RIULgl0FCdkyXwAEhsvqCXlDcmERwyp8bEDDth4RcSUE7Ukkq7SRSNa59xpH7ZjlEZTXtnFrIl55hlVie8kiPvmzqKMU6hIEkbfikDSGlaPmu28fOgg3KPutPn/kwkKHchQqUolJ7YDwt+UXhQG+MVh5UiaxZFZElXQCiJ6TOL09h5YcWcfLm+uvob+Rc73RccuzFYyVNbHpdGRpA3RNMnI42Fb5drQWgQ4Elgj/tVc1APFgNlayfX1+AtIne86WxU541hNyLFjY6LVmZ5HkJZSKAaJCoOy7dy7OCcsDn5rjGs86hLIFSTH67+ZqCdG7mywpXrkSSdZNz8YqVnBuT6x9bF+Wt5lf5afpuv1yPyV3FAfEUXydersofC1wvnfu5TLxSFGsBIDL4rYsnGE/U2jAAF5/buP4wWajNKfi8so0H2ibGkTpIFYyNHJ0vI2IP+NAnZ6bQ/TZKGH/knin+Lc/80Kdn74f9VkbmtBXCaRH6tZsCpcXOIFXCeOUKUL2UNL9ce2msWw2PD4f61JIuccprF15GYcILx/ZOOi790dHL7E/GlkW97yL2GA8s8MXLKxDd1VowJP5ghSvEH809ye5cnpA7MhM9+xscoRoYI89xzFdLr8cuN5GH0sEfYQDK6/9hqBuFb5WbIY6yYeR7TDeFCkxmmRq9YaI9xGkUF0xtjOh99D0ESaDjBgMceNw9aSiULA8OGJBBmhYzIqDQwEj5Po2jTg28tmYaDA8RZtkSIHJxt9PCIWmYK+r60BXgcBmFUYZM7F5q0IS5Wn4rU7EAFgRbSjeSCvsxJGidUqTQ2nMFPEcX+RDv079fvBq3gyzPI4NDA98OjbLCBbGqM2s82FKtaCUgn07ZgTMwicycIBA9VkeNu1Aru2EEL+2IQ7Z7tNRYPDdCPMRTmHLy9vFPVQ7wNpEj2abzUMRocxnBJpFhIUKppMADXUiSbXSyGwjZx1TPNMcdbATQbdDpjeq/2XY7WDGyY1IRbyi558ft+gdfhPDfcpLZERdiqKSGiXC9/f/XTD41VnrMIKoVSZCvTsBimkaBS/GkfeSo50Uc6ONAKxKt7id9aGL2e8kSyFYtgAaF1QDBup5l4oYewYgHsOdGtaqlWay6/XIawujR/vf7iRWTmPQAUM0YdCjzr779MyC0nSsRAAqoAK9j+g/FQrBW5e7D3JUyfydI0vqQ8Z/oXQhWheE5b6TZnM7erywS3RZjaHANiDSE5g+cJgWcNktMIYam3/mXBW900EazFnNyaFziw0fk4dmNt/EuCu2VfSq2m8xkXIags/cruyXNzLQ2WOcupsXhnjFumirkFdE7mIgpBqnOiNnHE+JM6x0u6lekWgReIzE/N1lx1g9aTyUpaBvnuRzSX8KKKo1tBGHTTvQpAxVA1w2cywAquea7mNQf3UW30Et+6uZUqOO4ly0w4Et7LGwk10F0+/VwMlTmndzIHnEjZkUoWQXmXOq8RXSwkLGjuNjJ2PO7gWiJo8dWdM123dRz8XmylYt8oMhcpDzu2zw5b+oganPwuUJm6A7mLHmNQjthafvFpchcUCkHBWhKKQNU9nr6lJd0qvpPffegbOJu7juRnLarY2karAzQ78sUAojroAejT+cdDaHXrGQJNolQhT982r6eRoOEuOurD/Wccg9AVSLqAHbXKm+s3YzW9+RPji+mcBlrIG3J9dTVO2/9ago/GdN6vJGY81eDfw2/+fkpI/+6wtiicN9cnhfbaA9ePG3MCXkomPLJAQpYHCYbF+pvkvNRS+AVmHxS9mHS1SNWONOGH/BQdtoqnoZ1tV56dbEg7RMOd5Pr97MGVdLS7DZ5rrolS9woe9U7z2Ryxg2Ad8dpsL4FFqB0tKrfm+YWr3HwrFGA9P4wHURrmHw4Et2GX2SYzJwMaLG0XrsbUs3Q+B6nImYL8QuxYQwOd0mhSM0P8VwszweCGSTuL1AecLiNY8MZN/uQvpoOkzy7AdpeKJpL3OFrRzQ9CvAaZ5e27anSa9N5tS45gNjuCSvwsbZRbTSQ4ja1QX4fMSDpW685Ar8HVy7l9x0P8V+GxcivkLaU0P/VPkhAS4GF+R717sI5PrAwOQVMWqXOSoK4mwRKCp9xbUNpoX1pEgrz8Rc+x26+XbjVhigQ0CtIIXRozapalxItqcLnq7v4N4iJihs6Qy0SK4DKGmPG5OG/ywvwIWZ4Qv1YGh3eoQvPlmo7Nq6PnDvQMQfOCaH7uOLl7+E/CkFBKVBrXtXQmQ4y7dmmZCN3lzoVz9334o7mx3SqKXCzc14eKRYt6I0NUHOlVc2TgVbYZrGvs0r60ojWta7Z2nZdImLPnG/Lmv5Cs/67bgFWnkpE8HKWwrYw5xZRmgbIxRAizEKLBUel9WvU+jXXPvLBzoSBmqCi9lFpH62wc3pfSiEWUfzx7T2+npsMYn1Hx56iN2oMIB8OcMwkqx4HaO+88Wsn4dIcJ9nO1XzZqlZu/hmO3ZjHtCwjRh6wxSol2l7cQUk2J0kLarq9I5hDx4i9K0J1kC8aNyuf7oymEWerD2y5wA9F+RMsMQidEpePA2iFqoy5tHcMlYrisIS7/fII/UiZBWbRzDNfPIAvqoH1g4/isxcpoE9QqJzKuTueU+Y2InkUeyBrzU0R+0GUspE01m9HgiVCtIU6062cxt2wMU8wSKVAywfFvqWzLJ65TmAgRTSMWMz1dMp92OwyBmsWgiuQhBIBZ6Uum7fUYl34a0+cpQnTas+1u7CWrNY40mK6+HTqCdmcauJ1pKLebAOlvBnk7qZPwTwj0lEaRCI4rmKhM/MI4g4CmypYepDwEGW2wuMCApNrcH0QahWj9L0D3H+Aegl9mM3bQ7DZgefvRaCEk08t45Eask5gIT93GkUi0WGprWjpfEmPEmN2qhSAztsgdzcVia4E5NDGNoo0dfhwfnmKI0SI5mbUu8wK4lhtjK1E8YgvJnuU8gJCcSSpbvXktdEsIIsrik6HaSTglDlgm1YTONci69paAzsKBJFvLZMpy08Uc1dOk0Q/ikKRXJ0fJVln/vExyBxlPHsKOS8l+oLv6gqkxOl6EgKzAAa0eNAvtOamFvabgJaRP7PJaLtBrIZ++qcMeEyFyY5RCRO435aq0yjMJ2d+xknBey4I4XkEa6OXIoCEG4+rgh1SniVQfNUmuXmKjKg+neCEy/qIIJQTAVq2qsczIhAZPsNeaA17aYzj2QIYdDonMkQxkDOMTkFLIw7DFDu1qZy0ixhcD1upYmBTwsB8R45NQiiQZHh0chQjPSkw1d2uHhsIaJBA37QCOHRKgSPVCdAOsvahEozXdNI+4KyI4+UjlmnH0JPz88DG3/2xQwRh7EhIhdZFH0V6HXDuPpiqNYzogcyE/LGag6bDz6jd3ItkiHb4wB+ciEjMa5aodIyZMbwaePyyZ/It3ucTMmKzjFuz23qbGgmx5eCfY52yPH3qmS8N9Tvf5Y/9004hp2POcvzIN3ROzIN7rKn74zUNpLuU62c3i0knJ2vrdSe0ji4HcS6FFICJy9vvj/dv6O1mkY8usQJr7eVXEzWduyE+Td5Orzs2QUbYUqsqpdkOsk4NGbUmIhQby++M9tmIASWgYVoskS5pzPlfgm7qhMnvnBWWu5UZt2UEzd5RNfDIUfqvyXJZIBE+Nej8L91vl/nzGOOHKkzxbfVaQbCULboySPCTFq4N4+z4vv1d2Xn5EsUs6dre+acRo/eRIqF7mdE88X43ZQlJLqHudsTlj/Z1Esns508g3E8tokpa+5v3kN785hPpkhwmpufpuO+9i+3mbXx0yI0/jqets753Y3MAWjWYfPatdcrHbobMirOZmLMXk4jBifM8yN0+jiAQijikPL8zwNuZp7vGaSl0Gde7S6tBc8aQAUblIY8wtUpBQSZ3N5a0wYAsuJEzpTKzghry7+v5H/0msQG6xtW1L0u32dbDeVsDM+cf4Yhoyid0dNlvMDnw1/Pi3v5zuKAHAV0wKblaOrKhkdBaBapcC26UfHaqedhi0HI/+RQL8/PDx3AamrdK/eyD/6Vdh1QcRyP5yXD7cf75QCQRszoJyNDMpmimNDY+3trQjfT63gWkInv5SlSdpu3rd1cHaxoR4mToQ2vyhAwPWJgbZR3NRepy+aON1fyNl8sJZIKOeB06TEE/vW126wCoWs4hKZ5p5p/2bmSVnZHmCkKkkopviBqtFkqnsrMdXs52Tn7kt7Sm/Kg57HmAuRt7nQ8w50cWDzJWHPOos7ugnSY6sF/x9JuuArUwcEq9NJe5c3g5++t65rqILm0b4GHTD378mXQUtZHie12/43bHnUd9513detWRXHDzRMpeArPeh5xXvJVXlfGCbDF1LVP8g4php8mFJ5QLImfYUh+QjU2uuZLdLyukCpJkFdSbTmBmNgSB3pcqQvM2f+XHRABsvZ6pfUqVSL5Ycapj8CRQLzdZ6AE0e2J8wqWmL0a+n961I9niZM3qJAo1Sdt7SCqHOrdM7g7Z7YN5HHz5j9kKSgHOHPmJS1bUmnszVnSF7nXnFz4LekB8n1z9NrusdOcfQW0lJL076jOozlSbO/5/1RLVpsu6EdBjJu8kPk+++/9eWvkCVZqlkuLb/iG1RL+8yf/85oahW1lSGWYGGrbz4r/vbj/99yYQ3pdcgH53BS3kAkdlHmJ443Uo91WoFmgHTsnospjy3hSi4Hlxol/TpcgY69ALQ8EA456CxPi7vRqu0wJJuY1h7OulWmhgeCFOWQ5H5a4chQiYFS+pLO9sNDzb2RAaZ/3X27i2axtnVRW2MWo46VIjl1UGgYZGxFjkIPJrNfJVoq5dVzdaJ4+EE2TFqRrzIimKGcmSvCHDIHgh5DYjfk7VFLcIvLIL8M0K6O35ehYDXLhekyHJtmCo5g+aeLEmr2oyIOT/Rvo1ekUDz7dHtJXFe5YHC8QffZTANaqLEvN3s2e2mZYZ2yVauKKsHen5WeoesePtKYweUG10eLM11uXHaUk0o3+C9qo8VS9pwVu6LFWboQ7GiNLZhBdoUMyCSZo9nSCFaGs4Fvo239ZbMMgjMBkI8qjjc7EyoLrAdFN6XqHqydZoxYO/wxojuW3kzLglF7kTjkmzuU3YgtWSJMZBpY0Au+IVhhxsZGaigMoEoPZZbsnjGGjuNyA7piYwMYDBx0nT7ES+OAg9qGkWOGkWoUiJgqIfXTC+tLWTY7PdN3aJXTwJhin+rbWsuM+rtx9xwLY+OoyHdWU2wd1Q660gSK7MooXp5OCaZ0TNDxslRPR7tfq3SmfWTfatsGZDtiDmKZTjbMZjmxp26W8LOp0l22xDzHHK+xbLs/HoIsB1cI2BC9lH+heZGkhYLRZQxndMIFDryXN9VhEvVUx66dJvcO+b7ILsg4OEhuJYiipzaXYs8YJhPJdU5+fDLA2q3T4/+Qc3flaY8tGCy7vzRhswpk8VQTgkmUhhOM8FpFNW9d4472HHHuZwyn2XWGSFbsLyMfw1ssdQT8umxBMM7rgQaOQdoDZQCrUovRnvdu14nCCle6KkuADLZNTwhYSqxuocs2Ao4SUAy0agFtT+33EZveAgyp/Uf787LQzOj8+UiU3ixOetdsMIp9Xb/eZCkNAg0tv2lYcjMQpwbRBcFT8onw0JwdMX9o60Tvht7QH2g93QgA5Qfqe+Y248ZvXVp7wTQonu3gtCeo3+/jQ5uHc2nmzuJxC5MnVS2KaUGjRbm6l3nmF0rTyqxWrqASaP1cBNeR5VEC0JFVu/cXYhxwikXrs3/QFB+J2gVVZsXdBCsocxpjwruB0wpElfFNQAgyAMunjnoMIaePZY3bhG9L/M3wW3Ltgq6gaw64lL64fXizF7aPdiiOrNlmyVtfem/CW5bBpbQDWbVERfVB69T7wdzNXGGRXroMrR7nCcrTcewDAtktrpoBi7FmkhYpBGV5mrZOpSl/tvyOwLG/pGgRCoDUEQtsV7UXO4hrxYdeBYanvyRCk0Pz5LHWhy0lTHW4KRRW8EqKcx5WrYlZcozO9KYZHapyRlVJIQ5s76Tdi6XhWNoka35EsaxDs279zxL33ShX4weu9g8KKyndQYU4ikb5q2DVp4GyTwvFbZOSklT2WShs+LbOZmkjinWhxWnCguZ3xEj9GyxLLt0etlr7y4HZi8+dIgT5ZdbJ1dnmYX3dmKbGzk/4odfHlpHK64J2ExDg4wZt+kvjcVpfRqmRGTZIp6QT5QvMGno2uX5XF2dGwGnaaTNP4fWh+sT1oW5zmuX3RZdiPH/sUpQ6olMOfqCT4EZtnqCL0Bp9EAwnopUOX3WOjDjNR9qVUEu6QrauDbm3uSk5ohl3JZhWD+8opFChV5RRkbhVNV3+14yahNZARFN1IjWAoZ0vZRC6wjCozPB9bfxr+rMtsN02MgZEsnUeeu45SeHtMBzs9SNYuMY9LykKT5ugM9zzjt1fukoQaVWXiGrMZkkaGcMPVrrHD+8eZKnaiEJYWpT4LEcqbxF35ZslGJBeqw330JhikW55tOZuat3oxjTejs5BmNKN5a98cXv9SuKwECp1Ju1RMb7b+7daOQsU4aocYGbP79t9usu/wx16yjRYYMNQdxA/ZBZEdkR4ixmTSKgStvHyuwamA8qTdGFLXjuX82o7Zixj7wyiddXPZc+MvjiRwblzZV//AsqViDJ9RXpu0+XyfjhRMn4YRwZ312dKB3fXY0jpK3tapOMHv/LjlRY7fdgdlWmfoZ5ReZpxyV2r1s/ijCIzcJo4M4nisVppCkHkaqWKJNj3KsiOBUyXhVBHxkDFIFna/+SRlHL1m4MVgpq06AjN3xQYNuFqbM3Nz0V5tnPa/gw/3nh8KGrTzuOuzT3E1WN7cpDIUb5lxMcemzuUWS2q49BFRAj6M0prQgevp9bq38wKsTQnH1j3Lp1RyhOh6rzWlWgrQNMuXZZrEyRecqDLE0E3+x3r39l5oEtYqPm7mpkA5NGUitU43w+3bHNcRKfc6Qswrn4YpQuFuHQRS3h2/ei5jWLmTJpljKf+xayWkk4ns2HEND90NIukmOo7Iuq7l2czmwFzdvxctUbZN1uNR7bVqNcDLtn2RoWoH1ZenaVLzO2N9WQdLenyH4qbSr2E1VC0Wx4ynJZFZwADZb40dpJ3uHDZqr/KO8sASbjrFRbCpwlb9uOSK+G6oEM1fEGaQzxxKZHdfWVP35z+sr7O7NNax7oWVaIOzQ2UBAc0+fTIXoJeXpsrc5zr5TbqpRTpLrI7bBmXPWhMUNt1pVpzjoC3tin/a0rkG8mbqNnqxS+StXQQ91wz/UbP0bQhDeep6hW/NvinLPamr4l60b7puJnXEd0HFqsjywsGXlijU3D1HIpIr8mLeNcssXyZYCamccgPb7SyVtEPPtw9gLGPjR7ynhuCnWpTEISLVmSQJi7m63yj2AFbf67oWG0SKw7HHvj0zAL8Wxb8/LsRkb2On1J6IbMH9PnvU5fiNKQ2YWI9zq7wPK/EbNPn9iASMpYCGZQI7ODkXS8orEdCvcqRhPB4M2t1qdm+y0he2Aza71SMQTxaU/7Xpe5FmY2Uut4+7Sdcmadqt3Y6IODjQ0azKowpeOiuCuzTt7UzNLlnMDVmdZdWnIQA9Nw7euwuNT667G51Pqrs7rU+pTuGnWtizu7dcSzxvZ/638Yp532V5vTQ8irzflqc34FNqcPxtOpehldjOFgzsan0/c21lnQ63RsHXU8Z07eRBTzGn+6zL7WgbcyB59O0+FYX7d9ehzN2FMdJCepKio6wlwdHj/ck1k6n4NUY9/MrRF6qqqhrBPqFHt0ROuYu2hPZNPXoCccs+p8aiiMPi5tfX/MuXWaSqO+kO11Vts83kq1ajwpVSW4M3hfITnMXoZ3RNzedXToqEEYIKR7BDIAEb6vBlPKhf/NySq242yg91zwTSxSVThbMGyHqeaI19aiXEgI8P3YC1RBZ79++twuNRFTuvJ2S5zMFTlTyxjit75+zcOZN2fRsU+jX1gEFzMaPBWrXzDn10+fc3K3oAp5fWR67s2piRPve42WDCSVwZIFNJpaVk1P67woZ8DkTscMtjMp8xfFSsrTHgjtlZh7YZdanya3Cp/TYL61Dlnl53Z8Y/xr06QZ4oq6qOy8dhdefUduxakXUJvtnPIrVC+PtpCOmCYJhKdF8QP7s9Tx/8JCJO7/GaSqXRXvV+ckdAFT7DFx9KJ3oyNo3s61emXXki0WINH5m3TFehD6SHn4p5DTr4BuBNpDOHnzm/nUG/tPRZZGhHjRLNd5SGigUywmWFJFdP0pgeIHG7Dr7HU17JoYsnI72YESpaatvqgDNJIwE+J/sZuEcLuqKKeg2RO0W9Ah0kP3qPETItLSzXVXUroehxlEyjGORZdFaHaIpFzZRzrJMl0A8uXtOeGiPbK1X8NVKjU1M58M136vPUcg5oTmjPTya1w9xJomJ0PrQx7h33L1Ug4rFmg6O6ET/7eSjzqgnAtt+7oFEWUxhKMpPZ12GT1v7NhXdn6afFd5Orv88xfvt9HLHzKAR+S1Xv+UyHit1+8jY7t6/f+prThedcSrjnjVEX24tu/pMYueGg/okXG1kj9HIngit3evJZKHKpHcokLStn44FRvfJiM0Hig0t7M5SGmDxubWi44Vc57MUKhCc11pnZx05PyMYhMTx2ltUjDg9vKOiARsX0FsdGq47Q7LKNqBcOxECcXrZ67JIL6lKyIWNB6rLG3AHRWBA/CPd0YZ5K9qSkgiGpj5Ude8aofjaAcfCfvNOEhAXlg5NettU4yGpxxsjaIx0F6zF3YkqleVHBrJ6Xg/hjovjndNeW0W+nqfeL1PDMG1tc/heJ7IvG/M6xZ+3cK70vHX2JSFDWAfxVVpHNNKJyTNdASGQhthf2h+wLtBO2xXN0T+PGDtpUxQRKac2wdqbCqUUBUrVYI5lM2k5c7pvq3ZxeFWjvaY3fV7WQEb4TLVwFt6Q8MStickRRwzY9gYLCxsdJfZHQj6c8egUBFAcgiWZAOPQ6NFkoD/nfWdwNhxR2H5U8Qztv8VssOOQhIC3T9LzKBtKMit/laRFcgNSXnEniBywV6m7UPANEmASjJLsYEeGuf4lAaNiGI6dS4SpklMNy6Nx0/amj6Bp4Jxd/KygS/MhaeV3eSORxsyFylHQ0REIUj3kv7/s8lGLpih2uEfBPphYSdUPh1gl9lh9wX9nAiZvZ8LUlOG7/Dal25b6Er5ExfrerLWHgjLaSm9HrK0d3tzvU6jkH/rciC0ZLAydq0kTGWI/HD1UgJt2Ci1A//R/6FWq7zad1SkXGOCTamxrpvWWt6u42ZtkL4H4v3naCez/dhKDViiTX6MOoTtbk90NTckeMv5M364QclsQ24v7yYNG03SikNztN1V+/54K8r81ysHfjdmn3jTouGzdVq1nclUN9412mFeTIRmeuP0xAAEviYJOwB4XAKuhR23CsDPgQ0PphSbWO8PxQfXdsgMTuzg54RZLJ/e334kVEq6sU/FhSkPKdfEbx0w9ZRVEO1J85VUn0tbt5N0zH9ICx9nKC0SdqZlChVbFyZMI9w/S3DYsJ8ltoXB/ud3rRF658f91YwddDi1K62Ft5JqEtMEL0R0jSjsEam8KFHf7ldySpmlOHhZaJYiCrESgVxfvfv+YrbRkEHogmf25wFsJYfP3bAdRJtNL9FnZubtQZvrJ5A13eU/m/ITZwaaDjuzyj4C95Sxm00d4dDCyt/SMdUktNwFh4ZTlLZdZjOjkMrB1DXnztNlZ+GIKdPZ7lSqdHYxjsipYrzhmLVzhk0wjQmxWETTOMkmjDCoY83nJeULmJDbChSsD7BnD+VhZhme25uE+T+tSJpUH9Yoo4ZnCKaBCHfi08Pt//nwf3/9SMw4Ns+hhPBbRWJzKXGXg5YLCdO2WGv3NSuvlxm32Z64OesKeCjkNJGgoK7sR82ePd07AkX+cOt2VxenbTIFRJUSAaMaQrJmetkqtf13lyBJXTsM7+MOIy4Q959djLfnVfxSzzEhNz1NR4bPX2kU0iigrE+OkZcJFtzsNGupE4ON5QxemNKZAHot5FMrjkGpK26QIkG1rY/ioFSVY5fa2nSqlsKyEqqEBk+wfVnfaFxuvj5kItW7QvNO21ahVp53p4XyLEJ5zqZtJQywXa79jx/u3SiqMPDs0bZbUCVkEtovpTRijX5JCdXLfONM2r4fs4VNcrshWqYtCalF47eYNbLBhyIwn9tl8kgENJqwuqqw0zd+Dc80TiK4Idc/vZtcTd5NromQ5N3V1fXN1ceff7x5//O/f7z58e/f/XBzcz3OrP/V4CC394SGoQSlXIljQDmZGfuF3N6vvjeT3d6vfsg/NIS2REj/ue0R8Zy+d/W3mQfBN1P1YJIQCw0nwPBPCGTPHHfUHYXljoDhPF8KNcaAy4H92w8X766vL66v/+3iux8mfD1xf5kEouH17cF8//iJSAiEDL2HvszWZEJutTHRxUxTxiEkK0aJhBVI1Tyeb+9JJMRTa0pnjQ2go3CaRKmaCj7GnM75sTX5xgqG+RwCl9eZXFj3YSjwFnAGj79+fJtZxo4XZtFsgxHBgcSimeMX0RlEE/KLkBmycxzAjPav13jtfjMXYjKjcrIQEeWLiZCLyRvD3zflXzR85Y954buQJAQNMmbOuW6HJ4GIQbn0bU4gnkEYQkgCkWxypyjVjcfR8QtLrZOby8sknUUsUOl8zp4Rx2BZnoKUjYYAOzie/t0M5z40y8gMaKqgWBOUQCduxDUv60Gc5WUkjVzmvjOu/ZujjrhsmEDEMeXbgvA4YbZDEYcRG7XxepYN618cbaQydCcOePZj6OcEPEOQYjX1LvzANxBHi4T/W+MnbnWp9Uw9T6NoOkIUqjZwe27SA/6deP6+a2qSmBORAM/tZ1YkJDkHwU4WNG1JPOh1TjQF+T3KMefWoq4vQq9PovNazriGBfi6pwyoUDDAkIft6EpGJ1MaOiO7O2PJp0Djx+8204HfwtxyXcwNbPu16XmbsJ0hfXfvAQz7rdosuXyVzBw+52RGlc2jLVwzNDLXB2Oe2TYs2J3EOtQSLEpgf8KEfBBSgkrwqWYtspcTFWBSz6XRmJdqoy456EuWrL6/1EEyjSF2ORx0RVlkFKmZGjM4Ju01i82dRsZ5e9oFqnt1yUAHkJDJkna3+Wlf6YFoEbHd626R3LQQGpHPlradv50UtOmQfROQ6ZN+vg/TKwfAZ6B16Zk6PFDGImBq6U0p2TPAIgZYmnYUN4NIKJiuaevbGAdBW0NodMS0QDL1BsOquDWLTwN2DmQIarXhU9WeKX800BmOoZglBKtTwGxwDME8ZxzXpO4KOjroHMgY1HX/z4uhfjcEdUSVntLAF4E5KugMxxDMRtcc5QTpV3mML3yI80tauFfz9fPHv4j5agh5QfM1DU/RfO1eXTLQfD228deGuuN/5LsjqZUljvYSfLFDfKk2s3a9GfgiExX7KedL2DHUlloHyST2ZzN4QgPZ9sm+Wvsz40mqp9mHYhZFzJ8+MCCZ9e4ho5XxylDNVLFUgVS9vN8iUexXsVhAeMG4fVVbgVJM8LoDuYvHLe60rVN8i54RDox3VgWNSsMd5n3Py6GRSCyY0Vz1KTraU+xI88efU+WyOHH0IRzwBGF3RGG+nucIlaShZQF8uSK7rEEufENTU6rhCS+SmRARNPwDvUjM17D0IrCaiWaRoU6O7JIq5l+R7I3bWtJfB4ZA7FsqSqthFXTomaVI+adh47DaOp98CUQKocn9MJ1g12g6MuTae4S+r4QFXUy6eBy2Bqj4H/8/AAD//30IdeY=" } diff --git a/metricbeat/module/system/memory/_meta/fields.yml b/metricbeat/module/system/memory/_meta/fields.yml index 772a1dc5a9b3..b78f948c2ae6 100644 --- a/metricbeat/module/system/memory/_meta/fields.yml +++ b/metricbeat/module/system/memory/_meta/fields.yml @@ -115,10 +115,15 @@ Detailed zswap statistics from /sys/kernel/debug/zswap. Requires debugfs to be mounted and accessible. fields: + - name: decompress_fail + type: long + description: > + Number of load or writeback attempts that failed due to decompression failure. + - name: pool_limit_hit type: long description: > - Number of times the pool limit was reached. + Number of times the pool limit was hit (see zswap_max_pool_percent). - name: pool_total_size type: long @@ -129,27 +134,32 @@ - name: reject_alloc_fail type: long description: > - Number of pages rejected due to zpool allocation failure. + Number of store attempts that failed because the underlying allocator could not get memory. - name: reject_compress_fail type: long description: > - Number of pages rejected due to compression failure. + Number of store attempts that failed due to compression algorithm failure. - name: reject_compress_poor type: long description: > - Number of pages rejected due to poor compression ratio. + Number of store attempts rejected because the compressed page was too big for the allocator to optimally store. - name: reject_kmemcache_fail type: long description: > - Number of pages rejected due to kmemcache allocation failure. + Number of store attempts that failed because the entry metadata could not be allocated (rare). - name: reject_reclaim_fail type: long description: > - Number of pages rejected due to reclaim failure. + Number of store attempts that failed due to a reclaim failure after pool limit was reached. + + - name: stored_incompressible_pages + type: long + description: > + Number of incompressible pages currently stored in zswap. - name: stored_pages type: long @@ -159,4 +169,4 @@ - name: written_back_pages type: long description: > - Number of pages written back from zswap to swap. + Number of pages written back from zswap to swap when pool limit was reached. From 6d5026b7d42303a5d2cad9973d14aedaad1aa970 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Tue, 3 Mar 2026 13:11:04 +0100 Subject: [PATCH 09/15] hit -> reached --- docs/reference/metricbeat/exported-fields-system.md | 2 +- metricbeat/module/system/memory/_meta/fields.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference/metricbeat/exported-fields-system.md b/docs/reference/metricbeat/exported-fields-system.md index f9a3122da132..2665eede6e41 100644 --- a/docs/reference/metricbeat/exported-fields-system.md +++ b/docs/reference/metricbeat/exported-fields-system.md @@ -807,7 +807,7 @@ Detailed zswap statistics from /sys/kernel/debug/zswap. Requires debugfs to be m **`system.memory.zswap.debug.pool_limit_hit`** -: Number of times the pool limit was hit (see zswap_max_pool_percent). +: Number of times the pool limit was reached (see zswap_max_pool_percent). type: long diff --git a/metricbeat/module/system/memory/_meta/fields.yml b/metricbeat/module/system/memory/_meta/fields.yml index b78f948c2ae6..aac7631bede4 100644 --- a/metricbeat/module/system/memory/_meta/fields.yml +++ b/metricbeat/module/system/memory/_meta/fields.yml @@ -123,7 +123,7 @@ - name: pool_limit_hit type: long description: > - Number of times the pool limit was hit (see zswap_max_pool_percent). + Number of times the pool limit was reached (see zswap_max_pool_percent). - name: pool_total_size type: long From 0db37359885544a83217060b72d7a217263b443d Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Tue, 3 Mar 2026 13:12:05 +0100 Subject: [PATCH 10/15] NOTICE.txt --- NOTICE.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index 295445ae3d5f..4f33fb487962 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -11175,11 +11175,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-l -------------------------------------------------------------------------------- Dependency : github.com/elastic/elastic-agent-system-metrics -Version: v0.14.2 +Version: v0.14.3 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.14.2/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.14.3/LICENSE.txt: Apache License Version 2.0, January 2004 @@ -13781,11 +13781,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/go-sysinfo@v1.1 -------------------------------------------------------------------------------- Dependency : github.com/elastic/go-ucfg -Version: v0.8.8 +Version: v0.9.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/go-ucfg@v0.8.8/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/go-ucfg@v0.9.0/LICENSE: Apache License Version 2.0, January 2004 From 1f2d652a0a575dc791fbcee531b2929fdc0fa2a2 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Tue, 3 Mar 2026 13:13:43 +0100 Subject: [PATCH 11/15] fields.go --- metricbeat/module/system/fields.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metricbeat/module/system/fields.go b/metricbeat/module/system/fields.go index fb9e710e521e..24f18682b9c2 100644 --- a/metricbeat/module/system/fields.go +++ b/metricbeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded zlib format compressed contents of module/system. func AssetSystem() string { - return "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" + return "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" } From 91a5b291991d252e37bb44564a2ff521479aa434 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Wed, 4 Mar 2026 10:48:24 +0100 Subject: [PATCH 12/15] Downgrade go-ucfg --- NOTICE.txt | 4 ++-- go.mod | 2 +- go.sum | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index 4f33fb487962..003a42b153a8 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -13781,11 +13781,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/go-sysinfo@v1.1 -------------------------------------------------------------------------------- Dependency : github.com/elastic/go-ucfg -Version: v0.9.0 +Version: v0.8.8 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/go-ucfg@v0.9.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/go-ucfg@v0.8.8/LICENSE: Apache License Version 2.0, January 2004 diff --git a/go.mod b/go.mod index 504179c41b35..0e60fe79ca36 100644 --- a/go.mod +++ b/go.mod @@ -67,7 +67,7 @@ require ( github.com/elastic/go-seccomp-bpf v1.5.0 github.com/elastic/go-structform v0.0.12 github.com/elastic/go-sysinfo v1.15.3 - github.com/elastic/go-ucfg v0.9.0 + github.com/elastic/go-ucfg v0.8.8 github.com/elastic/gosigar v0.14.3 github.com/fatih/color v1.16.0 // indirect github.com/fearful-symmetry/gorapl v0.0.4 diff --git a/go.sum b/go.sum index 841f64fe02f3..5b2aa8afeced 100644 --- a/go.sum +++ b/go.sum @@ -415,8 +415,8 @@ github.com/elastic/go-structform v0.0.12 h1:HXpzlAKyej8T7LobqKDThUw7BMhwV6Db24Vw github.com/elastic/go-structform v0.0.12/go.mod h1:CZWf9aIRYY5SuKSmOhtXScE5uQiLZNqAFnwKR4OrIM4= github.com/elastic/go-sysinfo v1.15.3 h1:W+RnmhKFkqPTCRoFq2VCTmsT4p/fwpo+3gKNQsn1XU0= github.com/elastic/go-sysinfo v1.15.3/go.mod h1:K/cNrqYTDrSoMh2oDkYEMS2+a72GRxMvNP+GC+vRIlo= -github.com/elastic/go-ucfg v0.9.0 h1:QRO2O8rv6oORD6N1gDc27bj2jgSdlPFW+t+Uf3MJkik= -github.com/elastic/go-ucfg v0.9.0/go.mod h1:6Z66LNkFK5xAlWg3Ny7qgtrvBUadaAcor+kYxw2pXBk= +github.com/elastic/go-ucfg v0.8.8 h1:54KIF/2zFKfl0MzsSOCGOsZ3O2bnjFQJ0nDJcLhviyk= +github.com/elastic/go-ucfg v0.8.8/go.mod h1:4E8mPOLSUV9hQ7sgLEJ4bvt0KhMuDJa8joDT2QGAEKA= github.com/elastic/go-windows v1.0.2 h1:yoLLsAsV5cfg9FLhZ9EXZ2n2sQFKeDYrHenkcivY4vI= github.com/elastic/go-windows v1.0.2/go.mod h1:bGcDpBzXgYSqM0Gx3DM4+UxFj300SZLixie9u9ixLM8= github.com/elastic/goja v0.0.0-20190128172624-dd2ac4456e20 h1:bVZ3kDKa8Tqw9qvNrD91MwJMW6alg4Wn31l1TQ6RlTY= @@ -858,6 +858,7 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s= github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= @@ -1492,6 +1493,7 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= @@ -1500,6 +1502,7 @@ gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY= gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0= +gopkg.in/hjson/hjson-go.v3 v3.0.1/go.mod h1:X6zrTSVeImfwfZLfgQdInl9mWjqPqgH90jom9nym/lw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/mcuadros/go-syslog.v2 v2.3.0 h1:kcsiS+WsTKyIEPABJBJtoG0KkOS6yzvJ+/eZlhD79kk= @@ -1512,6 +1515,7 @@ gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From e85f55b7e2a8cde38ed33a38b5738e7df521398f Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Wed, 4 Mar 2026 16:03:10 +0100 Subject: [PATCH 13/15] Another changelog --- .../fragments/1772636540-zswap-metrics.yaml | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 changelog/fragments/1772636540-zswap-metrics.yaml diff --git a/changelog/fragments/1772636540-zswap-metrics.yaml b/changelog/fragments/1772636540-zswap-metrics.yaml new file mode 100644 index 000000000000..c3cd2e36176a --- /dev/null +++ b/changelog/fragments/1772636540-zswap-metrics.yaml @@ -0,0 +1,45 @@ +# REQUIRED +# Kind can be one of: +# - breaking-change: a change to previously-documented behavior +# - deprecation: functionality that is being removed in a later release +# - bug-fix: fixes a problem in a previous version +# - enhancement: extends functionality but does not break or fix existing behavior +# - feature: new functionality +# - known-issue: problems that we are aware of in a given version +# - security: impacts on the security of a product or a user’s deployment. +# - upgrade: important information for someone upgrading from a prior version +# - other: does not fit into any of the other categories +kind: feature + +# REQUIRED for all kinds +# Change summary; a 80ish characters long description of the change. +summary: Add cgroupv2 CPU metrics to system.process dataset + +# REQUIRED for breaking-change, deprecation, known-issue +# Long description; in case the summary is not enough to describe the change +# this field accommodate a description without length limits. +# description: + +# REQUIRED for breaking-change, deprecation, known-issue +# impact: + +# REQUIRED for breaking-change, deprecation, known-issue +# action: + +# REQUIRED for all kinds +# Affected component; usually one of "elastic-agent", "fleet-server", "filebeat", "metricbeat", "auditbeat", "all", etc. +component: metricbeat + +# AUTOMATED +# OPTIONAL to manually add other PR URLs +# PR URL: A link the PR that added the changeset. +# If not present is automatically filled by the tooling finding the PR where this changelog fragment has been added. +# NOTE: the tooling supports backports, so it's able to fill the original PR number instead of the backport PR number. +# Please provide it if you are adding a fragment for a different PR. +# pr: https://github.com/owner/repo/1234 + +# AUTOMATED +# OPTIONAL to manually add other issue URLs +# Issue URL; optional; the GitHub issue related to this changeset (either closes or is part of). +# If not present is automatically filled by the tooling with the issue linked to the PR number. +# issue: https://github.com/owner/repo/1234 From 6eed8f8f48441167a48dfda2c34573b24f127a2b Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Wed, 4 Mar 2026 16:05:54 +0100 Subject: [PATCH 14/15] improve docs --- docs/reference/metricbeat/exported-fields-system.md | 2 +- metricbeat/module/system/fields.go | 2 +- metricbeat/module/system/memory/_meta/fields.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reference/metricbeat/exported-fields-system.md b/docs/reference/metricbeat/exported-fields-system.md index 2665eede6e41..a1952d7c255d 100644 --- a/docs/reference/metricbeat/exported-fields-system.md +++ b/docs/reference/metricbeat/exported-fields-system.md @@ -807,7 +807,7 @@ Detailed zswap statistics from /sys/kernel/debug/zswap. Requires debugfs to be m **`system.memory.zswap.debug.pool_limit_hit`** -: Number of times the pool limit was reached (see zswap_max_pool_percent). +: Number of times the zswap pool limit was hit, as configured by the zswap.max_pool_percent kernel parameter. type: long diff --git a/metricbeat/module/system/fields.go b/metricbeat/module/system/fields.go index 24f18682b9c2..e77f310ef1d2 100644 --- a/metricbeat/module/system/fields.go +++ b/metricbeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded zlib format compressed contents of module/system. func AssetSystem() string { - return "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" + return "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" } diff --git a/metricbeat/module/system/memory/_meta/fields.yml b/metricbeat/module/system/memory/_meta/fields.yml index aac7631bede4..1e9baff027aa 100644 --- a/metricbeat/module/system/memory/_meta/fields.yml +++ b/metricbeat/module/system/memory/_meta/fields.yml @@ -123,7 +123,7 @@ - name: pool_limit_hit type: long description: > - Number of times the pool limit was reached (see zswap_max_pool_percent). + Number of times the zswap pool limit was hit, as configured by the zswap.max_pool_percent kernel parameter. - name: pool_total_size type: long From 4bbee5558c0fcecb6b2b1515d6b57f58fbcf4f8f Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Mon, 9 Mar 2026 17:00:19 +0100 Subject: [PATCH 15/15] Apply suggestions --- docs/reference/metricbeat/exported-fields-system.md | 6 +++--- metricbeat/module/system/fields.go | 2 +- metricbeat/module/system/memory/_meta/fields.yml | 4 ++-- metricbeat/module/system/process/_meta/fields.yml | 3 ++- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/reference/metricbeat/exported-fields-system.md b/docs/reference/metricbeat/exported-fields-system.md index a1952d7c255d..583f2991ab42 100644 --- a/docs/reference/metricbeat/exported-fields-system.md +++ b/docs/reference/metricbeat/exported-fields-system.md @@ -725,7 +725,7 @@ Actual memory used and free. **`system.memory.actual.free`** -: Actual free memory in bytes. It is calculated based on the OS. On Linux this value will be MemAvailable from /proc/meminfo, or calculated from free memory plus caches and buffers if /proc/meminfo is not available. On OSX it is a sum of free memory and the inactive memory. On Windows, it is equal to `system.memory.free`. +: Actual free memory in bytes. It is calculated based on the OS. On Linux this value will be MemAvailable from /proc/meminfo, or calculated from free memory plus caches and buffers if /proc/meminfo is not available. On OSX it is a sum of free memory and the inactive memory. On Windows, it is equal to `system.memory.free`. type: long @@ -778,7 +778,7 @@ This group contains statistics related to the swap memory usage on the system. ## zswap [_zswap] -zswap compressed swap cache metrics. Available on Linux when zswap is enabled. +Metrics for the zswap compressed swap cache. Available on Linux when zswap is enabled. **`system.memory.zswap.compressed`** : Current compressed size of data stored in zswap. @@ -1331,7 +1331,7 @@ cgroupv2 stats **`system.process.cgroup.cpu.cfs.weight`** -: CPU weight for the cgroup (cgroupv2). Used by the CFS scheduler to determine the share of CPU time available to the cgroup. Range is 1 to 10000, default 100. +: CPU weight for the cgroup (cgroupv2). Used by the CFS scheduler to determine the share of CPU time available to the cgroup. Valid values range from 1 to 10000. The default value is 100. type: long diff --git a/metricbeat/module/system/fields.go b/metricbeat/module/system/fields.go index e77f310ef1d2..58fe5543be58 100644 --- a/metricbeat/module/system/fields.go +++ b/metricbeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded zlib format compressed contents of module/system. func AssetSystem() string { - return "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" + return "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" } diff --git a/metricbeat/module/system/memory/_meta/fields.yml b/metricbeat/module/system/memory/_meta/fields.yml index 1e9baff027aa..8cb28e3d0123 100644 --- a/metricbeat/module/system/memory/_meta/fields.yml +++ b/metricbeat/module/system/memory/_meta/fields.yml @@ -52,7 +52,7 @@ type: long format: bytes description: > - Actual free memory in bytes. It is calculated based on the OS. On Linux this value will be MemAvailable from /proc/meminfo, + Actual free memory in bytes. It is calculated based on the OS. On Linux this value will be MemAvailable from /proc/meminfo, or calculated from free memory plus caches and buffers if /proc/meminfo is not available. On OSX it is a sum of free memory and the inactive memory. On Windows, it is equal to `system.memory.free`. @@ -95,7 +95,7 @@ - name: zswap type: group description: > - zswap compressed swap cache metrics. Available on Linux when zswap is enabled. + Metrics for the zswap compressed swap cache. Available on Linux when zswap is enabled. fields: - name: compressed type: long diff --git a/metricbeat/module/system/process/_meta/fields.yml b/metricbeat/module/system/process/_meta/fields.yml index e88de1dde2f3..ec3121b305f6 100644 --- a/metricbeat/module/system/process/_meta/fields.yml +++ b/metricbeat/module/system/process/_meta/fields.yml @@ -270,7 +270,8 @@ description: > CPU weight for the cgroup (cgroupv2). Used by the CFS scheduler to determine the share of CPU time available - to the cgroup. Range is 1 to 10000, default 100. + to the cgroup. Valid values range from 1 to 10000. The + default value is 100. - name: rt.period.us type: long