From 4f98916559ea353ca67658d2b42374b9e0434b72 Mon Sep 17 00:00:00 2001 From: Trent Mick Date: Thu, 14 Dec 2023 00:38:59 -0800 Subject: [PATCH 1/6] test: fix redis-4 TAV tests with Node.js v14 (#1862) redis@4.6.9 was a bad release that accidentally broken v14 support. This updates the versions test to skip that release, and also reduces the number of versions tested from 27 to 8 by selecting just the current latest minor releases. Also, drop the pretest config that (a) was never used because of the wrong indentation and (b) is no longer valid since the move to npm workspaces. Refs: #1860 --- .../node/opentelemetry-instrumentation-redis-4/.tav.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/node/opentelemetry-instrumentation-redis-4/.tav.yml b/plugins/node/opentelemetry-instrumentation-redis-4/.tav.yml index f478be1116..2a13580b74 100644 --- a/plugins/node/opentelemetry-instrumentation-redis-4/.tav.yml +++ b/plugins/node/opentelemetry-instrumentation-redis-4/.tav.yml @@ -1,8 +1,7 @@ redis: - jobs: - - versions: "^4.0.0" + # The latest minor releases in the range "^4.0.0", excluding + # "4.6.9", which was a bad release that accidentally broke + # node v14 support. + - versions: "4.0.0 || 4.0.6 || 4.1.1 || 4.2.0 || 4.3.1 || 4.4.0 || 4.5.1 || ^4.6.11" commands: npm run test - - # Fix missing `contrib-test-utils` package - pretest: npm run --prefix ../../../ lerna:link From 63520b14449dfedbd6dd84b2aa99d2e0ea61249e Mon Sep 17 00:00:00 2001 From: Trent Mick Date: Thu, 14 Dec 2023 01:05:20 -0800 Subject: [PATCH 2/6] test: fix race in redis-4 tests (#1863) The beforeEach() hook was not awaited, so afterEach() could run before it completed, resulting in a client.disconnect() that rejects, and a mocha hook that calls done() twice. Refs: #1860 Co-authored-by: Marc Pichler --- .../opentelemetry-instrumentation-redis-4/test/redis.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/node/opentelemetry-instrumentation-redis-4/test/redis.test.ts b/plugins/node/opentelemetry-instrumentation-redis-4/test/redis.test.ts index 74fa7b699c..68357450f3 100644 --- a/plugins/node/opentelemetry-instrumentation-redis-4/test/redis.test.ts +++ b/plugins/node/opentelemetry-instrumentation-redis-4/test/redis.test.ts @@ -71,7 +71,7 @@ describe('redis@^4.0.0', () => { client = createClient({ url: redisTestUrl, }); - context.with(suppressTracing(context.active()), async () => { + await context.with(suppressTracing(context.active()), async () => { await client.connect(); }); }); From 7d110d5848fe8006436ff11d269ca7e58b5e51cf Mon Sep 17 00:00:00 2001 From: Trent Mick Date: Thu, 14 Dec 2023 01:21:24 -0800 Subject: [PATCH 3/6] test: reduce number of mongoose versions tested from 204 to 19 (#1861) This tests just the latest in each minor version. Refs: #1860 Co-authored-by: Marc Pichler --- plugins/node/instrumentation-mongoose/.tav.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/node/instrumentation-mongoose/.tav.yml b/plugins/node/instrumentation-mongoose/.tav.yml index 8367cdde2e..9824934548 100644 --- a/plugins/node/instrumentation-mongoose/.tav.yml +++ b/plugins/node/instrumentation-mongoose/.tav.yml @@ -1,4 +1,5 @@ 'mongoose': - versions: ">=5.9.7 <7" + # Test all the latest minor versions in the range ">=5.9.7 <7". + versions: "5.9.7 || 5.9.29 || 5.10.19 || 5.11.20 || 5.12.15 || 5.13.21 || 6.0.15 || 6.1.10 || 6.2.11 || 6.3.9 || 6.4.7 || 6.5.5 || 6.6.7 || 6.7.5 || 6.8.4 || 6.9.3 || 6.10.5 || 6.11.6 || ^6.12.3" commands: - npm run test From 67909e5a411a4316130d83271c1ca6547fd427e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 10:48:20 +0100 Subject: [PATCH 4/6] chore(deps): bump axios from 0.21.4 to 1.6.0 (#1801) Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 1.6.0. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.21.4...v1.6.0) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 40 ++++++++++--------- .../examples/package.json | 2 +- .../examples/package.json | 2 +- .../examples/package.json | 2 +- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02b616dba0..3ba944f9f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11375,11 +11375,13 @@ } }, "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", + "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", "dependencies": { - "follow-redirects": "^1.14.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/babel-loader": { @@ -34090,7 +34092,7 @@ "typescript": "4.4.4" }, "engines": { - "node": ">=14.0" + "node": ">=14" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" @@ -34121,7 +34123,7 @@ "typescript": "4.4.4" }, "engines": { - "node": ">=14.0" + "node": ">=14" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" @@ -34497,7 +34499,7 @@ "license": "Apache-2.0", "dependencies": { "@opentelemetry/api": "^1.3.0", - "@opentelemetry/instrumentation-bunyan": "../", + "@opentelemetry/instrumentation-bunyan": "^0.34.0", "@opentelemetry/resources": "^1.8.0", "@opentelemetry/sdk-node": "^0.45.1", "bunyan": "^1.8.15" @@ -34676,7 +34678,7 @@ "@opentelemetry/sdk-trace-base": "^1.0.0", "@opentelemetry/sdk-trace-node": "^1.0.0", "@opentelemetry/semantic-conventions": "^1.0.0", - "axios": "^0.21.1", + "axios": "^1.6.0", "cross-env": "^7.0.3", "express": "^4.17.1" }, @@ -35253,7 +35255,7 @@ "@opentelemetry/instrumentation-koa": "^0.31.0", "@opentelemetry/sdk-trace-base": "^1.0.0", "@opentelemetry/sdk-trace-node": "^1.0.0", - "axios": "^0.21.1", + "axios": "^1.6.0", "koa": "^2.13.0" }, "devDependencies": { @@ -35990,7 +35992,7 @@ "@opentelemetry/instrumentation-redis": "^0.32.0", "@opentelemetry/sdk-trace-base": "^1.0.0", "@opentelemetry/sdk-trace-node": "^1.0.0", - "axios": "^0.21.1", + "axios": "^1.6.0", "express": "^4.17.1", "redis": "^3.1.1" }, @@ -47945,11 +47947,13 @@ } }, "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", + "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", "requires": { - "follow-redirects": "^1.14.0" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "babel-loader": { @@ -48467,7 +48471,7 @@ "version": "file:plugins/node/opentelemetry-instrumentation-bunyan/examples", "requires": { "@opentelemetry/api": "^1.3.0", - "@opentelemetry/instrumentation-bunyan": "../", + "@opentelemetry/instrumentation-bunyan": "^0.34.0", "@opentelemetry/resources": "^1.8.0", "@opentelemetry/sdk-node": "^0.45.1", "bunyan": "^1.8.15" @@ -51082,7 +51086,7 @@ "@opentelemetry/sdk-trace-node": "^1.0.0", "@opentelemetry/semantic-conventions": "^1.0.0", "@types/express": "^4.17.13", - "axios": "^0.21.1", + "axios": "^1.6.0", "cross-env": "^7.0.3", "express": "^4.17.1", "ts-node": "^10.6.0", @@ -54730,7 +54734,7 @@ "@opentelemetry/sdk-trace-base": "^1.0.0", "@opentelemetry/sdk-trace-node": "^1.0.0", "@types/koa": "^2.13.5", - "axios": "^0.21.1", + "axios": "^1.6.0", "cross-env": "^7.0.0", "koa": "^2.13.0", "ts-node": "^10.6.0", @@ -60774,7 +60778,7 @@ "@opentelemetry/sdk-trace-base": "^1.0.0", "@opentelemetry/sdk-trace-node": "^1.0.0", "@types/express": "^4.17.14", - "axios": "^0.21.1", + "axios": "^1.6.0", "cross-env": "^7.0.0", "express": "^4.17.1", "redis": "^3.1.1", diff --git a/plugins/node/opentelemetry-instrumentation-express/examples/package.json b/plugins/node/opentelemetry-instrumentation-express/examples/package.json index fa448b0e5b..c0ad78eb98 100644 --- a/plugins/node/opentelemetry-instrumentation-express/examples/package.json +++ b/plugins/node/opentelemetry-instrumentation-express/examples/package.json @@ -39,7 +39,7 @@ "@opentelemetry/sdk-trace-base": "^1.0.0", "@opentelemetry/sdk-trace-node": "^1.0.0", "@opentelemetry/semantic-conventions": "^1.0.0", - "axios": "^0.21.1", + "axios": "^1.6.0", "cross-env": "^7.0.3", "express": "^4.17.1" }, diff --git a/plugins/node/opentelemetry-instrumentation-koa/examples/package.json b/plugins/node/opentelemetry-instrumentation-koa/examples/package.json index 7ad16c520e..8aeb696105 100644 --- a/plugins/node/opentelemetry-instrumentation-koa/examples/package.json +++ b/plugins/node/opentelemetry-instrumentation-koa/examples/package.json @@ -39,7 +39,7 @@ "@opentelemetry/instrumentation-koa": "^0.31.0", "@opentelemetry/sdk-trace-node": "^1.0.0", "@opentelemetry/sdk-trace-base": "^1.0.0", - "axios": "^0.21.1", + "axios": "^1.6.0", "koa": "^2.13.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js-contrib#readme", diff --git a/plugins/node/opentelemetry-instrumentation-redis/examples/package.json b/plugins/node/opentelemetry-instrumentation-redis/examples/package.json index 5c2f5342c4..c9f14e5b0c 100644 --- a/plugins/node/opentelemetry-instrumentation-redis/examples/package.json +++ b/plugins/node/opentelemetry-instrumentation-redis/examples/package.json @@ -39,7 +39,7 @@ "@opentelemetry/instrumentation-redis": "^0.32.0", "@opentelemetry/sdk-trace-base": "^1.0.0", "@opentelemetry/sdk-trace-node": "^1.0.0", - "axios": "^0.21.1", + "axios": "^1.6.0", "express": "^4.17.1", "redis": "^3.1.1" }, From 7e335c7a1bb508f25f1ae9cdcfb531f85b9fccaa Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Dec 2023 13:23:29 +0100 Subject: [PATCH 5/6] chore(deps): update dependency mongoose to v6.12.3 (#1870) --- package-lock.json | 60 ++++++++++++------- .../instrumentation-mongoose/package.json | 2 +- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3ba944f9f2..e9904a6b57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6041,6 +6041,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", + "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", + "dev": true, + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@nestjs/common": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.4.3.tgz", @@ -22933,14 +22943,14 @@ } }, "node_modules/mongoose": { - "version": "6.11.5", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.11.5.tgz", - "integrity": "sha512-ZarPe1rCHG4aVb78xLuok4BBIm0HMz/Y/CjxYXCk3Qz1mEhS7bPMy6ZhSX2/Dng//R7ei8719j6K87UVM/1b3g==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.12.3.tgz", + "integrity": "sha512-MNJymaaXali7w7rHBxVUoQ3HzHHMk/7I/+yeeoSa4rUzdjZwIWQznBNvVgc0A8ghuJwsuIkb5LyLV6gSjGjWyQ==", "dev": true, "dependencies": { "bson": "^4.7.2", "kareem": "2.5.1", - "mongodb": "4.16.0", + "mongodb": "4.17.1", "mpath": "0.9.0", "mquery": "4.0.3", "ms": "2.1.3", @@ -22991,13 +23001,13 @@ } }, "node_modules/mongoose/node_modules/mongodb": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.16.0.tgz", - "integrity": "sha512-0EB113Fsucaq1wsY0dOhi1fmZOwFtLOtteQkiqOXGklvWMnSH3g2QS53f0KTP+/6qOkuoXE2JksubSZNmxeI+g==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.1.tgz", + "integrity": "sha512-MBuyYiPUPRTqfH2dV0ya4dcr2E5N52ocBuZ8Sgg/M030nGF78v855B3Z27mZJnp8PxjnUquEnAtjOsphgMZOlQ==", "dev": true, "dependencies": { "bson": "^4.7.2", - "mongodb-connection-string-url": "^2.5.4", + "mongodb-connection-string-url": "^2.6.0", "socks": "^2.7.1" }, "engines": { @@ -23005,7 +23015,7 @@ }, "optionalDependencies": { "@aws-sdk/credential-providers": "^3.186.0", - "saslprep": "^1.0.3" + "@mongodb-js/saslprep": "^1.1.0" } }, "node_modules/mongoose/node_modules/ms": { @@ -34084,7 +34094,7 @@ "@types/node": "18.6.5", "expect": "29.2.0", "mocha": "7.2.0", - "mongoose": "6.11.5", + "mongoose": "6.12.3", "nyc": "15.1.0", "rimraf": "5.0.5", "test-all-versions": "5.0.1", @@ -41516,6 +41526,16 @@ } } }, + "@mongodb-js/saslprep": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", + "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", + "dev": true, + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, "@nestjs/common": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.4.3.tgz", @@ -43988,7 +44008,7 @@ "@types/node": "18.6.5", "expect": "29.2.0", "mocha": "7.2.0", - "mongoose": "6.11.5", + "mongoose": "6.12.3", "nyc": "15.1.0", "rimraf": "5.0.5", "test-all-versions": "5.0.1", @@ -57228,14 +57248,14 @@ } }, "mongoose": { - "version": "6.11.5", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.11.5.tgz", - "integrity": "sha512-ZarPe1rCHG4aVb78xLuok4BBIm0HMz/Y/CjxYXCk3Qz1mEhS7bPMy6ZhSX2/Dng//R7ei8719j6K87UVM/1b3g==", + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.12.3.tgz", + "integrity": "sha512-MNJymaaXali7w7rHBxVUoQ3HzHHMk/7I/+yeeoSa4rUzdjZwIWQznBNvVgc0A8ghuJwsuIkb5LyLV6gSjGjWyQ==", "dev": true, "requires": { "bson": "^4.7.2", "kareem": "2.5.1", - "mongodb": "4.16.0", + "mongodb": "4.17.1", "mpath": "0.9.0", "mquery": "4.0.3", "ms": "2.1.3", @@ -57262,15 +57282,15 @@ } }, "mongodb": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.16.0.tgz", - "integrity": "sha512-0EB113Fsucaq1wsY0dOhi1fmZOwFtLOtteQkiqOXGklvWMnSH3g2QS53f0KTP+/6qOkuoXE2JksubSZNmxeI+g==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.1.tgz", + "integrity": "sha512-MBuyYiPUPRTqfH2dV0ya4dcr2E5N52ocBuZ8Sgg/M030nGF78v855B3Z27mZJnp8PxjnUquEnAtjOsphgMZOlQ==", "dev": true, "requires": { "@aws-sdk/credential-providers": "^3.186.0", + "@mongodb-js/saslprep": "^1.1.0", "bson": "^4.7.2", - "mongodb-connection-string-url": "^2.5.4", - "saslprep": "^1.0.3", + "mongodb-connection-string-url": "^2.6.0", "socks": "^2.7.1" } }, diff --git a/plugins/node/instrumentation-mongoose/package.json b/plugins/node/instrumentation-mongoose/package.json index dfd8350c9a..8e1d22996c 100644 --- a/plugins/node/instrumentation-mongoose/package.json +++ b/plugins/node/instrumentation-mongoose/package.json @@ -52,7 +52,7 @@ "@types/node": "18.6.5", "expect": "29.2.0", "mocha": "7.2.0", - "mongoose": "6.11.5", + "mongoose": "6.12.3", "nyc": "15.1.0", "rimraf": "5.0.5", "test-all-versions": "5.0.1", From c59e666de2b1361ae80697d546633a7d3643ba00 Mon Sep 17 00:00:00 2001 From: yoanyomba2023 <154270259+yoanyomba2023@users.noreply.github.com> Date: Tue, 19 Dec 2023 10:19:47 -0500 Subject: [PATCH 6/6] fix(host-metrics): bump minimum systeminformation version to 5.21.20 (security) (#1868) * chore: bump system info version to address arbitrary command injection vulnerability in systeminformation Signed-off-by: yyomba * chore: sync package-lock.json --------- Signed-off-by: yyomba Co-authored-by: Marc Pichler --- package-lock.json | 16 ++++++++-------- packages/opentelemetry-host-metrics/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index e9904a6b57..7674555cd2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29911,9 +29911,9 @@ } }, "node_modules/systeminformation": { - "version": "5.21.17", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.17.tgz", - "integrity": "sha512-JZYRCbIjk3WuBV59A9/rTla2rROX+aAJ9uo2Z1dI+bjieORcukClN8rlM1zE9NYKpULSbaGc+KKct/870lO0DA==", + "version": "5.21.20", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.20.tgz", + "integrity": "sha512-AyS1fNc+MDoAJtFknFbbo587H8h6yejJwM+H9rVusnOToIEkiMehMyD5JM7o3j55Cto20MawIZrcgNMgd4BfOQ==", "os": [ "darwin", "linux", @@ -33654,7 +33654,7 @@ "license": "Apache-2.0", "dependencies": { "@opentelemetry/sdk-metrics": "^1.8.0", - "systeminformation": "^5.0.0" + "systeminformation": "^5.21.20" }, "devDependencies": { "@opentelemetry/api": "^1.3.0", @@ -42919,7 +42919,7 @@ "nyc": "15.1.0", "rimraf": "5.0.5", "sinon": "15.2.0", - "systeminformation": "^5.0.0", + "systeminformation": "^5.21.20", "ts-mocha": "10.0.0", "typescript": "4.4.4" } @@ -62830,9 +62830,9 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "systeminformation": { - "version": "5.21.17", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.17.tgz", - "integrity": "sha512-JZYRCbIjk3WuBV59A9/rTla2rROX+aAJ9uo2Z1dI+bjieORcukClN8rlM1zE9NYKpULSbaGc+KKct/870lO0DA==" + "version": "5.21.20", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.20.tgz", + "integrity": "sha512-AyS1fNc+MDoAJtFknFbbo587H8h6yejJwM+H9rVusnOToIEkiMehMyD5JM7o3j55Cto20MawIZrcgNMgd4BfOQ==" }, "tapable": { "version": "1.1.3", diff --git a/packages/opentelemetry-host-metrics/package.json b/packages/opentelemetry-host-metrics/package.json index d58d1b5539..db007ccf23 100644 --- a/packages/opentelemetry-host-metrics/package.json +++ b/packages/opentelemetry-host-metrics/package.json @@ -56,7 +56,7 @@ }, "dependencies": { "@opentelemetry/sdk-metrics": "^1.8.0", - "systeminformation": "^5.0.0" + "systeminformation": "^5.21.20" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/opentelemetry-host-metrics#readme" }