diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 18b6e56de837..ce6acd91c193 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -7,6 +7,7 @@ on: - main - 7.1* - 8.* + - 9.* permissions: contents: read diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 6ea76df48c62..c0224a6eca51 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -82,6 +82,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Add support for specifying a custom endpoint for GCP service clients. {issue}40848[40848] {pull}40918[40918] - Fix incorrect handling of types in SQL module. {issue}40090[40090] {pull}41607[41607] - Remove kibana.settings metricset since the API was removed in 8.0 {issue}30592[30592] {pull}42937[42937] +- Removed support for the Enterprise Search module {pull}42915[42915] *Osquerybeat* diff --git a/NOTICE.txt b/NOTICE.txt index 504f295b46d1..28f45fc9d654 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1742,11 +1742,11 @@ SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/azcore -Version: v1.13.0 +Version: v1.16.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azcore@v1.13.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azcore@v1.16.0/LICENSE.txt: MIT License @@ -1773,11 +1773,11 @@ SOFTWARE -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/azidentity -Version: v1.7.0 +Version: v1.8.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azidentity@v1.7.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azidentity@v1.8.0/LICENSE.txt: MIT License @@ -1804,11 +1804,11 @@ SOFTWARE -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs -Version: v1.2.1 +Version: v1.3.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/messaging/azeventhubs@v1.2.1/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/messaging/azeventhubs@v1.3.0/LICENSE.txt: Copyright (c) Microsoft Corporation. @@ -1985,11 +1985,11 @@ SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/storage/azblob -Version: v1.4.0 +Version: v1.5.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/storage/azblob@v1.4.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/storage/azblob@v1.5.0/LICENSE.txt: MIT License @@ -32573,6 +32573,37 @@ Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-pipeline-g OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE +-------------------------------------------------------------------------------- +Dependency : github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache +Version: v0.3.0 +Licence type (autodetected): MIT +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azidentity/cache@v0.3.0/LICENSE.txt: + +MIT License + +Copyright (c) Microsoft Corporation. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + + -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/internal Version: v1.10.0 @@ -32606,11 +32637,11 @@ SOFTWARE -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/eventhub/armeventhub -Version: v1.2.0 +Version: v1.3.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/resourcemanager/eventhub/armeventhub@v1.2.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/resourcemanager/eventhub/armeventhub@v1.3.0/LICENSE.txt: MIT License @@ -32787,11 +32818,11 @@ Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go -------------------------------------------------------------------------------- Dependency : github.com/Azure/go-amqp -Version: v1.0.5 +Version: v1.3.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/go-amqp@v1.0.5/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/!azure/go-amqp@v1.3.0/LICENSE: MIT License @@ -34487,13 +34518,44 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +Dependency : github.com/AzureAD/microsoft-authentication-extensions-for-go/cache +Version: v0.1.1 +Licence type (autodetected): MIT +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/!azure!a!d/microsoft-authentication-extensions-for-go/cache@v0.1.1/LICENSE: + + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE + + -------------------------------------------------------------------------------- Dependency : github.com/AzureAD/microsoft-authentication-library-for-go -Version: v1.2.2 +Version: v1.3.2 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure!a!d/microsoft-authentication-library-for-go@v1.2.2/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/!azure!a!d/microsoft-authentication-library-for-go@v1.3.2/LICENSE: MIT License @@ -40690,6 +40752,29 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +Dependency : github.com/coder/websocket +Version: v1.8.12 +Licence type (autodetected): ISC +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/coder/websocket@v1.8.12/LICENSE.txt: + +Copyright (c) 2023 Anmol Sethi + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + -------------------------------------------------------------------------------- Dependency : github.com/containerd/log Version: v0.1.0 @@ -41405,6 +41490,37 @@ THE SOFTWARE. +-------------------------------------------------------------------------------- +Dependency : github.com/dgryski/go-rendezvous +Version: v0.0.0-20200823014737-9f7001d12a5f +Licence type (autodetected): MIT +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/dgryski/go-rendezvous@v0.0.0-20200823014737-9f7001d12a5f/LICENSE: + +The MIT License (MIT) + +Copyright (c) 2017-2020 Damian Gryski + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + -------------------------------------------------------------------------------- Dependency : github.com/dimchansky/utfbom Version: v1.1.0 @@ -52254,6 +52370,38 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +Dependency : github.com/keybase/go-keychain +Version: v0.0.0-20231219164618-57a3676c3af6 +Licence type (autodetected): MIT +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/keybase/go-keychain@v0.0.0-20231219164618-57a3676c3af6/LICENSE: + +The MIT License (MIT) + +Copyright (c) 2015 Keybase + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + -------------------------------------------------------------------------------- Dependency : github.com/klauspost/asmfmt Version: v1.3.2 @@ -56864,6 +57012,41 @@ Contents of probable licence file $GOMODCACHE/github.com/prometheus/client_golan limitations under the License. +-------------------------------------------------------------------------------- +Dependency : github.com/redis/go-redis/v9 +Version: v9.6.1 +Licence type (autodetected): BSD-2-Clause +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/redis/go-redis/v9@v9.6.1/LICENSE: + +Copyright (c) 2013 The github.com/redis/go-redis Authors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + -------------------------------------------------------------------------------- Dependency : github.com/rogpeppe/go-internal Version: v1.13.1 @@ -74862,29 +75045,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -Dependency : nhooyr.io/websocket -Version: v1.8.11 -Licence type (autodetected): ISC --------------------------------------------------------------------------------- - -Contents of probable licence file $GOMODCACHE/nhooyr.io/websocket@v1.8.11/LICENSE.txt: - -Copyright (c) 2023 Anmol Sethi - -Permission to use, copy, modify, and distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - -------------------------------------------------------------------------------- Dependency : sigs.k8s.io/json Version: v0.0.0-20221116044647-bc3834ca7abd diff --git a/auditbeat/auditbeat.reference.yml b/auditbeat/auditbeat.reference.yml index b8fd1ffdf8ff..8d6465db918a 100644 --- a/auditbeat/auditbeat.reference.yml +++ b/auditbeat/auditbeat.reference.yml @@ -80,6 +80,9 @@ auditbeat.modules: - /usr/sbin - /etc + # Detect changes to files included in subdirectories. Disabled by default. + recursive: false + # List of regular expressions to filter out notifications for unwanted files. # Wrap in single quotes to workaround YAML escaping rules. By default no files # are ignored. @@ -88,6 +91,10 @@ auditbeat.modules: - '~$' - '/\.git($|/)' + # If recursive is set to true, subdirectories can also be excluded here by + # specifying them. + # - '(?i)/tmp/' + # List of regular expressions used to explicitly include files. When configured, # Auditbeat will ignore files unless they match a pattern. #include_files: @@ -115,9 +122,6 @@ auditbeat.modules: # Default is sha1. hash_types: [sha1] - # Detect changes to files included in subdirectories. Disabled by default. - recursive: false - # Set to true to publish fields with null values in events. #keep_null: false diff --git a/auditbeat/docs/modules/file_integrity.asciidoc b/auditbeat/docs/modules/file_integrity.asciidoc index 5257099270bd..872ba5189255 100644 --- a/auditbeat/docs/modules/file_integrity.asciidoc +++ b/auditbeat/docs/modules/file_integrity.asciidoc @@ -19,7 +19,7 @@ This module uses features of the operating system to monitor file changes in realtime. When the module starts it creates a subscription with the OS to receive notifications of changes to the specified files or directories. Upon receiving notification of a change the module will read the file's metadata -and the compute a hash of the file's contents. +and then compute a hash of the file's contents. At startup this module will perform an initial scan of the configured files and directories to generate baseline data for the monitored paths and detect @@ -62,6 +62,7 @@ Linux. - /sbin - /usr/sbin - /etc + recursive: false exclude_files: - '(?i)\.sw[nop]$' - '~$' @@ -71,7 +72,6 @@ Linux. scan_rate_per_sec: 50 MiB max_file_size: 100 MiB hash_types: [sha1] - recursive: false ---- This module also supports the @@ -88,6 +88,12 @@ the watch target. If the link does not resolve to a valid target, the symbolic link itself will be watched; if the symlink target becomes valid after module start up this will not be picked up by the file system watches. +*`recursive`*:: By default, the watches set to the paths specified in +`paths` are not recursive. This means that only changes to the contents +of this directories are watched. If `recursive` is set to `true`, the +`file_integrity` module will watch for changes on this directory and all +its subdirectories. + *`exclude_files`*:: A list of regular expressions used to filter out events for unwanted files. The expressions are matched against the full path of every file and directory. When used in conjunction with `include_files`, file paths need @@ -96,6 +102,8 @@ By default, no files are excluded. See <> for a list of supported regexp patterns. It is recommended to wrap regular expressions in single quotation marks to avoid issues with YAML escaping rules. +If `recursive` is set to true, subdirectories can also be excluded here by +specifying them. *`include_files`*:: A list of regular expressions used to specify which files to select. When configured, only files matching the pattern will be monitored. @@ -144,12 +152,6 @@ when a file event involves the file. Files that are not targets of the specific file parser are only sniffed to examine whether analysis should proceed. This will usually only involve reading a small number of bytes. -*`recursive`*:: By default, the watches set to the paths specified in -`paths` are not recursive. This means that only changes to the contents -of this directories are watched. If `recursive` is set to `true`, the -`file_integrity` module will watch for changes on this directories and all -their subdirectories. - *`backend`*:: (*Linux only*) Select the backend which will be used to source events. Valid values: `auto`, `fsnotify`, `kprobes`, `ebpf`. Default: `fsnotify`. diff --git a/auditbeat/module/file_integrity/_meta/config.yml.tmpl b/auditbeat/module/file_integrity/_meta/config.yml.tmpl index b3a3784d15c3..e5d2cc55265a 100644 --- a/auditbeat/module/file_integrity/_meta/config.yml.tmpl +++ b/auditbeat/module/file_integrity/_meta/config.yml.tmpl @@ -27,6 +27,9 @@ {{ end -}} {{- if .Reference }} + # Detect changes to files included in subdirectories. Disabled by default. + recursive: false + # List of regular expressions to filter out notifications for unwanted files. # Wrap in single quotes to workaround YAML escaping rules. By default no files # are ignored. @@ -34,15 +37,27 @@ exclude_files: - '\.DS_Store$' - '\.swp$' + + # If recursive is set to true, subdirectories can also be excluded here by + # specifying them. + # - '(?i)/tmp/' {{- else if eq .GOOS "windows" }} exclude_files: - '(?i)\.lnk$' - '(?i)\.swp$' + + # If recursive is set to true, subdirectories can also be excluded here by + # specifying them. + # - '(?i)\\temp\\' {{- else }} exclude_files: - '(?i)\.sw[nop]$' - '~$' - '/\.git($|/)' + + # If recursive is set to true, subdirectories can also be excluded here by + # specifying them. + # - '(?i)/tmp/' {{- end }} # List of regular expressions used to explicitly include files. When configured, @@ -80,9 +95,6 @@ # Default is sha1. hash_types: [sha1] - # Detect changes to files included in subdirectories. Disabled by default. - recursive: false - # Set to true to publish fields with null values in events. #keep_null: false diff --git a/auditbeat/module/file_integrity/_meta/docs.asciidoc b/auditbeat/module/file_integrity/_meta/docs.asciidoc index 35031d8acea0..da5e303e847b 100644 --- a/auditbeat/module/file_integrity/_meta/docs.asciidoc +++ b/auditbeat/module/file_integrity/_meta/docs.asciidoc @@ -12,7 +12,7 @@ This module uses features of the operating system to monitor file changes in realtime. When the module starts it creates a subscription with the OS to receive notifications of changes to the specified files or directories. Upon receiving notification of a change the module will read the file's metadata -and the compute a hash of the file's contents. +and then compute a hash of the file's contents. At startup this module will perform an initial scan of the configured files and directories to generate baseline data for the monitored paths and detect @@ -55,6 +55,7 @@ Linux. - /sbin - /usr/sbin - /etc + recursive: false exclude_files: - '(?i)\.sw[nop]$' - '~$' @@ -64,7 +65,6 @@ Linux. scan_rate_per_sec: 50 MiB max_file_size: 100 MiB hash_types: [sha1] - recursive: false ---- This module also supports the @@ -81,6 +81,12 @@ the watch target. If the link does not resolve to a valid target, the symbolic link itself will be watched; if the symlink target becomes valid after module start up this will not be picked up by the file system watches. +*`recursive`*:: By default, the watches set to the paths specified in +`paths` are not recursive. This means that only changes to the contents +of this directories are watched. If `recursive` is set to `true`, the +`file_integrity` module will watch for changes on this directory and all +its subdirectories. + *`exclude_files`*:: A list of regular expressions used to filter out events for unwanted files. The expressions are matched against the full path of every file and directory. When used in conjunction with `include_files`, file paths need @@ -89,6 +95,8 @@ By default, no files are excluded. See <> for a list of supported regexp patterns. It is recommended to wrap regular expressions in single quotation marks to avoid issues with YAML escaping rules. +If `recursive` is set to true, subdirectories can also be excluded here by +specifying them. *`include_files`*:: A list of regular expressions used to specify which files to select. When configured, only files matching the pattern will be monitored. @@ -137,12 +145,6 @@ when a file event involves the file. Files that are not targets of the specific file parser are only sniffed to examine whether analysis should proceed. This will usually only involve reading a small number of bytes. -*`recursive`*:: By default, the watches set to the paths specified in -`paths` are not recursive. This means that only changes to the contents -of this directories are watched. If `recursive` is set to `true`, the -`file_integrity` module will watch for changes on this directories and all -their subdirectories. - *`backend`*:: (*Linux only*) Select the backend which will be used to source events. Valid values: `auto`, `fsnotify`, `kprobes`, `ebpf`. Default: `fsnotify`. diff --git a/dev-tools/mage/module_changeset.go b/dev-tools/mage/module_changeset.go index c7ffdbfd9d93..a04a68ddd836 100644 --- a/dev-tools/mage/module_changeset.go +++ b/dev-tools/mage/module_changeset.go @@ -91,6 +91,12 @@ func shouldIgnore(file string) bool { return true } } + + // if the file has been removed, we should ignore it + if _, err := os.Stat(file); os.IsNotExist(err) { + return true + } + return false } diff --git a/go.mod b/go.mod index 69a32b2e734f..8905b7aaa5ee 100644 --- a/go.mod +++ b/go.mod @@ -153,15 +153,15 @@ require ( cloud.google.com/go v0.116.0 cloud.google.com/go/compute v1.29.0 cloud.google.com/go/redis v1.17.2 - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 - github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.2.1 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 + github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.3.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/consumption/armconsumption v1.1.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v4 v4.8.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/costmanagement/armcostmanagement v1.1.1 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/monitor/armmonitor v0.8.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0 + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 github.com/Azure/azure-storage-blob-go v0.15.0 github.com/Azure/go-autorest/autorest/adal v0.9.24 github.com/aerospike/aerospike-client-go/v7 v7.7.1 @@ -246,14 +246,14 @@ require ( github.com/Azure/azure-amqp-common-go/v4 v4.2.0 // indirect github.com/Azure/azure-pipeline-go v0.2.3 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect - github.com/Azure/go-amqp v1.0.5 // indirect + github.com/Azure/go-amqp v1.3.0 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect diff --git a/go.sum b/go.sum index 99139a839aef..a72c03d14d50 100644 --- a/go.sum +++ b/go.sum @@ -54,20 +54,22 @@ github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVt github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 h1:JZg6HRh6W6U4OLl6lk7BZ7BLisIzM9dG1R50zUk9C/M= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0/go.mod h1:YL1xnZ6QejvQHWJrX/AvhFl4WW4rqHVoKspWNVwFk0M= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0 h1:B/dfvscEQtew9dVuoxqxrUKKv8Ih2f55PydknDamU+g= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.0/go.mod h1:fiPSssYvltE08HJchL04dOy+RD4hgrjph0cwGGMntdI= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0 h1:+m0M/LFxN43KvULkDNfdXOgrjtg6UYJPFBJyuEcRCAw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.0/go.mod h1:PwOyop78lveYMRs6oCxjiVyBdyCgIYH6XHIVZO9/SFQ= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= -github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.2.1 h1:0f6XnzroY1yCQQwxGf/n/2xlaBF02Qhof2as99dGNsY= -github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.2.1/go.mod h1:vMGz6NOUGJ9h5ONl2kkyaqq5E0g7s4CHNSrXN5fl8UY= +github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.3.0 h1:skbmKp8umb8jMxl4A4CwvYyfCblujU00XUB/ytUjEac= +github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.3.0/go.mod h1:nynTZqX7jGM6FQy6Y+7uFT7Y+LhaAeO3q3d48VZzH5E= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v4 v4.8.0 h1:0nGmzwBv5ougvzfGPCO2ljFRHvun57KpNrVCMrlk0ns= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v4 v4.8.0/go.mod h1:gYq8wyDgv6JLhGbAU6gg8amCPgQWRE+aCvrV2gyzdfs= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/costmanagement/armcostmanagement v1.1.1 h1:ehSLdbLah6kk6HTVc6e/lrbmbz7MMbpNxkOd3OYlhB0= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/costmanagement/armcostmanagement v1.1.1/go.mod h1:Am1cUioOk0HdZIsjpXJkQ4RIeQbwYsW6LkNIc5z/5XY= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/eventhub/armeventhub v1.2.0 h1:+dggnR89/BIIlRlQ6d19dkhhdd/mQUiQbXhyHUFiB4w= -github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/eventhub/armeventhub v1.2.0/go.mod h1:tI9M2Q/ueFi287QRkdrhb9LHm6ZnXgkVYLRC3FhYkPw= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/eventhub/armeventhub v1.3.0 h1:4hGvxD72TluuFIXVr8f4XkKZfqAa7Pj61t0jmQ7+kes= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/eventhub/armeventhub v1.3.0/go.mod h1:TSH7DcFItwAufy0Lz+Ft2cyopExCpxbOxI5SkH4dRNo= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0/go.mod h1:LRr2FzBTQlONPPa5HREE5+RjSCTXl7BwOvYOaWTqCaI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/managementgroups/armmanagementgroups v1.0.0 h1:pPvTJ1dY0sA35JOeFq6TsY2xj6Z85Yo23Pj4wCCvu4o= @@ -82,12 +84,12 @@ github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0 h1:Be6KInmFEKV81c0pOAEbRYehLMwmmGI1exuFj248AMk= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0/go.mod h1:WCPBHsOXfBVnivScjs2ypRfimjEW0qPVLGgJkZlrIOA= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 h1:mlmW46Q0B79I+Aj4azKC6xDMFN9a9SyZWESlGWYXbFs= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0/go.mod h1:PXe2h+LKcWTX9afWdZoHyODqR4fBa5boUM/8uJfZ0Jo= github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= github.com/Azure/azure-storage-blob-go v0.15.0/go.mod h1:vbjsVbX0dlxnRc4FFMPsS9BsJWPcne7GB7onqlPvz58= -github.com/Azure/go-amqp v1.0.5 h1:po5+ljlcNSU8xtapHTe8gIc8yHxCzC03E8afH2g1ftU= -github.com/Azure/go-amqp v1.0.5/go.mod h1:vZAogwdrkbyK3Mla8m/CxSc/aKdnTZ4IbPxl51Y5WZE= +github.com/Azure/go-amqp v1.3.0 h1://1rikYhoIQNXJFXyoO/Rlb4+4EkHYfJceNtLlys2/4= +github.com/Azure/go-amqp v1.3.0/go.mod h1:vZAogwdrkbyK3Mla8m/CxSc/aKdnTZ4IbPxl51Y5WZE= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= @@ -117,8 +119,10 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2 h1:kYRSnvJju5gYVyhkij+RTJ/VR6QIUaCfWeaFm2ycsjQ= +github.com/AzureAD/microsoft-authentication-library-for-go v1.3.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= @@ -267,6 +271,8 @@ github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8E github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo= +github.com/coder/websocket v1.8.12/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs= github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= @@ -294,6 +300,8 @@ github.com/dgraph-io/ristretto/v2 v2.0.0 h1:l0yiSOtlJvc0otkqyMaDNysg8E9/F/TYZwMb github.com/dgraph-io/ristretto/v2 v2.0.0/go.mod h1:FVFokF2dRqXyPyeMnK1YDy8Fc6aTe0IKgbcd03CYeEk= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/digitalocean/go-libvirt v0.0.0-20240709142323-d8406205c752 h1:NI7XEcHzWVvBfVjSVK6Qk4wmrUfoyQxCNpBjrHelZFk= github.com/digitalocean/go-libvirt v0.0.0-20240709142323-d8406205c752/go.mod h1:/Ok8PA2qi/ve0Py38+oL+VxoYmlowigYRyLEODRYdgc= github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= @@ -670,6 +678,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= +github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= @@ -853,6 +863,8 @@ github.com/prometheus/prometheus v0.54.1 h1:vKuwQNjnYN2/mDoWfHXDhAsz/68q/dQDb+Yb github.com/prometheus/prometheus v0.54.1/go.mod h1:xlLByHhk2g3ycakQGrMaU8K7OySZx98BzeCR99991NY= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= +github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= @@ -1408,8 +1420,6 @@ kernel.org/pub/linux/libs/security/libcap/psx v1.2.57 h1:NOFATXSf5z/cMR3HIwQ3Xrd kernel.org/pub/linux/libs/security/libcap/psx v1.2.57/go.mod h1:+l6Ee2F59XiJ2I6WR5ObpC1utCQJZ/VLsEbQCD8RG24= mvdan.cc/garble v0.12.1 h1:GyKeyqr4FKhWz12ZD9kKT9VnDqFILVYxgmAE8RKd3x8= mvdan.cc/garble v0.12.1/go.mod h1:rJ4GvtUEuVCRAYQkpd1iG6bolz9NEnkk0iu6gdTwWqA= -nhooyr.io/websocket v1.8.11 h1:f/qXNc2/3DpoSZkHt1DQu6rj4zGC8JmkkLkWss0MgN0= -nhooyr.io/websocket v1.8.11/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 3031dd08ba9c..5c965f89db31 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -39,7 +39,6 @@ grouped in the following categories: * <> * <> * <> -* <> * <> * <> * <> @@ -35103,1214 +35102,6 @@ type: keyword -- -[[exported-fields-enterprisesearch]] -== Enterprise Search fields - -Enterprise Search module - - - -[float] -=== enterprisesearch - -`enterprisesearch` contains metrics and health information for Enterprise Search - - - -*`enterprisesearch.cluster_uuid`*:: -+ --- -Cluster UUID for the Elasticsearch cluster used as the data store for Enterprise Search. - -type: keyword - --- - -[float] -=== health - -Enterprise Search health - - -*`enterprisesearch.health.name`*:: -+ --- -Host name for the Enterprise Search node - -type: keyword - --- - -[float] -=== version - -Enterprise Search version information - - -*`enterprisesearch.health.version.number`*:: -+ --- -Enterprise Search version number using the semantic versioning format - -type: keyword - --- - -*`enterprisesearch.health.version.build_hash`*:: -+ --- -A unique build hash for the Enterprise Search package - -type: keyword - --- - -[float] -=== process - -Enterprise Search process information - - -*`enterprisesearch.health.process.pid`*:: -+ --- -Process ID for the Enterprise Search instance - -type: long - --- - -*`enterprisesearch.health.process.uptime.sec`*:: -+ --- -Process uptime for the Enterprise Search instance - -type: long - --- - -[float] -=== filebeat - -Health information for the embedded Filebeat instance - - -*`enterprisesearch.health.process.filebeat.pid`*:: -+ --- -Process ID for the embedded Filebeat instance - -type: long - --- - -*`enterprisesearch.health.process.filebeat.restart_count`*:: -+ --- -Number of times embedded Filebeat instance had to be restarted due to some issues - -type: long - --- - -*`enterprisesearch.health.process.filebeat.time_since_last_restart.sec`*:: -+ --- -Time since the last embedded Filebeat instance restart (-1 if never restarted) - -type: long - --- - -[float] -=== jvm - -JVM health - - -*`enterprisesearch.health.jvm.version`*:: -+ --- -JVM version used to run Enterprise Search - -type: keyword - --- - -[float] -=== gc - -Java garbage collection metrics - - -*`enterprisesearch.health.jvm.gc.collection_count`*:: -+ --- -Total number of Java garbage collector invocations since the start of the process - -type: long - --- - -*`enterprisesearch.health.jvm.gc.collection_time.ms`*:: -+ --- -Total time spent running Java garbage collector since the start of the process - -type: long - --- - -[float] -=== memory_usage - -Memory usage - - -*`enterprisesearch.health.jvm.memory_usage.heap_init.bytes`*:: -+ --- -Heap init used by the JVM in bytes. - -type: long - -format: bytes - --- - -*`enterprisesearch.health.jvm.memory_usage.heap_used.bytes`*:: -+ --- -Heap used by the JVM in bytes. - -type: long - -format: bytes - --- - -*`enterprisesearch.health.jvm.memory_usage.heap_committed.bytes`*:: -+ --- -Committed heap to the JVM in bytes. - -type: long - -format: bytes - --- - -*`enterprisesearch.health.jvm.memory_usage.heap_max.bytes`*:: -+ --- -Max heap used by the JVM in bytes - -type: long - -format: bytes - --- - -*`enterprisesearch.health.jvm.memory_usage.non_heap_init.bytes`*:: -+ --- -Non-Heap initial memory used by the JVM in bytes. - -type: long - -format: bytes - --- - -*`enterprisesearch.health.jvm.memory_usage.non_heap_committed.bytes`*:: -+ --- -Non-Heap committed memory used by the JVM in bytes. - -type: long - -format: bytes - --- - -*`enterprisesearch.health.jvm.memory_usage.object_pending_finalization_count`*:: -+ --- -Displays the approximate number of objects for which finalization is pending. - - -type: long - --- - -[float] -=== threads - -Threads information - - -*`enterprisesearch.health.jvm.threads.current`*:: -+ --- -Current number of live threads. - -type: long - --- - -*`enterprisesearch.health.jvm.threads.daemon`*:: -+ --- -Current number of live daemon threads. - -type: long - --- - -*`enterprisesearch.health.jvm.threads.max`*:: -+ --- -Peak live thread count since the JVM started or the peak was reset. - -type: long - --- - -*`enterprisesearch.health.jvm.threads.total_started`*:: -+ --- -Total number of threads created and/or started since the JVM started. - -type: long - --- - -[float] -=== crawler - -Crawler health - - -[float] -=== workers - -Crawler workers - - -*`enterprisesearch.health.crawler.workers.pool_size`*:: -+ --- -Workers pool size. - -type: long - --- - -*`enterprisesearch.health.crawler.workers.active`*:: -+ --- -Number of active workers. - -type: long - --- - -*`enterprisesearch.health.crawler.workers.available`*:: -+ --- -Number of available workers. - -type: long - --- - -[float] -=== stats - -Enterprise Search stats. - - -[float] -=== connectors - -Workplace Search connectors subsystem stats. - - -[float] -=== job_store - -Workplace Search connectors job store stats. - - -*`enterprisesearch.stats.connectors.job_store.waiting`*:: -+ --- -Number of connectors jobs waiting to be processed. - -type: long - --- - -*`enterprisesearch.stats.connectors.job_store.working`*:: -+ --- -Number of connectors jobs currently being processed. - -type: long - --- - -[float] -=== job_types - -Breakdown of connectors jobs by types. - - -*`enterprisesearch.stats.connectors.job_store.job_types.delete`*:: -+ --- -Number of delete jobs in the jobs store. - -type: long - --- - -*`enterprisesearch.stats.connectors.job_store.job_types.full`*:: -+ --- -Number of full sync jobs in the jobs store. - -type: long - --- - -*`enterprisesearch.stats.connectors.job_store.job_types.incremental`*:: -+ --- -Number of incremental sync jobs in the jobs store. - -type: long - --- - -*`enterprisesearch.stats.connectors.job_store.job_types.permissions`*:: -+ --- -Number of permissions sync jobs in the jobs store. - -type: long - --- - -[float] -=== pool - -Workplace Search worker pools stats. - - -[float] -=== extract_worker_pool - -Status information for the extractor workers pool. - - -*`enterprisesearch.stats.connectors.pool.extract_worker_pool.size`*:: -+ --- -Worker pool size. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.extract_worker_pool.busy`*:: -+ --- -Number of busy workers. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.extract_worker_pool.queue_depth`*:: -+ --- -Number of items waiting to be processed. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.extract_worker_pool.idle`*:: -+ --- -Number of idle workers. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.extract_worker_pool.total_completed`*:: -+ --- -Number of jobs completed since the start. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.extract_worker_pool.total_scheduled`*:: -+ --- -Number of jobs scheduled since the start. - -type: long - --- - -[float] -=== subextract_worker_pool - -Status information for the sub-extractor workers pool. - - -*`enterprisesearch.stats.connectors.pool.subextract_worker_pool.size`*:: -+ --- -Worker pool size. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.subextract_worker_pool.busy`*:: -+ --- -Number of busy workers. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.subextract_worker_pool.queue_depth`*:: -+ --- -Number of items waiting to be processed. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.subextract_worker_pool.idle`*:: -+ --- -Number of idle workers. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.subextract_worker_pool.total_completed`*:: -+ --- -Number of jobs completed since the start. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.subextract_worker_pool.total_scheduled`*:: -+ --- -Number of jobs scheduled since the start. - -type: long - --- - -[float] -=== publish_worker_pool - -Status information for the publish workers pool. - - -*`enterprisesearch.stats.connectors.pool.publish_worker_pool.size`*:: -+ --- -Worker pool size. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.publish_worker_pool.busy`*:: -+ --- -Number of busy workers. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.publish_worker_pool.queue_depth`*:: -+ --- -Number of items waiting to be processed. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.publish_worker_pool.idle`*:: -+ --- -Number of idle workers. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.publish_worker_pool.total_completed`*:: -+ --- -Number of jobs completed since the start. - -type: long - --- - -*`enterprisesearch.stats.connectors.pool.publish_worker_pool.total_scheduled`*:: -+ --- -Number of jobs scheduled since the start. - -type: long - --- - -[float] -=== http - -Incoming HTTP request metrics. - - -[float] -=== connections - -Incoming HTTP connection statistics. - - -*`enterprisesearch.stats.http.connections.current`*:: -+ --- -Current number of HTTP connections opened to the Enterprise Search instance. - -type: long - --- - -*`enterprisesearch.stats.http.connections.max`*:: -+ --- -Maximum number of concurrent HTTP connections open to the Enterprise Search instance since the start. - -type: long - --- - -*`enterprisesearch.stats.http.connections.total`*:: -+ --- -Total number of HTTP connections opened to the Enterprise Search instance since the start. - -type: long - --- - -[float] -=== network - -Network traffic metrics. - - -*`enterprisesearch.stats.http.network.received.bytes`*:: -+ --- -Total number of bytes received by the Enterprise Search instance since the start. - -type: long - -format: bytes - --- - -*`enterprisesearch.stats.http.network.sent.bytes`*:: -+ --- -Total number of bytes sent by the Enterprise Search instance since the start. - -type: long - -format: bytes - --- - -*`enterprisesearch.stats.http.network.received.bytes_per_sec`*:: -+ --- -Average number of bytes received by the Enterprise Search instance per second since the start. - -type: long - -format: bytes - --- - -*`enterprisesearch.stats.http.network.sent.bytes_per_sec`*:: -+ --- -Average number of bytes sent by the Enterprise Search instance per second since the start. - -type: long - -format: bytes - --- - -[float] -=== request_duration - -Aggregate HTTP request duration statistics. - - -*`enterprisesearch.stats.http.request_duration.max.ms`*:: -+ --- -Longest HTTP connection duration since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.http.request_duration.mean.ms`*:: -+ --- -Average HTTP connection duration since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.http.request_duration.std_dev.ms`*:: -+ --- -Standard deviation for HTTP connection duration values since the start of the instance. - -type: long - --- - -[float] -=== responses - -Aggregate HTTP response counts broken down by HTTP status type. - - -*`enterprisesearch.stats.http.responses.1xx`*:: -+ --- -Total number of HTTP requests finished with a 1xx response code since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.http.responses.2xx`*:: -+ --- -Total number of HTTP requests finished with a 2xx response code since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.http.responses.3xx`*:: -+ --- -Total number of HTTP requests finished with a 3xx response code since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.http.responses.4xx`*:: -+ --- -Total number of HTTP requests finished with a 4xx response code since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.http.responses.5xx`*:: -+ --- -Total number of HTTP requests finished with a 5xx response code since the start of the instance. - -type: long - --- - -[float] -=== queues - -Aggregate stats on the functioning of the background jobs processing pipeline within Enterprise Search. - - -*`enterprisesearch.stats.queues.engine_destroyer.count`*:: -+ --- -Total number of jobs processed via the engine_destroyer queue since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.queues.mailer.count`*:: -+ --- -Total number of jobs processed via the mailer queue since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.queues.process_crawl.count`*:: -+ --- -Total number of jobs processed via the process_crawl queue since the start of the instance. - -type: long - --- - -*`enterprisesearch.stats.queues.failed.count`*:: -+ --- -Total number of jobs waiting in the failed queue. - -type: long - --- - -[float] -=== crawler - -Aggregate stats on the functioning of the crawler subsystem within Enterprise Search. - - -[float] -=== global - -Global deployment-wide metrics for the crawler. - - -[float] -=== crawl_requests - -Crawl request summary for the deployment. - - -*`enterprisesearch.stats.crawler.global.crawl_requests.pending`*:: -+ --- -Total number of crawl requests waiting to be processed. - -type: long - --- - -*`enterprisesearch.stats.crawler.global.crawl_requests.active`*:: -+ --- -Total number of crawl requests currently being processed (running crawls). - -type: long - --- - -*`enterprisesearch.stats.crawler.global.crawl_requests.successful`*:: -+ --- -Total number of crawl requests that have succeeded. - -type: long - --- - -*`enterprisesearch.stats.crawler.global.crawl_requests.failed`*:: -+ --- -Total number of failed crawl requests. - -type: long - --- - -[float] -=== node - -Node-level statistics for the crawler. - - -*`enterprisesearch.stats.crawler.node.pages_visited`*:: -+ --- -Total number of pages visited by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.urls_allowed`*:: -+ --- -Total number of URLs allowed by the crawler during discovery since the instance start. - -type: long - --- - -[float] -=== urls_denied - -Total number of URLs denied by the crawler during discovery since the instance start, broken down by deny reason. - - -*`enterprisesearch.stats.crawler.node.urls_denied.already_seen`*:: -+ --- -Total number of URLs not followed because of URL de-duplication (each URL is visited only once). - -type: long - --- - -*`enterprisesearch.stats.crawler.node.urls_denied.domain_filter_denied`*:: -+ --- -Total number of URLs denied because of an unknown domain. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.urls_denied.incorrect_protocol`*:: -+ --- -Total number of URLs with incorrect/invalid/unsupported protocols. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.urls_denied.link_too_deep`*:: -+ --- -Total number of URLs not followed due to crawl depth limits. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.urls_denied.nofollow`*:: -+ --- -Total number of URLs denied due to a nofollow meta tag or an HTML link attribute. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.urls_denied.unsupported_content_type`*:: -+ --- -Total number of URLs denied due to an unsupported content type. - -type: long - --- - -[float] -=== status_codes - -HTTP request result counts, by status code. - - -*`enterprisesearch.stats.crawler.node.status_codes.200`*:: -+ --- -Total number of HTTP 200 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.301`*:: -+ --- -Total number of HTTP 301 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.302`*:: -+ --- -Total number of HTTP 302 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.400`*:: -+ --- -Total number of HTTP 400 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.401`*:: -+ --- -Total number of HTTP 401 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.402`*:: -+ --- -Total number of HTTP 402 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.403`*:: -+ --- -Total number of HTTP 403 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.404`*:: -+ --- -Total number of HTTP 404 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.405`*:: -+ --- -Total number of HTTP 405 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.410`*:: -+ --- -Total number of HTTP 410 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.422`*:: -+ --- -Total number of HTTP 422 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.429`*:: -+ --- -Total number of HTTP 429 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.500`*:: -+ --- -Total number of HTTP 500 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.501`*:: -+ --- -Total number of HTTP 501 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.502`*:: -+ --- -Total number of HTTP 502 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.503`*:: -+ --- -Total number of HTTP 503 responses seen by the crawler since the instance start. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.status_codes.504`*:: -+ --- -Total number of HTTP 504 responses seen by the crawler since the instance start. - -type: long - --- - -[float] -=== queue_size - -Total current URL queue size for the instance. - - -*`enterprisesearch.stats.crawler.node.queue_size.primary`*:: -+ --- -Total number of URLs waiting to be crawled by the instance. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.queue_size.purge`*:: -+ --- -Total number of URLs waiting to be checked by the purge crawl phase. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.active_threads`*:: -+ --- -Total number of crawler worker threads currently active on the instance. - -type: long - --- - -[float] -=== workers - -Crawler workers information for the instance. - - -*`enterprisesearch.stats.crawler.node.workers.pool_size`*:: -+ --- -Total size of the crawl workers pool (number of concurrent crawls possible) for the instance. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.workers.active`*:: -+ --- -Total number of currently active crawl workers (running crawls) for the instance. - -type: long - --- - -*`enterprisesearch.stats.crawler.node.workers.available`*:: -+ --- -Total number of currently available (free) crawl workers for the instance. - -type: long - --- - -[float] -=== product_usage - -Aggregate product usage statistics for the Enterprise Search deployment. - - -[float] -=== app_search - -App Search product usage statistics. - - -*`enterprisesearch.stats.product_usage.app_search.total_engines`*:: -+ --- -Current number of App Search engines within the deployment. - -type: long - --- - -[float] -=== workplace_search - -Workplace Search product usage statistics. - - -*`enterprisesearch.stats.product_usage.workplace_search.total_org_sources`*:: -+ --- -Current number of Workplace Search org-wide content sources within the deployment. - -type: long - --- - -*`enterprisesearch.stats.product_usage.workplace_search.total_private_sources`*:: -+ --- -Current number of Workplace Search private content sources within the deployment. - -type: long - --- - [[exported-fields-envoyproxy]] == Envoyproxy fields diff --git a/metricbeat/docs/modules/enterprisesearch.asciidoc b/metricbeat/docs/modules/enterprisesearch.asciidoc deleted file mode 100644 index a9aea72ff575..000000000000 --- a/metricbeat/docs/modules/enterprisesearch.asciidoc +++ /dev/null @@ -1,73 +0,0 @@ -//// -This file is generated! See scripts/mage/docs_collector.go -//// - -:modulename: enterprisesearch -:edit_url: https://github.com/elastic/beats/edit/main/x-pack/metricbeat/module/enterprisesearch/_meta/docs.asciidoc - - -[[metricbeat-module-enterprisesearch]] -[role="xpack"] -== Enterprise Search module - -beta[] - -This module periodically fetches metrics and health information from Elastic Enterprise Search instances using HTTP APIs. - -[float] -=== Compatibility -The module has been tested with Enterprise Search versions 7.16.0 and higher. Versions below 7.16.0 are not expected to work due to a number of API-level incompatibilities. - -[float] -=== Usage -The Enterprise Search module requires a set of credentials (a username and a password) for an Elasticserch user for a user that has a `monitor` https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html#privileges-list-cluster[cluster privilege]. - -[float] -=== Usage for {stack} Monitoring - -The Enterprise Search module can be used to collect metrics shown in our {stack-monitor-app} -UI in {kib}. To enable this usage, set `xpack.enabled: true` in configuration. - -NOTE: When this module is used for {stack} Monitoring, it sends metrics to the -monitoring index instead of the default index typically used by {metricbeat}. -For more details about the monitoring index, see -{ref}/config-monitoring-indices.html[Configuring indices for monitoring]. - - -:edit_url: - -[float] -=== Example configuration - -The Enterprise Search module supports the standard configuration options that are described -in <>. Here is an example configuration: - -[source,yaml] ----- -metricbeat.modules: -- module: enterprisesearch - metricsets: ["health", "stats"] - enabled: true - period: 10s - hosts: ["http://localhost:3002"] - #username: "user" - #password: "secret" ----- - -This module supports TLS connections when using `ssl` config field, as described in <>. -It also supports the options described in <>. - -[float] -=== Metricsets - -The following metricsets are available: - -* <> - -* <> - -include::enterprisesearch/health.asciidoc[] - -include::enterprisesearch/stats.asciidoc[] - -:edit_url!: diff --git a/metricbeat/docs/modules/enterprisesearch/health.asciidoc b/metricbeat/docs/modules/enterprisesearch/health.asciidoc deleted file mode 100644 index 171a9a52a64c..000000000000 --- a/metricbeat/docs/modules/enterprisesearch/health.asciidoc +++ /dev/null @@ -1,24 +0,0 @@ -//// -This file is generated! See scripts/mage/docs_collector.go -//// -:edit_url: https://github.com/elastic/beats/edit/main/x-pack/metricbeat/module/enterprisesearch/health/_meta/docs.asciidoc - - -[[metricbeat-metricset-enterprisesearch-health]] -[role="xpack"] -=== Enterprise Search health metricset - -beta[] - -include::../../../../x-pack/metricbeat/module/enterprisesearch/health/_meta/docs.asciidoc[] - -This is a default metricset. If the host module is unconfigured, this metricset is enabled by default. - -:edit_url: - -==== Fields - -For a description of each field in the metricset, see the -<> section. - -:edit_url!: \ No newline at end of file diff --git a/metricbeat/docs/modules/enterprisesearch/stats.asciidoc b/metricbeat/docs/modules/enterprisesearch/stats.asciidoc deleted file mode 100644 index d585c80f1bee..000000000000 --- a/metricbeat/docs/modules/enterprisesearch/stats.asciidoc +++ /dev/null @@ -1,24 +0,0 @@ -//// -This file is generated! See scripts/mage/docs_collector.go -//// -:edit_url: https://github.com/elastic/beats/edit/main/x-pack/metricbeat/module/enterprisesearch/stats/_meta/docs.asciidoc - - -[[metricbeat-metricset-enterprisesearch-stats]] -[role="xpack"] -=== Enterprise Search stats metricset - -beta[] - -include::../../../../x-pack/metricbeat/module/enterprisesearch/stats/_meta/docs.asciidoc[] - -This is a default metricset. If the host module is unconfigured, this metricset is enabled by default. - -:edit_url: - -==== Fields - -For a description of each field in the metricset, see the -<> section. - -:edit_url!: \ No newline at end of file diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 89c634032ef0..ee8055b298c8 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -113,9 +113,6 @@ This file is generated! See scripts/mage/docs_collector.go |<> |<> |<> -|<> beta[] |image:./images/icon-yes.png[Prebuilt dashboards are available] | -.2+| .2+| |<> beta[] -|<> beta[] |<> |image:./images/icon-no.png[No prebuilt dashboards] | .1+| .1+| |<> |<> |image:./images/icon-no.png[No prebuilt dashboards] | @@ -360,7 +357,6 @@ include::modules/couchdb.asciidoc[] include::modules/docker.asciidoc[] include::modules/dropwizard.asciidoc[] include::modules/elasticsearch.asciidoc[] -include::modules/enterprisesearch.asciidoc[] include::modules/envoyproxy.asciidoc[] include::modules/etcd.asciidoc[] include::modules/gcp.asciidoc[] diff --git a/metricbeat/helper/elastic/elastic.go b/metricbeat/helper/elastic/elastic.go index a952497d9f83..4af3871356c4 100644 --- a/metricbeat/helper/elastic/elastic.go +++ b/metricbeat/helper/elastic/elastic.go @@ -47,9 +47,6 @@ const ( // Beats product Beats - - // Enterprise Search product - EnterpriseSearch ) func (p Product) xPackMonitoringIndexString() string { @@ -58,7 +55,6 @@ func (p Product) xPackMonitoringIndexString() string { "kibana", "logstash", "beats", - "ent-search", } if int(p) < 0 || int(p) > len(indexProductNames) { @@ -74,7 +70,6 @@ func (p Product) String() string { "kibana", "logstash", "beats", - "enterprisesearch", } if int(p) < 0 || int(p) > len(productNames) { diff --git a/x-pack/agentbeat/agentbeat.spec.yml b/x-pack/agentbeat/agentbeat.spec.yml index d553152d35b6..11b4ebbf185a 100644 --- a/x-pack/agentbeat/agentbeat.spec.yml +++ b/x-pack/agentbeat/agentbeat.spec.yml @@ -355,11 +355,6 @@ inputs: platforms: *platforms outputs: *outputs command: *metricbeat_command - - name: enterprisesearch/metrics - description: "Enterprise search metrics" - platforms: *platforms - outputs: *outputs - command: *metricbeat_command - name: kibana/metrics description: "Kibana metrics" platforms: *platforms diff --git a/x-pack/auditbeat/auditbeat.reference.yml b/x-pack/auditbeat/auditbeat.reference.yml index c66aab60261e..be545eb74dd6 100644 --- a/x-pack/auditbeat/auditbeat.reference.yml +++ b/x-pack/auditbeat/auditbeat.reference.yml @@ -80,6 +80,9 @@ auditbeat.modules: - /usr/sbin - /etc + # Detect changes to files included in subdirectories. Disabled by default. + recursive: false + # List of regular expressions to filter out notifications for unwanted files. # Wrap in single quotes to workaround YAML escaping rules. By default no files # are ignored. @@ -88,6 +91,10 @@ auditbeat.modules: - '~$' - '/\.git($|/)' + # If recursive is set to true, subdirectories can also be excluded here by + # specifying them. + # - '(?i)/tmp/' + # List of regular expressions used to explicitly include files. When configured, # Auditbeat will ignore files unless they match a pattern. #include_files: @@ -115,9 +122,6 @@ auditbeat.modules: # Default is sha1. hash_types: [sha1] - # Detect changes to files included in subdirectories. Disabled by default. - recursive: false - # Set to true to publish fields with null values in events. #keep_null: false diff --git a/x-pack/metricbeat/include/list.go b/x-pack/metricbeat/include/list.go index af3b1e9425d8..cac57f05aa71 100644 --- a/x-pack/metricbeat/include/list.go +++ b/x-pack/metricbeat/include/list.go @@ -34,9 +34,6 @@ import ( _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/containerd/memory" _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/coredns" _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/coredns/stats" - _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/enterprisesearch" - _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/enterprisesearch/health" - _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/enterprisesearch/stats" _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/gcp" _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/gcp/billing" _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/gcp/carbon" diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 4bd6a223ffb3..1833351c76a8 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -576,15 +576,6 @@ metricbeat.modules: #xpack.enabled: false #scope: node -#-------------------------- Enterprise Search Module -------------------------- -- module: enterprisesearch - metricsets: ["health", "stats"] - enabled: true - period: 10s - hosts: ["http://localhost:3002"] - #username: "user" - #password: "secret" - #------------------------------ Envoyproxy Module ------------------------------ - module: envoyproxy metricsets: ["server"] @@ -1408,11 +1399,9 @@ metricbeat.modules: # Password to use when connecting to PostgreSQL. Empty by default. #password: pass -#------------------------------ Prometheus Module ------------------------------ -# Metrics collected from a Prometheus endpoint +#----------------------- Prometheus Typed Metrics Module ----------------------- - module: prometheus period: 10s - metricsets: ["collector"] hosts: ["localhost:9090"] metrics_path: /metrics #metrics_filters: @@ -1421,14 +1410,20 @@ metricbeat.modules: #username: "user" #password: "secret" - # Count number of metrics present in Elasticsearch document (default: false) - #metrics_count: false - # This can be used for service account based authorization: #bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token #ssl.certificate_authorities: # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt + # Count number of metrics present in Elasticsearch document (default: false) + #metrics_count: false + + # Use Elasticsearch histogram type to store histograms (beta, default: false) + # This will change the default layout and put metric type in the field name + #use_types: true + + # Store counter rates instead of original cumulative counters (experimental, default: false) + #rate_counters: true # Metrics sent by a Prometheus server using remote_write option #- module: prometheus @@ -1436,13 +1431,25 @@ metricbeat.modules: # host: "localhost" # port: "9201" - # Count number of metrics present in Elasticsearch document (default: false) - #metrics_count: false - # Secure settings for the server using TLS/SSL: #ssl.certificate: "/etc/pki/server/cert.pem" #ssl.key: "/etc/pki/server/cert.key" + # Count number of metrics present in Elasticsearch document (default: false) + #metrics_count: false + + # Use Elasticsearch histogram type to store histograms (beta, default: false) + # This will change the default layout and put metric type in the field name + #use_types: true + + # Store counter rates instead of original cumulative counters (experimental, default: false) + #rate_counters: true + + # Define patterns for counter and histogram types so as to identify metrics' types according to these patterns + #types_patterns: + # counter_patterns: [] + # histogram_patterns: [] + # Metrics that will be collected using a PromQL #- module: prometheus # metricsets: ["query"] @@ -1469,9 +1476,11 @@ metricbeat.modules: # params: # query: "some_value" -#----------------------- Prometheus Typed Metrics Module ----------------------- +#------------------------------ Prometheus Module ------------------------------ +# Metrics collected from a Prometheus endpoint - module: prometheus period: 10s + metricsets: ["collector"] hosts: ["localhost:9090"] metrics_path: /metrics #metrics_filters: @@ -1480,20 +1489,14 @@ metricbeat.modules: #username: "user" #password: "secret" + # Count number of metrics present in Elasticsearch document (default: false) + #metrics_count: false + # This can be used for service account based authorization: #bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token #ssl.certificate_authorities: # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt - # Count number of metrics present in Elasticsearch document (default: false) - #metrics_count: false - - # Use Elasticsearch histogram type to store histograms (beta, default: false) - # This will change the default layout and put metric type in the field name - #use_types: true - - # Store counter rates instead of original cumulative counters (experimental, default: false) - #rate_counters: true # Metrics sent by a Prometheus server using remote_write option #- module: prometheus @@ -1501,24 +1504,12 @@ metricbeat.modules: # host: "localhost" # port: "9201" - # Secure settings for the server using TLS/SSL: - #ssl.certificate: "/etc/pki/server/cert.pem" - #ssl.key: "/etc/pki/server/cert.key" - # Count number of metrics present in Elasticsearch document (default: false) #metrics_count: false - # Use Elasticsearch histogram type to store histograms (beta, default: false) - # This will change the default layout and put metric type in the field name - #use_types: true - - # Store counter rates instead of original cumulative counters (experimental, default: false) - #rate_counters: true - - # Define patterns for counter and histogram types so as to identify metrics' types according to these patterns - #types_patterns: - # counter_patterns: [] - # histogram_patterns: [] + # Secure settings for the server using TLS/SSL: + #ssl.certificate: "/etc/pki/server/cert.pem" + #ssl.key: "/etc/pki/server/cert.key" # Metrics that will be collected using a PromQL #- module: prometheus diff --git a/x-pack/metricbeat/module/enterprisesearch/_meta/Dockerfile b/x-pack/metricbeat/module/enterprisesearch/_meta/Dockerfile deleted file mode 100644 index 57546590cf63..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/_meta/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -ARG ENT_VERSION -FROM docker.elastic.co/enterprise-search/enterprise-search:${ENT_VERSION} - -COPY docker-entrypoint-dependencies.sh /usr/local/bin/ -# We need to explicitly specify tini here or Docker will use /bin/sh to run the script and -# on Debian-based images (which we use for ARM64 images) it runs dash, which does not -# support environment variables with dots and it leads to all config options being dropped -# See https://github.com/docker-library/openjdk/issues/135#issuecomment-318495067 -ENTRYPOINT ["tini", "--", "/usr/local/bin/docker-entrypoint-dependencies.sh"] - -HEALTHCHECK --interval=1s --retries=300 --start-period=60s \ - CMD curl --user elastic:changeme --fail --silent http://localhost:3002/api/ent/v1/internal/health diff --git a/x-pack/metricbeat/module/enterprisesearch/_meta/config-xpack.yml b/x-pack/metricbeat/module/enterprisesearch/_meta/config-xpack.yml deleted file mode 100644 index d80e6d349b6e..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/_meta/config-xpack.yml +++ /dev/null @@ -1,8 +0,0 @@ -- module: enterprisesearch - xpack.enabled: true - metricsets: ["health", "stats"] - enabled: true - period: 10s - hosts: ["http://localhost:3002"] - #username: "user" - #password: "secret" diff --git a/x-pack/metricbeat/module/enterprisesearch/_meta/config.yml b/x-pack/metricbeat/module/enterprisesearch/_meta/config.yml deleted file mode 100644 index e90fa79f9ff4..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/_meta/config.yml +++ /dev/null @@ -1,7 +0,0 @@ -- module: enterprisesearch - metricsets: ["health", "stats"] - enabled: true - period: 10s - hosts: ["http://localhost:3002"] - #username: "user" - #password: "secret" diff --git a/x-pack/metricbeat/module/enterprisesearch/_meta/docker-entrypoint-dependencies.sh b/x-pack/metricbeat/module/enterprisesearch/_meta/docker-entrypoint-dependencies.sh deleted file mode 100755 index bdfe80f627fc..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/_meta/docker-entrypoint-dependencies.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -e - -# Bash is not good at retrieving env variables with dot; parse them with grep from env -export USERNAME=`env | grep elasticsearch.\\username= | cut -d= -f2-` -export PASSWORD=`env | grep elasticsearch.\\password= | cut -d= -f2-` - -until curl -u $USERNAME:$PASSWORD -f -s "http://elasticsearch:9200/_license"; do - echo "Elasticsearch not available yet". - sleep 1 -done - -/usr/local/bin/docker-entrypoint.sh "$@" diff --git a/x-pack/metricbeat/module/enterprisesearch/_meta/docs.asciidoc b/x-pack/metricbeat/module/enterprisesearch/_meta/docs.asciidoc deleted file mode 100644 index e417e57b682f..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/_meta/docs.asciidoc +++ /dev/null @@ -1,20 +0,0 @@ -This module periodically fetches metrics and health information from Elastic Enterprise Search instances using HTTP APIs. - -[float] -=== Compatibility -The module has been tested with Enterprise Search versions 7.16.0 and higher. Versions below 7.16.0 are not expected to work due to a number of API-level incompatibilities. - -[float] -=== Usage -The Enterprise Search module requires a set of credentials (a username and a password) for an Elasticserch user for a user that has a `monitor` https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html#privileges-list-cluster[cluster privilege]. - -[float] -=== Usage for {stack} Monitoring - -The Enterprise Search module can be used to collect metrics shown in our {stack-monitor-app} -UI in {kib}. To enable this usage, set `xpack.enabled: true` in configuration. - -NOTE: When this module is used for {stack} Monitoring, it sends metrics to the -monitoring index instead of the default index typically used by {metricbeat}. -For more details about the monitoring index, see -{ref}/config-monitoring-indices.html[Configuring indices for monitoring]. diff --git a/x-pack/metricbeat/module/enterprisesearch/_meta/fields.yml b/x-pack/metricbeat/module/enterprisesearch/_meta/fields.yml deleted file mode 100644 index abe269d31b18..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/_meta/fields.yml +++ /dev/null @@ -1,15 +0,0 @@ -- key: enterprisesearch - title: "Enterprise Search" - release: beta - settings: ["ssl", "http"] - description: > - Enterprise Search module - fields: - - name: enterprisesearch - type: group - description: > - `enterprisesearch` contains metrics and health information for Enterprise Search - fields: - - name: cluster_uuid - type: keyword - description: Cluster UUID for the Elasticsearch cluster used as the data store for Enterprise Search. diff --git a/x-pack/metricbeat/module/enterprisesearch/_meta/kibana/7/dashboard/Metricbeat-enterprise-search-overview.json b/x-pack/metricbeat/module/enterprisesearch/_meta/kibana/7/dashboard/Metricbeat-enterprise-search-overview.json deleted file mode 100644 index b31750048d3d..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/_meta/kibana/7/dashboard/Metricbeat-enterprise-search-overview.json +++ /dev/null @@ -1,1954 +0,0 @@ -{ - "attributes": { - "description": "Enterprise Search deployment overview: product usage, network metrics, low-level resource utilization, etc", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "key": "event.module", - "negate": false, - "params": { - "query": "enterprisesearch" - }, - "type": "phrase" - }, - "query": { - "match_phrase": { - "event.module": "enterprisesearch" - } - } - } - ], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "optionsJSON": { - "hidePanelTitles": false, - "syncColors": false, - "useMargins": true - }, - "panelsJSON": [ - { - "embeddableConfig": { - "enhancements": {}, - "savedVis": { - "data": { - "aggs": [], - "searchSource": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "description": "", - "id": "", - "params": { - "fontSize": 12, - "markdown": "# Product Usage", - "openLinksInNewTab": false - }, - "title": "", - "type": "markdown", - "uiState": {} - } - }, - "gridData": { - "h": 4, - "i": "7f957d85-d635-4c60-9449-01175e6bc122", - "w": 48, - "x": 0, - "y": 0 - }, - "panelIndex": "7f957d85-d635-4c60-9449-01175e6bc122", - "type": "visualization", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-0d0ae348-91e8-44a0-b442-f409a093178a", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "0d0ae348-91e8-44a0-b442-f409a093178a": { - "columnOrder": [ - "ade6560c-7f95-4f3f-a01e-154a3139ff55", - "c5c8d5c3-4bd7-4689-b3a9-7d6d00cd24f2" - ], - "columns": { - "ade6560c-7f95-4f3f-a01e-154a3139ff55": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "c5c8d5c3-4bd7-4689-b3a9-7d6d00cd24f2": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Active Nodes", - "operationType": "unique_count", - "scale": "ratio", - "sourceField": "enterprisesearch.cluster_uuid" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "c5c8d5c3-4bd7-4689-b3a9-7d6d00cd24f2" - ], - "layerId": "0d0ae348-91e8-44a0-b442-f409a093178a", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "ade6560c-7f95-4f3f-a01e-154a3139ff55" - } - ], - "legend": { - "isVisible": true, - "position": "right" - }, - "preferredSeriesType": "bar_stacked", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - } - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 11, - "i": "1534ebcc-1209-4d1a-829e-b92128b025e9", - "w": 24, - "x": 0, - "y": 4 - }, - "panelIndex": "1534ebcc-1209-4d1a-829e-b92128b025e9", - "title": "Active Enterprise Search Nodes", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-84b53681-6661-4b25-80df-4b4662b8d685", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "84b53681-6661-4b25-80df-4b4662b8d685": { - "columnOrder": [ - "1b101cee-67f3-4bcc-83cb-47bdb826d22c", - "d0eec076-f510-436a-9868-898e63f16266", - "8a7f1cb1-97c6-4de7-a3b6-eeed5a93e9bd", - "52e0322a-25ad-42db-aa63-f12574a01a09" - ], - "columns": { - "1b101cee-67f3-4bcc-83cb-47bdb826d22c": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "52e0322a-25ad-42db-aa63-f12574a01a09": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Private Sources", - "operationType": "median", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.product_usage.workplace_search.total_private_sources" - }, - "8a7f1cb1-97c6-4de7-a3b6-eeed5a93e9bd": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Org Sources", - "operationType": "median", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.product_usage.workplace_search.total_org_sources" - }, - "d0eec076-f510-436a-9868-898e63f16266": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "App Search Engines", - "operationType": "average", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.product_usage.app_search.total_engines" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": false, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "d0eec076-f510-436a-9868-898e63f16266", - "8a7f1cb1-97c6-4de7-a3b6-eeed5a93e9bd", - "52e0322a-25ad-42db-aa63-f12574a01a09" - ], - "layerId": "84b53681-6661-4b25-80df-4b4662b8d685", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "1b101cee-67f3-4bcc-83cb-47bdb826d22c" - } - ], - "legend": { - "isInside": false, - "isVisible": true, - "position": "bottom", - "showSingleSeries": true - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - } - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 11, - "i": "b330f58a-2b26-432a-b359-747c23654557", - "w": 24, - "x": 24, - "y": 4 - }, - "panelIndex": "b330f58a-2b26-432a-b359-747c23654557", - "title": "Product Usage", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "enhancements": {}, - "savedVis": { - "data": { - "aggs": [], - "searchSource": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "description": "", - "id": "", - "params": { - "fontSize": 12, - "markdown": "# Network Metrics", - "openLinksInNewTab": false - }, - "title": "", - "type": "markdown", - "uiState": {} - } - }, - "gridData": { - "h": 4, - "i": "aeb9e2f9-f281-45b3-9e2a-ee516d62126a", - "w": 48, - "x": 0, - "y": 15 - }, - "panelIndex": "aeb9e2f9-f281-45b3-9e2a-ee516d62126a", - "type": "visualization", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-5e24b58b-47b0-4f0e-bea0-df51c7af4896", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "5e24b58b-47b0-4f0e-bea0-df51c7af4896": { - "columnOrder": [ - "1079c9fa-6120-49b1-9d62-af75ecc00525", - "4ef7aabc-0fa2-4a89-89c4-2a7d908fddfe", - "4831819f-66f7-45b0-824f-cba088840eee", - "e8965f7f-bdb0-418b-8e23-ee84c42518b0", - "790cae75-ce3f-4ccd-a767-84632c4a1dae" - ], - "columns": { - "1079c9fa-6120-49b1-9d62-af75ecc00525": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "4831819f-66f7-45b0-824f-cba088840eee": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.stats.http.network.received.bytes", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.network.received.bytes" - }, - "4ef7aabc-0fa2-4a89-89c4-2a7d908fddfe": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Incoming", - "operationType": "counter_rate", - "references": [ - "4831819f-66f7-45b0-824f-cba088840eee" - ], - "scale": "ratio", - "timeScale": "s" - }, - "790cae75-ce3f-4ccd-a767-84632c4a1dae": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.stats.http.network.sent.bytes", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.network.sent.bytes" - }, - "e8965f7f-bdb0-418b-8e23-ee84c42518b0": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Outgoing", - "operationType": "counter_rate", - "references": [ - "790cae75-ce3f-4ccd-a767-84632c4a1dae" - ], - "scale": "ratio", - "timeScale": "s" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "4ef7aabc-0fa2-4a89-89c4-2a7d908fddfe", - "e8965f7f-bdb0-418b-8e23-ee84c42518b0" - ], - "layerId": "5e24b58b-47b0-4f0e-bea0-df51c7af4896", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "1079c9fa-6120-49b1-9d62-af75ecc00525" - } - ], - "legend": { - "isInside": true, - "isVisible": true, - "position": "right" - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - }, - "yTitle": "bytes/sec" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 10, - "i": "117a974f-7477-4bc5-951c-ad50e617ef68", - "w": 24, - "x": 0, - "y": 19 - }, - "panelIndex": "117a974f-7477-4bc5-951c-ad50e617ef68", - "title": "Network Traffic", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-ab0dfa29-0a04-448e-ae11-edf8a0427c48", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "ab0dfa29-0a04-448e-ae11-edf8a0427c48": { - "columnOrder": [ - "1baeaecc-cd8d-4793-b3f9-2981ad03418b", - "476c8804-4014-461d-aa46-1b006658dcca", - "cc2f4b02-bcf2-49b2-a95d-1718db2e04fe", - "c1821e7b-d24b-4a1c-9afe-b44842c966d8", - "10f51273-2d6f-4f34-b23d-3a28726352c8", - "631736a3-f9d2-49d1-a45f-e2bc3796fc32", - "7ced77f8-34c2-430c-b11d-45b366734863", - "e4bfadc8-b049-4e8d-a6fc-6cbf84d6df40", - "aa9f33f1-d530-4e0d-af2c-23672edd56fa" - ], - "columns": { - "10f51273-2d6f-4f34-b23d-3a28726352c8": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "4xx", - "operationType": "median", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.responses.4xx" - }, - "1baeaecc-cd8d-4793-b3f9-2981ad03418b": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "476c8804-4014-461d-aa46-1b006658dcca": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "1xx", - "operationType": "counter_rate", - "references": [ - "7ced77f8-34c2-430c-b11d-45b366734863" - ], - "scale": "ratio", - "timeScale": "s" - }, - "631736a3-f9d2-49d1-a45f-e2bc3796fc32": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "5xx", - "operationType": "median", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.responses.5xx" - }, - "7ced77f8-34c2-430c-b11d-45b366734863": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.stats.http.responses.1xx", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.responses.1xx" - }, - "aa9f33f1-d530-4e0d-af2c-23672edd56fa": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.stats.http.responses.3xx", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.responses.3xx" - }, - "c1821e7b-d24b-4a1c-9afe-b44842c966d8": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "3xx", - "operationType": "counter_rate", - "references": [ - "aa9f33f1-d530-4e0d-af2c-23672edd56fa" - ], - "scale": "ratio", - "timeScale": "s" - }, - "cc2f4b02-bcf2-49b2-a95d-1718db2e04fe": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "2xx", - "operationType": "counter_rate", - "references": [ - "e4bfadc8-b049-4e8d-a6fc-6cbf84d6df40" - ], - "scale": "ratio", - "timeScale": "s" - }, - "e4bfadc8-b049-4e8d-a6fc-6cbf84d6df40": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.stats.http.responses.2xx", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.responses.2xx" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "Linear", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "476c8804-4014-461d-aa46-1b006658dcca", - "cc2f4b02-bcf2-49b2-a95d-1718db2e04fe", - "c1821e7b-d24b-4a1c-9afe-b44842c966d8", - "10f51273-2d6f-4f34-b23d-3a28726352c8", - "631736a3-f9d2-49d1-a45f-e2bc3796fc32" - ], - "layerId": "ab0dfa29-0a04-448e-ae11-edf8a0427c48", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "1baeaecc-cd8d-4793-b3f9-2981ad03418b", - "yConfig": [ - { - "axisMode": "left", - "color": "#6092c0", - "forAccessor": "476c8804-4014-461d-aa46-1b006658dcca" - }, - { - "axisMode": "left", - "color": "#54b399", - "forAccessor": "cc2f4b02-bcf2-49b2-a95d-1718db2e04fe" - }, - { - "axisMode": "left", - "forAccessor": "c1821e7b-d24b-4a1c-9afe-b44842c966d8" - }, - { - "axisMode": "left", - "forAccessor": "10f51273-2d6f-4f34-b23d-3a28726352c8" - }, - { - "axisMode": "left", - "forAccessor": "631736a3-f9d2-49d1-a45f-e2bc3796fc32" - } - ] - } - ], - "legend": { - "isInside": true, - "isVisible": true, - "position": "right" - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - }, - "yTitle": "responses/sec" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 10, - "i": "00eb0f89-4a3b-4ebe-8c1f-2d9fc6fc13b0", - "w": 24, - "x": 24, - "y": 19 - }, - "panelIndex": "00eb0f89-4a3b-4ebe-8c1f-2d9fc6fc13b0", - "title": "HTTP Responses", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-0efbdd59-a39c-42d6-a596-115019496378", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "0efbdd59-a39c-42d6-a596-115019496378": { - "columnOrder": [ - "125132ed-117e-426b-b29e-ffa870c7cf74", - "312cbb39-bd19-4cc3-906a-96d2811cb1a3", - "6160010f-d025-46ca-aed5-40d9c117bf04", - "1108c89d-b2bf-4f3a-8afd-aec8b0176adf" - ], - "columns": { - "1108c89d-b2bf-4f3a-8afd-aec8b0176adf": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.stats.http.connections.total", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.connections.total" - }, - "125132ed-117e-426b-b29e-ffa870c7cf74": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "312cbb39-bd19-4cc3-906a-96d2811cb1a3": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Current Connections", - "operationType": "average", - "scale": "ratio", - "sourceField": "enterprisesearch.stats.http.connections.current" - }, - "6160010f-d025-46ca-aed5-40d9c117bf04": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Connection Rate", - "operationType": "counter_rate", - "references": [ - "1108c89d-b2bf-4f3a-8afd-aec8b0176adf" - ], - "scale": "ratio", - "timeScale": "s" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "312cbb39-bd19-4cc3-906a-96d2811cb1a3", - "6160010f-d025-46ca-aed5-40d9c117bf04" - ], - "layerId": "0efbdd59-a39c-42d6-a596-115019496378", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "125132ed-117e-426b-b29e-ffa870c7cf74", - "yConfig": [ - { - "axisMode": "right", - "forAccessor": "6160010f-d025-46ca-aed5-40d9c117bf04" - }, - { - "axisMode": "left", - "forAccessor": "312cbb39-bd19-4cc3-906a-96d2811cb1a3" - } - ] - } - ], - "legend": { - "isInside": true, - "isVisible": true, - "position": "right" - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - }, - "yRightTitle": "Connections/sec", - "yTitle": "Connections" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 11, - "i": "f58b85e4-0623-4eda-8a22-4645b4658825", - "w": 24, - "x": 0, - "y": 29 - }, - "panelIndex": "f58b85e4-0623-4eda-8a22-4645b4658825", - "title": "Active HTTP Connections", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "enhancements": {}, - "savedVis": { - "data": { - "aggs": [], - "searchSource": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "description": "", - "id": "", - "params": { - "fontSize": 12, - "markdown": "# Network Metrics", - "openLinksInNewTab": false - }, - "title": "", - "type": "markdown", - "uiState": {} - } - }, - "gridData": { - "h": 4, - "i": "803dcfc0-874d-45f6-81e6-e7822f3e4757", - "w": 48, - "x": 0, - "y": 40 - }, - "panelIndex": "803dcfc0-874d-45f6-81e6-e7822f3e4757", - "type": "visualization", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-beaaf733-314f-497d-ae53-6bd8cacc159a", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "beaaf733-314f-497d-ae53-6bd8cacc159a": { - "columnOrder": [ - "805cf0b8-0d01-40fe-a8e1-5dbc69ce1070", - "1d2594e3-33b9-4b8e-986f-268cdbfe3dfb", - "a8b8a7a9-684e-4d7e-b675-b988edc90aac", - "e5ad4665-d717-4bed-81fe-6d11001817d4", - "b5eac894-ebbc-4417-9da3-eb3aed9c3998" - ], - "columns": { - "1d2594e3-33b9-4b8e-986f-268cdbfe3dfb": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total", - "operationType": "median", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 2 - } - } - }, - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.memory_usage.heap_max.bytes" - }, - "805cf0b8-0d01-40fe-a8e1-5dbc69ce1070": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "a8b8a7a9-684e-4d7e-b675-b988edc90aac": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Allocated", - "operationType": "median", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 2 - } - } - }, - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.memory_usage.heap_committed.bytes" - }, - "b5eac894-ebbc-4417-9da3-eb3aed9c3998": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Off-heap", - "operationType": "median", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 2 - } - } - }, - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.memory_usage.non_heap_committed.bytes" - }, - "e5ad4665-d717-4bed-81fe-6d11001817d4": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Used", - "operationType": "median", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 2 - } - } - }, - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.memory_usage.heap_used.bytes" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "1d2594e3-33b9-4b8e-986f-268cdbfe3dfb", - "e5ad4665-d717-4bed-81fe-6d11001817d4", - "b5eac894-ebbc-4417-9da3-eb3aed9c3998", - "a8b8a7a9-684e-4d7e-b675-b988edc90aac" - ], - "layerId": "beaaf733-314f-497d-ae53-6bd8cacc159a", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "805cf0b8-0d01-40fe-a8e1-5dbc69ce1070", - "yConfig": [ - { - "axisMode": "left", - "forAccessor": "1d2594e3-33b9-4b8e-986f-268cdbfe3dfb" - }, - { - "axisMode": "left", - "forAccessor": "a8b8a7a9-684e-4d7e-b675-b988edc90aac" - }, - { - "axisMode": "left", - "forAccessor": "e5ad4665-d717-4bed-81fe-6d11001817d4" - } - ] - } - ], - "legend": { - "horizontalAlignment": "right", - "isInside": true, - "isVisible": true, - "position": "bottom", - "verticalAlignment": "top" - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - }, - "yTitle": "Bytes" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 11, - "i": "c72f1e47-34f8-41a2-91f5-452da0a8d052", - "w": 24, - "x": 0, - "y": 44 - }, - "panelIndex": "c72f1e47-34f8-41a2-91f5-452da0a8d052", - "title": "Memory Usage", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-1d99fbfc-3f4b-47ac-9a91-cec22a18f7c4", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "1d99fbfc-3f4b-47ac-9a91-cec22a18f7c4": { - "columnOrder": [ - "ba3f6710-7ba4-4e33-b865-aa3b29a611cc", - "c92a9912-3cdb-403a-b686-87c8c58cac43" - ], - "columns": { - "ba3f6710-7ba4-4e33-b865-aa3b29a611cc": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "c92a9912-3cdb-403a-b686-87c8c58cac43": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Objects", - "operationType": "average", - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.memory_usage.object_pending_finalization_count" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "c92a9912-3cdb-403a-b686-87c8c58cac43" - ], - "layerId": "1d99fbfc-3f4b-47ac-9a91-cec22a18f7c4", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "ba3f6710-7ba4-4e33-b865-aa3b29a611cc" - } - ], - "legend": { - "isVisible": true, - "position": "bottom", - "showSingleSeries": false - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - } - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 11, - "i": "a381a1ed-82a0-4b43-9dd5-8172e4dc4a92", - "w": 24, - "x": 24, - "y": 44 - }, - "panelIndex": "a381a1ed-82a0-4b43-9dd5-8172e4dc4a92", - "title": "JVM Object Finalizer Queue", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-50da9c38-fcc3-4c43-a74e-85672a6ce4b0", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "50da9c38-fcc3-4c43-a74e-85672a6ce4b0": { - "columnOrder": [ - "5bc7d0eb-20e7-4846-a3d0-4f8d82317623", - "30bcd973-ce24-4101-bf9f-8e43715b2cd9", - "e2c87a95-f4a1-41e6-9848-6d2bb31d53da", - "2d04b3ab-8d59-4ec0-831c-b9228a1c62b5", - "dcd14020-52ef-40b2-ba74-30c56176b5f8" - ], - "columns": { - "2d04b3ab-8d59-4ec0-831c-b9228a1c62b5": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.health.jvm.gc.collection_count", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.gc.collection_count" - }, - "30bcd973-ce24-4101-bf9f-8e43715b2cd9": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "GC Rate (per second)", - "operationType": "counter_rate", - "references": [ - "2d04b3ab-8d59-4ec0-831c-b9228a1c62b5" - ], - "scale": "ratio", - "timeScale": "s" - }, - "5bc7d0eb-20e7-4846-a3d0-4f8d82317623": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "dcd14020-52ef-40b2-ba74-30c56176b5f8": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.health.jvm.gc.collection_time.ms", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.gc.collection_time.ms" - }, - "e2c87a95-f4a1-41e6-9848-6d2bb31d53da": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "GC Time (msec)", - "operationType": "counter_rate", - "references": [ - "dcd14020-52ef-40b2-ba74-30c56176b5f8" - ], - "scale": "ratio", - "timeScale": "s" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "curveType": "LINEAR", - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "30bcd973-ce24-4101-bf9f-8e43715b2cd9", - "e2c87a95-f4a1-41e6-9848-6d2bb31d53da" - ], - "layerId": "50da9c38-fcc3-4c43-a74e-85672a6ce4b0", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "5bc7d0eb-20e7-4846-a3d0-4f8d82317623", - "yConfig": [ - { - "axisMode": "left", - "forAccessor": "30bcd973-ce24-4101-bf9f-8e43715b2cd9" - }, - { - "axisMode": "right", - "forAccessor": "e2c87a95-f4a1-41e6-9848-6d2bb31d53da" - } - ] - } - ], - "legend": { - "isVisible": true, - "position": "bottom" - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - } - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 12, - "i": "0a6dec60-0d76-4d56-8de7-bbc11b056dd4", - "w": 24, - "x": 0, - "y": 55 - }, - "panelIndex": "0a6dec60-0d76-4d56-8de7-bbc11b056dd4", - "title": "JVM Garbage Collection", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-525cd9ab-aabd-4650-9fd3-49b273d63dfd", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "525cd9ab-aabd-4650-9fd3-49b273d63dfd": { - "columnOrder": [ - "e357cbf6-3e7b-4a1a-ab01-8bf1158d8c9e", - "ebf70775-2697-4596-9a54-4c9dd8729dca", - "82b0a7eb-7726-47ef-aaf8-1559ce454967", - "6906ad8f-3215-47d0-9861-2d183269ce10", - "23c8da16-6db9-442b-bd8f-a39786c37047" - ], - "columns": { - "23c8da16-6db9-442b-bd8f-a39786c37047": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of enterprisesearch.health.jvm.threads.total_started", - "operationType": "max", - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.threads.total_started" - }, - "6906ad8f-3215-47d0-9861-2d183269ce10": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Creation Rate", - "operationType": "counter_rate", - "references": [ - "23c8da16-6db9-442b-bd8f-a39786c37047" - ], - "scale": "ratio", - "timeScale": "s" - }, - "82b0a7eb-7726-47ef-aaf8-1559ce454967": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Daemon Threads", - "operationType": "median", - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.threads.daemon" - }, - "e357cbf6-3e7b-4a1a-ab01-8bf1158d8c9e": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "ebf70775-2697-4596-9a54-4c9dd8729dca": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Active Threads", - "operationType": "average", - "scale": "ratio", - "sourceField": "enterprisesearch.health.jvm.threads.current" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "ebf70775-2697-4596-9a54-4c9dd8729dca", - "82b0a7eb-7726-47ef-aaf8-1559ce454967", - "6906ad8f-3215-47d0-9861-2d183269ce10" - ], - "layerId": "525cd9ab-aabd-4650-9fd3-49b273d63dfd", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "e357cbf6-3e7b-4a1a-ab01-8bf1158d8c9e", - "yConfig": [ - { - "axisMode": "right", - "forAccessor": "6906ad8f-3215-47d0-9861-2d183269ce10" - }, - { - "axisMode": "left", - "forAccessor": "82b0a7eb-7726-47ef-aaf8-1559ce454967" - }, - { - "axisMode": "left", - "forAccessor": "ebf70775-2697-4596-9a54-4c9dd8729dca" - } - ] - } - ], - "legend": { - "isVisible": true, - "position": "bottom" - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - }, - "yRightTitle": "Threads/sec", - "yTitle": "Threads" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 12, - "i": "49705139-1a81-4a84-bb21-d8e48643ed88", - "w": 24, - "x": 24, - "y": 55 - }, - "panelIndex": "49705139-1a81-4a84-bb21-d8e48643ed88", - "title": "JVM Threads", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "enhancements": {}, - "savedVis": { - "data": { - "aggs": [], - "searchSource": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "description": "", - "id": "", - "params": { - "fontSize": 12, - "markdown": "# Background Workers", - "openLinksInNewTab": false - }, - "title": "", - "type": "markdown", - "uiState": {} - } - }, - "gridData": { - "h": 4, - "i": "a03d7633-3463-4c56-9a3d-a02f8b39772c", - "w": 48, - "x": 0, - "y": 67 - }, - "panelIndex": "a03d7633-3463-4c56-9a3d-a02f8b39772c", - "type": "visualization", - "version": "7.16.0-SNAPSHOT" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "indexpattern-datasource-layer-d7ce3f00-e90b-429d-af0d-91651c3ec1c0", - "type": "index-pattern" - } - ], - "state": { - "datasourceStates": { - "indexpattern": { - "layers": { - "d7ce3f00-e90b-429d-af0d-91651c3ec1c0": { - "columnOrder": [ - "f9190822-6861-4d63-94d1-52e9c3cfd223", - "c190f356-68d2-47ab-a465-07c32958d727", - "4da78b25-82c4-48ed-a954-bdb991ad6c23" - ], - "columns": { - "4da78b25-82c4-48ed-a954-bdb991ad6c23": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Active Workers", - "operationType": "average", - "scale": "ratio", - "sourceField": "enterprisesearch.health.crawler.workers.active" - }, - "c190f356-68d2-47ab-a465-07c32958d727": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total Workers", - "operationType": "average", - "scale": "ratio", - "sourceField": "enterprisesearch.health.crawler.workers.pool_size" - }, - "f9190822-6861-4d63-94d1-52e9c3cfd223": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "interval": "auto" - }, - "scale": "interval", - "sourceField": "@timestamp" - } - }, - "incompleteColumns": {} - } - } - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "c190f356-68d2-47ab-a465-07c32958d727", - "4da78b25-82c4-48ed-a954-bdb991ad6c23" - ], - "layerId": "d7ce3f00-e90b-429d-af0d-91651c3ec1c0", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "f9190822-6861-4d63-94d1-52e9c3cfd223" - } - ], - "legend": { - "isInside": true, - "isVisible": true, - "position": "right" - }, - "preferredSeriesType": "line", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide", - "valuesInLegend": true, - "yLeftExtent": { - "mode": "full" - }, - "yRightExtent": { - "mode": "full" - }, - "yTitle": "Workers" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {}, - "hidePanelTitles": false - }, - "gridData": { - "h": 12, - "i": "40cbf119-cfab-48a5-b37e-a6c8edf4b9ba", - "w": 24, - "x": 0, - "y": 71 - }, - "panelIndex": "40cbf119-cfab-48a5-b37e-a6c8edf4b9ba", - "title": "Crawler Workers", - "type": "lens", - "version": "7.16.0-SNAPSHOT" - } - ], - "timeRestore": false, - "title": "[Metricbeat Enterprise Search] Overview", - "version": 1 - }, - "coreMigrationVersion": "7.16.0", - "id": "e179f130-2c4a-11ec-9ab7-4fbdf1480ffc", - "migrationVersion": { - "dashboard": "7.16.0" - }, - "references": [ - { - "id": "metricbeat-*", - "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "1534ebcc-1209-4d1a-829e-b92128b025e9:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "1534ebcc-1209-4d1a-829e-b92128b025e9:indexpattern-datasource-layer-0d0ae348-91e8-44a0-b442-f409a093178a", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "b330f58a-2b26-432a-b359-747c23654557:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "b330f58a-2b26-432a-b359-747c23654557:indexpattern-datasource-layer-84b53681-6661-4b25-80df-4b4662b8d685", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "117a974f-7477-4bc5-951c-ad50e617ef68:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "117a974f-7477-4bc5-951c-ad50e617ef68:indexpattern-datasource-layer-5e24b58b-47b0-4f0e-bea0-df51c7af4896", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "00eb0f89-4a3b-4ebe-8c1f-2d9fc6fc13b0:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "00eb0f89-4a3b-4ebe-8c1f-2d9fc6fc13b0:indexpattern-datasource-layer-ab0dfa29-0a04-448e-ae11-edf8a0427c48", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "f58b85e4-0623-4eda-8a22-4645b4658825:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "f58b85e4-0623-4eda-8a22-4645b4658825:indexpattern-datasource-layer-0efbdd59-a39c-42d6-a596-115019496378", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "c72f1e47-34f8-41a2-91f5-452da0a8d052:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "c72f1e47-34f8-41a2-91f5-452da0a8d052:indexpattern-datasource-layer-beaaf733-314f-497d-ae53-6bd8cacc159a", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "a381a1ed-82a0-4b43-9dd5-8172e4dc4a92:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "a381a1ed-82a0-4b43-9dd5-8172e4dc4a92:indexpattern-datasource-layer-1d99fbfc-3f4b-47ac-9a91-cec22a18f7c4", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "0a6dec60-0d76-4d56-8de7-bbc11b056dd4:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "0a6dec60-0d76-4d56-8de7-bbc11b056dd4:indexpattern-datasource-layer-50da9c38-fcc3-4c43-a74e-85672a6ce4b0", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "49705139-1a81-4a84-bb21-d8e48643ed88:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "49705139-1a81-4a84-bb21-d8e48643ed88:indexpattern-datasource-layer-525cd9ab-aabd-4650-9fd3-49b273d63dfd", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "40cbf119-cfab-48a5-b37e-a6c8edf4b9ba:indexpattern-datasource-current-indexpattern", - "type": "index-pattern" - }, - { - "id": "metricbeat-*", - "name": "40cbf119-cfab-48a5-b37e-a6c8edf4b9ba:indexpattern-datasource-layer-d7ce3f00-e90b-429d-af0d-91651c3ec1c0", - "type": "index-pattern" - } - ], - "type": "dashboard", - "updated_at": "2021-10-19T17:06:49.093Z", - "version": "WzIzMjksMV0=" -} \ No newline at end of file diff --git a/x-pack/metricbeat/module/enterprisesearch/doc.go b/x-pack/metricbeat/module/enterprisesearch/doc.go deleted file mode 100644 index 183425da0890..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/doc.go +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -// Package enterprisesearch is a Metricbeat module that contains MetricSets. -package enterprisesearch diff --git a/x-pack/metricbeat/module/enterprisesearch/docker-compose.yml b/x-pack/metricbeat/module/enterprisesearch/docker-compose.yml deleted file mode 100644 index 09d7addb71c2..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/docker-compose.yml +++ /dev/null @@ -1,51 +0,0 @@ -version: '2.3' - -services: - enterprise_search: - image: docker.elastic.co/integrations-ci/beats-enterprisesearch:${ENT_VERSION:-8.0.0-SNAPSHOT} - build: - context: ./_meta - args: - ENT_VERSION: ${ENT_VERSION:-8.0.0-SNAPSHOT} - depends_on: - - "elasticsearch" - environment: - - "ENT_SEARCH_DEFAULT_PASSWORD=changeme" - - "elasticsearch.username=elastic" - - "elasticsearch.password=changeme" - - "elasticsearch.host=http://elasticsearch:9200" - - "allow_es_settings_modification=true" - - "secret_management.encryption_keys=[4a2cd3f81d39bf28738c10db0ca782095ffac07279561809eecc722e0c20eb09]" - - "kibana.host=http://localhost:5601" - - "JAVA_OPTS=-Xms2g -Xmx2g" - # Make it possible to run against slightly older ES versions - - "elasticsearch.ignore_version_mismatch=true" - ports: - - 3002:3002 - - elasticsearch: - image: docker.elastic.co/integrations-ci/beats-elasticsearch:${ELASTICSEARCH_VERSION:-8.0.0-SNAPSHOT}-1 - build: - args: - ELASTICSEARCH_VERSION: ${ELASTICSEARCH_VERSION:-7.15.0} - extends: - file: ../../../metricbeat/docker-compose.yml - service: elasticsearch - ulimits: - memlock: - soft: -1 - hard: -1 - # Override healthcheck to add user / password - healthcheck: - test: ["CMD", "curl", "-u", "elastic:changeme", "-f", "http://localhost:9200/_license"] - interval: 30s - timeout: 10s - ports: - - 9200:9200 - environment: - - "bootstrap.memory_lock=true" - - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - - "discovery.type=single-node" - - "xpack.security.enabled=true" - - "xpack.security.authc.api_key.enabled=true" - - "ELASTIC_PASSWORD=changeme" diff --git a/x-pack/metricbeat/module/enterprisesearch/fields.go b/x-pack/metricbeat/module/enterprisesearch/fields.go deleted file mode 100644 index 061ec34b5cf1..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/fields.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. - -package enterprisesearch - -import ( - "github.com/elastic/beats/v7/libbeat/asset" -) - -func init() { - if err := asset.SetFields("metricbeat", "enterprisesearch", asset.ModuleFieldsPri, AssetEnterprisesearch); err != nil { - panic(err) - } -} - -// AssetEnterprisesearch returns asset data. -// This is the base64 encoded zlib format compressed contents of module/enterprisesearch. -func AssetEnterprisesearch() string { - return "eJzsXM2O4zYSvvdTFPo0A6Qn/edD+hAgO8nuJJgJgqRnc1gsFEos2xxTpEJS7naefkFSkmX92JIsqRe73YcgGNtV31csVpGsIq9gg7sHQGFQJYpp1EhUtL4AMMxwfIDLH4qP4Df32eUFgEKOROMDhGjIBYBGY5hY6Qf416XW/PIruFwbk1z++wKAoo4USwyT4gG+vQAAqMmEWNKU4wXAkiGn+sF97QoEibERnf0zuwQfYKVkmmT/0qDK/v1RFfAHRFIYwoSGGI1ikQYiKKyRcLMGJpZSxcRKgaVUdbSZ4DLUMtyIp9qgCtKU0eLDHO4Gd09Slf/9APR7/1v4/PnH751ys0b4gRNtWOSx5+Ih1UiBaPcNSgwBbaTCZsTvaiA91xq8sjXtX3WgG0HXh7MmvWqrMhT734MP2m1VU/1BauME7I1VAyMk3ctvRLBFpZkUjSCqFunAPhNXdqSKgCZzHJgkjUNUtY+PG6YHMi8fUs3EyllNY0yEYVH+DfvvHnyz5cpgw5RxGqyJXp8L+DtIBfszRS8SrMgj45qQaENWJ4Y2UTJCrcca2kzcGUObsCYzeEBcitUpG/2SISjHhxpMJrQhImqxTRlOmhgW4zuN0SiovLhRkC0ZxxBLDljF1TR8NWAfmmO6BYdxiJQihb9nmurg9n9twwonh/akIVuNWRriDliPQlOoDVEmiGQqmizaH+TPPoTIJdgR10cQwppQMBJCzGEgBZqi/TctYwSmdYq6GxGrLNBMRBjYrBhkElscuD+tR+u+Tr6zu9VxjFqmHt5c3QBbgsAtqj3Lt8dj05dtPCwu/fTPT/UUCx2CT3Oig75x2urPU4lbhhgJKhWtK6Ujs3zVHnc6ze+fyJbAiqiQrBAiyTlGbpJn67qBM3kvaMQZ8ygN4XnqlctG6FIBE1sZuUilS47o3czOtjXWklpXLi7Ux01GGcrGRXudoDDWAdyyoYXWUCo5jRhjqXZBqsspvwq+k8t8cpKgTVIX/1gjSQImmHkX7gwONqjPSQ9wTEg1myVg9fppF+6cDe10ZMJLedfNKRwBK+MlCIyBPZJxzIyZncD7XK+DYQPfOSxi8jwz/k/k2SNvG4Ru6IUUwUtNgp+luComAiM8Cw3nulVB6aVcq+BVABiJmQy/YGSCBAVlYhUsmSCc/UVGTm/ftnwJ4HumE052/qiCJImSzywmBku50EPUbr37tGbRGsoogWnI0B+hXCwR1woJbTJ5jyTx6IUc2ehB17VEqhSOZOP3XlbJcJxtMWfc0R0owbiRzWh4vIaesGLyPM7uCcmmbBZwLl5af9gZlG9Dsu1VYn/zRLRduqPpCNjYFVCQSZpkhZgZECKFxKIlgn5tl1IZ+EZKLeALb1TkideOljruO977Hw/bezxJtUF15rTMEbQL67RRl5IHmv3VtPyD3qP2u8fipIKV2tF/SGTYdhwI+824F5rbpyuSLWGchHx0MLncOp5ctTbElIdx1GNoJ/xd6fvHjqEjKYTbqgw8LLRukHASFdr3AkGnod5pg3EdUhusMrQvMgzc6f55k+cYwi8yzAoIjQiPoSwjfSLMsFY3GepHhzh1riU7VMq2kK2hr4ZRqs30GLO0z3cQosXaF6Udc4vl+PqzbdxrQP+mkGyofBJNWO3S0qpqGnU4MfJlzBQ5mrYgAl2MW8O9N7AX7gEz4dKe+3/ntSeMWga5TDmfCKIVDXonovNRMhEpjFEYMhXYkoaRMCeoYqY1k6LNac/FXNIwEHN5CTByNPU5zknW50VRfDaKRCbwEoMWrKfx1jD/ZohJdXM1xOuUxdrKETk3IhxZZMEgX/h9b+Quay04qFPq3UR+aUV3XHOVEf2ZYooBxaS2mB4LGDMYD82XZaSMti4Oz4ZIm9aHJxH53Vck48Smhbb917ngfCrPlVQPsXvD1dEaacqnhVso6Qm3mLNp+BIBSKfh1WsQeg1C7Uhfg9D/TxBK0pAzvZ41AmU6X2PPa+ypIX2NPf+7sacoyRpTDSEdz/5+FJGMrYN9eHz8BRT+maI2eQ9K39O+7HSmZRvdY4d6iGov1m1OmWspHrpDnbaoVcGrQSYofJvR8a7CmUtNn8gzi9O4hDySIjNNM4nTFAbmSze9RiFVLUINHoweTIoaPBobCM9z+5+9EDCKLJcsapuG0NHVFUbItrN3A1SHwf2wAJN3A4zuRxrF3P0czUwtkMlYHo5pkKAKzmgg7c34uy0qssJzRjdBBRojKQbv8ouB/q+h33HIB1Hfj7zLzQFNVVtTR49Q891qpXBFDB4m/lz4CIk2Js9jdWx+lGJl0VVXA3u0zS2afZMrEjEW5NxTJoasDQ0obsdC/ZshghJFgeKW7beYrSS2hKfY2uzbgUupyz+RQjfOwnO82kv1jTQaQiU3KMAVE8Od/472u2qrZKin3zyPsyhrXL9kM1PDkgmm10jhiZk1EKu1TJDWMspAl7p9ETa3E7G5exE2dxOxuX8RNvcTsVm8CJvFSGwOToIGdt7s45WruoL09eBlKlygtTvgDExIoo0VJ6g/KchOglx/BkuQM4GOIGu4y9J3G49ixQQGFLVRcofqXVurbfdbdtUhKnNACltGfCm3otkbd4T8EhPG5yTi9Y0GP1MQuB7I+VgcqB2NzNLahk7FIj8wzVorvDKPvQFb44w+q9O0+5TO1JRa7MaawCsuw8YzlR5LqX84GUAx4XIXozBXT4xi8epAXnnISAw+jbM/D/JYfTQbdK6TuE7bYkej0zgmalcA3hM6t0CS9fWPeh5cdemozKVDNaAN69GO3UmgtnYRwpv8vp37hX57Gr1OI/vbZTpuR9kJBmZNDKzJFr1+pF0M7ePNpDCzkHaItssRZfk1iSqgbueTkuIVxy3y0vnAWKEgISvUwZZpNtWlBKcBMg35cU0RhYu8tj+h63EolSquA8K5fJoI/OdfP2rIFFSx01TZ+USZjuQW1W4UMhQFO8Glc0huJOMVDObyVXU7T1HsQCHRUpwb2glXSOgu0Iht141glLnsDCGkgaXMhxYjkmrMPgSKVzRNOPP3quENkmjtPmB7T5aC70CKCN/2qGpSGRMmgiXjBtXxwR6Raj7me5JEQCo2wo6hh9Sv1Vgq5W4IKmlk1NppMSIDt4ssFH/NxJZwRr9OhU6TRLrbTTmYPjVxzsQmMFIGFLFtSo3I4sDlshctfEJxLQ3AWcyOJpUqfiG9uNlcKANNCs12aUrAkBVIZb3qw+Onj86sQIxRLExNn46T0ngGkRQGhXGXGmbnJ8pQIINSOa48cURMTKqDSNKxbmQcVAwU6pSb7IT1KxuHsxNVq/DcOHx5e319OanJHZfb6+v9CTTYoN9/ddBK4e76ZgYKd9c3U1K4nYXC7XQU7mdxpPspHel+Fke6n9KR7mdxpPtpHeluFgp3U1K4n4XC/ZQUFrNQWExI4WaWiHQzZUS6nWU63045nW+/mYXCN9NRWMyS2hZTprbFLKltMWVqW8yS2hZTprbFLKltMWVqW8yS2hYjpLajezZ/u+DkOx89z9/y/t7Pv34sinl/7Z88rZfwDv8610UUi4ka975G81HMQTXEm744TzzFpnxhRzU+pzct2jVGmz1ahyE7gUnWRPd7iSVofziqE4HTVZHi4Zr9yz5FfSd7uCUrdPbsAWl/DgcGVv72b+w0XpUazctPvMQDZ3iOm5blKvHBxS5409i176tpkEitWcjxbWfG81YJq25zyK9aGxxC4sSTQKPzKJ4KerNUiG8rjNoJXDShT5SkaWQaXwvt3YGQCfMPhjaV7Oq9yu3l8VNNByRJAn34dm4X6HX4SVJ6s7wRf78S4+E9Lt9i1BxwTrjFibs/JeCZkryho63voNWWT/kLHaNYtPbexzh2rVpWqlWgZaqi4TcwTli4RkSqlW9Lyc/FM/29DV9nkyi2JQbnZpSp7UroPwEAAP//yshTWw==" -} diff --git a/x-pack/metricbeat/module/enterprisesearch/health/_meta/docs.asciidoc b/x-pack/metricbeat/module/enterprisesearch/health/_meta/docs.asciidoc deleted file mode 100644 index 49bacfa68148..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/_meta/docs.asciidoc +++ /dev/null @@ -1,3 +0,0 @@ -This is the `health` metricset of the Enterprise Search module. - -This metricset allows users to fetch and ingest Enterprise Search solution health information from the https://www.elastic.co/guide/en/enterprise-search/current/monitoring-apis.html#health-api[Health API]. diff --git a/x-pack/metricbeat/module/enterprisesearch/health/_meta/fields.yml b/x-pack/metricbeat/module/enterprisesearch/health/_meta/fields.yml deleted file mode 100644 index 41038696c9f1..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/_meta/fields.yml +++ /dev/null @@ -1,147 +0,0 @@ -- name: health - type: group - release: beta - description: Enterprise Search health - fields: - - name: name - type: keyword - description: Host name for the Enterprise Search node - - - name: version - type: group - description: Enterprise Search version information - fields: - - name: number - type: keyword - description: Enterprise Search version number using the semantic versioning format - - - name: build_hash - type: keyword - description: A unique build hash for the Enterprise Search package - - - name: process - type: group - description: Enterprise Search process information - fields: - - name: pid - type: long - description: Process ID for the Enterprise Search instance - - - name: uptime.sec - type: long - description: Process uptime for the Enterprise Search instance - - - name: filebeat - type: group - description: Health information for the embedded Filebeat instance - fields: - - name: pid - type: long - description: Process ID for the embedded Filebeat instance - - - name: restart_count - type: long - description: Number of times embedded Filebeat instance had to be restarted due to some issues - - - name: time_since_last_restart.sec - type: long - description: Time since the last embedded Filebeat instance restart (-1 if never restarted) - - - name: jvm - type: group - description: JVM health - fields: - - name: version - type: keyword - description: JVM version used to run Enterprise Search - - - name: gc - type: group - description: Java garbage collection metrics - fields: - - name: collection_count - type: long - description: Total number of Java garbage collector invocations since the start of the process - - - name: collection_time.ms - type: long - description: Total time spent running Java garbage collector since the start of the process - - - name: memory_usage - type: group - description: Memory usage - fields: - - name: heap_init.bytes - type: long - format: bytes - description: Heap init used by the JVM in bytes. - - - name: heap_used.bytes - type: long - format: bytes - description: Heap used by the JVM in bytes. - - - name: heap_committed.bytes - type: long - format: bytes - description: Committed heap to the JVM in bytes. - - - name: heap_max.bytes - type: long - format: bytes - description: Max heap used by the JVM in bytes - - - name: non_heap_init.bytes - type: long - format: bytes - description: Non-Heap initial memory used by the JVM in bytes. - - - name: non_heap_committed.bytes - type: long - format: bytes - description: Non-Heap committed memory used by the JVM in bytes. - - - name: object_pending_finalization_count - type: long - description: > - Displays the approximate number of objects for which finalization is pending. - - - name: threads - type: group - description: Threads information - fields: - - name: current - type: long - description: Current number of live threads. - - - name: daemon - type: long - description: Current number of live daemon threads. - - - name: max - type: long - description: Peak live thread count since the JVM started or the peak was reset. - - - name: total_started - type: long - description: Total number of threads created and/or started since the JVM started. - - - name: crawler - type: group - description: Crawler health - fields: - - name: workers - type: group - description: Crawler workers - fields: - - name: pool_size - type: long - description: Workers pool size. - - - name: active - type: long - description: Number of active workers. - - - name: available - type: long - description: Number of available workers. diff --git a/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/config.yml b/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/config.yml deleted file mode 100644 index 2f2263d262b5..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/config.yml +++ /dev/null @@ -1,2 +0,0 @@ -type: http -url: "/api/ent/v1/internal/health" diff --git a/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/health.json b/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/health.json deleted file mode 100644 index 64745fb70ba4..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/health.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name":"elastic-m1.local", - "version":{ - "number":"8.0.0", - "build_hash":"unknown", - "build_date":null - }, - "jvm":{ - "gc":{ - "collection_count":20, - "collection_time":2303, - "garbage_collectors":{ - "PS Scavenge":{ - "collection_count":16, - "collection_time":657 - }, - "PS MarkSweep":{ - "collection_count":4, - "collection_time":1646 - } - } - }, - "pid":59623, - "uptime":170377, - "memory_usage":{ - "heap_init":268435456, - "heap_used":736601248, - "heap_committed":1279262720, - "heap_max":1908932608, - "object_pending_finalization_count":0, - "non_heap_init":2555904, - "non_heap_committed":99745792 - }, - "memory_pools":[ - "Code Cache", - "Metaspace", - "Compressed Class Space", - "PS Eden Space", - "PS Survivor Space", - "PS Old Gen" - ], - "threads":{ - "thread_count":27, - "peak_thread_count":32, - "total_started_thread_count":35, - "daemon_thread_count":17 - }, - "vm_version":"25.292-b10", - "vm_vendor":"AdoptOpenJDK", - "vm_name":"OpenJDK 64-Bit Server VM" - }, - "filebeat":{ - "pid":60067, - "alive":true, - "restart_count":0, - "seconds_since_last_restart":-1 - }, - "esqueues_me":{ - - }, - "crawler":{ - "running":true, - "workers":{ - "pool_size":16, - "active":0, - "available":16 - } - }, - "system":{ - "java_version":"1.8.0_292", - "jruby_version":"9.2.13.0", - "os_name":"Mac OS X", - "os_version":"10.16" - }, - "cluster_uuid":"MTD6fXYGTZylTMoW5AG5JA" -} diff --git a/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/health.json-expected.json b/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/health.json-expected.json deleted file mode 100644 index 2ec21d12edc3..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/_meta/testdata/health.json-expected.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "enterprisesearch": { - "cluster_uuid": "MTD6fXYGTZylTMoW5AG5JA", - "health": { - "crawler": { - "workers": { - "active": 0, - "available": 16, - "pool_size": 16 - } - }, - "jvm": { - "gc": { - "collection_count": 20, - "collection_time": { - "ms": 2303 - } - }, - "memory_usage": { - "heap_committed": { - "bytes": 1279262720 - }, - "heap_init": { - "bytes": 268435456 - }, - "heap_max": { - "bytes": 1908932608 - }, - "heap_used": { - "bytes": 736601248 - }, - "non_heap_committed": { - "bytes": 99745792 - }, - "non_heap_init": { - "bytes": 2555904 - }, - "object_pending_finalization_count": 0 - }, - "threads": { - "current": 27, - "daemon": 17, - "max": 32, - "total_started": 35 - }, - "version": "1.8.0_292" - }, - "name": "elastic-m1.local", - "process": { - "filebeat": { - "pid": 60067, - "restart_count": 0, - "time_since_last_restart": { - "sec": -1 - } - }, - "pid": 59623, - "uptime": { - "sec": 170377 - } - }, - "version": { - "build_hash": "unknown", - "number": "8.0.0" - } - } - }, - "event": { - "dataset": "enterprisesearch.health", - "duration": 115000, - "module": "enterprisesearch" - }, - "metricset": { - "name": "health", - "period": 10000 - }, - "service": { - "address": "127.0.0.1:55555", - "type": "enterprisesearch" - } - } -] \ No newline at end of file diff --git a/x-pack/metricbeat/module/enterprisesearch/health/data.go b/x-pack/metricbeat/module/enterprisesearch/health/data.go deleted file mode 100644 index 318f9fa05981..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/data.go +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package health - -import ( - "encoding/json" - "errors" - "fmt" - - "github.com/joeshaw/multierror" - - s "github.com/elastic/beats/v7/libbeat/common/schema" - c "github.com/elastic/beats/v7/libbeat/common/schema/mapstriface" - "github.com/elastic/beats/v7/metricbeat/helper/elastic" - "github.com/elastic/beats/v7/metricbeat/mb" - "github.com/elastic/elastic-agent-libs/mapstr" -) - -var ( - schema = s.Schema{ - "name": c.Str("name"), - - "version": c.Dict("version", s.Schema{ - "number": c.Str("number"), - "build_hash": c.Str("build_hash"), - }), - - "jvm": c.Dict("jvm", s.Schema{ - "version": c.Str("version"), - - "gc": c.Dict("gc", s.Schema{ - "collection_count": c.Int("collection_count"), - "collection_time": s.Object{"ms": c.Int("collection_time")}, - // TODO: Add separate metrics for old and young generation collectors - }), - - "memory_usage": c.Dict("memory_usage", s.Schema{ - "heap_init": s.Object{"bytes": c.Int("heap_init")}, - "heap_used": s.Object{"bytes": c.Int("heap_used")}, - "heap_committed": s.Object{"bytes": c.Int("heap_committed")}, - "heap_max": s.Object{"bytes": c.Int("heap_max")}, - "non_heap_init": s.Object{"bytes": c.Int("non_heap_init")}, - "non_heap_committed": s.Object{"bytes": c.Int("non_heap_committed")}, - "object_pending_finalization_count": c.Int("object_pending_finalization_count"), - }), - - "threads": c.Dict("threads", s.Schema{ - "current": c.Int("thread_count"), - "daemon": c.Int("daemon_thread_count"), - "max": c.Int("peak_thread_count"), - "total_started": c.Int("total_started_thread_count"), - }), - }), - - "process": c.Dict("process", s.Schema{ - "pid": c.Int("pid"), - "uptime": s.Object{"sec": c.Int("uptime")}, - - "filebeat": c.Dict("filebeat", s.Schema{ - "pid": c.Int("pid"), - "restart_count": c.Int("restart_count"), - "time_since_last_restart": s.Object{"sec": c.Int("seconds_since_last_restart")}, - }), - }), - - "crawler": c.Dict("crawler", s.Schema{ - "workers": c.Dict("workers", s.Schema{ - "pool_size": c.Int("pool_size"), - "active": c.Int("active"), - "available": c.Int("available"), - }), - }), - } -) - -func eventMapping(report mb.ReporterV2, input []byte, isXpack bool) error { - var data map[string]interface{} - err := json.Unmarshal(input, &data) - if err != nil { - return err - } - var errs multierror.Errors - - // All events need to have a cluster_uuid to work with Stack Monitoring - event := mb.Event{ - ModuleFields: mapstr.M{}, - MetricSetFields: mapstr.M{}, - } - event.ModuleFields.Put("cluster_uuid", data["cluster_uuid"]) - - // Collect process info in a form ready for mapping - process := make(map[string]interface{}) - process["filebeat"] = data["filebeat"] - - jvm, ok := data["jvm"].(map[string]interface{}) - if ok { - if pid, ok := jvm["pid"]; ok { - process["pid"] = pid - } - if uptime, ok := jvm["uptime"]; ok { - process["uptime"] = uptime - } - - // Add version info to the JVM section to help the schema mapper find it - system, ok := data["system"].(map[string]interface{}) - if ok { - jvm["version"] = system["java_version"] - } else { - errs = append(errs, errors.New("system is not a map")) - } - } else { - errs = append(errs, errors.New("jvm is not a map")) - } - - // Set the process info we have collected - data["process"] = process - - // xpack.enabled in config using standalone metricbeat writes to `.monitoring` instead of `metricbeat-*` - // When using Agent, the index name is overwritten anyways. - if isXpack { - index := elastic.MakeXPackMonitoringIndexName(elastic.EnterpriseSearch) - event.Index = index - } - - event.MetricSetFields, err = schema.Apply(data) - if err != nil { - errs = append(errs, fmt.Errorf("failure to apply health schema: %w", err)) - } else { - report.Event(event) - } - - return errs.Err() -} diff --git a/x-pack/metricbeat/module/enterprisesearch/health/data_test.go b/x-pack/metricbeat/module/enterprisesearch/health/data_test.go deleted file mode 100644 index 17072d911e29..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/data_test.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -//go:build !integration - -package health - -import ( - "testing" - - mbtest "github.com/elastic/beats/v7/metricbeat/mb/testing" - "github.com/elastic/elastic-agent-libs/logp" - - _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/enterprisesearch" -) - -func TestEventMapping(t *testing.T) { - logp.TestingSetup() - mbtest.TestDataFiles(t, "enterprisesearch", "health") -} diff --git a/x-pack/metricbeat/module/enterprisesearch/health/health.go b/x-pack/metricbeat/module/enterprisesearch/health/health.go deleted file mode 100644 index a8de3c90bc30..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/health.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package health - -import ( - "fmt" - - "github.com/elastic/beats/v7/libbeat/common/cfgwarn" - "github.com/elastic/beats/v7/metricbeat/helper" - "github.com/elastic/beats/v7/metricbeat/mb" - "github.com/elastic/beats/v7/metricbeat/mb/parse" -) - -const ( - // defaultScheme is the default scheme to use when it is not specified in - // the host config. - defaultScheme = "http" - - // defaultPath is the default path to the Enterprise Search Health API - defaultPath = "/api/ent/v1/internal/health" -) - -var ( - hostParser = parse.URLHostParserBuilder{ - DefaultScheme: defaultScheme, - DefaultPath: defaultPath, - }.Build() -) - -func init() { - mb.Registry.MustAddMetricSet("enterprisesearch", "health", New, - mb.WithHostParser(hostParser), - mb.DefaultMetricSet(), - ) -} - -type MetricSet struct { - mb.BaseMetricSet - http *helper.HTTP - XPackEnabled bool -} - -func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Beta("The Enterprise Search health metricset is currently in beta.") - - http, err := helper.NewHTTP(base) - if err != nil { - return nil, err - } - config := struct { - XPackEnabled bool `config:"xpack.enabled"` - }{ - XPackEnabled: false, - } - if err := base.Module().UnpackConfig(&config); err != nil { - return nil, err - } - - return &MetricSet{ - base, - http, - config.XPackEnabled, - }, nil -} - -// Makes a GET request to Enterprise Search Health API (see defaultPath) -// and generates a monitoring event based on the fetched metrics. -// Returns nil or an error object. -func (m *MetricSet) Fetch(report mb.ReporterV2) error { - content, err := m.http.FetchContent() - if err != nil { - return fmt.Errorf("error in fetch: %w", err) - } - - err = eventMapping(report, content, m.XPackEnabled) - if err != nil { - return fmt.Errorf("error converting event: %w", err) - } - - return nil -} diff --git a/x-pack/metricbeat/module/enterprisesearch/health/health_integration_test.go b/x-pack/metricbeat/module/enterprisesearch/health/health_integration_test.go deleted file mode 100644 index a9baf47b158c..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/health/health_integration_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -//go:build integration - -package health - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/v7/libbeat/tests/compose" - mbtest "github.com/elastic/beats/v7/metricbeat/mb/testing" -) - -func TestFetch(t *testing.T) { - service := compose.EnsureUpWithTimeout(t, 300, "enterprise_search") - - config := getConfig("health", service.Host()) - f := mbtest.NewReportingMetricSetV2Error(t, config) - events, errs := mbtest.ReportingFetchV2Error(f) - if len(errs) > 0 { - t.Fatalf("Expected 0 errors, had %d. %v\n", len(errs), errs) - } - assert.NotEmpty(t, events) - event := events[0].MetricSetFields - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func TestData(t *testing.T) { - service := compose.EnsureUpWithTimeout(t, 300, "enterprise_search") - - config := getConfig("health", service.Host()) - - f := mbtest.NewReportingMetricSetV2Error(t, config) - err := mbtest.WriteEventsReporterV2Error(f, t, "") - if err != nil { - t.Fatal("write", err) - } -} - -// GetConfig returns config for Enterprise Search module -func getConfig(metricset string, host string) map[string]interface{} { - return map[string]interface{}{ - "module": "enterprisesearch", - "metricsets": []string{metricset}, - "hosts": []string{host}, - "username": "elastic", - "password": "changeme", - } -} diff --git a/x-pack/metricbeat/module/enterprisesearch/module.yml b/x-pack/metricbeat/module/enterprisesearch/module.yml deleted file mode 100644 index 320fd5445fc7..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/module.yml +++ /dev/null @@ -1,3 +0,0 @@ -dashboards: - - id: e179f130-2c4a-11ec-9ab7-4fbdf1480ffc - file: Metricbeat-enterprise-search-overview.json diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/docs.asciidoc b/x-pack/metricbeat/module/enterprisesearch/stats/_meta/docs.asciidoc deleted file mode 100644 index 90fdec57ccf4..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/docs.asciidoc +++ /dev/null @@ -1,3 +0,0 @@ -This is the `stats` metricset of the Enterprise Search module. - -This metricset allows users to fetch and ingest Enterprise Search solution statistics information from the https://www.elastic.co/guide/en/enterprise-search/current/monitoring-apis.html#stats-api[Stats API]. diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/fields.yml b/x-pack/metricbeat/module/enterprisesearch/stats/_meta/fields.yml deleted file mode 100644 index 74b36eb9b633..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/fields.yml +++ /dev/null @@ -1,407 +0,0 @@ -- name: stats - type: group - release: beta - description: Enterprise Search stats. - fields: - - name: connectors - type: group - description: Workplace Search connectors subsystem stats. - fields: - - name: job_store - type: group - description: Workplace Search connectors job store stats. - fields: - - name: waiting - type: long - description: Number of connectors jobs waiting to be processed. - - - name: working - type: long - description: Number of connectors jobs currently being processed. - - - name: job_types - type: group - description: Breakdown of connectors jobs by types. - fields: - - name: delete - type: long - description: Number of delete jobs in the jobs store. - - - name: full - type: long - description: Number of full sync jobs in the jobs store. - - - name: incremental - type: long - description: Number of incremental sync jobs in the jobs store. - - - name: permissions - type: long - description: Number of permissions sync jobs in the jobs store. - - - name: pool - type: group - description: Workplace Search worker pools stats. - fields: - - name: extract_worker_pool - type: group - description: Status information for the extractor workers pool. - fields: - - name: size - type: long - description: Worker pool size. - - - name: busy - type: long - description: Number of busy workers. - - - name: queue_depth - type: long - description: Number of items waiting to be processed. - - - name: idle - type: long - description: Number of idle workers. - - - name: total_completed - type: long - description: Number of jobs completed since the start. - - - name: total_scheduled - type: long - description: Number of jobs scheduled since the start. - - - name: subextract_worker_pool - type: group - description: Status information for the sub-extractor workers pool. - fields: - - name: size - type: long - description: Worker pool size. - - - name: busy - type: long - description: Number of busy workers. - - - name: queue_depth - type: long - description: Number of items waiting to be processed. - - - name: idle - type: long - description: Number of idle workers. - - - name: total_completed - type: long - description: Number of jobs completed since the start. - - - name: total_scheduled - type: long - description: Number of jobs scheduled since the start. - - - name: publish_worker_pool - type: group - description: Status information for the publish workers pool. - fields: - - name: size - type: long - description: Worker pool size. - - - name: busy - type: long - description: Number of busy workers. - - - name: queue_depth - type: long - description: Number of items waiting to be processed. - - - name: idle - type: long - description: Number of idle workers. - - - name: total_completed - type: long - description: Number of jobs completed since the start. - - - name: total_scheduled - type: long - description: Number of jobs scheduled since the start. - - - name: http - type: group - description: Incoming HTTP request metrics. - fields: - - name: connections - type: group - description: Incoming HTTP connection statistics. - fields: - - name: current - type: long - description: Current number of HTTP connections opened to the Enterprise Search instance. - - - name: max - type: long - description: Maximum number of concurrent HTTP connections open to the Enterprise Search instance since the start. - - - name: total - type: long - description: Total number of HTTP connections opened to the Enterprise Search instance since the start. - - - name: network - type: group - description: Network traffic metrics. - fields: - - name: received.bytes - type: long - format: bytes - description: Total number of bytes received by the Enterprise Search instance since the start. - - - name: sent.bytes - type: long - format: bytes - description: Total number of bytes sent by the Enterprise Search instance since the start. - - - name: received.bytes_per_sec - type: long - format: bytes - description: Average number of bytes received by the Enterprise Search instance per second since the start. - - - name: sent.bytes_per_sec - type: long - format: bytes - description: Average number of bytes sent by the Enterprise Search instance per second since the start. - - - name: request_duration - type: group - description: Aggregate HTTP request duration statistics. - fields: - - name: max.ms - type: long - description: Longest HTTP connection duration since the start of the instance. - - - name: mean.ms - type: long - description: Average HTTP connection duration since the start of the instance. - - - name: std_dev.ms - type: long - description: Standard deviation for HTTP connection duration values since the start of the instance. - - - name: responses - type: group - description: Aggregate HTTP response counts broken down by HTTP status type. - fields: - - name: 1xx - type: long - description: Total number of HTTP requests finished with a 1xx response code since the start of the instance. - - - name: 2xx - type: long - description: Total number of HTTP requests finished with a 2xx response code since the start of the instance. - - - name: 3xx - type: long - description: Total number of HTTP requests finished with a 3xx response code since the start of the instance. - - - name: 4xx - type: long - description: Total number of HTTP requests finished with a 4xx response code since the start of the instance. - - - name: 5xx - type: long - description: Total number of HTTP requests finished with a 5xx response code since the start of the instance. - - - name: queues - type: group - description: Aggregate stats on the functioning of the background jobs processing pipeline within Enterprise Search. - fields: - - name: engine_destroyer.count - type: long - description: Total number of jobs processed via the engine_destroyer queue since the start of the instance. - - - name: mailer.count - type: long - description: Total number of jobs processed via the mailer queue since the start of the instance. - - - name: process_crawl.count - type: long - description: Total number of jobs processed via the process_crawl queue since the start of the instance. - - - name: failed.count - type: long - description: Total number of jobs waiting in the failed queue. - - - - name: crawler - type: group - description: Aggregate stats on the functioning of the crawler subsystem within Enterprise Search. - fields: - - name: global - type: group - description: Global deployment-wide metrics for the crawler. - fields: - - name: crawl_requests - type: group - description: Crawl request summary for the deployment. - fields: - - name: pending - type: long - description: Total number of crawl requests waiting to be processed. - - name: active - type: long - description: Total number of crawl requests currently being processed (running crawls). - - name: successful - type: long - description: Total number of crawl requests that have succeeded. - - name: failed - type: long - description: Total number of failed crawl requests. - - - name: node - type: group - description: Node-level statistics for the crawler. - fields: - - name: pages_visited - type: long - description: Total number of pages visited by the crawler since the instance start. - - - name: urls_allowed - type: long - description: Total number of URLs allowed by the crawler during discovery since the instance start. - - - name: urls_denied - type: group - description: Total number of URLs denied by the crawler during discovery since the instance start, broken down by deny reason. - fields: - - name: already_seen - type: long - description: Total number of URLs not followed because of URL de-duplication (each URL is visited only once). - - - name: domain_filter_denied - type: long - description: Total number of URLs denied because of an unknown domain. - - - name: incorrect_protocol - type: long - description: Total number of URLs with incorrect/invalid/unsupported protocols. - - - name: link_too_deep - type: long - description: Total number of URLs not followed due to crawl depth limits. - - - name: nofollow - type: long - description: Total number of URLs denied due to a nofollow meta tag or an HTML link attribute. - - - name: unsupported_content_type - type: long - description: Total number of URLs denied due to an unsupported content type. - - - name: status_codes - type: group - description: HTTP request result counts, by status code. - fields: - - name: "200" - type: long - description: Total number of HTTP 200 responses seen by the crawler since the instance start. - - name: "301" - type: long - description: Total number of HTTP 301 responses seen by the crawler since the instance start. - - name: "302" - type: long - description: Total number of HTTP 302 responses seen by the crawler since the instance start. - - name: "400" - type: long - description: Total number of HTTP 400 responses seen by the crawler since the instance start. - - name: "401" - type: long - description: Total number of HTTP 401 responses seen by the crawler since the instance start. - - name: "402" - type: long - description: Total number of HTTP 402 responses seen by the crawler since the instance start. - - name: "403" - type: long - description: Total number of HTTP 403 responses seen by the crawler since the instance start. - - name: "404" - type: long - description: Total number of HTTP 404 responses seen by the crawler since the instance start. - - name: "405" - type: long - description: Total number of HTTP 405 responses seen by the crawler since the instance start. - - name: "410" - type: long - description: Total number of HTTP 410 responses seen by the crawler since the instance start. - - name: "422" - type: long - description: Total number of HTTP 422 responses seen by the crawler since the instance start. - - name: "429" - type: long - description: Total number of HTTP 429 responses seen by the crawler since the instance start. - - name: "500" - type: long - description: Total number of HTTP 500 responses seen by the crawler since the instance start. - - name: "501" - type: long - description: Total number of HTTP 501 responses seen by the crawler since the instance start. - - name: "502" - type: long - description: Total number of HTTP 502 responses seen by the crawler since the instance start. - - name: "503" - type: long - description: Total number of HTTP 503 responses seen by the crawler since the instance start. - - name: "504" - type: long - description: Total number of HTTP 504 responses seen by the crawler since the instance start. - - - name: queue_size - type: group - description: Total current URL queue size for the instance. - fields: - - name: primary - type: long - description: Total number of URLs waiting to be crawled by the instance. - - name: purge - type: long - description: Total number of URLs waiting to be checked by the purge crawl phase. - - - name: active_threads - type: long - description: Total number of crawler worker threads currently active on the instance. - - - name: workers - type: group - description: Crawler workers information for the instance. - fields: - - name: pool_size - type: long - description: Total size of the crawl workers pool (number of concurrent crawls possible) for the instance. - - name: active - type: long - description: Total number of currently active crawl workers (running crawls) for the instance. - - name: available - type: long - description: Total number of currently available (free) crawl workers for the instance. - - - name: product_usage - type: group - description: Aggregate product usage statistics for the Enterprise Search deployment. - fields: - - name: app_search - type: group - description: App Search product usage statistics. - fields: - - name: total_engines - type: long - description: Current number of App Search engines within the deployment. - - - name: workplace_search - type: group - description: Workplace Search product usage statistics. - fields: - - name: total_org_sources - type: long - description: Current number of Workplace Search org-wide content sources within the deployment. - - - name: total_private_sources - type: long - description: Current number of Workplace Search private content sources within the deployment. diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/config.yml b/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/config.yml deleted file mode 100644 index 766b2cc2d507..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/config.yml +++ /dev/null @@ -1,2 +0,0 @@ -type: http -url: "/api/ent/v1/internal/stats" diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/stats.json b/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/stats.json deleted file mode 100644 index 77741d831592..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/stats.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "cluster_uuid": "s7QHFAuAQmqeqnGZmAqXIA", - "http": { - "connections": { - "current": 1, - "max": 3, - "total": 29 - }, - "request_duration_ms": { - "max": 3528004, - "mean": 922170.1785714285, - "std_dev": 1068785.5936706674 - }, - "network_bytes": { - "received_total": 231403, - "received_rate": 42, - "sent_total": 704357, - "sent_rate": 5 - }, - "responses": { - "1xx": 1, - "2xx": 2, - "3xx": 3, - "4xx": 4, - "5xx": 5 - } - }, - "app": { - "pid": 41556, - "start": "2021-09-23T21:55:53+00:00", - "end": "2021-09-23T21:56:53+00:00", - "metrics": { - "timers.cron.local.cron-refresh_elasticsearch_license.total_job_time": { - "sum": 114.21483382582664, - "max": 1140.21, - "mean": 555.1 - }, - "timers.actastic.relation.search": { - "sum": 51.183209056034684, - "max": 35.318125039339066, - "mean": 25.591604528017342 - }, - "timers.cron.local.cron-keep_filebeat_alive.total_job_time": { - "sum": 52.856332855299115, - "max": 52.856332855299115, - "mean": 52.856332855299115 - } - } - }, - "queues": { - "engine_destroyer": { - "pending": 1 - }, - "process_crawl": { - "pending": 2 - }, - "mailer": { - "pending": 3 - }, - "failed": [ - { - "foo": 123 - } - ] - }, - "connectors": { - "alive": false, - "pool": { - "extract_worker_pool": { - "running": true, - "queue_depth": 1, - "size": 2, - "busy": 3, - "idle": 4, - "total_scheduled": 5, - "total_completed": 6 - }, - "subextract_worker_pool": { - "running": true, - "queue_depth": 7, - "size": 8, - "busy": 9, - "idle": 10, - "total_scheduled": 11, - "total_completed": 12 - }, - "publish_worker_pool": { - "running": true, - "queue_depth": 13, - "size": 14, - "busy": 15, - "idle": 16, - "total_scheduled": 17, - "total_completed": 18 - } - }, - "job_store": { - "waiting": 1, - "working": 2, - "job_types": { - "full": 3, - "incremental": 4, - "delete": 5, - "permissions": 6 - } - } - }, - "crawler": { - "global": { - "crawl_requests": { - "pending": 0, - "active": 2, - "successful": 2, - "failed": 0 - } - }, - "node": { - "pages_visited": 385, - "urls_allowed": 478, - "urls_denied": { - "nofollow": 98, - "already_seen": 8466, - "domain_filter_denied": 5286, - "incorrect_protocol": 23, - "unsupported_content_type": 4, - "link_too_deep": 45 - }, - "status_codes": { - "200": 367, - "301": 18 - }, - "queue_size": { - "primary": 91, - "purge": 0 - }, - "active_threads": 18, - "workers": { - "pool_size": 16, - "active": 2, - "available": 14 - } - } - }, - "product_usage": { - "app_search": { - "total_engines": 1 - }, - "workplace_search": { - "total_org_sources": 2, - "total_private_sources": 3, - "total_queries_last_30_days": 4 - } - } -} \ No newline at end of file diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/stats.json-expected.json b/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/stats.json-expected.json deleted file mode 100644 index 379ae1104796..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/_meta/testdata/stats.json-expected.json +++ /dev/null @@ -1,154 +0,0 @@ -[ - { - "enterprisesearch": { - "cluster_uuid": "s7QHFAuAQmqeqnGZmAqXIA", - "stats": { - "connectors": { - "job_store": { - "job_types": { - "delete": 5, - "full": 3, - "incremental": 4, - "permissions": 6 - }, - "waiting": 1, - "working": 2 - }, - "pool": { - "extract_worker_pool": { - "busy": 3, - "idle": 4, - "queue_depth": 1, - "size": 2, - "total_completed": 5, - "total_scheduled": 5 - }, - "publish_worker_pool": { - "busy": 15, - "idle": 16, - "queue_depth": 13, - "size": 14, - "total_completed": 17, - "total_scheduled": 17 - }, - "subextract_worker_pool": { - "busy": 9, - "idle": 10, - "queue_depth": 7, - "size": 8, - "total_completed": 11, - "total_scheduled": 11 - } - } - }, - "crawler": { - "global": { - "crawl_requests": { - "active": 2, - "failed": 0, - "pending": 0, - "successful": 2 - } - }, - "node": { - "active_threads": 18, - "pages_visited": 385, - "queue_size": { - "primary": 91, - "purge": 0 - }, - "status_codes": { - "200": 367, - "301": 18 - }, - "urls_allowed": 478, - "urls_denied": { - "already_seen": 8466, - "domain_filter_denied": 5286, - "incorrect_protocol": 23, - "link_too_deep": 45, - "nofollow": 98, - "unsupported_content_type": 4 - }, - "workers": { - "active": 2, - "available": 14, - "pool_size": 16 - } - } - }, - "http": { - "connections": { - "current": 1, - "max": 3, - "total": 29 - }, - "network": { - "received": { - "bytes": 231403, - "bytes_per_sec": 42 - }, - "sent": { - "bytes": 704357, - "bytes_per_sec": 5 - } - }, - "request_duration": { - "max": { - "ms": 3528004 - }, - "mean": { - "ms": 922170 - }, - "std_dev": { - "ms": 1068785 - } - }, - "responses": { - "1xx": 1, - "2xx": 2, - "3xx": 3, - "4xx": 4, - "5xx": 5 - } - }, - "product_usage": { - "app_search": { - "total_engines": 1 - }, - "workplace_search": { - "total_org_sources": 2, - "total_private_sources": 3 - } - }, - "queues": { - "engine_destroyer": { - "count": 1 - }, - "failed": { - "count": 1 - }, - "mailer": { - "count": 3 - }, - "process_crawl": { - "count": 2 - } - } - } - }, - "event": { - "dataset": "enterprisesearch.stats", - "duration": 115000, - "module": "enterprisesearch" - }, - "metricset": { - "name": "stats", - "period": 10000 - }, - "service": { - "address": "127.0.0.1:55555", - "type": "enterprisesearch" - } - } -] \ No newline at end of file diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/data.go b/x-pack/metricbeat/module/enterprisesearch/stats/data.go deleted file mode 100644 index cd1ebd13dc3d..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/data.go +++ /dev/null @@ -1,205 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package stats - -import ( - "encoding/json" - "errors" - "fmt" - - "github.com/joeshaw/multierror" - - s "github.com/elastic/beats/v7/libbeat/common/schema" - c "github.com/elastic/beats/v7/libbeat/common/schema/mapstriface" - "github.com/elastic/beats/v7/metricbeat/helper/elastic" - "github.com/elastic/beats/v7/metricbeat/mb" - "github.com/elastic/elastic-agent-libs/mapstr" -) - -var ( - connectorsPoolSchema = s.Schema{ - "queue_depth": c.Int("queue_depth"), - "size": c.Int("size"), - "busy": c.Int("busy"), - "idle": c.Int("idle"), - "total_scheduled": c.Int("total_scheduled"), - "total_completed": c.Int("total_scheduled"), - } - - schema = s.Schema{ - "http": c.Dict("http", s.Schema{ - "connections": c.Dict("connections", s.Schema{ - "current": c.Int("current"), - "max": c.Int("max"), - "total": c.Int("total"), - }), - - "request_duration": c.Dict("request_duration_ms", s.Schema{ - "max": s.Object{"ms": c.Int("max")}, - "mean": s.Object{"ms": c.Int("mean")}, - "std_dev": s.Object{"ms": c.Int("std_dev")}, - }), - - "network": c.Dict("network_bytes", s.Schema{ - "received": s.Object{ - "bytes": c.Int("received_total"), - "bytes_per_sec": c.Int("received_rate"), - }, - "sent": s.Object{ - "bytes": c.Int("sent_total"), - "bytes_per_sec": c.Int("sent_rate"), - }, - }), - - "responses": c.Dict("responses", s.Schema{ - "1xx": c.Int("1xx"), - "2xx": c.Int("2xx"), - "3xx": c.Int("3xx"), - "4xx": c.Int("4xx"), - "5xx": c.Int("5xx"), - }), - }), - - "queues": c.Dict("queues", s.Schema{ - "engine_destroyer": s.Object{"count": c.Int("engine_destroyer.pending")}, - "process_crawl": s.Object{"count": c.Int("process_crawl.pending")}, - "mailer": s.Object{"count": c.Int("mailer.pending")}, - "failed": s.Object{"count": c.Int("failed.count")}, - }), - - "connectors": c.Dict("connectors", s.Schema{ - "pool": c.Dict("pool", s.Schema{ - "extract_worker_pool": c.Dict("extract_worker_pool", connectorsPoolSchema), - "subextract_worker_pool": c.Dict("subextract_worker_pool", connectorsPoolSchema), - "publish_worker_pool": c.Dict("publish_worker_pool", connectorsPoolSchema), - }), - - "job_store": c.Dict("job_store", s.Schema{ - "waiting": c.Int("waiting"), - "working": c.Int("working"), - "job_types": c.Dict("job_types", s.Schema{ - "full": c.Int("full"), - "incremental": c.Int("incremental"), - "delete": c.Int("delete"), - "permissions": c.Int("permissions"), - }), - }), - }), - - "crawler": c.Dict("crawler", s.Schema{ - "global": c.Dict("global", s.Schema{ - "crawl_requests": c.Dict("crawl_requests", s.Schema{ - "pending": c.Int("pending"), - "active": c.Int("active"), - "successful": c.Int("successful"), - "failed": c.Int("failed"), - }), - }), - - "node": c.Dict("node", s.Schema{ - "pages_visited": c.Int("pages_visited"), - "urls_allowed": c.Int("urls_allowed"), - "urls_denied": c.Dict("urls_denied", s.Schema{ - "already_seen": c.Int("already_seen", s.Optional), - "domain_filter_denied": c.Int("domain_filter_denied", s.Optional), - "incorrect_protocol": c.Int("incorrect_protocol", s.Optional), - "link_too_deep": c.Int("link_too_deep", s.Optional), - "nofollow": c.Int("nofollow", s.Optional), - "unsupported_content_type": c.Int("unsupported_content_type", s.Optional), - }), - - "status_codes": c.Dict("status_codes", s.Schema{ - "200": c.Int("200", s.Optional), - "301": c.Int("301", s.Optional), - "302": c.Int("302", s.Optional), - "304": c.Int("304", s.Optional), - "400": c.Int("400", s.Optional), - "401": c.Int("401", s.Optional), - "402": c.Int("402", s.Optional), - "403": c.Int("403", s.Optional), - "404": c.Int("404", s.Optional), - "405": c.Int("405", s.Optional), - "410": c.Int("410", s.Optional), - "422": c.Int("422", s.Optional), - "429": c.Int("429", s.Optional), - "500": c.Int("500", s.Optional), - "501": c.Int("501", s.Optional), - "502": c.Int("502", s.Optional), - "503": c.Int("503", s.Optional), - "504": c.Int("504", s.Optional), - }), - - "queue_size": c.Dict("queue_size", s.Schema{ - "primary": c.Int("primary"), - "purge": c.Int("purge"), - }), - - "active_threads": c.Int("active_threads"), - "workers": c.Dict("workers", s.Schema{ - "pool_size": c.Int("pool_size"), - "active": c.Int("active"), - "available": c.Int("available"), - }), - }), - }), - - "product_usage": c.Dict("product_usage", s.Schema{ - "app_search": c.Dict("app_search", s.Schema{ - "total_engines": c.Int("total_engines"), - }), - "workplace_search": c.Dict("workplace_search", s.Schema{ - "total_org_sources": c.Int("total_org_sources"), - "total_private_sources": c.Int("total_private_sources"), - }), - }), - } -) - -func eventMapping(report mb.ReporterV2, input []byte, isXpack bool) error { - var data map[string]interface{} - err := json.Unmarshal(input, &data) - if err != nil { - return err - } - var errs multierror.Errors - - // All events need to have a cluster_uuid to work with Stack Monitoring - event := mb.Event{ - ModuleFields: mapstr.M{}, - MetricSetFields: mapstr.M{}, - } - event.ModuleFields.Put("cluster_uuid", data["cluster_uuid"]) - - // Get queues information - queues, ok := data["queues"].(map[string]interface{}) - if ok { - // Get the list of failed items - failed, ok := queues["failed"].([]interface{}) - if ok { - // Use the failed items count as a metric - queues["failed.count"] = len(failed) - } else { - errs = append(errs, errors.New("queues.failed is not an array of maps")) - } - } else { - errs = append(errs, errors.New("queues is not a map")) - } - - // xpack.enabled in config using standalone metricbeat writes to `.monitoring` instead of `metricbeat-*` - // When using Agent, the index name is overwritten anyways. - if isXpack { - index := elastic.MakeXPackMonitoringIndexName(elastic.EnterpriseSearch) - event.Index = index - } - - event.MetricSetFields, err = schema.Apply(data) - if err != nil { - errs = append(errs, fmt.Errorf("failure to apply stats schema: %w", err)) - } else { - report.Event(event) - } - - return errs.Err() -} diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/data_test.go b/x-pack/metricbeat/module/enterprisesearch/stats/data_test.go deleted file mode 100644 index a183fe6d1621..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/data_test.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -//go:build !integration - -package stats - -import ( - "testing" - - mbtest "github.com/elastic/beats/v7/metricbeat/mb/testing" - "github.com/elastic/elastic-agent-libs/logp" - - _ "github.com/elastic/beats/v7/x-pack/metricbeat/module/enterprisesearch" -) - -func TestEventMapping(t *testing.T) { - logp.TestingSetup() - mbtest.TestDataFiles(t, "enterprisesearch", "stats") -} diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/stats.go b/x-pack/metricbeat/module/enterprisesearch/stats/stats.go deleted file mode 100644 index 234a65d0d116..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/stats.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package stats - -import ( - "fmt" - - "github.com/elastic/beats/v7/libbeat/common/cfgwarn" - "github.com/elastic/beats/v7/metricbeat/helper" - "github.com/elastic/beats/v7/metricbeat/mb" - "github.com/elastic/beats/v7/metricbeat/mb/parse" -) - -const ( - // defaultScheme is the default scheme to use when it is not specified in - // the host config. - defaultScheme = "http" - - // defaultPath is the default path to the Enterprise Search Stats API - defaultPath = "/api/ent/v1/internal/stats" -) - -var ( - hostParser = parse.URLHostParserBuilder{ - DefaultScheme: defaultScheme, - DefaultPath: defaultPath, - }.Build() -) - -func init() { - mb.Registry.MustAddMetricSet("enterprisesearch", "stats", New, - mb.WithHostParser(hostParser), - mb.DefaultMetricSet(), - ) -} - -type MetricSet struct { - mb.BaseMetricSet - http *helper.HTTP - XPackEnabled bool -} - -func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Beta("The Enterprise Search stats metricset is currently in beta.") - - http, err := helper.NewHTTP(base) - if err != nil { - return nil, err - } - - config := struct { - XPackEnabled bool `config:"xpack.enabled"` - }{ - XPackEnabled: false, - } - if err := base.Module().UnpackConfig(&config); err != nil { - return nil, err - } - return &MetricSet{ - base, - http, - config.XPackEnabled, - }, nil -} - -// Makes a GET request to Enterprise Search Stats API (see defaultPath) -// and generates a monitoring event based on the fetched metrics. -// Returns nil or an error object. -func (m *MetricSet) Fetch(report mb.ReporterV2) error { - content, err := m.http.FetchContent() - if err != nil { - return fmt.Errorf("error in fetch: %w", err) - } - - err = eventMapping(report, content, m.XPackEnabled) - if err != nil { - return fmt.Errorf("error converting event: %w", err) - } - - return nil -} diff --git a/x-pack/metricbeat/module/enterprisesearch/stats/stats_integration_test.go b/x-pack/metricbeat/module/enterprisesearch/stats/stats_integration_test.go deleted file mode 100644 index b3af4b1a5ab0..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/stats/stats_integration_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -//go:build integration - -package stats - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/v7/libbeat/tests/compose" - mbtest "github.com/elastic/beats/v7/metricbeat/mb/testing" -) - -func TestFetch(t *testing.T) { - service := compose.EnsureUpWithTimeout(t, 300, "enterprise_search") - - config := getConfig("stats", service.Host()) - f := mbtest.NewReportingMetricSetV2Error(t, config) - events, errs := mbtest.ReportingFetchV2Error(f) - if len(errs) > 0 { - t.Fatalf("Expected 0 errors, had %d. %v\n", len(errs), errs) - } - assert.NotEmpty(t, events) - event := events[0].MetricSetFields - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func TestData(t *testing.T) { - service := compose.EnsureUpWithTimeout(t, 300, "enterprise_search") - - config := getConfig("stats", service.Host()) - - f := mbtest.NewReportingMetricSetV2Error(t, config) - err := mbtest.WriteEventsReporterV2Error(f, t, "") - if err != nil { - t.Fatal("write", err) - } -} - -// GetConfig returns config for Enterprise Search module -func getConfig(metricset string, host string) map[string]interface{} { - return map[string]interface{}{ - "module": "enterprisesearch", - "metricsets": []string{metricset}, - "hosts": []string{host}, - "username": "elastic", - "password": "changeme", - } -} diff --git a/x-pack/metricbeat/module/enterprisesearch/test_enterprisesearch.py b/x-pack/metricbeat/module/enterprisesearch/test_enterprisesearch.py deleted file mode 100644 index cba273bc7eec..000000000000 --- a/x-pack/metricbeat/module/enterprisesearch/test_enterprisesearch.py +++ /dev/null @@ -1,81 +0,0 @@ -"""Integration tests for the Enterprise Search Metricbeat module""" - -import os -import unittest -from xpack_metricbeat import XPackTest, metricbeat - - -class Test(XPackTest): - COMPOSE_SERVICES = ['enterprise_search'] - COMPOSE_TIMEOUT = 600 - - # ------------------------------------------------------------------------- - @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, 'integration test') - def test_health(self): - """Tests the Health API and the associated metricset""" - - # Setup the environment - self.setup_environment(metricset="health") - - # Get a single event for testing - evt = self.get_event() - - self.assertIn("enterprisesearch", evt) - self.assertIn("health", evt["enterprisesearch"]) - - health = evt["enterprisesearch"]["health"] - self.assertIn("jvm", health) - - # ------------------------------------------------------------------------- - @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, 'integration test') - def test_stats(self): - """Tests the Stats API and the associated metricset""" - - # Setup the environment - self.setup_environment(metricset="stats") - - # Get a single event for testing - evt = self.get_event() - - self.assertIn("enterprisesearch", evt) - self.assertIn("stats", evt["enterprisesearch"]) - - stats = evt["enterprisesearch"]["stats"] - self.assertIn("http", stats) - - # ------------------------------------------------------------------------- - def setup_environment(self, metricset): - """Sets up the testing environment and starts all components needed""" - - self.render_config_template(modules=[{ - "name": "enterprisesearch", - "metricsets": [metricset], - "hosts": [self.compose_host(service="enterprise_search")], - "username": self.get_username(), - "password": self.get_password(), - "period": "5s" - }]) - - proc = self.start_beat(home=self.beat_path) - self.wait_until(lambda: self.output_lines() > 0) - proc.check_kill_and_wait() - self.assert_no_logged_warnings() - - def get_event(self): - """Gets a single event and checks that all fields are documented. - Returns the event hash.""" - - output = self.read_output_json() - self.assertEqual(len(output), 1) - self.assert_fields_are_documented(output[0]) - return output[0] - - @staticmethod - def get_username(): - """Returns the user name to be used for Enterprise Search""" - return os.getenv('ENT_SEARCH_USER', 'elastic') - - @staticmethod - def get_password(): - """Returns the password to be used for Enterprise Search""" - return os.getenv('ENT_SEARCH_PASSWORD', 'changeme') diff --git a/x-pack/metricbeat/modules.d/enterprisesearch-xpack.yml.disabled b/x-pack/metricbeat/modules.d/enterprisesearch-xpack.yml.disabled deleted file mode 100644 index 0af7916573a0..000000000000 --- a/x-pack/metricbeat/modules.d/enterprisesearch-xpack.yml.disabled +++ /dev/null @@ -1,11 +0,0 @@ -# Module: enterprisesearch -# Docs: https://www.elastic.co/guide/en/beats/metricbeat/main/metricbeat-module-enterprisesearch.html - -- module: enterprisesearch - xpack.enabled: true - metricsets: ["health", "stats"] - enabled: true - period: 10s - hosts: ["http://localhost:3002"] - #username: "user" - #password: "secret" diff --git a/x-pack/metricbeat/modules.d/enterprisesearch.yml.disabled b/x-pack/metricbeat/modules.d/enterprisesearch.yml.disabled deleted file mode 100644 index 122e56b627b1..000000000000 --- a/x-pack/metricbeat/modules.d/enterprisesearch.yml.disabled +++ /dev/null @@ -1,10 +0,0 @@ -# Module: enterprisesearch -# Docs: https://www.elastic.co/guide/en/beats/metricbeat/main/metricbeat-module-enterprisesearch.html - -- module: enterprisesearch - metricsets: ["health", "stats"] - enabled: true - period: 10s - hosts: ["http://localhost:3002"] - #username: "user" - #password: "secret" diff --git a/x-pack/winlogbeat/module/powershell/_meta/kibana/7/dashboard/c77e06c0-9e7c-11ea-af6f-cfdb1ee1d6c8.json b/x-pack/winlogbeat/module/powershell/_meta/kibana/7/dashboard/c77e06c0-9e7c-11ea-af6f-cfdb1ee1d6c8.json index 13357544ec8c..f1024d88e3a3 100644 --- a/x-pack/winlogbeat/module/powershell/_meta/kibana/7/dashboard/c77e06c0-9e7c-11ea-af6f-cfdb1ee1d6c8.json +++ b/x-pack/winlogbeat/module/powershell/_meta/kibana/7/dashboard/c77e06c0-9e7c-11ea-af6f-cfdb1ee1d6c8.json @@ -1,6 +1,6 @@ { "attributes": { - "description": "Overview dashboard por powershell module.", + "description": "Overview dashboard for PowerShell module.", "hits": 0, "kibanaSavedObjectMeta": { "searchSourceJSON": { @@ -306,7 +306,7 @@ } ], "timeRestore": false, - "title": "[Winlogbeat powershell] Overview", + "title": "[Winlogbeat PowerShell] Overview", "version": 1 }, "coreMigrationVersion": "8.8.0",