diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 182599b0054f..37f30c235f50 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -43,6 +43,7 @@ https://github.com/elastic/beats/compare/v6.0.0...master[Check the HEAD diff] *Metricbeat* - Fix map overwrite in docker diskio module. {issue}5582[5582] +- Fix connection leak in mongodb module. {issue}5688[5688] *Packetbeat* diff --git a/metricbeat/module/mongodb/dbstats/dbstats.go b/metricbeat/module/mongodb/dbstats/dbstats.go index a9b8a1da01e0..d1312ede0d26 100644 --- a/metricbeat/module/mongodb/dbstats/dbstats.go +++ b/metricbeat/module/mongodb/dbstats/dbstats.go @@ -61,6 +61,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { if err != nil { return nil, err } + defer mongoSession.Close() // Get the list of databases names, which we'll use to call db.stats() on each dbNames, err := mongoSession.DatabaseNames() diff --git a/metricbeat/module/mongodb/status/status.go b/metricbeat/module/mongodb/status/status.go index f25229077d91..84e3f27f3462 100644 --- a/metricbeat/module/mongodb/status/status.go +++ b/metricbeat/module/mongodb/status/status.go @@ -59,6 +59,7 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { if err != nil { return nil, err } + defer mongoSession.Close() result := map[string]interface{}{} if err := mongoSession.DB("admin").Run(bson.D{{Name: "serverStatus", Value: 1}}, &result); err != nil {