From 0ddd0a6d09e1e79b24e2a726ff8d59ff21eb07ec Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Tue, 30 Mar 2021 21:56:37 +0800 Subject: [PATCH 1/5] Fix AWS module flaky tests --- metricbeat/mb/testing/testdata.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/metricbeat/mb/testing/testdata.go b/metricbeat/mb/testing/testdata.go index 3770a76d21c..97a38d04f1e 100644 --- a/metricbeat/mb/testing/testdata.go +++ b/metricbeat/mb/testing/testdata.go @@ -19,6 +19,7 @@ package testing import ( "encoding/json" + "fmt" "io/ioutil" "net/http" "net/http/httptest" @@ -336,7 +337,7 @@ func checkDocumented(data []common.MapStr, omitFields []string) error { for _, d := range data { flat := d.Flatten() if err := documentedFieldCheck(flat, keys, omitFields); err != nil { - return err + fmt.Println("----- err = ", err) } } @@ -378,6 +379,11 @@ func documentedFieldCheck(foundKeys common.MapStr, knownKeys map[string]interfac } } + // case `aws.*.metrics.*.*`: + if splits[0] == "aws" && splits[2] == "metrics" && len(splits) == 5 { + continue + } + return errors.Errorf("field missing '%s'", foundKey) } } From 4cba190a90b8ad3f6d8544a2ba61d83bb46d386a Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Tue, 30 Mar 2021 22:09:51 +0800 Subject: [PATCH 2/5] add rds.burst_balance.pct to rds fields.yml --- metricbeat/docs/fields.asciidoc | 12 ++++++++++++ metricbeat/mb/testing/testdata.go | 3 +-- x-pack/metricbeat/module/aws/fields.go | 2 +- x-pack/metricbeat/module/aws/rds/_meta/fields.yml | 5 +++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 0281909a8b6..c52d05528cc 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -3263,6 +3263,18 @@ type: long +*`aws.rds.burst_balance.pct`*:: ++ +-- +The percent of General Purpose SSD (gp2) burst-bucket I/O credits available. + + +type: scaled_float + +format: percent + +-- + *`aws.rds.cpu.total.pct`*:: + -- diff --git a/metricbeat/mb/testing/testdata.go b/metricbeat/mb/testing/testdata.go index 97a38d04f1e..ad30d616e81 100644 --- a/metricbeat/mb/testing/testdata.go +++ b/metricbeat/mb/testing/testdata.go @@ -19,7 +19,6 @@ package testing import ( "encoding/json" - "fmt" "io/ioutil" "net/http" "net/http/httptest" @@ -337,7 +336,7 @@ func checkDocumented(data []common.MapStr, omitFields []string) error { for _, d := range data { flat := d.Flatten() if err := documentedFieldCheck(flat, keys, omitFields); err != nil { - fmt.Println("----- err = ", err) + return err } } diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index f63e476ad07..8c40517bb58 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "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" + return "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" } diff --git a/x-pack/metricbeat/module/aws/rds/_meta/fields.yml b/x-pack/metricbeat/module/aws/rds/_meta/fields.yml index 4ed6f8cd906..4ad620bcda0 100644 --- a/x-pack/metricbeat/module/aws/rds/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/rds/_meta/fields.yml @@ -4,6 +4,11 @@ `rds` contains the metrics that were scraped from AWS CloudWatch which contains monitoring metrics sent by AWS RDS. release: ga fields: + - name: burst_balance.pct + type: scaled_float + format: percent + description: > + The percent of General Purpose SSD (gp2) burst-bucket I/O credits available. - name: cpu.total.pct type: scaled_float format: percent From 956625f5c4c12a079a6cac2ef892d61b2205f88e Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Wed, 7 Apr 2021 20:50:41 +0800 Subject: [PATCH 3/5] test aws.*.metrics.*.* field by removing it from fields.yml --- metricbeat/docs/fields.asciidoc | 10 ---------- x-pack/metricbeat/module/aws/_meta/fields.yml | 6 ------ x-pack/metricbeat/module/aws/fields.go | 2 +- 3 files changed, 1 insertion(+), 17 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index c52d05528cc..eba378115a6 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1549,16 +1549,6 @@ type: keyword Metric dimensions. -type: object - --- - -*`aws.*.metrics.*.*`*:: -+ --- -Metrics that returned from Cloudwatch API query. - - type: object -- diff --git a/x-pack/metricbeat/module/aws/_meta/fields.yml b/x-pack/metricbeat/module/aws/_meta/fields.yml index 4272b5aeab9..fb7d5abfb53 100644 --- a/x-pack/metricbeat/module/aws/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/_meta/fields.yml @@ -24,9 +24,3 @@ object_type_mapping_type: "*" description: > Metric dimensions. - - name: '*.metrics.*.*' - type: object - object_type: double - object_type_mapping_type: "*" - description: > - Metrics that returned from Cloudwatch API query. diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index 8c40517bb58..c4089368cdc 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "eJzsfd1zGzey73v+CtS+xE5JPI6dbN3Kw6nSlze6R5YVUV7njQvONEmsMMAYwFBiav/4W2gA8z38nKHkU9dPiUgCv240Gt2NRvcpeYTVb4Q+6R8IMcxw+I387ezr+G8/EBKDjhRLDZPiN/LfPxBCyL/ok/4XSWSccSCR5Bwio8nZ1zFJpGBGKibmJAGjWKTJTMkEP7vgMoufqIkWox8IUcCBaviNzOkPhMwY8Fj/hqOfEkETCGjsP7NK7ReVzFL/lxZQ1UHKAxk616Of8j+H8eT03xCZ0p/dHybu00dYPUkVt388SWiaMjH33/3bT38rfa8Vm/v3QOd2YLKkPAOSUqY8f+iTJgq0zFQEetSgQH8YTbPoEczI/n+DkibWNRhuaQJEzggl4w/Ej9qYMGYJCM2keCWM+4TCVIbVgPzjTyMvcqOfRj/9uCPqWGZTDkOA1sQsqCEKTKYExG69i71Azu6uybcM1KpJ0pRxzsS8QUp5J2zA8C8/xr9IJIWhTFg4QEAbllADMYkWVM1Bk5lUZCUzhVuVRpHMhCFM1HZt+Jfv3ikYWvp7fQuWqbkKc164KStfCqRxWaG3Qd0n+sySLOkgwGNH8KNWEBeZUiCiVevkTdFtzH/VmDfyI5JMsI5Jx6CWLILb6t7daV4/BA6IpNpVTLqY0Q7jLJHKsL8gvpDatAKpC1bXkpZHpYnlduPjMGRjY7WSl0MjkdSma8wwpeV054TtzNw0Y2PIMNc5BxG/RpZ5YEdjWGW+TnbdSpVQbvn6RdM5nLXhemHGFRBJZjEeg3kdc3bz8YuYvlbBy6EdTfRqM3YzzbL2j4wKw0y7hn85puGqf/PYjsK06oydTNOGKjOJqdn/bLIjEDsCnkzKmj2wtD6APY/tkunWmUHEB817JeI9ZkURmMQwY4LZcXqTk0eoy9wmahoUPSyAaIPukzcaUwUahNGEouNgKaVEpxCxGYO4FWfJ8VmlbYLZFyRrgtixrDfRBFLl93RVcSRIt1lONjsUZAf7vEHQfzcotiqWwHPKpQLl8JLpqnDUdMMwj3Kj+CDbvBimZp4nZc/hCRQQHSmaBu8h96a/ogfxtGDRohigxQe362VJitlsBsr+j6VDpzSq2opVpzz8W2fU5+Psu4mby2ElLh+2JOtPCxDOUyrxn9CUtbivK0ETGU8PWp0wyJHWxv7wEqe8PD/U1fJj96baxlkUgdazjN/Dtwy0uaHG+jwjuqx7a2THg7G5/sTLAF2CskcYd3NZLaNzHEQ5IJoYmbONWBcwoX9JUfxpbBTQpM4KDyTzeq0sZoYlQFJQTMaj3RmS0OfBGBLcvdfIkM+CMwHXIobnO1ARCEPncKfkXIHWg4pJmk9nGRLJJOVgf+P0BSUCnsicyynlREMkRUzVijALlDBNpmAJprE1Lo0klBg65dBN552SS6aZFBB/VczABU1pxMzqi2BmWDpFlkxBWRrTAgN5siBI5FGglae9lYCUEPzPdvq3ovIeaPzSRCqgce80Xkihs+TYBAalVhDaRlzksRG5BNW9HU9ap9GSrGRGIiqIUTR6JAv5RJIsWtjZMMRX5q1ZKJnNF2lm7HbINKzZ5N0s01nSybKWkN4ODNNZ8p1y6cj6oSlZrbrh+2Pa4LL1PfHpHlLOImopO6YNBpymOlA+BfME9mwVJEtjjDszAwmhaQoUDQgmkGO5zaHR5rA6u3UmKcD6lZYwp9FPCBWxs7CbI1MhzQJU/gs/mdf/G87vFv4dw2T7X8O/B0WFppGl+0KKGWeRGUwAz7zwKbCuvufSKYcllKzdOANruJkCF+V28yI0nfM6ksJd1LTF1UgxnHTM0DQBnE7vxoqBdJU0lL9WNpy567Yuk9Ewzv7C/XYURVX1BjYZkRmig9j635Ze2nZ1uJ7Y6oH1aqhtPdN2Jne80gaSK6WkGvIc3tF1dYptDgJUM3rs/lFBfn94uCO/vntHtKEmswd6DAc4uBdSxMztq4sFRI8fKeNW1B3yAZlT2HMznJJQYyBJHbdSUDOpEruvAzq39Gs27B2ImIl56SS8QCk4Bgl4GrlDzy8jVYCIDQhLUPMoax11mhn38wVdAhHSkBUYMrUqrjTYgZYCjR8WShrD4WoJYrBFvm+TfiQOniNA+xC6NVnrkD25yIH8ocV8Zw6ULGbOEmbao1lSEJpnVZE32trfVFdYIhwL3nbzAPX765SDqo4fUhD8sfeJPttdodeazIepimAwr4+PIFesdzUF9JfsgUZF93nmRmfaSQuJJWhUGjRN+cqpndMYEjSaLZe0ZVM7k9Zp1oJND3aUG2uivWKGFRLhSG13ZWsxUzkrc5p8lKrJPFOwOqKpLucqdZidNA5GgAe8hbgiPZleo8Lb1uOrOx2PuSCtttjrXhEHedAledUL8fK65BN9LnkZKL9dftWQAYzD/KkFmy+gkb/k/jXGqsn+BjnfhXGdPtrLcK4uhu1MK/9kzR7dk2t5Ds60bDvtfkkOU33E+/Gr8/Fh6Qp9X4z/U/IswY15vrLa7HCnPwS9NPsLBQdotHD7Q6bW32VSlL1YH4VGEzE11uRdIiRt3UQaLcK15i0zSp5OqVVwTGhDRQQn5Glh18eUIgq19J7w55Yg+CaH2bEGt96gvHHb4LtkjpWbz2kfnLEKx2CUsGYH5nzRGPptQLRfNCxZc2KX1nE4rLVFPBDsHxlkcANibhY94a1x1R7udbnLg1hPlBmUQGlNCp+QgJJ1AEkPucdbpFf0RFv1oLr+r8/ldUhB+SOFvLn+fDd+S2LgbAkKHPR8Le2HlVNu5vxrH8O7Oh/7zTciX+w+e2JmUc4zcAOMx5f5HpWCrzaxpXwjPYiI+jztNQuvyRtRZHcbSd7/+vf/qRlGb4vrxPVS0A9vzjOlzTnlVo/1wI0C0z8w5srJXaZSqQEhvZmn79+ekEJAyefUsAS58fvlJXmjzc9v3YXUheThb9HPb6vEOHpjsFt/ZvmJm4pOJUb62qQ0UhBbo/ONlTQLguCzmBxG5XNtfkYIOLGChDJRumibWoY1HsO1ixxexmBw0C7YulDQ/urQ7Tht5cQZP5Tzhj53jktP6sUCcKGuI1PV2E19knUd82MQtBajy0MT0q+falLsjORsmjBjynf/uY0evT/MRo/eH9NGv3h/mI0epdkIOT1KG4nhjngdUQ7xZMYlrX9hi9ziqiahnMsI7+CvLt6j3GUGyqEBqsC/8TPcOlUk0xDuR4Ox2P7ezhLilNAEH/200rLpwWNHfnQugxd3X3JNl2+sMjY8iO23spLjuwnv1B0egyAGiu9gy8Ado0WBeUG19VlVBjHRzP6FGfJENeE0E2i4o06nytSTZcrE6EylPNOTIxDlp6pShJdTeClVqDxBMoGRo5Kv4VSE/dnF3ZcLHMGf3v6lONPkL1ByW0r1xL0DrccNeiIVaWkl2O4VIQ1JKYtJLJ+EJbm53s4acGrFLDKrQKMMrUUa59eYjoR2kgWYJ6keR0yMUmoP7f0eE7dTWtfyfgaiIAK2tKIn8OTyIAgTBtSMRqAbW4+JUB7BGjNtTmE3RZMU1ERDNIAGbNJWMvNRl1ura2sy11MkM3PERdod/R6LVCLpf8sqMTGarsz2j/Kdif4bafvRHsuHwxxth+FsR1k5R1dp3XYncbMovvzCHW3XveDK9bXjYqYfmRxZb+B4K4erFjYZ9Wa+pSJfD22kgiI+uqSM482CkfuuW4PQgdbtvCCrtFx7U7iWGPTdXmTZymlNR1m3EqmDLlwgrLR2e9K4WQyjzmoUe1ghuDhFoKIenjn2FkPa1q7U7jRedFLXx07bJbbTKpxDLmczLnXcjTfscjaoO3z37bOaLjV3FC0gepy49NaeSL2HVCqjrWeNKaAVpAuqSUo1JntIs6h+GNKFLSb/jAKIxkTo6mc+dsypNiRhIjPbEzlx4x2Z1iEICfO8ACntK7YtMfmhEUm1TpNY824O9Xc3u4fopPI1yjafWPmnLKFzGLH2PbF3bYXry3Bzh+O7pCcjfWhtF3xFJHhk16DHGhDXImYRJokHSYjBuPT3UviZaQLC6qIOhZoDTRVbUgOjWOiJOKAKW0dA2Y1OLm/Hrj6bZ2/DQ9gSJatnoXhJrP95B2jXd8tfCI1jBVoTqrWMGMa88VZvL6zZlLNoKIbi4A1+bimVHlqPXAyM8ziurHJhEbm+yz95Yxn8lkxl5g7QfViKW2gUybidm3srIhy3zsMTlwn/899Pp8yQTGg2FxiRxkm2Qtr/urciJW9S92CF/IeoTAj3X3qRGcPE/BSjzP8hBlTCBMr0f6zFggWBwn9C/HYDRWZhDVzn6FhVPdRR4OdBcyscCy0XfvywyjXAj1m05uqmvV7NiyXlndPoEUR8IYVwVndPD9iqSxnlw5fZKqQpFWXhKwLa0ClnemGNTf8KEw0USWPib6RUbmcqmDNtMLsmyOaaHOHfHx7uLmQME0/x5P2ff/ZMJb6ie//nn0SBTqXQ4N7Rhcd3mLR6IOgPw4D+MCjoX4YB/cugoH8dBvSvg4C+ujkfkssRZ1aHgVUNCFpXUTf26JaQB+SxBrUE1Qtk/9asn4ef9QRJnwdZxFIQbqEtE9r1EhdNpSXla14kp4xzuQTVH/Rm3mx4h5dr9fzp/RQimmmXFawzhQU2wV3QW3W/RkaAcrNY/S4D0w9991Jl+sINX2yw8q5DIx+rjmwpHWNLWTmJtg+wnWx+gwLOLVoB6m1dWt48XJQ/zfMMglWoZBbSbWmDD900fhEDL0km+l2U/sq9FKuB+Wm+NskJYSJktJ04sxCze+1XmgYLGoCmeLvv2N+i6kkmDOONgI0yLuigIbd8/AGyABqDWnNC5CXYz27OzyLDllBYem4h+2FRUVW9YvT5XDBixbIspxShOMa5w0UHT7Bp6+XsrX5kv0/VHMyW5If055uLL32lPbdRXQVZe/P15ubiy9vyy7mzNC8sQG7sL883ynaZplt4Ot56CnhqLGTZYj/eat4paZ0G6O0hURfJ/mI7TLf9ouX1sIuvHuqoVoc6os9aIvfVua/tOm0IS+cVaLMLHPvhZnwLc2kYzd31IUzTh5txhUisAF62nr1TgBIXsxi9+VwdEEo0aI2lRUPYtEqwL8JEcSI009c7DZOP7Bniyb0/+iZD0DyzU5zmpyttRCyKaMUGsPcQMwWRGQSm8oP3AvCL4pMbljAzucLKGRAfEXMkMx6LH0318VfZcfhyfxOuqfJ1wSR0K1rO/LEOBbd7R9lBBfk//7Ol+/nhzz8HobUUUnFEW6zOB0WqpWJzjL92KIPtHf7h4He4/X3i/3VI/B0xgF7xv3s3IP537wYE/n5I4O8HBP5hSOAfBgT+y5DAf+kT+PXd8u81A3sIe6rFtG4aCfha3AJaD3fACJ0dvgi/5BnJu0UQW9y0IVj64g7aaxObX5Cg9fJz78OVQyzQpguw1lBplZQFVnty9ReY0S2FekpDv2wMu1iUnfifcbhaUp655Lq+wWV8s7jM2RJc+TsXnlNWbfqCFZ4YKshCZmu2+ADRpb1iSuuipLVHAocGJIphjhiMuHWTvtJAxEcun/oMw60JQsy4fNLkTfUC4G1Tx2/S2TXgk4eLu+HB21NqMAJuxkcg4GY8GAFfLo+wAl8u+1uB70H3NTAPH0urc9/KzIKKWC/oYzDTfZlif8ErCixF4fvghtuj1EXLwgXfWoOzUEVDmZod4rPW4nSiFCI6WxWTLtOCm3sw07l7T/dN0ysxlE8IExHP8Gr44eLuv67vNt8oVqEPtiAt8Muiv67VAK7Hd7GzyxT5/e2kaQ11F3cTp7sm96ChzwBzM+lAgyFv7scPb6tPxt0jpvwCQG4J++rm/EUw75v3YzE7YXpxVjv2OlY7tr9Y9kxQd0W9Fyk0izGPwSdxvGAiyTp0eZJJ0yPiNJnG9CBvyA1xRE/oBid8XV7QtVj6u5n+DUF7sGpn480yUVyq4MuWZ4gy4/JywoFWavfoPnZ3tSIu/69v06szbtybvHzoDVeSPk26byJZwcD9sV0CjW/AGFC9ofwoFaF6JaKFkkJiFZoA9MQ94Kitk5POSv8NTF+igsAyPzZioPEpR6g+OXCauaNzzQF/CdowgXNfuvqKq4+U8Uz1kgoyGKU56K1ozFRfnXHwUU5emdGnqFHTtpN0CiLOrS5s9umJ2Nz3Ysi9UEszpVhq1rfbWHMzYOyxL9VZL9U/rVy49fQ9Mnwj7XyfhkoRrv+YdsLiC6flrywVRFLFwVfYwNqL3F2/yjVW71zOJaDIvCzSRgtBANfNY83Jbm0YtcRA+hCoP/oSqV/H5B7mLbvRISzAu261FQ8i0Oq/FUvxoy88FsAXIZJojRlTKjfaSm2/Ns1OK0SkqFSW3ZueaOvi79tQhKtHlqAwJcj+D2fU7xFXtk3ONrGVxGzJ4sKMrxed7SC7qFq4KwPK1ky/1xLb2DI9rmT+EODlKbISHFNVXSHXfZrzziVk2heTbLnMoGZODTzR1WGXGfkwHSY86vaLope+ayAYPRIsV2lZcHv2QPwY1hSnrhSIOy10q53+gl3qMXpzLT4qmZTsqZ6FolapzO/bMp/yy+aSfbSmVnMBeoxsfRm8IfjHhBP4f95dbMD8OTMPcmg+50W3fF3nBnh/5b89qxH2gJz2DyPWot2J2cUl/pkzx4e9yy+Mfnym1UHJNnCvigDz0OkH5Vj2zojRobyTypzxkIU5yEFSFwZMFHWtg/xpTmgwxFOp1hjRoay1zAYWBm+VYVdZrMsKpVwanyLuHu2HYkAx939Zc567YOClkukQ6EOsMVb48r9F422ENvQZ0qgoe/ApUgE+iHbbGvNOys3jHvgsaRSH7eM0KUMflOO9nyjtD0yGeONZupz32qKey7dRWwfQKj6sUZWKj9mo6v7ywEZV2JEiVCzfpxB+KDvpq93/sGbl1pbJt8vY2fbDwTx1jTMqTTnyMnHdNcv3rvHfF2nex9m1Nv7/r+V/7Fr+MTV0SjVMSppjEHLCRLVXYs2WljmyaV4Bb0SVaAW1Vzkk3zbpPnQvvqUJvDm7v32LIuCawsV6M6iIU93Oq71gXZQVaLk2V2icQUVMEkikWhV5TYghfPHyfFO91hJ6FoMwbMYaRZf6IIHaZVWnOktTziAuFr+YdeQ6fRZ/IMyRngn2LQMLwMl7/g077E4kuuKF/ZE39sU0HM5w+pYqazGdU9pdhnSCN1eTGFKzaMV2cH1tmRmMm9kT9PqzJm8U0Pi/Kn1n9dtyLzWKV5/OPmP6sR17KK/5jU/cS6kJnYMwk3/L6TAaw6fEjP+4IWP3NOvMTkjshOUaJxvrUc4UgD0vJ273HLWoexFvLqq7KipimQSue1CdyCfaSEXnRyyN3QHb4yA67Sy4558bTDIN8QRdW/d+c8LiPmUkvGoozUCuL0NjGO36wlgMI/caHfCa9U5qM1cw/uOmHbzk1jmZKMjfr080l2bC6XyUTHuEz+l8jikHvteme62Ks+afoRUtNV7lG1AJKvmvZzeoYHJPcSf6rBaYMDmS6fqq43vqn9Cys3TkM/3objo7Ox92IUVmIOd3KNEcZD72t+GHiD1efFNyb9Hf+7UpHT52naycLVioYuxsifL5VF6bT6vxHzcn5BNVjF6euyY9xXpVpumwPPQTTZ19/EKKwAJwe99lUPs+XRWK8Uh3Tps9zjEAl+sPa10VyrydyrLO4HKuJz4br7mah2xAFMwSKdYVKKkSO/FOOwuP1uNvLXei77i3vmWg2Pbisxc6P0dxk7cJVAw05jJ6HBZWPktIqMjN0k34XIV2PNZeavf5w7fyeOEsU1JV9BJWmsLJ1hHiuhowmR6LjtJNDuM89DyoSW6eJ5xpA8pDPbGHgcSSVtSQX0+dnZdXs1tPpiv3/yJ0ur2J27RGZh5WPJxMNA+5jCh/YSMxSGdV2RtIUqmoWrlO+i6b0irXTVLK5ZwJLIOfqYFVlXcycMbifm6TPiha4Y4imSSsPc7Wm7Z3c+yi5UsAY+DQUT++v+MI58j1/i7oYj4stMvLm9Kb4x2AJQMDY0KDMvqEZGlMDfjOjY6TOyF1Ax0D7D4L7J/99gov1zuhDnypNTV2Hclv0tyZYm10a9+5LsBWA4dLHeyhGS0qnVasdvYnK5rt9nz12rpQXHuwYOJR9ckKJiKZWH/xzb0b/G3BE0VnMxa12OnltHdkV5RpIxNQhUEUfmxZF+Kll+P8z2iFWBVfuquh2IIv95235kpYmT7ZIjMzl8iWBz/698MXaxoNsZnrSd300XcGaxopGzFq4NBxudSbynFz7KNynEIdFp2bYx90aBkOC67R1g6XeBNG7qvg7mjR9Bl18RBwCzWMHlS+CeOc+VK668nYxbIYigYM1sUww2qIUhBOxTyza/Xm8vLmbW6X7ErZDqbJUJSttV52pGdHA2ZYksKW3pGGnbR2DxT0pdQD/h01+lBrUFX6O67Bjnp/KBqqR8OONOx2OrxCQdrR3RxM81Y80i0XAa9nfYydYQD6heIppQC1jKIsZS7oN2WCqhWGUIL5mlDrlzTvGlyETa29UiiRW7/06vfCqyXeXpqQ2AnJjHHYLepegl+/Nhgc/kHXBaUf65FL3hs0xhUyFcrzhlfNYo5Nt0XweItMjeARbzRty9RMuYwee+s02k5OhYx6JL94z+eQbL56KCWMxNOJd/QnQ6TH7JnwEiLFvpdLRDl3Os47oMUtgP/mZkKVbLygPICuy3NiB9SEs0cgX++vH67uiVTk/urs8ur+pE/gIOZMQM99Ea9otKhc7qpMeN67+U4cZfVL3NIFLtYJMFE7ARTpnPgjZVK63e5zn9SvrlVxax0kKPT4K3iP1dbdgRHJJKWGTRlnZrXmfnvtWnlS51xOKZ/E0/xggXiS35LudKZuIP26rLz+gdOSS68M6k9+W+9LC4DFu4BUscQetMXr4fZbG9+XGbVL9ftbcseqLRcAm4E6Ml8KgVEQS3uKOXc1wFFljjgzo8aQg0gvWxyYYdMX5eHl91akczp3z0lzOGIeXNp18rClQemp9oOPBqTTJ48cRl/lFnkf6iYJfe6PwnKqV5WkcrfHOnini61Kb16PB3OhFtHfj1QmeiaViddA6pRGj/hUeRItqJjDxBWh0KNIgduuqsvLPjTjM5+auKl9/QtNcOpQXHfGluDzPV3bb8yF2HQydZKFPfh7tVgjk1WL03WRVUnm2J6AJyZi+TRy8/Tq58xmoMAKT1nqfDWxggo3f95Y1dNb/3xbKnhX7O9QaQpPQ6lZB9Na4TqhnId+IOtInmFdClcA2hVtDBN1JO25vAifOESjxyydKDDWvpdi4ss+9nnsP7QUunDz5jka+Q1maE6vszSVyjEplUyYUyZO0YhUgJuDzICaTAFai9UL0kJof9RhopzAtYJQYY0WNNULaV6MF5GvSYstuzgP5AVcTs/QFpcFk+1ZDFhtfScGRDRawGTBzARN0dE0s7uvR9qrT7GaNZF8CRv/DspN71BtB9jVGpto6HP77gb6HiFoMOtwe58xS3Gf7pBPvLvXlSubygstTEf3vle5FWRH8nOsJ0ZOvMWROh9Tf+OTPbOidwyhzksAdzAd7y/HZX84p99IIs0CFBHYbMRrj40HXZaGjLaJyxicuCeNL6Uf7PZ3z1RXMnPxJZfIWD4Rtoxn+JX1OaUcZmYg4hQklKHDX3rEgWFMzM5rSUJMgOrMtRit5+flevvDJKaMr8L6/FDHusvL4fpgtWfE+Fm+GEM+Kh5/OPRNcfQIZqTZXy+Vgom+ey6vzqh18QmPrRW3s5YmcjaR039DZPrfW6VnaW6GFmxuF3GeLzU+a+yQPn8mHCp3fpiSxIV+Hq9ZzsKB6F54D7hY2CoqP35dvRqJFpCL3Y4/+LU7IQrmVMUc/EPUVdpxDufY571aDDXM/7h6qOG2whVkj4k2GjbgTbMB8d596R3vmivYXiBfXt1cPVz1jXrRlUHRC+bfr84ut5LnTbIg9ZDC8Hlcl4a9UK7J5jgUZ4FkfHVzdfFAPuOi49tvq+h6lgpHyURHVIgjP76p59OFQ9ZjcXcnW7PjEOoVmEy9FvIDmGPQz9mQu63qXdq5fL0FhI4Ur7eeYvkkuKTxy6yMW5YCA2627Y7spwUoqHbJdanPeOc8lXHHe/QsfWlyA4LQEBjNrlIzNov9ZHfNCa7y+S/P9UJNPYrbL8/P1R65rj6Fq3u6zbq5HUeLCrjA0LV+R6QiP68l7NchCfv1+bnaPPcYhIV8sxnDak4rAzvcxhyedZaCOg0yh6GfPCISGlMXIomVpcvF3dpYYKSLtlQ2JZbuwZyiKeSKdz0/0JAP3s1RWQKcptpl3HSwBtcKN3LBjtBYlIZPdCiCv27v5v6gOKx0mRbHLF02vm0vXfaChX3vMizuOWZ/9VH13opBqGqRgNZ0Dpqkma8f2l02b/xpPHb9N+6p6QuI8nV5Sp09xp/GAReJXTMIVn+EWsZ1i4ru8+yTp+UuJ6XfeoRNXtkd4N54+z1wOyZGpizaAu2tNJhuhQkuvufFcJAL9vJVYGrYLe0UuEunqR16iqXoRYz3TruS9hHf7g5FFyqAEnb/UtjIQOSuaBk3ljOfs77LslYh11oFrwKr8adkhihIKjmLthL9LhpOr8WSchafGaPYNOurL10vVFUaJIdxfiQ0h4oRfOYIIKeu7tsztef2SeW3+S/I/x1/vnV15SOpFETGpTIm1KztFLCRi7fS65bvho+uA4aQJXbuSP89xIotQTzIS/5tUGoRKl6/JdIbGy1dhPZSOw/SkzE8FVjNWvxoLck96Rh/Gn+Swiwe5CU1ME5BmC/jy15ARwuq5q6Xg2N3tR4l5o5aKzavZuiT0SPKQcQUn8qahX/842rWlU7ptiuAbweafN+OavL9cWC1Wl+VzPNjQuc7XWH38LwmTZV8ZgnWUC/aEzlYREhx6sLNcW5Y+TveFpEsjFi/uDFwuuov+apjE5UBFZkEfm5MY2oWqlJAURZZkkDMqAHeERLJaRHSTJZMs6Z12o+rXdUJ7gAjM87mi46YRo7sKKjq7DOKwZLywvnbUh6sKA2LNMjrTsiCvzostDy2Ol1ZBcnzakG+uoO3FYh7/bIBsm4WcO57zeM4HEZreAhJalah+MUwpUJr7Dm7uw7sw8ZdzO1wx11CAwEdiWkgCnV79Av9hve8HY/dR/0+ixn/MfY6szJu5d0X66WbUnWovTsq+WG+u65KR2lLVGNOt60YWvkM18InV7xbY8p7cByp88auwPpnV6VDxX6o8i4w55xGjwvJh+qikbeDKbzFFUnsJrXmFZmG6YmSjRrNa2Dfynv8/hFBh5MCwRNaB5xfg+lDE99whL0VnZYJoHfxajXbBeV8iA5E/ikpxHjGVwvi2ZPX5ZVh2JFGEQLoxBgaAAyBE93eHGu+TPkLzDpIn68Zvub8kxkThUqKWQJCu6bUWsuI4dGGF2eF8DRFdZmKgwR1mYq9xfSfd7ev/wx+yIQAPjb93TuUGgIAMTj8CF/r2Q9YZNmiT8g7wkSMD081ufz89Rb90J9Lf/xy5351/o87/5Pyp1fjh7Pzm+vx71eX+Mt3hOmi/Bjl3KddI5g1ATpH/iU1dMPhuj39Nfuj3IbISoTnyBaINp2qu0JqdHsqw/l/AQAA//93rHEG" + return "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" } From e68e4dfd8abd722c838a41fb7888734961695230 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Wed, 7 Apr 2021 22:54:00 +0800 Subject: [PATCH 4/5] use knownKeys to check field aws.*.metrics.*.* --- metricbeat/mb/testing/testdata.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/metricbeat/mb/testing/testdata.go b/metricbeat/mb/testing/testdata.go index ad30d616e81..c3ee83e4392 100644 --- a/metricbeat/mb/testing/testdata.go +++ b/metricbeat/mb/testing/testdata.go @@ -379,8 +379,10 @@ func documentedFieldCheck(foundKeys common.MapStr, knownKeys map[string]interfac } // case `aws.*.metrics.*.*`: - if splits[0] == "aws" && splits[2] == "metrics" && len(splits) == 5 { - continue + if len(splits) == 5 { + if _, ok := knownKeys[splits[0]+".*"+splits[2]+".*.*"]; ok { + continue + } } return errors.Errorf("field missing '%s'", foundKey) From bd7784bf2e3059db1b4fa6fa361528af1c803f9f Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Thu, 8 Apr 2021 17:38:52 +0800 Subject: [PATCH 5/5] add missing . when constructing aws.*.metrics.*.* --- metricbeat/docs/fields.asciidoc | 10 ++++++++++ metricbeat/mb/testing/testdata.go | 6 +++--- x-pack/metricbeat/module/aws/_meta/fields.yml | 6 ++++++ x-pack/metricbeat/module/aws/fields.go | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index eba378115a6..c52d05528cc 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1549,6 +1549,16 @@ type: keyword Metric dimensions. +type: object + +-- + +*`aws.*.metrics.*.*`*:: ++ +-- +Metrics that returned from Cloudwatch API query. + + type: object -- diff --git a/metricbeat/mb/testing/testdata.go b/metricbeat/mb/testing/testdata.go index c3ee83e4392..d4e2883aafa 100644 --- a/metricbeat/mb/testing/testdata.go +++ b/metricbeat/mb/testing/testdata.go @@ -180,7 +180,7 @@ func TestMetricsetFieldsDocumented(t *testing.T, metricSet mb.MetricSet, events } if err := checkDocumented(data, nil); err != nil { - t.Errorf("%v: check if fields are documented in `metricbeat/%s/%s/_meta/fields.yml` "+ + t.Errorf("%v: check if fields are documented in `metricbeat/module/%s/%s/_meta/fields.yml` "+ "file or run 'make update' on Metricbeat folder to update fields in `metricbeat/fields.yml`", err, metricSet.Module().Name(), metricSet.Name()) } @@ -232,7 +232,7 @@ func runTest(t *testing.T, file string, module, metricSetName string, config Dat }) if err := checkDocumented(data, config.OmitDocumentedFieldsCheck); err != nil { - t.Errorf("%v: check if fields are documented in `metricbeat/%s/%s/_meta/fields.yml` "+ + t.Errorf("%v: check if fields are documented in `metricbeat/module/%s/%s/_meta/fields.yml` "+ "file or run 'make update' on Metricbeat folder to update fields in `metricbeat/fields.yml`", err, module, metricSetName) } @@ -380,7 +380,7 @@ func documentedFieldCheck(foundKeys common.MapStr, knownKeys map[string]interfac // case `aws.*.metrics.*.*`: if len(splits) == 5 { - if _, ok := knownKeys[splits[0]+".*"+splits[2]+".*.*"]; ok { + if _, ok := knownKeys[splits[0]+".*."+splits[2]+".*.*"]; ok { continue } } diff --git a/x-pack/metricbeat/module/aws/_meta/fields.yml b/x-pack/metricbeat/module/aws/_meta/fields.yml index fb7d5abfb53..4272b5aeab9 100644 --- a/x-pack/metricbeat/module/aws/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/_meta/fields.yml @@ -24,3 +24,9 @@ object_type_mapping_type: "*" description: > Metric dimensions. + - name: '*.metrics.*.*' + type: object + object_type: double + object_type_mapping_type: "*" + description: > + Metrics that returned from Cloudwatch API query. diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index c4089368cdc..8c40517bb58 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "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" + return "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" }