From ffd4067b0c3e644834583bec9d415af59adb7aa0 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Thu, 21 Mar 2019 08:10:19 -0500 Subject: [PATCH] [metricbeat] implement Close() for docker metricsets (#11294) (#11340) * implement Close() for docker metricsets (cherry picked from commit 57f8b5c4124bcff0b7dd5a2f7bff357e0c289040) --- CHANGELOG.next.asciidoc | 1 + metricbeat/module/docker/container/container.go | 7 +++++++ metricbeat/module/docker/cpu/cpu.go | 6 ++++++ metricbeat/module/docker/diskio/diskio.go | 6 ++++++ metricbeat/module/docker/healthcheck/healthcheck.go | 6 ++++++ metricbeat/module/docker/image/image.go | 6 ++++++ metricbeat/module/docker/info/info.go | 6 ++++++ metricbeat/module/docker/memory/memory.go | 6 ++++++ metricbeat/module/docker/network/network.go | 6 ++++++ 9 files changed, 50 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 5979f3f8572..94ed5be9936 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -95,6 +95,7 @@ https://github.com/elastic/beats/compare/v7.0.0-beta1...master[Check the HEAD di - Add documentation about jolokia autodiscover fields. {issue}10925[10925] {pull}10979[10979] - Add missing aws.ec2.instance.state.name into fields.yml. {issue}11219[11219] {pull}11221[11221] - Fix ec2 metricset to collect metrics from Cloudwatch with the same timestamp. {pull}11142[11142] +- Fix potential memory leak in stopped docker metricsets {pull}11294[11294] *Packetbeat* diff --git a/metricbeat/module/docker/container/container.go b/metricbeat/module/docker/container/container.go index 6032493e755..06fa64d7db1 100644 --- a/metricbeat/module/docker/container/container.go +++ b/metricbeat/module/docker/container/container.go @@ -38,6 +38,7 @@ func init() { ) } +// MetricSet type defines all fields of the MetricSet type MetricSet struct { mb.BaseMetricSet dockerClient *client.Client @@ -76,3 +77,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { } eventsMapping(r, containers, m.dedot) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/cpu/cpu.go b/metricbeat/module/docker/cpu/cpu.go index a7dd10cf892..05cc0c99665 100644 --- a/metricbeat/module/docker/cpu/cpu.go +++ b/metricbeat/module/docker/cpu/cpu.go @@ -84,3 +84,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { formattedStats := m.cpuService.getCPUStatsList(stats, m.dedot) eventsMapping(r, formattedStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/diskio/diskio.go b/metricbeat/module/docker/diskio/diskio.go index d300e92d3e4..fd3d66bf10b 100644 --- a/metricbeat/module/docker/diskio/diskio.go +++ b/metricbeat/module/docker/diskio/diskio.go @@ -75,3 +75,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { formattedStats := m.blkioService.getBlkioStatsList(stats, m.dedot) eventsMapping(r, formattedStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/healthcheck/healthcheck.go b/metricbeat/module/docker/healthcheck/healthcheck.go index 64c710140e8..8ac122fdfbe 100644 --- a/metricbeat/module/docker/healthcheck/healthcheck.go +++ b/metricbeat/module/docker/healthcheck/healthcheck.go @@ -76,3 +76,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { } eventsMapping(r, containers, m) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/image/image.go b/metricbeat/module/docker/image/image.go index 3a5a9f82187..3cb96c12c96 100644 --- a/metricbeat/module/docker/image/image.go +++ b/metricbeat/module/docker/image/image.go @@ -78,3 +78,9 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { return eventsMapping(images, m.dedot), nil } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/info/info.go b/metricbeat/module/docker/info/info.go index a8d6f9b5da6..43a8da63bad 100644 --- a/metricbeat/module/docker/info/info.go +++ b/metricbeat/module/docker/info/info.go @@ -67,3 +67,9 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { return eventMapping(&info), nil } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/memory/memory.go b/metricbeat/module/docker/memory/memory.go index 240ac448f0b..142e6b1af67 100644 --- a/metricbeat/module/docker/memory/memory.go +++ b/metricbeat/module/docker/memory/memory.go @@ -75,3 +75,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { memoryStats := m.memoryService.getMemoryStatsList(stats, m.dedot) eventsMapping(r, memoryStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/network/network.go b/metricbeat/module/docker/network/network.go index 78b908dd47b..7635abc6df2 100644 --- a/metricbeat/module/docker/network/network.go +++ b/metricbeat/module/docker/network/network.go @@ -77,3 +77,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { formattedStats := m.netService.getNetworkStatsPerContainer(stats, m.dedot) eventsMapping(r, formattedStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +}