appoptics_apm 4.0.5 → 4.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +38 -1
- data/.yardopts +5 -0
- data/Dockerfile_test +4 -3
- data/Rakefile +11 -10
- data/ext/oboe_metal/extconf.rb +21 -16
- data/lib/appoptics_apm/api/logging.rb +1 -0
- data/lib/appoptics_apm/version.rb +1 -1
- data/ruby_setup.sh +9 -7
- data/yardoc_frontpage.md +26 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b94b0d15e2fc4895a343bb84ef881116864407e
|
4
|
+
data.tar.gz: 2225955904b5ce063dcddb123014d1deb2f923a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fafaacdc392b750d72c273a2295614ea808cc58da3048871e75d2337ea911381d632cd1c706291f01abe54e6a7d81c89e34a522475b6c765221669c7c46c1db5
|
7
|
+
data.tar.gz: 491ce4b517259a6bddb40513c158c11998d5e8556c3a8668317b6400725f6456f713216f70ec54e004ecf2c417498f2b84222144132064b6d5b0e762c4d68765
|
data/.travis.yml
CHANGED
@@ -20,12 +20,49 @@ gemfile:
|
|
20
20
|
- gemfiles/frameworks.gemfile
|
21
21
|
- gemfiles/rails32.gemfile
|
22
22
|
- gemfiles/rails42.gemfile
|
23
|
-
- gemfiles/rails50.gemfile
|
24
23
|
- gemfiles/rails51.gemfile
|
25
24
|
- gemfiles/delayed_job.gemfile
|
26
25
|
|
26
|
+
env:
|
27
|
+
- DBTYPE=mysql
|
28
|
+
- DBTYPE=mysql2
|
29
|
+
- DBTYPE=postgresql
|
30
|
+
|
27
31
|
matrix:
|
28
32
|
exclude:
|
33
|
+
- rvm: 2.5.0
|
34
|
+
env: DBTYPE=mysql
|
35
|
+
- rvm: 2.4.3
|
36
|
+
env: DBTYPE=mysql
|
37
|
+
|
38
|
+
- gemfile: gemfiles/noop.gemfile
|
39
|
+
env: DBTYPE=mysql
|
40
|
+
- gemfile: gemfiles/libraries.gemfile
|
41
|
+
env: DBTYPE=mysql
|
42
|
+
- gemfile: gemfiles/instrumentation_mocked.gemfile
|
43
|
+
env: DBTYPE=mysql
|
44
|
+
- gemfile: gemfiles/instrumentation_mocked_oldgems.gemfile
|
45
|
+
env: DBTYPE=mysql
|
46
|
+
- gemfile: gemfiles/frameworks.gemfile
|
47
|
+
env: DBTYPE=mysql
|
48
|
+
- gemfile: gemfiles/rails51.gemfile
|
49
|
+
env: DBTYPE=mysql
|
50
|
+
- gemfile: gemfiles/delayed_job.gemfile
|
51
|
+
env: DBTYPE=mysql
|
52
|
+
|
53
|
+
- gemfile: gemfiles/noop.gemfile
|
54
|
+
env: DBTYPE=mysql2
|
55
|
+
- gemfile: gemfiles/libraries.gemfile
|
56
|
+
env: DBTYPE=mysql2
|
57
|
+
- gemfile: gemfiles/instrumentation_mocked.gemfile
|
58
|
+
env: DBTYPE=mysql2
|
59
|
+
- gemfile: gemfiles/instrumentation_mocked_oldgems.gemfile
|
60
|
+
env: DBTYPE=mysql2
|
61
|
+
- gemfile: gemfiles/frameworks.gemfile
|
62
|
+
env: DBTYPE=mysql2
|
63
|
+
- gemfile: gemfiles/delayed_job.gemfile
|
64
|
+
env: DBTYPE=mysql2
|
65
|
+
|
29
66
|
# Rails 3.2 is not compatible with Ruby >= '2.4'
|
30
67
|
- rvm: 2.5.0
|
31
68
|
gemfile: gemfiles/rails32.gemfile
|
data/.yardopts
ADDED
data/Dockerfile_test
CHANGED
@@ -31,10 +31,11 @@ RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
|
|
31
31
|
&& echo 'bundler' > ~/.rbenv/default-gems
|
32
32
|
|
33
33
|
# install rubies to build our gem against
|
34
|
-
RUN .
|
34
|
+
RUN . ~/.profile \
|
35
35
|
&& rbenv install 1.9.3-p551 \
|
36
|
-
&& rbenv install 2.3.
|
37
|
-
&& rbenv install 2.4.
|
36
|
+
&& rbenv install 2.3.6 \
|
37
|
+
&& rbenv install 2.4.3 \
|
38
|
+
&& rbenv install 2.5.0
|
38
39
|
# && rbenv install jruby-9.0.5.0
|
39
40
|
|
40
41
|
# install swig 3.0.8
|
data/Rakefile
CHANGED
@@ -99,24 +99,25 @@ task :compile do
|
|
99
99
|
if !defined?(JRUBY_VERSION)
|
100
100
|
puts "== Building the c extension against Ruby #{RUBY_VERSION}"
|
101
101
|
|
102
|
-
pwd
|
103
|
-
ext_dir
|
104
|
-
|
105
|
-
so_file
|
102
|
+
pwd = Dir.pwd
|
103
|
+
ext_dir = File.expand_path('ext/oboe_metal')
|
104
|
+
final_so = File.expand_path('lib/oboe_metal.so')
|
105
|
+
so_file = File.expand_path('ext/oboe_metal/oboe_metal.so')
|
106
106
|
|
107
107
|
Dir.chdir ext_dir
|
108
|
+
ENV['FROM_S3'] = 'TRUE'
|
108
109
|
cmd = [Gem.ruby, 'extconf.rb']
|
109
110
|
sh cmd.join(' ')
|
110
111
|
sh '/usr/bin/env make'
|
111
112
|
|
112
|
-
File.delete
|
113
|
+
File.delete(final_so) if File.exist?(final_so)
|
113
114
|
|
114
|
-
if File.exist?
|
115
|
-
|
116
|
-
Dir.chdir
|
117
|
-
puts "== Extension built and
|
115
|
+
if File.exist?(so_file)
|
116
|
+
FileUtils.mv(so_file, final_so)
|
117
|
+
Dir.chdir(pwd)
|
118
|
+
puts "== Extension built and moved to #{final_so}"
|
118
119
|
else
|
119
|
-
Dir.chdir
|
120
|
+
Dir.chdir(pwd)
|
120
121
|
puts '!! Extension failed to build (see above). Have the required binary and header files been fetched?'
|
121
122
|
puts '!! Try the tasks in this order: clean > fetchsource > compile.'
|
122
123
|
end
|
data/ext/oboe_metal/extconf.rb
CHANGED
@@ -16,26 +16,33 @@ jruby = defined?(JRUBY_VERSION) ? true : false
|
|
16
16
|
ao_lib_dir = File.join(ext_dir, 'lib')
|
17
17
|
ao_include = File.join(ext_dir, 'src')
|
18
18
|
|
19
|
-
# Download the appropriate liboboe from files.appoptics.com
|
20
|
-
|
19
|
+
# Download the appropriate liboboe from S3(via rake for testing) or files.appoptics.com (production)
|
20
|
+
version = File.read(File.join(ao_include, 'VERSION')).chomp
|
21
|
+
if ENV['FROM_S3']
|
22
|
+
ao_path = File.join('https://s3-us-west-2.amazonaws.com/rc-files-t2/c-lib/', version)
|
23
|
+
puts "Fetching c-lib from S3"
|
24
|
+
else
|
25
|
+
ao_path = File.join('https://files.appoptics.com/c-lib', version)
|
26
|
+
end
|
21
27
|
ao_arch = `ldd --version 2>&1` =~ /musl/ ? 'alpine-x86_64' : 'x86_64'
|
22
28
|
ao_clib = "liboboe-1.0-#{ao_arch}.so.0.0.0"
|
23
29
|
ao_item = File.join(ao_path, ao_clib)
|
24
30
|
ao_checksum_item = "#{ao_item}.sha256"
|
25
|
-
|
31
|
+
clib = File.join(ao_lib_dir, ao_clib)
|
26
32
|
|
27
33
|
retries = 3
|
34
|
+
success = false
|
28
35
|
while retries > 0
|
29
36
|
begin
|
30
37
|
# download
|
31
38
|
download = open(ao_item, 'rb')
|
32
|
-
IO.copy_stream(download,
|
39
|
+
IO.copy_stream(download, clib)
|
33
40
|
|
34
41
|
checksum = open(ao_checksum_item, 'r').read.chomp
|
35
|
-
|
42
|
+
clib_checksum = Digest::SHA256.file(clib).hexdigest
|
36
43
|
|
37
44
|
# verify_checksum
|
38
|
-
if
|
45
|
+
if clib_checksum != checksum
|
39
46
|
$stderr.puts '== ERROR ================================================================='
|
40
47
|
$stderr.puts 'Checksum Verification failed for the c-extension of the appoptics_apm gem.'
|
41
48
|
$stderr.puts 'appoptics_apm will not instrument the code. No tracing will occur.'
|
@@ -48,7 +55,7 @@ while retries > 0
|
|
48
55
|
retries = 0
|
49
56
|
end
|
50
57
|
rescue => e
|
51
|
-
File.write(
|
58
|
+
File.write(clib, '')
|
52
59
|
retries -= 1
|
53
60
|
if retries == 0
|
54
61
|
$stderr.puts '== ERROR =========================================================='
|
@@ -63,11 +70,13 @@ while retries > 0
|
|
63
70
|
end
|
64
71
|
|
65
72
|
if success
|
66
|
-
# Create symlinks for the AppOpticsAPM library
|
67
|
-
|
68
|
-
|
73
|
+
# Create relative symlinks for the AppOpticsAPM library
|
74
|
+
Dir.chdir(ao_lib_dir) do
|
75
|
+
File.symlink(ao_clib, 'liboboe.so')
|
76
|
+
File.symlink(ao_clib, 'liboboe-1.0.so.0')
|
77
|
+
end
|
69
78
|
|
70
|
-
dir_config('oboe',
|
79
|
+
dir_config('oboe', 'src', 'lib')
|
71
80
|
|
72
81
|
if jruby || ENV.key?('APPOPTICS_URL')
|
73
82
|
# Build the noop extension under JRuby and Heroku.
|
@@ -84,12 +93,8 @@ if success
|
|
84
93
|
$CFLAGS << " #{ENV['CFLAGS']}"
|
85
94
|
$CPPFLAGS << " #{ENV['CPPFLAGS']}"
|
86
95
|
$LIBS << " #{ENV['LIBS']}"
|
87
|
-
$LDFLAGS << " #{ENV['LDFLAGS']} -Wl,-rpath
|
96
|
+
$LDFLAGS << " #{ENV['LDFLAGS']} '-Wl,-rpath=$$ORIGIN/../ext/oboe_metal/lib'"
|
88
97
|
|
89
|
-
if RUBY_VERSION < '1.9'
|
90
|
-
cpp_command('g++')
|
91
|
-
$CPPFLAGS << '-I./src/'
|
92
|
-
end
|
93
98
|
create_makefile('oboe_metal', 'src')
|
94
99
|
|
95
100
|
else
|
data/ruby_setup.sh
CHANGED
@@ -7,8 +7,14 @@
|
|
7
7
|
|
8
8
|
cd /code/ruby-appoptics_apm/
|
9
9
|
|
10
|
-
rbenv
|
10
|
+
rbenv global $1
|
11
|
+
|
12
|
+
rm gemfiles/*.lock
|
13
|
+
|
14
|
+
export RVM_TEST=$1
|
15
|
+
export BUNDLE_GEMFILE=$2
|
11
16
|
bundle install
|
17
|
+
|
12
18
|
bundle update
|
13
19
|
bundle exec rake fetch_ext_deps
|
14
20
|
bundle exec rake clean
|
@@ -26,15 +32,11 @@ service memcached start
|
|
26
32
|
# mysql add table for tests
|
27
33
|
mysql -e 'create database travis_ci_test;' -h$MYSQL_HOST -p$MYSQL_ROOT_PASSWORD
|
28
34
|
|
29
|
-
bundle install --gemfile $2
|
30
|
-
|
31
|
-
export RVM_TEST=$1
|
32
|
-
export BUNDLE_GEMFILE=$2
|
33
|
-
|
34
35
|
# replicate stdout of tests to file in local log directory
|
35
36
|
export TEST_RUNS_TO_FILE=true
|
37
|
+
export $3
|
36
38
|
|
37
|
-
if [ "$
|
39
|
+
if [ "$4" == "true" ]; then
|
38
40
|
/bin/bash
|
39
41
|
# now run tests either with:
|
40
42
|
# bundle exec rake test TEST=test/instrumentation/curb_test.rb
|
data/yardoc_frontpage.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# Welcome to the AppOpticsAPM Ruby Gem
|
2
|
+
|
3
|
+
|
4
|
+
The appoptics_apm gem provides automatic tracing and metrics for Ruby applications.
|
5
|
+
It requires an AppOptics account: sign up for a free trial at https://www.appoptics.com.
|
6
|
+
|
7
|
+
![ruby_trace](https://docs.appoptics.com/_images/ruby_trace.png)
|
8
|
+
|
9
|
+
## Documentation
|
10
|
+
https://docs.appoptics.com/kb/apm_tracing/ruby
|
11
|
+
|
12
|
+
## Getting started
|
13
|
+
The gem instruments the ruby language and ruby on rails frameworks. It is hosted on RubyGems, making installation as
|
14
|
+
simple as: `gem install appoptics_apm`.
|
15
|
+
|
16
|
+
Our ruby extension gets detailed insights out-of-the-box without any code modification.
|
17
|
+
For a list of instrumented gems and components see https://docs.appoptics.com/kb/apm_tracing/ruby/support-matrix
|
18
|
+
|
19
|
+
Detailled installation instructions for Ruby and different frameworks like Rails, Sinatra, Padrino, and Grape can be
|
20
|
+
found here https://docs.appoptics.com/kb/apm_tracing/ruby/install
|
21
|
+
|
22
|
+
## Custom instrumentation
|
23
|
+
If you have code or a library that is not on the platform support list, use our SDK (as documented here) to customize.
|
24
|
+
|
25
|
+
|
26
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appoptics_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maia Engeli
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-03-
|
13
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- ".gitignore"
|
97
97
|
- ".rubocop.yml"
|
98
98
|
- ".travis.yml"
|
99
|
+
- ".yardopts"
|
99
100
|
- CHANGELOG.md
|
100
101
|
- CONFIG.md
|
101
102
|
- Dockerfile
|
@@ -207,6 +208,7 @@ files:
|
|
207
208
|
- ruby_setup.sh
|
208
209
|
- run_docker_build_gem_upload_to_packagecloud.sh
|
209
210
|
- run_tests_docker.rb
|
211
|
+
- yardoc_frontpage.md
|
210
212
|
homepage: https://www.appoptics.com/
|
211
213
|
licenses:
|
212
214
|
- Librato Open License, Version 1.0
|