Skip to content

Commit

Permalink
Release connections in metricbeat redis module (elastic#12914)
Browse files Browse the repository at this point in the history
Release pooled connections in metricbeat redis module when they are not
needed anymore so they can be reused.

(cherry picked from commit 129d2ee)
  • Loading branch information
jsoriano committed Jul 17, 2019
1 parent 88ea7bd commit d129d3b
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 2 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d
- Reuse connections in PostgreSQL metricsets. {issue}12504[12504] {pull}12603[12603]
- PdhExpandWildCardPathW will not expand counter paths in 32 bit windows systems, workaround will use a different function.{issue}12590[12590]{pull}12622[12622]
- In the elasticsearch/node_stats metricset, if xpack is enabled, make parsing of ES node load average optional as ES on Windows doesn't report load average. {pull}12866[12866]
- Ramdisk is not filtered out when collecting disk performance counters in diskio metricset {issue}12814[12814] {pull}12829[12829]
- Fix connections leak in redis module {pull}12914[12914]
- Fix wrong uptime reporting by system/uptime metricset under Windows. {pull}12915[12915]

*Packetbeat*
Expand Down
5 changes: 4 additions & 1 deletion metricbeat/module/redis/info/info.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,11 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) {

// Fetch fetches metrics from Redis by issuing the INFO command.
func (m *MetricSet) Fetch(r mb.ReporterV2) error {
conn := m.Connection()
defer conn.Close()

// Fetch default INFO.
info, err := redis.FetchRedisInfo("default", m.Connection())
info, err := redis.FetchRedisInfo("default", conn)
if err != nil {
return errors.Wrap(err, "failed to fetch redis info")
}
Expand Down
2 changes: 2 additions & 0 deletions metricbeat/module/redis/key/key.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) {
// Fetch fetches information from Redis keys
func (m *MetricSet) Fetch(r mb.ReporterV2) error {
conn := m.Connection()
defer conn.Close()

for _, p := range m.patterns {
if err := redis.Select(conn, p.Keyspace); err != nil {
msg := errors.Wrapf(err, "Failed to select keyspace %d", p.Keyspace)
Expand Down
5 changes: 4 additions & 1 deletion metricbeat/module/redis/keyspace/keyspace.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,11 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) {

// Fetch fetches metrics from Redis by issuing the INFO command.
func (m *MetricSet) Fetch(r mb.ReporterV2) error {
conn := m.Connection()
defer conn.Close()

// Fetch default INFO.
info, err := redis.FetchRedisInfo("keyspace", m.Connection())
info, err := redis.FetchRedisInfo("keyspace", conn)
if err != nil {
return errors.Wrap(err, "Failed to fetch redis info for keyspaces")
}
Expand Down

0 comments on commit d129d3b

Please sign in to comment.