appoptics_apm 4.12.2 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/build_and_release_gem.yml +103 -0
- data/.github/workflows/build_for_packagecloud.yml +70 -0
- data/.github/workflows/docker-images.yml +47 -0
- data/.github/workflows/run_cpluplus_tests.yml +73 -0
- data/.github/workflows/run_tests.yml +168 -0
- data/.github/workflows/scripts/test_install.rb +23 -0
- data/.github/workflows/swig/swig-v4.0.2.tar.gz +0 -0
- data/.github/workflows/test_on_4_linux.yml +159 -0
- data/.gitignore +17 -25
- data/.travis.yml +17 -14
- data/Gemfile +1 -25
- data/README.md +4 -6
- data/appoptics_apm.gemspec +11 -5
- data/examples/prepend.rb +13 -0
- data/examples/sdk_examples.rb +16 -0
- data/ext/oboe_metal/extconf.rb +25 -31
- data/ext/oboe_metal/lib/liboboe-1.0-alpine-x86_64.so.0.0.0.sha256 +1 -0
- data/ext/oboe_metal/lib/liboboe-1.0-x86_64.so.0.0.0.sha256 +1 -0
- data/ext/oboe_metal/src/README.md +6 -0
- data/ext/oboe_metal/src/VERSION +2 -1
- data/ext/oboe_metal/src/frames.cc +246 -0
- data/ext/oboe_metal/src/frames.h +40 -0
- data/ext/oboe_metal/src/init_appoptics_apm.cc +5 -4
- data/ext/oboe_metal/src/logging.cc +95 -0
- data/ext/oboe_metal/src/logging.h +35 -0
- data/ext/oboe_metal/src/oboe.h +8 -5
- data/ext/oboe_metal/src/oboe_api.cpp +40 -14
- data/ext/oboe_metal/src/oboe_api.hpp +29 -8
- data/ext/oboe_metal/src/oboe_debug.h +1 -0
- data/ext/oboe_metal/src/oboe_swig_wrap.cc +85 -21
- data/ext/oboe_metal/src/profiling.cc +435 -0
- data/ext/oboe_metal/src/profiling.h +78 -0
- data/ext/oboe_metal/test/CMakeLists.txt +53 -0
- data/ext/oboe_metal/test/FindGMock.cmake +43 -0
- data/ext/oboe_metal/test/README.md +56 -0
- data/ext/oboe_metal/test/frames_test.cc +164 -0
- data/ext/oboe_metal/test/profiling_test.cc +93 -0
- data/ext/oboe_metal/test/ruby_inc_dir.rb +8 -0
- data/ext/oboe_metal/test/ruby_prefix.rb +8 -0
- data/ext/oboe_metal/test/ruby_test_helper.rb +67 -0
- data/ext/oboe_metal/test/test.h +11 -0
- data/ext/oboe_metal/test/test_main.cc +32 -0
- data/lib/appoptics_apm/api/metrics.rb +3 -0
- data/lib/appoptics_apm/base.rb +1 -1
- data/lib/appoptics_apm/config.rb +11 -2
- data/lib/appoptics_apm/frameworks/rails/inst/connection_adapters/utils5x.rb +7 -1
- data/lib/appoptics_apm/inst/rack.rb +13 -6
- data/lib/appoptics_apm/inst/redis.rb +1 -2
- data/lib/appoptics_apm/noop/context.rb +3 -0
- data/lib/appoptics_apm/noop/metadata.rb +4 -1
- data/lib/appoptics_apm/noop/profiling.rb +21 -0
- data/lib/appoptics_apm/oboe_init_options.rb +26 -22
- data/lib/appoptics_apm/support/profiling.rb +18 -0
- data/lib/appoptics_apm/support/transaction_metrics.rb +1 -1
- data/lib/appoptics_apm/support/transaction_settings.rb +2 -2
- data/lib/appoptics_apm/support/x_trace_options.rb +2 -2
- data/lib/appoptics_apm/support_report.rb +2 -2
- data/lib/appoptics_apm/test.rb +4 -3
- data/lib/appoptics_apm/util.rb +1 -1
- data/lib/appoptics_apm/version.rb +3 -3
- data/lib/appoptics_apm/xtrace.rb +1 -1
- data/lib/appoptics_apm.rb +3 -1
- data/lib/oboe_metal.rb +2 -2
- data/lib/rails/generators/appoptics_apm/templates/appoptics_apm_initializer.rb +24 -0
- data/log/.keep +0 -0
- metadata +46 -16
- data/.travis/bundle.sh +0 -9
@@ -0,0 +1,23 @@
|
|
1
|
+
# Copyright (c) 2021 SolarWinds, LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Test script used to check if a newly created gem installs and connects to
|
5
|
+
# the collector
|
6
|
+
# requires env vars:
|
7
|
+
# - APPOPTICS_SERVICE_KEY
|
8
|
+
# - APPOPTICS_COLLECTOR (optional if the key is for production)
|
9
|
+
|
10
|
+
require 'appoptics_apm'
|
11
|
+
AppOpticsAPM.support_report
|
12
|
+
exit 1 unless AppOpticsAPM.reporter
|
13
|
+
|
14
|
+
AppOpticsAPM::Config[:profiling] = :enabled
|
15
|
+
|
16
|
+
AppOpticsAPM::SDK.start_trace("install_test_profiling") do
|
17
|
+
AppOpticsAPM::Profiling.run do
|
18
|
+
10.times do
|
19
|
+
[9, 6, 12, 2, 7, 1, 9, 3, 4, 14, 5, 8].sort
|
20
|
+
sleep 0.2
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
Binary file
|
@@ -0,0 +1,159 @@
|
|
1
|
+
# Copyright (c) 2021 SolarWinds, LLC.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
name: Run Ruby Tests on 4 Linux
|
5
|
+
|
6
|
+
on:
|
7
|
+
push:
|
8
|
+
paths-ignore:
|
9
|
+
- 'test/run_tests/Dockerfile_*'
|
10
|
+
# Allows you to run this workflow manually from the Actions tab
|
11
|
+
workflow_dispatch:
|
12
|
+
|
13
|
+
env:
|
14
|
+
GHRC: ghcr.io/appoptics/appoptics-apm-ruby/apm_ruby
|
15
|
+
DOCKERFILE: test/run_tests/Dockerfile
|
16
|
+
|
17
|
+
jobs:
|
18
|
+
|
19
|
+
#-------------------------------------------------------------------------------
|
20
|
+
# TODO: figure out how to build images first if necessary
|
21
|
+
#
|
22
|
+
# ********* this is not working because we don't have a *************
|
23
|
+
# ********* reference to the commit of the previous GH run *************
|
24
|
+
#
|
25
|
+
# build_images:
|
26
|
+
# name: Build docker images if necessary
|
27
|
+
# runs-on: ubuntu-latest
|
28
|
+
#
|
29
|
+
# strategy:
|
30
|
+
# fail-fast: true
|
31
|
+
# matrix:
|
32
|
+
# os: [ ubuntu, debian, centos, alpine ]
|
33
|
+
#
|
34
|
+
# steps:
|
35
|
+
# - name: Checkout
|
36
|
+
# uses: actions/checkout@v2
|
37
|
+
#
|
38
|
+
#
|
39
|
+
# ## comment out to get a debug session
|
40
|
+
# ## only works with ubuntu and debian, because it uses apt:
|
41
|
+
## - name: tmate debugging session
|
42
|
+
## uses: mxschmitt/action-tmate@v3
|
43
|
+
## with:
|
44
|
+
## sudo: false
|
45
|
+
#
|
46
|
+
# - name: check modified files
|
47
|
+
# id: check_files
|
48
|
+
# run: |
|
49
|
+
# git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep Dockerfile_
|
50
|
+
# echo ::set-output name=check_dockerfiles::$?
|
51
|
+
## git diff --name-only HEAD^ HEAD | grep [D]ockerfile_
|
52
|
+
## echo ::set-output name=check_dockerfiles::$?
|
53
|
+
#
|
54
|
+
# - name: ghcr.io login ... build and publish images if needed
|
55
|
+
# uses: docker/login-action@v1
|
56
|
+
# if: ${{ steps.check_files.outputs.check_dockerfiles == 0}}
|
57
|
+
# with:
|
58
|
+
# registry: ghcr.io
|
59
|
+
# username: ${{ github.actor }}
|
60
|
+
# password: ${{ secrets.GITHUB_TOKEN }}
|
61
|
+
#
|
62
|
+
# - name: Build and publish new Docker image
|
63
|
+
# if: ${{ steps.check_files.outputs.check_dockerfiles == 0 }}
|
64
|
+
# run: |
|
65
|
+
# docker build -f ${{ env.DOCKERFILE }}_${{ matrix.os }} -t ${{ env.GHRC }}_${{ matrix.os }} .
|
66
|
+
# docker push ${{ env.GHRC }}_${{ matrix.os }}
|
67
|
+
|
68
|
+
#-------------------------------------------------------------------------------
|
69
|
+
all_linux_test:
|
70
|
+
name: ${{ matrix.os }} - ruby ${{ matrix.ruby }}
|
71
|
+
runs-on: ubuntu-latest
|
72
|
+
# needs: build_images
|
73
|
+
|
74
|
+
strategy:
|
75
|
+
fail-fast: false
|
76
|
+
matrix:
|
77
|
+
os: [ubuntu, debian, centos, alpine]
|
78
|
+
ruby: ['3.0', '2.7', '2.6', '2.5', '2.4']
|
79
|
+
|
80
|
+
container:
|
81
|
+
# maybe github.repository works
|
82
|
+
image: ghcr.io/${{ github.repository }}/apm_ruby_${{ matrix.os }}
|
83
|
+
|
84
|
+
env:
|
85
|
+
APPOPTICS_GEM_TEST: true
|
86
|
+
APPOPTICS_REPORTER: file
|
87
|
+
APPOPTICS_COLLECTOR: /tmp/appoptics_traces.bson
|
88
|
+
APPOPTICS_MONGO_SERVER: "mongo"
|
89
|
+
APPOPTICS_RABBITMQ_SERVER: "rabbitmq"
|
90
|
+
APPOPTICS_MEMCACHED_SERVER: "memcached"
|
91
|
+
APPOPTICS_REPORTER_FILE_SINGLE: false
|
92
|
+
APPOPTICS_FROM_S3: true
|
93
|
+
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
94
|
+
MYSQL_ROOT_PASSWORD: "admin"
|
95
|
+
MYSQL_HOST: "mysql"
|
96
|
+
MYSQL_DATABASE: "travis_ci_test"
|
97
|
+
POSTGRES_DB: "travis_ci_test"
|
98
|
+
DOCKER_MYSQL_PASS: "admin"
|
99
|
+
DOCKER_PSQL_PASS: "postgres"
|
100
|
+
POSTGRES_USER: "postgres"
|
101
|
+
POSTGRES_PASSWORD: "postgres"
|
102
|
+
POSTGRES_HOST: "postgres"
|
103
|
+
REDIS_PASSWORD: "redis_pass"
|
104
|
+
TEST_RUNS_TO_FILE: "true"
|
105
|
+
|
106
|
+
services:
|
107
|
+
memcached:
|
108
|
+
image: memcached:latest
|
109
|
+
ports:
|
110
|
+
- 11211:11211
|
111
|
+
options: --health-cmd "timeout 5 bash -c 'cat < /dev/null > /dev/udp/127.0.0.1/11211'" --health-interval 10s --health-timeout 5s --health-retries 5
|
112
|
+
rabbitmq:
|
113
|
+
image: rabbitmq:latest
|
114
|
+
ports:
|
115
|
+
- 5672:5672
|
116
|
+
options: --health-cmd "rabbitmqctl node_health_check" --health-interval 10s --health-timeout 5s --health-retries 5
|
117
|
+
mongo:
|
118
|
+
image: mongo:latest
|
119
|
+
ports:
|
120
|
+
- 27017:27017
|
121
|
+
options: "--health-cmd \"mongo --quiet --eval 'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'\" --health-interval 10s --health-timeout 5s --health-retries 5"
|
122
|
+
postgres:
|
123
|
+
image: postgres:10.8
|
124
|
+
env:
|
125
|
+
POSTGRES_DB: travis_ci_test
|
126
|
+
ports:
|
127
|
+
- 5432:5432
|
128
|
+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
129
|
+
mysql:
|
130
|
+
image: mariadb:latest
|
131
|
+
env:
|
132
|
+
MYSQL_USER: user
|
133
|
+
MYSQL_PASSWORD: password
|
134
|
+
MYSQL_DATABASE: travis_ci_test
|
135
|
+
MYSQL_ROOT_PASSWORD: admin
|
136
|
+
ports:
|
137
|
+
- 3306:3306
|
138
|
+
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
|
139
|
+
|
140
|
+
steps:
|
141
|
+
- name: Checkout ${{ github.ref }}
|
142
|
+
uses: actions/checkout@v2
|
143
|
+
|
144
|
+
- name: print some info
|
145
|
+
run: |
|
146
|
+
user=`whoami`
|
147
|
+
pwd=`pwd`
|
148
|
+
echo "User: $user"
|
149
|
+
echo "Current dir: $pwd"
|
150
|
+
echo "Home dir: $HOME"
|
151
|
+
echo "Branch: ${GITHUB_REF#refs/*/}"
|
152
|
+
|
153
|
+
- name: ruby tests
|
154
|
+
run: |
|
155
|
+
export HOME=/root
|
156
|
+
test/run_tests/ruby_setup.sh
|
157
|
+
version=`rbenv versions --bare | grep ${{ matrix.ruby }}`
|
158
|
+
echo "testing with ruby version: $version"
|
159
|
+
test/run_tests/run_tests.sh -r $version
|
data/.gitignore
CHANGED
@@ -1,44 +1,36 @@
|
|
1
|
-
|
1
|
+
!.keep
|
2
2
|
*.gem
|
3
3
|
*.lock
|
4
|
-
*.
|
5
|
-
*.so
|
4
|
+
*.log
|
6
5
|
*.swp
|
7
|
-
*.vscode
|
8
6
|
*~
|
9
7
|
.*byebug*
|
10
|
-
.bundle
|
8
|
+
.bundle/
|
11
9
|
.env
|
12
10
|
.irb_history
|
13
11
|
.irbrc
|
14
12
|
.ruby-version
|
15
|
-
.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
doc
|
13
|
+
.yardoc/
|
14
|
+
app/
|
15
|
+
builds/
|
16
|
+
coverage/
|
17
|
+
doc/
|
18
|
+
ext/oboe_metal/*.o
|
22
19
|
ext/oboe_metal/Makefile
|
23
20
|
ext/oboe_metal/lib/liboboe*so*
|
24
21
|
ext/oboe_metal/mkmf.log
|
25
22
|
ext/oboe_metal/oboe_metal.so
|
26
23
|
ext/oboe_metal/oboe_noop.so
|
27
|
-
ext/oboe_metal/src/bson
|
28
|
-
ext/oboe_metal/src/oboe.h
|
29
|
-
ext/oboe_metal/src/oboe.hpp
|
24
|
+
ext/oboe_metal/src/bson/
|
30
25
|
ext/oboe_metal/src/oboe_api.cpp
|
26
|
+
ext/oboe_metal/src/oboe.h
|
31
27
|
ext/oboe_metal/src/oboe_api.hpp
|
32
28
|
ext/oboe_metal/src/oboe_debug.h
|
33
|
-
ext/oboe_metal/src/oboe_wrap.cxx
|
34
29
|
ext/oboe_metal/src/oboe_swig_wrap.cc
|
35
|
-
ext/oboe_metal/test
|
30
|
+
ext/oboe_metal/test/build/
|
31
|
+
ext/oboe_metal/test/MakeFile
|
32
|
+
gemfiles/*.lock
|
33
|
+
gemfiles/.bundle/
|
36
34
|
gemfiles/vendor*
|
37
|
-
|
38
|
-
|
39
|
-
scrap*
|
40
|
-
swig*
|
41
|
-
vendor
|
42
|
-
ext/oboe_metal/experiments/
|
43
|
-
ext/oboe_metal/test/
|
44
|
-
test/run_tests/grpc_matrix/
|
35
|
+
lib/libappoptics_apm.so
|
36
|
+
vendor/
|
data/.travis.yml
CHANGED
@@ -10,11 +10,11 @@ env:
|
|
10
10
|
- DBTYPE=mysql2
|
11
11
|
|
12
12
|
rvm:
|
13
|
-
- 3.0.
|
14
|
-
- 2.7.
|
15
|
-
- 2.6.
|
16
|
-
- 2.5.
|
17
|
-
- 2.4.
|
13
|
+
- 3.0.2
|
14
|
+
- 2.7.4
|
15
|
+
- 2.6.8
|
16
|
+
- 2.5.8
|
17
|
+
- 2.4.10
|
18
18
|
# - ruby-head
|
19
19
|
# - jruby-9.0.5.0
|
20
20
|
|
@@ -24,26 +24,26 @@ gemfile:
|
|
24
24
|
- gemfiles/instrumentation_mocked.gemfile
|
25
25
|
- gemfiles/instrumentation_mocked_oldgems.gemfile
|
26
26
|
- gemfiles/frameworks.gemfile
|
27
|
-
- gemfiles/rails61.gemfile
|
28
27
|
- gemfiles/rails60.gemfile
|
29
28
|
- gemfiles/rails52.gemfile
|
30
29
|
- gemfiles/rails42.gemfile
|
30
|
+
- gemfiles/profiling.gemfile
|
31
31
|
- gemfiles/delayed_job.gemfile
|
32
32
|
- gemfiles/noop.gemfile
|
33
33
|
|
34
34
|
matrix:
|
35
35
|
exclude:
|
36
|
-
- rvm:
|
36
|
+
- rvm: 3.0.2
|
37
37
|
gemfile: gemfiles/rails42.gemfile
|
38
|
-
- rvm:
|
38
|
+
- rvm: 3.0.2
|
39
|
+
gemfile: gemfiles/rails52.gemfile
|
40
|
+
- rvm: 2.7.4
|
39
41
|
gemfile: gemfiles/rails42.gemfile
|
40
|
-
- rvm: 2.6.
|
42
|
+
- rvm: 2.6.8
|
41
43
|
gemfile: gemfiles/rails42.gemfile
|
42
|
-
- rvm: 2.4.
|
43
|
-
gemfile: gemfiles/rails61.gemfile
|
44
|
-
- rvm: 2.4.5
|
44
|
+
- rvm: 2.4.10
|
45
45
|
gemfile: gemfiles/rails60.gemfile
|
46
|
-
- rvm: 2.4.
|
46
|
+
- rvm: 2.4.10 # excluding because of new sprockets version (4.0.0)
|
47
47
|
gemfile: gemfiles/rails52.gemfile
|
48
48
|
|
49
49
|
- gemfile: gemfiles/unit.gemfile
|
@@ -58,6 +58,8 @@ matrix:
|
|
58
58
|
env: DBTYPE=mysql2
|
59
59
|
- gemfile: gemfiles/frameworks.gemfile
|
60
60
|
env: DBTYPE=mysql2
|
61
|
+
- gemfile: gemfiles/profiling.gemfile
|
62
|
+
env: DBTYPE=mysql2
|
61
63
|
- gemfile: gemfiles/delayed_job.gemfile
|
62
64
|
env: DBTYPE=mysql2
|
63
65
|
allow_failures:
|
@@ -100,7 +102,8 @@ before_script:
|
|
100
102
|
# - export APPOPTICS_TOKEN_BUCKET_CAPACITY=1000
|
101
103
|
# - export APPOPTICS_TOKEN_BUCKET_RATE=1000
|
102
104
|
- export APPOPTICS_FROM_S3=true
|
103
|
-
- export
|
105
|
+
# - export OBOE_WIP=true
|
106
|
+
# - export OBOE_VERSION=10.0.1
|
104
107
|
|
105
108
|
# - bundle update --jobs=3 --retry=3
|
106
109
|
- ./.travis/bundle.sh
|
data/Gemfile
CHANGED
@@ -6,33 +6,9 @@ source 'https://rubygems.org'
|
|
6
6
|
gem 'rake', '>= 0.9.0'
|
7
7
|
|
8
8
|
group :development, :test do
|
9
|
-
# gem 'benchmark-ips', '>= 2.7.2'
|
10
|
-
# gem 'bson'
|
11
9
|
gem 'byebug', '>= 8.0.0'
|
12
|
-
# gem 'debugger', :platform => :mri_19
|
13
|
-
# gem 'get_process_mem'
|
14
10
|
gem 'irb', '>= 1.0.0' # if RUBY_VERSION >= '2.6.0'
|
15
|
-
|
16
|
-
# gem 'minitest'
|
17
|
-
# gem 'minitest-debugger', :require => false
|
18
|
-
# gem 'minitest-focus', '>=1.1.2'
|
19
|
-
# gem 'minitest-hooks', '>= 1.5.0'
|
20
|
-
# gem 'minitest-reporters', '< 1.0.18'
|
21
|
-
# gem 'mocha'
|
22
|
-
# gem 'puma'
|
23
|
-
# gem 'rack-test'
|
24
|
-
# gem 'rubocop', require: false
|
25
|
-
# gem 'ruby-debug', :platforms => :jruby
|
26
|
-
# gem 'ruby-prof'
|
27
|
-
# gem 'simplecov', '>= 0.16.0'
|
28
|
-
# gem 'simplecov-console'
|
29
|
-
# gem 'webmock' if RUBY_VERSION >= '2.0.0'
|
30
|
-
|
31
|
-
# if defined?(JRUBY_VERSION)
|
32
|
-
# gem 'sinatra', :require => false
|
33
|
-
# else
|
34
|
-
# gem 'sinatra'
|
35
|
-
# end
|
11
|
+
gem 'memory_profiler'
|
36
12
|
end
|
37
13
|
|
38
14
|
gemspec
|
data/README.md
CHANGED
@@ -13,13 +13,11 @@ It requires an [AppOptics](https://www.appoptics.com/) account to view metrics.
|
|
13
13
|
|
14
14
|
[](https://badge.fury.io/rb/appoptics_apm)
|
15
15
|
|
16
|
-
[
|
16
|
+
[](https://github.com/appoptics/appoptics-apm-ruby/actions/workflows/run_tests.yml)
|
17
|
+
[](https://github.com/appoptics/appoptics-apm-ruby/actions/workflows/run_cpluplus_tests.yml)
|
17
18
|
|
18
19
|
[comment]: <> ([](https://codeclimate.com/github/appoptics/appoptics-apm-ruby/maintainability))
|
19
20
|
|
20
|
-
_Note: The repository is now at https://github.com/appoptics/appoptics-apm-ruby Please update your github remotes with
|
21
|
-
`git remote set-url origin git@github.com:appoptics/appoptics-apm-ruby.git`._
|
22
|
-
|
23
21
|
# Documentation
|
24
22
|
|
25
23
|
* [AppOptics Knowledge Base](https://docs.appoptics.com/kb/apm_tracing/ruby)
|
@@ -236,7 +234,7 @@ Find more details in the [RubyDoc page](https://www.rubydoc.info/gems/appoptics_
|
|
236
234
|
# Support
|
237
235
|
|
238
236
|
If you run into a problem, find a bug, or would like to request an enhancement, feel free to contact our tech support
|
239
|
-
[
|
237
|
+
[technicalsupport@solarwinds.com](technicalsupport@solarwinds.com).
|
240
238
|
|
241
239
|
# Contributing
|
242
240
|
|
@@ -392,4 +390,4 @@ See the README in the test directory.
|
|
392
390
|
|
393
391
|
Copyright (c) 2018 SolarWinds, LLC
|
394
392
|
|
395
|
-
Released under the [
|
393
|
+
Released under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
data/appoptics_apm.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.license = "Apache-2.0"
|
10
10
|
|
11
11
|
s.authors = ["Maia Engeli", "Peter Giacomo Lombardo", "Spiros Eliopoulos"]
|
12
|
-
s.email = %q{
|
12
|
+
s.email = %q{technicalsupport@solarwinds.com}
|
13
13
|
s.homepage = %q{https://www.appoptics.com/}
|
14
14
|
s.summary = %q{AppOptics APM performance instrumentation gem for Ruby}
|
15
15
|
s.description = <<-EOF
|
@@ -32,7 +32,10 @@ Automatic tracing and metrics for Ruby applications. Get started at appoptics.co
|
|
32
32
|
'ext/oboe_metal/src/oboe_swig_wrap.cc',
|
33
33
|
'ext/oboe_metal/src/bson/bson.h',
|
34
34
|
'ext/oboe_metal/src/bson/platform_hacks.h',
|
35
|
-
'ext/oboe_metal/src/VERSION'
|
35
|
+
'ext/oboe_metal/src/VERSION',
|
36
|
+
'ext/oboe_metal/lib/liboboe-1.0-alpine-x86_64.so.0.0.0.sha256',
|
37
|
+
'ext/oboe_metal/lib/liboboe-1.0-x86_64.so.0.0.0.sha256'
|
38
|
+
]
|
36
39
|
s.files -= ['build_gem.sh',
|
37
40
|
'build_gem_upload_to_packagecloud.sh',
|
38
41
|
'Rakefile']
|
@@ -43,17 +46,20 @@ Automatic tracing and metrics for Ruby applications. Get started at appoptics.co
|
|
43
46
|
|
44
47
|
s.extensions = ['ext/oboe_metal/extconf.rb'] unless defined?(JRUBY_VERSION)
|
45
48
|
|
46
|
-
|
49
|
+
# this still gives a warning, would have to be pinned to a minor version
|
50
|
+
# but that is not necessary and may restrict other gems
|
51
|
+
s.add_runtime_dependency('json', '~> 2.0')
|
47
52
|
s.add_runtime_dependency('no_proxy_fix', '~> 0.1.2', '>= 0.1.2')
|
48
53
|
|
49
54
|
# Development dependencies used in gem development & testing
|
50
55
|
# s.add_development_dependency('rake', '>= 0.9.0')
|
51
56
|
# s.add_development_dependency('simplecov', '>= 0.16.0') if ENV["SIMPLECOV_COVERAGE"]
|
52
57
|
# s.add_development_dependency('simplecov-console', '>= 0.4.0') if ENV["SIMPLECOV_COVERAGE"]
|
53
|
-
# s.add_development_dependency('irb', '>= 1.0.0') if RUBY_VERSION >= '2.6.0'
|
58
|
+
# s.add_development_dependency('irb', '>= 1.0.0', '< 1.2.2') if RUBY_VERSION >= '2.6.0'
|
54
59
|
#
|
55
60
|
# unless defined?(JRUBY_VERSION)
|
56
|
-
# s.add_development_dependency('byebug', '>=
|
61
|
+
# s.add_development_dependency('byebug', '>= 11.0.0')
|
62
|
+
# s.add_development_dependency('minitest')
|
57
63
|
# s.add_development_dependency('minitest-hooks', '>= 1.5.0')
|
58
64
|
# s.add_development_dependency('minitest-focus', '>=1.1.2')
|
59
65
|
# s.add_development_dependency('benchmark-ips', '>= 2.7.2')
|
data/examples/prepend.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'appoptics_apm'
|
2
|
+
|
3
|
+
module Measurements
|
4
|
+
def request(*args, &block)
|
5
|
+
req = args.first
|
6
|
+
AppOpticsAPM::SDK.summary_metric("request_size", req.to_hash.to_s.size)
|
7
|
+
resp = super
|
8
|
+
AppOpticsAPM::SDK.summary_metric("response_size", resp.to_hash.to_s.size)
|
9
|
+
return resp
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Net::HTTP.send(:prepend, :Measurements)
|
data/examples/sdk_examples.rb
CHANGED
@@ -140,3 +140,19 @@ AppOpticsAPM::SDK.start_trace('log_trace_id') do
|
|
140
140
|
trace = AppOpticsAPM::SDK.current_trace
|
141
141
|
AppOpticsAPM.logger.warn "Some log message #{trace.for_log}"
|
142
142
|
end
|
143
|
+
|
144
|
+
###############################################################
|
145
|
+
# START A TRACE AND PROFILE
|
146
|
+
###############################################################
|
147
|
+
#
|
148
|
+
# AppOpticsAPM::Profiling.run
|
149
|
+
# This method adds profiling for the code executed in the block
|
150
|
+
|
151
|
+
AppOpticsAPM::SDK.start_trace("#{name}_profiling") do
|
152
|
+
AppOpticsAPM::Profiling.run do
|
153
|
+
10.times do
|
154
|
+
[9, 6, 12, 2, 7, 1, 9, 3, 4, 14, 5, 8].sort
|
155
|
+
sleep 0.2
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|