solarwinds_apm 5.1.3 → 5.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +9 -2
- data/CHANGELOG.md +27 -0
- data/README.md +5 -3
- data/ext/oboe_metal/extconf.rb +18 -6
- data/ext/oboe_metal/extconf_local.rb +1 -1
- data/ext/oboe_metal/lib/liboboe-1.0-aarch64.so.sha256 +1 -0
- data/ext/oboe_metal/lib/liboboe-1.0-alpine-aarch64.so.sha256 +1 -0
- data/ext/oboe_metal/lib/liboboe-1.0-alpine-x86_64.so.sha256 +1 -0
- data/ext/oboe_metal/lib/liboboe-1.0-x86_64.so.sha256 +1 -0
- data/ext/oboe_metal/src/VERSION +1 -1
- data/ext/oboe_metal/src/oboe.h +2 -2
- data/ext/oboe_metal/src/oboe_api.cpp +4 -0
- data/lib/rails/generators/solarwinds_apm/install_generator.rb +2 -2
- data/lib/rails/generators/solarwinds_apm/templates/solarwinds_apm_initializer.rb +8 -6
- data/lib/solarwinds_apm/inst/curb.rb +1 -0
- data/lib/solarwinds_apm/inst/httpclient.rb +1 -0
- data/lib/solarwinds_apm/inst/redis.rb +36 -29
- data/lib/solarwinds_apm/inst/redis_v4.rb +273 -0
- data/lib/solarwinds_apm/inst/typhoeus.rb +1 -1
- data/lib/solarwinds_apm/util.rb +134 -42
- data/lib/solarwinds_apm/version.rb +1 -1
- data/solarwinds_apm.gemspec +5 -3
- metadata +7 -15
- data/.github/CODEOWNERS +0 -1
- data/.github/ISSUE_TEMPLATE/bug-or-feature-request.md +0 -16
- data/.github/workflows/build_and_release_gem.yml +0 -108
- data/.github/workflows/build_for_packagecloud.yml +0 -59
- data/.github/workflows/docker-images.yml +0 -53
- data/.github/workflows/run_cpluplus_tests.yml +0 -73
- data/.github/workflows/run_tests.yml +0 -154
- data/.github/workflows/scripts/test_install.rb +0 -28
- data/.github/workflows/swig/swig-v4.0.2.tar.gz +0 -0
- data/.github/workflows/test_on_4_linux.yml +0 -109
- data/.github/workflows/test_on_ubuntu.yml +0 -107
- data/ext/oboe_metal/lib/liboboe-1.0-alpine-x86_64.so.0.0.0.sha256 +0 -1
- data/ext/oboe_metal/lib/liboboe-1.0-x86_64.so.0.0.0.sha256 +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8298bf959acf2663351b05afeb78ffa573c02107f9588bbc925a990e35675e4d
|
4
|
+
data.tar.gz: a67822c4554525b9894cdb578b48cf51de562ecd1b5ba353ed58f037ed88daf9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9998cc5ed8152951dcfbe0a997ac952b89a32eb7fcbcfe3b3cf51a87231606d0471eddfa9d5a14be58780904681776a99b99abfa5dfbd4159d791d8ddaea556c
|
7
|
+
data.tar.gz: 661af15bb3b3a14a361f7e4f95b3367c2fbb459b19b9b7c1894480f9f85050c68fca6ce7029ed9cb7bb7fce82d8cd593c746989311ed8d68fbd4ba2c4a687c3e
|
data/.gitignore
CHANGED
@@ -41,11 +41,18 @@ gemfiles/vendor*
|
|
41
41
|
lib/libsolarwinds_apm.so
|
42
42
|
vendor/
|
43
43
|
|
44
|
-
# test
|
44
|
+
# test & test script
|
45
45
|
tmp.rb
|
46
46
|
apm.collector.st-ssp.solarwinds.com
|
47
47
|
test/run_tests/.ruby_version_ubuntu
|
48
|
+
test/run_tests/.ruby_version_alpine
|
49
|
+
test/run_tests/.ruby_version_centos
|
50
|
+
test/run_tests/.ruby_version_ubuntu
|
51
|
+
|
52
|
+
redis-test.*
|
48
53
|
|
54
|
+
# compiling
|
55
|
+
ext/oboe_metal/verify
|
49
56
|
|
50
57
|
# mac DS_Store
|
51
|
-
.DS_Store
|
58
|
+
.DS_Store
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,33 @@ https://github.com/solarwindscloud/solarwinds-apm-ruby/releases
|
|
3
3
|
|
4
4
|
Dates in this file are in the format MM/DD/YYYY.
|
5
5
|
|
6
|
+
# solarwinds_apm 5.1.6 (03/14/2023)
|
7
|
+
|
8
|
+
This release includes the following features:
|
9
|
+
|
10
|
+
* Update latest liboboe library (12.0.0)
|
11
|
+
* Remove centos as testing environments and include amazonlinux as alternatives of RHEL distro
|
12
|
+
* Include sanitize RemoteURL for kvs (p.s. RemoteHost is sanitized in library code)
|
13
|
+
|
14
|
+
Pushed to Rubygems:
|
15
|
+
|
16
|
+
https://rubygems.org/gems/solarwinds_apm/versions/5.1.5
|
17
|
+
|
18
|
+
|
19
|
+
# solarwinds_apm 5.1.4 (11/23/2022)
|
20
|
+
|
21
|
+
This release includes the following features:
|
22
|
+
|
23
|
+
* Update to the latest redis-rb gem (> 5.x)
|
24
|
+
* Update latest liboboe library (11.1.0)
|
25
|
+
* Start to support solarwinds-apm-ruby arm64/aarch64
|
26
|
+
* Init message update for swo/nh backends
|
27
|
+
|
28
|
+
Pushed to Rubygems:
|
29
|
+
|
30
|
+
https://rubygems.org/gems/solarwinds_apm/versions/5.1.4
|
31
|
+
|
32
|
+
|
6
33
|
# solarwinds_apm 5.1.0 (09/15/2022)
|
7
34
|
|
8
35
|
This release includes the following features:
|
data/README.md
CHANGED
@@ -11,8 +11,9 @@ It requires an [Solarwinds] account to view metrics. Get yours,
|
|
11
11
|
|
12
12
|
[![Gem Version](https://badge.fury.io/rb/solarwinds_apm.svg)](https://badge.fury.io/rb/solarwinds_apm)
|
13
13
|
|
14
|
-
[![Run
|
15
|
-
|
14
|
+
[![Run All Tests](https://github.com/solarwindscloud/solarwinds-apm-ruby/actions/workflows/test_on_4_linux.yml/badge.svg)](https://github.com/solarwindscloud/solarwinds-apm-ruby/actions/workflows/test_on_4_linux.yml)
|
15
|
+
|
16
|
+
[![C++ Tests](https://github.com/solarwindscloud/solarwinds-apm-ruby/actions/workflows/run_cpluplus_tests.yml/badge.svg)](https://github.com/solarwindscloud/solarwinds-apm-ruby/actions/workflows/run_cpluplus_tests.yml)
|
16
17
|
|
17
18
|
[comment]: <> ([![Maintainability](https://api.codeclimate.com/v1/badges/ac7f36241a23a3a82fc5/maintainability)](https://codeclimate.com/github/appoptics/appoptics-apm-ruby/maintainability))
|
18
19
|
|
@@ -363,7 +364,7 @@ To make this simpler, we've included a few rake tasks to automate this process:
|
|
363
364
|
|
364
365
|
```bash
|
365
366
|
rake clean # make sure no old stuff is around
|
366
|
-
rake
|
367
|
+
rake fetch_oboe_file["stg"] # download c-files from staging
|
367
368
|
rake compile # Build the gem's c extension
|
368
369
|
```
|
369
370
|
|
@@ -381,3 +382,4 @@ See the README in the test directory.
|
|
381
382
|
Copyright (c) 2018 SolarWinds, LLC
|
382
383
|
|
383
384
|
Released under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
385
|
+
|
data/ext/oboe_metal/extconf.rb
CHANGED
@@ -27,26 +27,38 @@ ao_include = File.join(ext_dir, 'src')
|
|
27
27
|
|
28
28
|
# Download the appropriate liboboe from Staging or Production
|
29
29
|
version = File.read(File.join(ao_include, 'VERSION')).strip
|
30
|
-
if ENV['
|
30
|
+
if ENV['OBOE_DEV'].to_s.downcase == 'true'
|
31
|
+
ao_path = "https://solarwinds-apm-staging.s3.us-west-2.amazonaws.com/apm/c-lib/nightly"
|
32
|
+
puts 'Fetching c-lib from DEVELOPMENT Build'
|
33
|
+
elsif ENV['OBOE_STAGING'].to_s.downcase == 'true'
|
31
34
|
ao_path = File.join('https://agent-binaries.global.st-ssp.solarwinds.com/apm/c-lib/', version)
|
32
35
|
puts 'Fetching c-lib from STAGING'
|
33
36
|
else
|
34
37
|
ao_path = File.join('https://agent-binaries.cloud.solarwinds.com/apm/c-lib/', version)
|
35
38
|
end
|
36
39
|
|
37
|
-
ao_arch =
|
40
|
+
ao_arch = "x86_64"
|
41
|
+
system_arch = `uname -m` # for mac, the command is `uname` # "Darwin\n"; try `uname -a`
|
42
|
+
case system_arch.gsub("\n","")
|
43
|
+
when "x86_64"
|
44
|
+
ao_arch = "x86_64"
|
45
|
+
when "aarch64"
|
46
|
+
ao_arch = "aarch64"
|
47
|
+
end
|
48
|
+
|
38
49
|
if File.exist?('/etc/alpine-release')
|
39
50
|
version = File.read('/etc/alpine-release').strip
|
40
51
|
|
52
|
+
tmp_ao_arch = ao_arch.clone
|
41
53
|
ao_arch =
|
42
54
|
if Gem::Version.new(version) < Gem::Version.new('3.9')
|
43
|
-
|
55
|
+
"alpine-libressl-#{tmp_ao_arch}"
|
44
56
|
else # openssl
|
45
|
-
|
57
|
+
"alpine-#{tmp_ao_arch}"
|
46
58
|
end
|
47
59
|
end
|
48
60
|
|
49
|
-
ao_clib = "liboboe-1.0-#{ao_arch}.so
|
61
|
+
ao_clib = "liboboe-1.0-#{ao_arch}.so"
|
50
62
|
ao_item = File.join(ao_path, ao_clib)
|
51
63
|
ao_checksum_file = File.join(ao_lib_dir, "#{ao_clib}.sha256")
|
52
64
|
clib = File.join(ao_lib_dir, ao_clib)
|
@@ -138,4 +150,4 @@ if success
|
|
138
150
|
$stderr.puts '=================================================================='
|
139
151
|
create_makefile('oboe_noop', 'noop')
|
140
152
|
end
|
141
|
-
end
|
153
|
+
end
|
@@ -24,7 +24,7 @@ ext_dir = File.expand_path(File.dirname(__FILE__))
|
|
24
24
|
# the SolarWindsAPM libs.
|
25
25
|
ao_lib_dir = File.join(ext_dir, 'lib')
|
26
26
|
ao_path = '../../../oboe/factory-output'
|
27
|
-
ao_clib = "liboboe-1.0-x86_64.so
|
27
|
+
ao_clib = "liboboe-1.0-x86_64.so"
|
28
28
|
ao_item = File.join(ao_path, ao_clib)
|
29
29
|
clib = File.join(ao_lib_dir, ao_clib)
|
30
30
|
|
@@ -0,0 +1 @@
|
|
1
|
+
d9c280de4ab597fe7d3405a405c07f7e27ae4fb2cba7502f3893335bff119c3b
|
@@ -0,0 +1 @@
|
|
1
|
+
7864bee37bcaeacef1c3ffae2db3ae2d163ef18ebb107fe11228122211e6ddb4
|
@@ -0,0 +1 @@
|
|
1
|
+
48849897b168cde0de01b3c1355d0343e687cbec075f5970d88f166bd5182045
|
@@ -0,0 +1 @@
|
|
1
|
+
139fd6c84d20b5f4b12931a0ecf6630b8b0cae14792d05000c29b8d35aa7332c
|
data/ext/oboe_metal/src/VERSION
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
12.0.0
|
2
2
|
|
data/ext/oboe_metal/src/oboe.h
CHANGED
@@ -750,7 +750,7 @@ int oboe_sample_is_enabled(oboe_settings_cfg_t *cfg);
|
|
750
750
|
int oboe_tracing_decisions(oboe_tracing_decisions_in_t *in, oboe_tracing_decisions_out_t *out);
|
751
751
|
|
752
752
|
/* Oboe configuration interface. */
|
753
|
-
|
753
|
+
#ifndef _WIN32
|
754
754
|
/**
|
755
755
|
* Check if the Oboe library is compatible with a given version.revision.
|
756
756
|
*
|
@@ -762,7 +762,7 @@ int oboe_tracing_decisions(oboe_tracing_decisions_in_t *in, oboe_tracing_decisio
|
|
762
762
|
* @return Non-zero if the Oboe library is considered compatible with the specified revision.
|
763
763
|
*/
|
764
764
|
extern int oboe_config_check_version(int version, int revision);
|
765
|
-
|
765
|
+
#endif
|
766
766
|
/**
|
767
767
|
* Get the Oboe library version number.
|
768
768
|
*
|
@@ -694,7 +694,11 @@ std::string Reporter::getType() {
|
|
694
694
|
/////// Config ///////
|
695
695
|
|
696
696
|
bool Config::checkVersion(int version, int revision) {
|
697
|
+
#ifndef _WIN32
|
697
698
|
return (oboe_config_check_version(version, revision) != 0);
|
699
|
+
#else
|
700
|
+
return true;
|
701
|
+
#endif
|
698
702
|
}
|
699
703
|
|
700
704
|
std::string Config::getVersionString() {
|
@@ -29,10 +29,10 @@ module SolarWindsAPM
|
|
29
29
|
say "-------------------"
|
30
30
|
say ""
|
31
31
|
say "SolarWindsAPM Installation Overview:"
|
32
|
-
say "https://documentation.solarwinds.com/en/success_center/
|
32
|
+
say "https://documentation.solarwinds.com/en/success_center/observability"
|
33
33
|
say ""
|
34
34
|
say "More information on instrumenting Ruby applications can be found here:"
|
35
|
-
say "https://documentation.solarwinds.com/en/success_center/
|
35
|
+
say "https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent"
|
36
36
|
end
|
37
37
|
# rubocop:enable Metrics/MethodLength
|
38
38
|
|
@@ -3,11 +3,11 @@
|
|
3
3
|
# Copyright (c) 2019 SolarWinds, LLC.
|
4
4
|
# All rights reserved.
|
5
5
|
|
6
|
-
# SolarWindsAPM Configuration for the Ruby
|
6
|
+
# SolarWindsAPM Configuration for the Ruby Library aka solarwinds_apm gem
|
7
7
|
# https://cloud.solarwinds.com/
|
8
8
|
#
|
9
|
-
# More information on configuring the Ruby
|
10
|
-
# https://documentation.solarwinds.com/en/success_center/
|
9
|
+
# More information on configuring the Ruby Library can be found here:
|
10
|
+
# https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent
|
11
11
|
#
|
12
12
|
# The initial settings in this file represent the defaults
|
13
13
|
|
@@ -46,9 +46,11 @@ if defined?(SolarWindsAPM::Config)
|
|
46
46
|
# to SolarWinds is still encrypted using SSL/TLS.
|
47
47
|
#
|
48
48
|
# It is recommended to configure the proxy in this file or as SW_APM_PROXY
|
49
|
-
# environment variable. However, the
|
50
|
-
# use a system-wide proxy defined in the environment
|
51
|
-
# https_proxy or http_proxy if no SolarWindsAPM-specific
|
49
|
+
# environment variable. However, the underlying network library for the Ruby
|
50
|
+
# Instrumentation Library will use a system-wide proxy defined in the environment
|
51
|
+
# variables grpc_proxy, https_proxy or http_proxy if no SolarWindsAPM-specific
|
52
|
+
# configuration is set.
|
53
|
+
#
|
52
54
|
# Please refer to gRPC environment variables for more information.
|
53
55
|
#
|
54
56
|
# SolarWindsAPM::Config[:http_proxy] = http://<proxyHost>:<proxyPort>
|
@@ -57,10 +57,9 @@ module SolarWindsAPM
|
|
57
57
|
# KVOp (no KVKey)
|
58
58
|
|
59
59
|
def self.included(klass)
|
60
|
-
#
|
61
|
-
|
62
|
-
SolarWindsAPM::Util.method_alias(klass, :
|
63
|
-
SolarWindsAPM::Util.method_alias(klass, :call_pipeline, ::Redis::Client)
|
60
|
+
# call_pipelined is alias of call in redisclient middlewares
|
61
|
+
SolarWindsAPM::Util.method_alias(klass, :call, ::RedisClient)
|
62
|
+
SolarWindsAPM::Util.method_alias(klass, :call_pipelined, ::RedisClient)
|
64
63
|
end
|
65
64
|
|
66
65
|
# Given any Redis operation command array, this method
|
@@ -69,12 +68,14 @@ module SolarWindsAPM
|
|
69
68
|
# @param command [Array] the Redis operation array
|
70
69
|
# @param r [Return] the return value from the operation
|
71
70
|
# @return [Hash] the Key/Values to report
|
72
|
-
def extract_trace_details(command, r)
|
71
|
+
def extract_trace_details(command, r, config)
|
72
|
+
SolarWindsAPM.logger.debug "extract_trace_details command => #{command.inspect}"
|
73
73
|
kvs = {}
|
74
74
|
op = command.first
|
75
|
+
op = op.to_sym
|
75
76
|
|
76
77
|
kvs[:KVOp] = command[0]
|
77
|
-
kvs[:RemoteHost] =
|
78
|
+
kvs[:RemoteHost] = config.host
|
78
79
|
unless NO_KEY_OPS.include?(op) || op == :del && command[1..-1].flatten.count > 1
|
79
80
|
if command[1].is_a?(Array)
|
80
81
|
kvs[:KVKey] = command[1].first
|
@@ -115,7 +116,7 @@ module SolarWindsAPM
|
|
115
116
|
kvs[:KVHit] = r.nil? ? 0 : 1
|
116
117
|
|
117
118
|
when :hdel, :hexists, :hget, :hset, :hsetnx
|
118
|
-
kvs[:field] = command[2] unless command[2].is_a?(Array)
|
119
|
+
kvs[:field] = command[2] unless (command[2] && command[3]) # replace the idiom of command[2].is_a?(Array)
|
119
120
|
if op == :hget
|
120
121
|
kvs[:KVHit] = r.nil? ? 0 : 1
|
121
122
|
end
|
@@ -136,7 +137,7 @@ module SolarWindsAPM
|
|
136
137
|
else
|
137
138
|
kvs[:Script] = command[2]
|
138
139
|
end
|
139
|
-
elsif command[1] ==
|
140
|
+
elsif command[1] == "exists"
|
140
141
|
if command[2].is_a?(Array)
|
141
142
|
kvs[:KVKey] = command[2].inspect
|
142
143
|
else
|
@@ -166,6 +167,10 @@ module SolarWindsAPM
|
|
166
167
|
end
|
167
168
|
end # case op
|
168
169
|
end # if KV_COLLECT_MAP[op]
|
170
|
+
# turn every string into number
|
171
|
+
# kvs.each do |k,v|
|
172
|
+
# kvs[k] = v.to_i if v.is_a(String)
|
173
|
+
# end
|
169
174
|
rescue StandardError => e
|
170
175
|
SolarWindsAPM.logger.debug "[solarwinds_apm/redis] Error collecting redis KVs: #{e.message}"
|
171
176
|
SolarWindsAPM.logger.debug e.backtrace.join('\n')
|
@@ -178,16 +183,17 @@ module SolarWindsAPM
|
|
178
183
|
#
|
179
184
|
# @param pipeline [Redis::Pipeline] the Redis pipeline instance
|
180
185
|
# @return [Hash] the Key/Values to report
|
181
|
-
def extract_pipeline_details(
|
186
|
+
def extract_pipeline_details(commands, config)
|
187
|
+
SolarWindsAPM.logger.debug "extract_pipeline_details command => #{commands.inspect}"
|
182
188
|
kvs = {}
|
183
189
|
|
184
|
-
kvs[:RemoteHost] =
|
190
|
+
kvs[:RemoteHost] = config.host
|
185
191
|
kvs[:Backtrace] = SolarWindsAPM::API.backtrace if SolarWindsAPM::Config[:redis][:collect_backtraces]
|
186
192
|
|
187
|
-
command_count =
|
193
|
+
command_count = commands.count
|
188
194
|
kvs[:KVOpCount] = command_count
|
189
195
|
|
190
|
-
kvs[:KVOp] = if
|
196
|
+
kvs[:KVOp] = if commands.first == :multi
|
191
197
|
:multi
|
192
198
|
else
|
193
199
|
:pipeline
|
@@ -197,7 +203,7 @@ module SolarWindsAPM
|
|
197
203
|
# of ops is reasonable
|
198
204
|
if command_count < 12
|
199
205
|
ops = []
|
200
|
-
|
206
|
+
commands.each do |c|
|
201
207
|
ops << c.first
|
202
208
|
end
|
203
209
|
kvs[:KVOps] = ops.join(', ')
|
@@ -210,17 +216,19 @@ module SolarWindsAPM
|
|
210
216
|
end
|
211
217
|
|
212
218
|
#
|
213
|
-
# The wrapper method for
|
219
|
+
# The wrapper method for RedisClient.call. Here
|
214
220
|
# (when tracing) we capture KVs to report and pass
|
215
221
|
# the call along
|
216
222
|
#
|
217
|
-
def call_with_sw_apm(command, &block)
|
223
|
+
def call_with_sw_apm(command, config, &block)
|
224
|
+
SolarWindsAPM.logger.debug "call_with_sw_apm command => #{command.inspect}"
|
218
225
|
if SolarWindsAPM.tracing?
|
219
226
|
SolarWindsAPM::API.log_entry(:redis, {})
|
220
227
|
|
221
228
|
begin
|
222
|
-
r = call_without_sw_apm(command, &block)
|
223
|
-
report_kvs = extract_trace_details(command, r)
|
229
|
+
r = call_without_sw_apm(command, config, &block)
|
230
|
+
report_kvs = extract_trace_details(command, r, config)
|
231
|
+
SolarWindsAPM.logger.debug "call_with_sw_apm command => #{report_kvs.inspect}"
|
224
232
|
r
|
225
233
|
rescue StandardError => e
|
226
234
|
SolarWindsAPM::API.log_exception(:redis, e)
|
@@ -230,26 +238,25 @@ module SolarWindsAPM
|
|
230
238
|
end
|
231
239
|
|
232
240
|
else
|
233
|
-
call_without_sw_apm(command, &block)
|
241
|
+
call_without_sw_apm(command, config, &block)
|
234
242
|
end
|
235
243
|
end
|
236
244
|
|
237
245
|
#
|
238
|
-
# The wrapper method for
|
246
|
+
# The wrapper method for RedisClient.call_pipeline. Here
|
239
247
|
# (when tracing) we capture KVs to report and pass the call along
|
240
|
-
#
|
241
|
-
def
|
248
|
+
# 5.0.0 + removed the deprecated pipelined and multi signature. Commands now MUST be called on the block argument, not the original redis instance
|
249
|
+
def call_pipelined_with_sw_apm(commands, config, &block)
|
250
|
+
SolarWindsAPM.logger.debug "call_pipelined_with_sw_apm command => #{commands.inspect}"
|
242
251
|
if SolarWindsAPM.tracing?
|
243
252
|
# Fall back to the raw tracing API so we can pass KVs
|
244
253
|
# back on exit (a limitation of the SolarWindsAPM::API.trace
|
245
254
|
# block method) This removes the need for an info
|
246
255
|
# event to send additonal KVs
|
247
256
|
SolarWindsAPM::API.log_entry(:redis, {})
|
248
|
-
|
249
|
-
report_kvs = extract_pipeline_details(pipeline)
|
250
|
-
|
257
|
+
report_kvs = extract_pipeline_details(commands, config)
|
251
258
|
begin
|
252
|
-
|
259
|
+
call_pipelined_without_sw_apm(commands, config, &block)
|
253
260
|
rescue StandardError => e
|
254
261
|
SolarWindsAPM::API.log_exception(:redis, e)
|
255
262
|
raise
|
@@ -257,7 +264,7 @@ module SolarWindsAPM
|
|
257
264
|
SolarWindsAPM::API.log_exit(:redis, report_kvs)
|
258
265
|
end
|
259
266
|
else
|
260
|
-
|
267
|
+
call_pipelined_without_sw_apm(commands, config, &block)
|
261
268
|
end
|
262
269
|
end
|
263
270
|
end
|
@@ -266,8 +273,8 @@ module SolarWindsAPM
|
|
266
273
|
end
|
267
274
|
|
268
275
|
if SolarWindsAPM::Config[:redis][:enabled]
|
269
|
-
if defined?(
|
270
|
-
SolarWindsAPM.logger.info
|
271
|
-
|
276
|
+
if defined?(::RedisClient)
|
277
|
+
SolarWindsAPM.logger.info "[solarwinds_apm/loading] Instrumenting redis through RedisClient #{RedisClient::VERSION}" if SolarWindsAPM::Config[:verbose]
|
278
|
+
::RedisClient.register(SolarWindsAPM::Inst::Redis::Client)
|
272
279
|
end
|
273
280
|
end
|