diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index a574b344a..efc496bda 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -102,14 +102,6 @@ Distributed under the following license(s): -## [github.com/docker/docker](https://github.com/docker/docker) - -Distributed under the following license(s): - -* Apache-2.0 - - - ## [github.com/evanphx/json-patch](https://github.com/evanphx/json-patch) Distributed under the following license(s): @@ -198,6 +190,22 @@ Distributed under the following license(s): +## [github.com/moby/moby/api](https://github.com/moby/moby) + +Distributed under the following license(s): + +* Apache-2.0 + + + +## [github.com/moby/moby/client](https://github.com/moby/moby) + +Distributed under the following license(s): + +* Apache-2.0 + + + ## [github.com/newrelic/go-agent/v3](https://github.com/newrelic/go-agent) Distributed under the following license(s): diff --git a/build/container/Dockerfile.windows b/build/container/Dockerfile.windows index f006796ea..24ddaee73 100644 --- a/build/container/Dockerfile.windows +++ b/build/container/Dockerfile.windows @@ -41,7 +41,7 @@ COPY assets C:/newrelic COPY $version_file C:/newrelic/VERSION # Download and install bundled integrations -ARG nri_flex_version=1.17.5 +ARG nri_flex_version=1.17.7 ARG nri_prometheus_version=2.27.7 RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \ diff --git a/build/embed/integrations.version b/build/embed/integrations.version index e9eb4302f..98965821e 100644 --- a/build/embed/integrations.version +++ b/build/embed/integrations.version @@ -1,5 +1,5 @@ #ohi-repo-name,version -nri-docker,v2.6.9 -nri-flex,v1.17.6 +nri-docker,v2.6.10 +nri-flex,v1.17.7 nri-winservices,v1.4.6 nri-prometheus,v2.28.0 diff --git a/go.mod b/go.mod index d8647c586..1717b63a8 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,6 @@ require ( github.com/containerd/containerd/api v1.8.0 github.com/containerd/typeurl/v2 v2.2.0 github.com/coreos/go-systemd/v22 v22.5.0 - github.com/docker/docker v28.4.0+incompatible github.com/evanphx/json-patch v4.9.0+incompatible github.com/fortytw2/leaktest v1.3.1-0.20190606143808-d73c753520d9 github.com/fsnotify/fsnotify v1.6.0 @@ -26,11 +25,13 @@ require ( github.com/kardianos/service v1.2.1 github.com/kelseyhightower/envconfig v1.4.0 github.com/kolo/xmlrpc v0.0.0-20200310150728-e0350524596b + github.com/moby/moby/api v1.54.1 + github.com/moby/moby/client v0.4.0 github.com/newrelic/go-agent/v3 v3.36.0 github.com/newrelic/infra-identity-client-go v1.0.2 github.com/newrelic/newrelic-telemetry-sdk-go v0.8.1 github.com/opencontainers/go-digest v1.0.0 - github.com/opencontainers/image-spec v1.1.0 + github.com/opencontainers/image-spec v1.1.1 github.com/opencontainers/runtime-spec v1.1.0 github.com/pkg/errors v0.9.1 github.com/prometheus/procfs v0.10.1 @@ -65,7 +66,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/containerd/cgroups v1.1.0 // indirect github.com/containerd/continuity v0.4.4 // indirect - github.com/containerd/errdefs v0.3.0 // indirect + github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/containerd/fifo v1.1.0 // indirect github.com/containerd/log v0.1.0 // indirect @@ -74,10 +75,10 @@ require ( github.com/cyphar/filepath-securejoin v0.6.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-connections v0.6.0 // indirect github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect @@ -89,15 +90,12 @@ require ( github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/locker v1.0.1 // indirect - github.com/moby/sys/atomicwriter v0.1.0 // indirect github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/moby/sys/sequential v0.6.0 // indirect github.com/moby/sys/signal v0.7.0 // indirect github.com/moby/sys/user v0.3.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect - github.com/moby/term v0.5.0 // indirect - github.com/morikuni/aec v1.0.0 // indirect - github.com/opencontainers/selinux v1.13.0 // indirect + github.com/opencontainers/selinux v1.13.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect @@ -108,10 +106,10 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect - go.opentelemetry.io/otel v1.39.0 // indirect - go.opentelemetry.io/otel/metric v1.39.0 // indirect - go.opentelemetry.io/otel/trace v1.39.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect + go.opentelemetry.io/otel v1.41.0 // indirect + go.opentelemetry.io/otel/metric v1.41.0 // indirect + go.opentelemetry.io/otel/trace v1.41.0 // indirect go.uber.org/atomic v1.7.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect golang.org/x/sync v0.19.0 // indirect @@ -121,5 +119,4 @@ require ( google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.10 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gotest.tools/v3 v3.5.1 // indirect ) diff --git a/go.sum b/go.sum index ded4391b8..234aef8a7 100644 --- a/go.sum +++ b/go.sum @@ -6,8 +6,6 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9 github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA= github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0/go.mod h1:OahwfttHWG6eJ0clwcfBAHoDI6X/LV/15hx/wlMZSrU= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= @@ -47,8 +45,6 @@ github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/beevik/ntp v0.3.0 h1:xzVrPrE4ziasFXgBVBZJDP0Wg/KpMwk2KHJ4Ba8GrDw= github.com/beevik/ntp v0.3.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -62,8 +58,8 @@ github.com/containerd/containerd/api v1.8.0 h1:hVTNJKR8fMc/2Tiw60ZRijntNMd1U+JVM github.com/containerd/containerd/api v1.8.0/go.mod h1:dFv4lt6S20wTu/hMcP4350RL87qPWLVa/OHOwmmdnYc= github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII= github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= -github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4= -github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= +github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= +github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= github.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk= github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= @@ -86,10 +82,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v28.4.0+incompatible h1:KVC7bz5zJY/4AZe/78BIvCnPsLaC9T/zh72xnlrTTOk= -github.com/docker/docker v28.4.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= +github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -100,8 +94,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= -github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fortytw2/leaktest v1.3.1-0.20190606143808-d73c753520d9 h1:tKHw9zBEj0rzxazDKoHg5jwIZGlVXbFzWou4Ixwoklw= github.com/fortytw2/leaktest v1.3.1-0.20190606143808-d73c753520d9/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= @@ -150,8 +144,6 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kardianos/service v1.2.1 h1:AYndMsehS+ywIS6RB9KOlcXzteWUzxgMgBymJD7+BYk= @@ -177,8 +169,10 @@ github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3N github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw= -github.com/moby/sys/atomicwriter v0.1.0/go.mod h1:Ul8oqv2ZMNHOceF643P6FKPXeCmYtlQMvpizfsSoaWs= +github.com/moby/moby/api v1.54.1 h1:TqVzuJkOLsgLDDwNLmYqACUuTehOHRGKiPhvH8V3Nn4= +github.com/moby/moby/api v1.54.1/go.mod h1:+RQ6wluLwtYaTd1WnPLykIDPekkuyD/ROWQClE83pzs= +github.com/moby/moby/client v0.4.0 h1:S+2XegzHQrrvTCvF6s5HFzcrywWQmuVnhOXe2kiWjIw= +github.com/moby/moby/client v0.4.0/go.mod h1:QWPbvWchQbxBNdaLSpoKpCdf5E+WxFAgNHogCWDoa7g= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= @@ -189,10 +183,6 @@ github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= -github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= -github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/newrelic/go-agent/v3 v3.36.0 h1:PdvJZiUu45qg2qrOeia0gYr1vaZ2Ro6QIlqlgHObHXo= github.com/newrelic/go-agent/v3 v3.36.0/go.mod h1:GNTda53CohAhkgsc7/gqSsJhDZjj8vaky5u+vKz7wqM= github.com/newrelic/infra-identity-client-go v1.0.2 h1:RxkHAFOqeiBkW/fXvzkp3uORPl6crFt4I/zf4dCUFKM= @@ -201,12 +191,12 @@ github.com/newrelic/newrelic-telemetry-sdk-go v0.8.1 h1:6OX5VXMuj2salqNBc41eXKz6 github.com/newrelic/newrelic-telemetry-sdk-go v0.8.1/go.mod h1:2kY6OeOxrJ+RIQlVjWDc/pZlT3MIf30prs6drzMfJ6E= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= -github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= +github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.13.0 h1:Zza88GWezyT7RLql12URvoxsbLfjFx988+LGaWfbL84= -github.com/opencontainers/selinux v1.13.0/go.mod h1:XxWTed+A/s5NNq4GmYScVy+9jzXhGBVEOAyucdRUY8s= +github.com/opencontainers/selinux v1.13.1 h1:A8nNeceYngH9Ow++M+VVEwJVpdFmrlxsN22F+ISDCJE= +github.com/opencontainers/selinux v1.13.1/go.mod h1:S10WXZ/osk2kWOYKy1x2f/eXF5ZHJoUs8UU/2caNRbg= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -256,24 +246,18 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= -go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= -go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= -go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= +go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c= +go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE= +go.opentelemetry.io/otel/metric v1.41.0 h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ= +go.opentelemetry.io/otel/metric v1.41.0/go.mod h1:xPvCwd9pU0VN8tPZYzDZV/BMj9CM9vs00GuBjeKhJps= go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= -go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= -go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= -go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= -go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/otel/trace v1.41.0 h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0= +go.opentelemetry.io/otel/trace v1.41.0/go.mod h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= @@ -331,8 +315,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -354,8 +336,6 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 h1:1hfbdAfFbkmpg41000wDVqr7jUpK/Yo+LPnIxxGzmkg= google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3/go.mod h1:5RBcpGRxr25RbDzY5w+dmaqpSEvl8Gwl1x2CICf60ic= -google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls= -google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto= google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -387,7 +367,9 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.1-0.20181123051433-bcbf6e613274+incompatible h1:XGnh7TJZPxGDTMurQXoEOFD/ROgXGI8834pOK88novw= gotest.tools v2.2.1-0.20181123051433-bcbf6e613274+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= -gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= +gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= +pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= diff --git a/pkg/ctl/sender/client_docker.go b/pkg/ctl/sender/client_docker.go index f5082d2d8..a2a1c4d4b 100644 --- a/pkg/ctl/sender/client_docker.go +++ b/pkg/ctl/sender/client_docker.go @@ -7,7 +7,7 @@ import ( "github.com/newrelic/infrastructure-agent/pkg/ipc" - "github.com/docker/docker/client" + "github.com/moby/moby/client" "github.com/newrelic/infrastructure-agent/internal/os/api/signals" "github.com/newrelic/infrastructure-agent/pkg/helpers" "github.com/pkg/errors" @@ -52,7 +52,9 @@ func NewDockerClient(apiVersion string, containerID string) (c Client, err error // Notify will notify a running agent process inside a docker container. func (c *dockerClient) Notify(ctx context.Context, _ ipc.Message) (err error) { - return c.client.ContainerKill(ctx, c.containerID, signals.NotificationStr) + _, err = c.client.ContainerKill(ctx, c.containerID, client.ContainerKillOptions{Signal: signals.NotificationStr}) + + return err //nolint:wrapcheck // passthrough from docker client } // Return the identification for the notified agent. diff --git a/pkg/databind/internal/discovery/docker/docker.go b/pkg/databind/internal/discovery/docker/docker.go index 27447ecde..9cfb4c630 100644 --- a/pkg/databind/internal/discovery/docker/docker.go +++ b/pkg/databind/internal/discovery/docker/docker.go @@ -6,12 +6,13 @@ package docker import ( "context" "net" + "net/netip" "sort" "strconv" "strings" - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/client" + "github.com/moby/moby/api/types/container" + "github.com/moby/moby/client" "github.com/newrelic/infrastructure-agent/pkg/databind/internal/counter" "github.com/newrelic/infrastructure-agent/pkg/databind/internal/discovery" @@ -47,12 +48,12 @@ func fetch(d discovery.Container, matcher *discovery.FieldsMatcher) ([]discovery } defer dc.Close() - containers, err := dc.ContainerList(context.Background(), container.ListOptions{}) + result, err := dc.ContainerList(context.Background(), client.ContainerListOptions{}) //nolint:exhaustruct if err != nil { return nil, err } - return getDiscoveries(containers, matcher), nil + return getDiscoveries(result.Items, matcher), nil } // getDiscoveries will filter container list to only the ones that match the config and extract discovery variables from those. @@ -79,9 +80,10 @@ func getDiscoveries(containers []container.Summary, matcher *discovery.FieldsMat index := 0 for _, network := range cont.NetworkSettings.Networks { if index == 0 { - labels[data.PrivateIP] = network.IPAddress + labels[data.PrivateIP] = addrToString(network.IPAddress) } - labels[data.PrivateIP+"."+strconv.Itoa(index)] = network.IPAddress + + labels[data.PrivateIP+"."+strconv.Itoa(index)] = addrToString(network.IPAddress) index++ } @@ -127,14 +129,15 @@ func addPorts(cont container.Summary, labels map[string]string) { for index, port := range cont.Ports { indexStr := "." + strconv.Itoa(index) - labels[data.IP+indexStr] = port.IP + ipStr := addrToString(port.IP) + labels[data.IP+indexStr] = ipStr tIdx := types.Count(port.Type) publicPort := strconv.Itoa(int(port.PublicPort)) privatePort := strconv.Itoa(int(port.PrivatePort)) - if firstPublic && port.PublicPort > 0 && isIPv4(port.IP) { - labels[data.IP] = port.IP + if firstPublic && port.PublicPort > 0 && isIPv4(ipStr) { + labels[data.IP] = ipStr labels[data.Port] = publicPort firstPublic = false } @@ -160,6 +163,17 @@ func addPorts(cont container.Summary, labels map[string]string) { } } +// addrToString converts a netip.Addr to string, returning "" for the zero value +// to preserve backward compatibility with the previous docker client API where +// IP fields were plain strings. +func addrToString(addr netip.Addr) string { + if !addr.IsValid() { + return "" + } + + return addr.String() +} + // isIPv4 returns true if ip string has a IPv4 format. func isIPv4(ip string) bool { return net.ParseIP(ip).To4() != nil diff --git a/pkg/databind/internal/discovery/docker/docker_test.go b/pkg/databind/internal/discovery/docker/docker_test.go index 1e87e7886..7c9d12f9e 100644 --- a/pkg/databind/internal/discovery/docker/docker_test.go +++ b/pkg/databind/internal/discovery/docker/docker_test.go @@ -4,10 +4,12 @@ package docker import ( + "net" + "net/netip" "testing" - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/api/types/network" + "github.com/moby/moby/api/types/container" + "github.com/moby/moby/api/types/network" "github.com/newrelic/infrastructure-agent/pkg/databind/internal/discovery" "github.com/newrelic/infrastructure-agent/pkg/databind/pkg/data" "github.com/stretchr/testify/assert" @@ -25,15 +27,15 @@ func TestGetMatchingContainers(t *testing.T) { ImageID: "sha256:8282995409c26b82d66243f169f6695115a06ce860966db549f8ca09dcbb9767", Command: "/bin/bash -c 'java ${JAVA_OPTS} -jar /test-server.jar'", Created: 1653916418, - Ports: []container.Port{ + Ports: []container.PortSummary{ { - IP: "0.0.0.0", + IP: netip.MustParseAddr("0.0.0.0"), PrivatePort: 7199, PublicPort: 7199, Type: "tcp", }, { - IP: "", + IP: netip.Addr{}, PrivatePort: 4567, PublicPort: 0, Type: "tcp", @@ -45,8 +47,8 @@ func TestGetMatchingContainers(t *testing.T) { State: "running", Status: "Up 8 minutes", HostConfig: struct { - NetworkMode string "json:\",omitempty\"" //nolint:tagalign - Annotations map[string]string "json:\",omitempty\"" //nolint:tagalign + NetworkMode string `json:",omitempty"` + Annotations map[string]string `json:",omitempty"` }{ NetworkMode: "default", }, @@ -58,13 +60,13 @@ func TestGetMatchingContainers(t *testing.T) { Aliases: []string(nil), NetworkID: "e0effada2c3eab26fb73188d0193952ef9a3c985e64cabd76c95196000405418", EndpointID: "8e143f019bb8549a5594a31058c077eb774960b9b825f819f9593ab57a591f71", - Gateway: "172.17.0.1", - IPAddress: "172.17.0.2", + Gateway: netip.MustParseAddr("172.17.0.1"), + IPAddress: netip.MustParseAddr("172.17.0.2"), IPPrefixLen: 16, - IPv6Gateway: "", - GlobalIPv6Address: "", + IPv6Gateway: netip.Addr{}, + GlobalIPv6Address: netip.Addr{}, GlobalIPv6PrefixLen: 0, - MacAddress: "02:42:ac:11:00:02", + MacAddress: network.HardwareAddr(mustParseMAC("02:42:ac:11:00:02")), DriverOpts: map[string]string(nil), }, }, @@ -153,3 +155,12 @@ func TestIsIPv4(t *testing.T) { }) } } + +func mustParseMAC(s string) net.HardwareAddr { + hw, err := net.ParseMAC(s) + if err != nil { + panic(err) + } + + return hw +} diff --git a/pkg/helpers/docker_utils.go b/pkg/helpers/docker_utils.go index e9f98add1..52672f3da 100644 --- a/pkg/helpers/docker_utils.go +++ b/pkg/helpers/docker_utils.go @@ -7,9 +7,8 @@ import ( "os" "runtime" - "github.com/docker/docker/api/types" - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/client" + "github.com/moby/moby/api/types/container" + "github.com/moby/moby/client" "github.com/pkg/errors" ) @@ -24,7 +23,7 @@ var ( type Docker interface { Initialize(apiVersion string) error - Containers() ([]types.Container, error) + Containers() ([]container.Summary, error) ContainerTop(containerID string) (titles []string, processes [][]string, err error) } @@ -45,15 +44,25 @@ func (dc *DockerClient) Initialize(apiVersion string) (err error) { return } -func (dc *DockerClient) Containers() ([]types.Container, error) { - return dc.client.ContainerList(context.Background(), container.ListOptions{}) +func (dc *DockerClient) Containers() ([]container.Summary, error) { + //nolint:exhaustruct // zero-value options is the intended default + result, err := dc.client.ContainerList(context.Background(), client.ContainerListOptions{}) + if err != nil { + return nil, err //nolint:wrapcheck // passthrough from docker client + } + + return result.Items, nil } func (dc *DockerClient) ContainerTop(containerID string) (titles []string, processes [][]string, err error) { - body, err := dc.client.ContainerTop(context.Background(), containerID, []string{}) + //nolint:exhaustruct // zero-value options is the intended default + body, err := dc.client.ContainerTop( + context.Background(), containerID, client.ContainerTopOptions{}, + ) if err != nil { return nil, nil, err } + return body.Titles, body.Processes, nil } diff --git a/pkg/metrics/docker_sampler.go b/pkg/metrics/docker_sampler.go index 090387ad4..2a69d33de 100644 --- a/pkg/metrics/docker_sampler.go +++ b/pkg/metrics/docker_sampler.go @@ -12,7 +12,7 @@ import ( "github.com/newrelic/infrastructure-agent/pkg/log" metricTypes "github.com/newrelic/infrastructure-agent/pkg/metrics/types" - "github.com/docker/docker/api/types" + "github.com/moby/moby/api/types/container" "github.com/sirupsen/logrus" "github.com/newrelic/infrastructure-agent/pkg/helpers" @@ -84,7 +84,7 @@ func (d *DockerSampler) NewDecorator() (ProcessDecorator, error) { //nolint:iret type dockerDecorator struct { dockerClient helpers.Docker cache *pidsCache - pids map[uint32]types.Container + pids map[uint32]container.Summary } // compile-time assertion. @@ -105,8 +105,25 @@ func newDockerDecorator(dockerClient helpers.Docker, cache *pidsCache) (ProcessD return dec, nil } +// Decorate adds container information to all the processes that belong to a container. +func (d *dockerDecorator) Decorate(process *metricTypes.ProcessSample) { + if container, ok := d.pids[uint32(process.ProcessID)]; ok { //nolint:gosec // ProcessID is always non-negative + imageIDComponents := strings.Split(container.ImageID, ":") + process.ContainerImage = imageIDComponents[len(imageIDComponents)-1] + process.ContainerImageName = container.Image + process.ContainerLabels = container.Labels + process.ContainerID = container.ID + + if len(container.Names) > 0 { + process.ContainerName = strings.TrimPrefix(container.Names[0], "/") + } + + process.Contained = "true" + } +} + // topPids fills the pids map with the pids of the processes that run in the given container. -func (d *dockerDecorator) topPids(container types.Container, pids map[uint32]types.Container) error { +func (d *dockerDecorator) topPids(container container.Summary, pids map[uint32]container.Summary) error { // If pids are in cache (and not too old), we reuse them if cached, ok := d.cache.get(container.ID); ok { for _, pid := range cached { @@ -161,13 +178,13 @@ func (d *dockerDecorator) topPids(container types.Container, pids map[uint32]typ // pidsContainers returns a map where each key is the PID of a process running in a container and the value is the // container that contains it. -func (d *dockerDecorator) pidsContainers() (map[uint32]types.Container, error) { +func (d *dockerDecorator) pidsContainers() (map[uint32]container.Summary, error) { containers, err := d.dockerClient.Containers() if err != nil { return nil, fmt.Errorf("%w: %v", ErrDockerSampler, err) } - pids := map[uint32]types.Container{} + pids := map[uint32]container.Summary{} for _, container := range containers { err := d.topPids(container, pids) if err != nil { @@ -180,19 +197,3 @@ func (d *dockerDecorator) pidsContainers() (map[uint32]types.Container, error) { return pids, nil } - -// Decorate adds container information to all the processes that belong to a container. -func (d *dockerDecorator) Decorate(process *metricTypes.ProcessSample) { - if container, ok := d.pids[uint32(process.ProcessID)]; ok { - imageIDComponents := strings.Split(container.ImageID, ":") - process.ContainerImage = imageIDComponents[len(imageIDComponents)-1] - process.ContainerImageName = container.Image - process.ContainerLabels = container.Labels - process.ContainerID = container.ID - - if len(container.Names) > 0 { - process.ContainerName = strings.TrimPrefix(container.Names[0], "/") - } - process.Contained = "true" - } -} diff --git a/pkg/metrics/docker_sampler_test.go b/pkg/metrics/docker_sampler_test.go index 6b46aefc3..08126845e 100644 --- a/pkg/metrics/docker_sampler_test.go +++ b/pkg/metrics/docker_sampler_test.go @@ -11,7 +11,7 @@ import ( "testing" "time" - "github.com/docker/docker/api/types" + "github.com/moby/moby/api/types/container" metricTypes "github.com/newrelic/infrastructure-agent/pkg/metrics/types" "github.com/stretchr/testify/assert" @@ -162,7 +162,7 @@ func (m *MockBaseDocker) Initialize(_ string) error { return nil } -func (m *MockBaseDocker) Containers() ([]types.Container, error) { +func (m *MockBaseDocker) Containers() ([]container.Summary, error) { return nil, errNoContainers } @@ -176,8 +176,8 @@ func (mc *MockContainerDocker) Initialize(_ string) error { return nil } -func (mc *MockContainerDocker) Containers() ([]types.Container, error) { - container := types.Container{ //nolint:exhaustruct +func (mc *MockContainerDocker) Containers() ([]container.Summary, error) { + cont := container.Summary{ //nolint:exhaustruct ID: "cca35d9d", ImageID: "ubuntu:14.04", Names: []string{"/container1"}, @@ -189,7 +189,7 @@ func (mc *MockContainerDocker) Containers() ([]types.Container, error) { }, } - return []types.Container{container}, nil + return []container.Summary{cont}, nil } func (mc *MockContainerDocker) ContainerTop(containerID string) ([]string, [][]string, error) { @@ -204,7 +204,7 @@ func (mc *MockContainerWithDataDocker) Initialize(_ string) error { return nil } -func (mc *MockContainerWithDataDocker) Containers() ([]types.Container, error) { +func (mc *MockContainerWithDataDocker) Containers() ([]container.Summary, error) { container := MockContainerDocker{} return container.Containers() @@ -227,7 +227,7 @@ func (mc *MockContainerWithDataDockerWrongTitles) Initialize(_ string) error { return nil } -func (mc *MockContainerWithDataDockerWrongTitles) Containers() ([]types.Container, error) { +func (mc *MockContainerWithDataDockerWrongTitles) Containers() ([]container.Summary, error) { container := MockContainerWithDataDocker{} return container.Containers() diff --git a/pkg/metrics/docker_sampler_windows_test.go b/pkg/metrics/docker_sampler_windows_test.go index cfea4af03..b03f6b697 100644 --- a/pkg/metrics/docker_sampler_windows_test.go +++ b/pkg/metrics/docker_sampler_windows_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "github.com/docker/docker/api/types" + "github.com/moby/moby/api/types/container" "github.com/newrelic/infrastructure-agent/internal/agent/mocks" "github.com/newrelic/infrastructure-agent/pkg/config" metricTypes "github.com/newrelic/infrastructure-agent/pkg/metrics/types" @@ -125,8 +125,8 @@ func (mc *MockContainerDocker) Initialize(_ string) error { return nil } -func (mc *MockContainerDocker) Containers() ([]types.Container, error) { - container := types.Container{ +func (mc *MockContainerDocker) Containers() ([]container.Summary, error) { + cont := container.Summary{ //nolint:exhaustruct ID: "cca35d9d", ImageID: "ubuntu:14.04", Names: []string{"/container1"}, @@ -138,7 +138,8 @@ func (mc *MockContainerDocker) Containers() ([]types.Container, error) { }, Command: "/bin/bash arg1 arg2 -password secret", } - return []types.Container{container}, nil + + return []container.Summary{cont}, nil } func (mc *MockContainerDocker) ContainerTop(containerID string) (titles []string, processes [][]string, err error) {