solarwinds_apm 5.0.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.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/.dockerignore +5 -0
  3. data/.github/ISSUE_TEMPLATE/bug-or-feature-request.md +16 -0
  4. data/.github/workflows/build_and_release_gem.yml +112 -0
  5. data/.github/workflows/build_for_packagecloud.yml +70 -0
  6. data/.github/workflows/docker-images.yml +47 -0
  7. data/.github/workflows/run_cpluplus_tests.yml +73 -0
  8. data/.github/workflows/run_tests.yml +155 -0
  9. data/.github/workflows/scripts/test_install.rb +23 -0
  10. data/.github/workflows/swig/swig-v4.0.2.tar.gz +0 -0
  11. data/.github/workflows/test_on_4_linux.yml +161 -0
  12. data/.gitignore +39 -0
  13. data/.rubocop.yml +29 -0
  14. data/.yardopts +7 -0
  15. data/CHANGELOG.md +769 -0
  16. data/CONFIG.md +31 -0
  17. data/Gemfile +14 -0
  18. data/LICENSE +202 -0
  19. data/README.md +383 -0
  20. data/bin/solarwinds_apm_config +15 -0
  21. data/examples/prepend.rb +13 -0
  22. data/examples/sdk_examples.rb +158 -0
  23. data/ext/oboe_metal/README.md +69 -0
  24. data/ext/oboe_metal/extconf.rb +141 -0
  25. data/ext/oboe_metal/extconf_local.rb +75 -0
  26. data/ext/oboe_metal/lib/.keep +0 -0
  27. data/ext/oboe_metal/lib/liboboe-1.0-alpine-x86_64.so.0.0.0.sha256 +1 -0
  28. data/ext/oboe_metal/lib/liboboe-1.0-x86_64.so.0.0.0.sha256 +1 -0
  29. data/ext/oboe_metal/noop/noop.c +8 -0
  30. data/ext/oboe_metal/src/README.md +6 -0
  31. data/ext/oboe_metal/src/VERSION +2 -0
  32. data/ext/oboe_metal/src/bson/bson.h +220 -0
  33. data/ext/oboe_metal/src/bson/platform_hacks.h +91 -0
  34. data/ext/oboe_metal/src/frames.cc +247 -0
  35. data/ext/oboe_metal/src/frames.h +40 -0
  36. data/ext/oboe_metal/src/init_solarwinds_apm.cc +21 -0
  37. data/ext/oboe_metal/src/logging.cc +95 -0
  38. data/ext/oboe_metal/src/logging.h +35 -0
  39. data/ext/oboe_metal/src/oboe.h +1169 -0
  40. data/ext/oboe_metal/src/oboe_api.cpp +658 -0
  41. data/ext/oboe_metal/src/oboe_api.hpp +433 -0
  42. data/ext/oboe_metal/src/oboe_debug.h +59 -0
  43. data/ext/oboe_metal/src/oboe_swig_wrap.cc +7562 -0
  44. data/ext/oboe_metal/src/profiling.cc +435 -0
  45. data/ext/oboe_metal/src/profiling.h +78 -0
  46. data/ext/oboe_metal/test/CMakeLists.txt +53 -0
  47. data/ext/oboe_metal/test/FindGMock.cmake +43 -0
  48. data/ext/oboe_metal/test/README.md +56 -0
  49. data/ext/oboe_metal/test/frames_test.cc +164 -0
  50. data/ext/oboe_metal/test/profiling_test.cc +93 -0
  51. data/ext/oboe_metal/test/ruby_inc_dir.rb +8 -0
  52. data/ext/oboe_metal/test/ruby_prefix.rb +8 -0
  53. data/ext/oboe_metal/test/ruby_test_helper.rb +67 -0
  54. data/ext/oboe_metal/test/test.h +11 -0
  55. data/ext/oboe_metal/test/test_main.cc +32 -0
  56. data/init.rb +4 -0
  57. data/lib/oboe.rb +7 -0
  58. data/lib/oboe_metal.rb +172 -0
  59. data/lib/rails/generators/solarwinds_apm/install_generator.rb +47 -0
  60. data/lib/rails/generators/solarwinds_apm/templates/solarwinds_apm_initializer.rb +424 -0
  61. data/lib/solarwinds_apm/api/layerinit.rb +41 -0
  62. data/lib/solarwinds_apm/api/logging.rb +356 -0
  63. data/lib/solarwinds_apm/api/memcache.rb +37 -0
  64. data/lib/solarwinds_apm/api/metrics.rb +63 -0
  65. data/lib/solarwinds_apm/api/util.rb +98 -0
  66. data/lib/solarwinds_apm/api.rb +21 -0
  67. data/lib/solarwinds_apm/base.rb +160 -0
  68. data/lib/solarwinds_apm/config.rb +301 -0
  69. data/lib/solarwinds_apm/frameworks/grape.rb +96 -0
  70. data/lib/solarwinds_apm/frameworks/padrino.rb +78 -0
  71. data/lib/solarwinds_apm/frameworks/rails/inst/action_controller.rb +100 -0
  72. data/lib/solarwinds_apm/frameworks/rails/inst/action_controller5.rb +50 -0
  73. data/lib/solarwinds_apm/frameworks/rails/inst/action_controller_api.rb +50 -0
  74. data/lib/solarwinds_apm/frameworks/rails/inst/action_view.rb +88 -0
  75. data/lib/solarwinds_apm/frameworks/rails/inst/active_record.rb +26 -0
  76. data/lib/solarwinds_apm/frameworks/rails/inst/connection_adapters/mysql2.rb +29 -0
  77. data/lib/solarwinds_apm/frameworks/rails/inst/connection_adapters/postgresql.rb +22 -0
  78. data/lib/solarwinds_apm/frameworks/rails/inst/connection_adapters/utils5x.rb +103 -0
  79. data/lib/solarwinds_apm/frameworks/rails/inst/logger_formatters.rb +14 -0
  80. data/lib/solarwinds_apm/frameworks/rails.rb +100 -0
  81. data/lib/solarwinds_apm/frameworks/sinatra.rb +96 -0
  82. data/lib/solarwinds_apm/inst/bunny-client.rb +157 -0
  83. data/lib/solarwinds_apm/inst/bunny-consumer.rb +102 -0
  84. data/lib/solarwinds_apm/inst/curb.rb +288 -0
  85. data/lib/solarwinds_apm/inst/dalli.rb +89 -0
  86. data/lib/solarwinds_apm/inst/delayed_job.rb +100 -0
  87. data/lib/solarwinds_apm/inst/excon.rb +113 -0
  88. data/lib/solarwinds_apm/inst/faraday.rb +96 -0
  89. data/lib/solarwinds_apm/inst/graphql.rb +206 -0
  90. data/lib/solarwinds_apm/inst/grpc_client.rb +147 -0
  91. data/lib/solarwinds_apm/inst/grpc_server.rb +119 -0
  92. data/lib/solarwinds_apm/inst/httpclient.rb +181 -0
  93. data/lib/solarwinds_apm/inst/logger_formatter.rb +46 -0
  94. data/lib/solarwinds_apm/inst/logging_log_event.rb +24 -0
  95. data/lib/solarwinds_apm/inst/lumberjack_formatter.rb +9 -0
  96. data/lib/solarwinds_apm/inst/memcached.rb +86 -0
  97. data/lib/solarwinds_apm/inst/mongo.rb +246 -0
  98. data/lib/solarwinds_apm/inst/mongo2.rb +225 -0
  99. data/lib/solarwinds_apm/inst/moped.rb +466 -0
  100. data/lib/solarwinds_apm/inst/net_http.rb +60 -0
  101. data/lib/solarwinds_apm/inst/rack.rb +217 -0
  102. data/lib/solarwinds_apm/inst/rack_cache.rb +35 -0
  103. data/lib/solarwinds_apm/inst/redis.rb +273 -0
  104. data/lib/solarwinds_apm/inst/resque.rb +129 -0
  105. data/lib/solarwinds_apm/inst/rest-client.rb +43 -0
  106. data/lib/solarwinds_apm/inst/sequel.rb +241 -0
  107. data/lib/solarwinds_apm/inst/sidekiq-client.rb +63 -0
  108. data/lib/solarwinds_apm/inst/sidekiq-worker.rb +64 -0
  109. data/lib/solarwinds_apm/inst/typhoeus.rb +90 -0
  110. data/lib/solarwinds_apm/instrumentation.rb +22 -0
  111. data/lib/solarwinds_apm/loading.rb +65 -0
  112. data/lib/solarwinds_apm/logger.rb +14 -0
  113. data/lib/solarwinds_apm/noop/README.md +9 -0
  114. data/lib/solarwinds_apm/noop/context.rb +26 -0
  115. data/lib/solarwinds_apm/noop/metadata.rb +25 -0
  116. data/lib/solarwinds_apm/noop/profiling.rb +21 -0
  117. data/lib/solarwinds_apm/oboe_init_options.rb +191 -0
  118. data/lib/solarwinds_apm/ruby.rb +35 -0
  119. data/lib/solarwinds_apm/sdk/current_trace_info.rb +123 -0
  120. data/lib/solarwinds_apm/sdk/custom_metrics.rb +94 -0
  121. data/lib/solarwinds_apm/sdk/logging.rb +37 -0
  122. data/lib/solarwinds_apm/sdk/trace_context_headers.rb +69 -0
  123. data/lib/solarwinds_apm/sdk/tracing.rb +432 -0
  124. data/lib/solarwinds_apm/support/profiling.rb +22 -0
  125. data/lib/solarwinds_apm/support/trace_context.rb +53 -0
  126. data/lib/solarwinds_apm/support/trace_state.rb +69 -0
  127. data/lib/solarwinds_apm/support/trace_string.rb +89 -0
  128. data/lib/solarwinds_apm/support/transaction_metrics.rb +67 -0
  129. data/lib/solarwinds_apm/support/transaction_settings.rb +233 -0
  130. data/lib/solarwinds_apm/support/x_trace_options.rb +113 -0
  131. data/lib/solarwinds_apm/support.rb +12 -0
  132. data/lib/solarwinds_apm/support_report.rb +113 -0
  133. data/lib/solarwinds_apm/test.rb +165 -0
  134. data/lib/solarwinds_apm/thread_local.rb +26 -0
  135. data/lib/solarwinds_apm/util.rb +334 -0
  136. data/lib/solarwinds_apm/version.rb +17 -0
  137. data/lib/solarwinds_apm.rb +72 -0
  138. data/log/.keep +0 -0
  139. data/log/postgresql/.keep +0 -0
  140. data/solarwinds_apm.gemspec +52 -0
  141. data/yardoc_frontpage.md +24 -0
  142. metadata +228 -0
@@ -0,0 +1,24 @@
1
+ # Welcome to the SolarWindsAPM Ruby Gem
2
+
3
+
4
+ The solarwinds_apm gem provides automatic tracing and metrics for Ruby applications.
5
+ It requires an SolarWinds account: sign up for a free trial at https://cloud.solarwinds.com.
6
+
7
+ ## Documentation
8
+ https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent
9
+
10
+ ## Getting started
11
+ The gem instruments the ruby language and ruby on rails frameworks. It is hosted on RubyGems, making installation as
12
+ simple as: `gem install solarwinds_apm`.
13
+
14
+ Our ruby extension gets detailed insights out-of-the-box without any code modification.
15
+ For a list of instrumented gems and components see https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent
16
+
17
+ Detailled installation instructions for Ruby and different frameworks like Rails, Sinatra, Padrino, and Grape can be
18
+ found here https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-install
19
+
20
+ ## Custom instrumentation
21
+ If you have code or a library that is not on the platform support list, use our SDK (as documented here) to customize.
22
+
23
+
24
+
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solarwinds_apm
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Maia Engeli
8
+ - Peter Giacomo Lombardo
9
+ - Spiros Eliopoulos
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2022-04-29 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: json
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '2.0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: no_proxy_fix
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: 0.1.2
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: 0.1.2
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - "~>"
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.2
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 0.1.2
49
+ description: 'Automatic tracing and metrics for Ruby applications. Get started at
50
+ cloud.solarwinds.com
51
+
52
+ '
53
+ email: technicalsupport@solarwinds.com
54
+ executables:
55
+ - solarwinds_apm_config
56
+ extensions:
57
+ - ext/oboe_metal/extconf.rb
58
+ extra_rdoc_files:
59
+ - LICENSE
60
+ files:
61
+ - ".dockerignore"
62
+ - ".github/ISSUE_TEMPLATE/bug-or-feature-request.md"
63
+ - ".github/workflows/build_and_release_gem.yml"
64
+ - ".github/workflows/build_for_packagecloud.yml"
65
+ - ".github/workflows/docker-images.yml"
66
+ - ".github/workflows/run_cpluplus_tests.yml"
67
+ - ".github/workflows/run_tests.yml"
68
+ - ".github/workflows/scripts/test_install.rb"
69
+ - ".github/workflows/swig/swig-v4.0.2.tar.gz"
70
+ - ".github/workflows/test_on_4_linux.yml"
71
+ - ".gitignore"
72
+ - ".rubocop.yml"
73
+ - ".yardopts"
74
+ - CHANGELOG.md
75
+ - CONFIG.md
76
+ - Gemfile
77
+ - LICENSE
78
+ - README.md
79
+ - bin/solarwinds_apm_config
80
+ - examples/prepend.rb
81
+ - examples/sdk_examples.rb
82
+ - ext/oboe_metal/README.md
83
+ - ext/oboe_metal/extconf.rb
84
+ - ext/oboe_metal/extconf_local.rb
85
+ - ext/oboe_metal/lib/.keep
86
+ - ext/oboe_metal/lib/liboboe-1.0-alpine-x86_64.so.0.0.0.sha256
87
+ - ext/oboe_metal/lib/liboboe-1.0-x86_64.so.0.0.0.sha256
88
+ - ext/oboe_metal/noop/noop.c
89
+ - ext/oboe_metal/src/README.md
90
+ - ext/oboe_metal/src/VERSION
91
+ - ext/oboe_metal/src/bson/bson.h
92
+ - ext/oboe_metal/src/bson/platform_hacks.h
93
+ - ext/oboe_metal/src/frames.cc
94
+ - ext/oboe_metal/src/frames.h
95
+ - ext/oboe_metal/src/init_solarwinds_apm.cc
96
+ - ext/oboe_metal/src/logging.cc
97
+ - ext/oboe_metal/src/logging.h
98
+ - ext/oboe_metal/src/oboe.h
99
+ - ext/oboe_metal/src/oboe_api.cpp
100
+ - ext/oboe_metal/src/oboe_api.hpp
101
+ - ext/oboe_metal/src/oboe_debug.h
102
+ - ext/oboe_metal/src/oboe_swig_wrap.cc
103
+ - ext/oboe_metal/src/profiling.cc
104
+ - ext/oboe_metal/src/profiling.h
105
+ - ext/oboe_metal/test/CMakeLists.txt
106
+ - ext/oboe_metal/test/FindGMock.cmake
107
+ - ext/oboe_metal/test/README.md
108
+ - ext/oboe_metal/test/frames_test.cc
109
+ - ext/oboe_metal/test/profiling_test.cc
110
+ - ext/oboe_metal/test/ruby_inc_dir.rb
111
+ - ext/oboe_metal/test/ruby_prefix.rb
112
+ - ext/oboe_metal/test/ruby_test_helper.rb
113
+ - ext/oboe_metal/test/test.h
114
+ - ext/oboe_metal/test/test_main.cc
115
+ - init.rb
116
+ - lib/oboe.rb
117
+ - lib/oboe_metal.rb
118
+ - lib/rails/generators/solarwinds_apm/install_generator.rb
119
+ - lib/rails/generators/solarwinds_apm/templates/solarwinds_apm_initializer.rb
120
+ - lib/solarwinds_apm.rb
121
+ - lib/solarwinds_apm/api.rb
122
+ - lib/solarwinds_apm/api/layerinit.rb
123
+ - lib/solarwinds_apm/api/logging.rb
124
+ - lib/solarwinds_apm/api/memcache.rb
125
+ - lib/solarwinds_apm/api/metrics.rb
126
+ - lib/solarwinds_apm/api/util.rb
127
+ - lib/solarwinds_apm/base.rb
128
+ - lib/solarwinds_apm/config.rb
129
+ - lib/solarwinds_apm/frameworks/grape.rb
130
+ - lib/solarwinds_apm/frameworks/padrino.rb
131
+ - lib/solarwinds_apm/frameworks/rails.rb
132
+ - lib/solarwinds_apm/frameworks/rails/inst/action_controller.rb
133
+ - lib/solarwinds_apm/frameworks/rails/inst/action_controller5.rb
134
+ - lib/solarwinds_apm/frameworks/rails/inst/action_controller_api.rb
135
+ - lib/solarwinds_apm/frameworks/rails/inst/action_view.rb
136
+ - lib/solarwinds_apm/frameworks/rails/inst/active_record.rb
137
+ - lib/solarwinds_apm/frameworks/rails/inst/connection_adapters/mysql2.rb
138
+ - lib/solarwinds_apm/frameworks/rails/inst/connection_adapters/postgresql.rb
139
+ - lib/solarwinds_apm/frameworks/rails/inst/connection_adapters/utils5x.rb
140
+ - lib/solarwinds_apm/frameworks/rails/inst/logger_formatters.rb
141
+ - lib/solarwinds_apm/frameworks/sinatra.rb
142
+ - lib/solarwinds_apm/inst/bunny-client.rb
143
+ - lib/solarwinds_apm/inst/bunny-consumer.rb
144
+ - lib/solarwinds_apm/inst/curb.rb
145
+ - lib/solarwinds_apm/inst/dalli.rb
146
+ - lib/solarwinds_apm/inst/delayed_job.rb
147
+ - lib/solarwinds_apm/inst/excon.rb
148
+ - lib/solarwinds_apm/inst/faraday.rb
149
+ - lib/solarwinds_apm/inst/graphql.rb
150
+ - lib/solarwinds_apm/inst/grpc_client.rb
151
+ - lib/solarwinds_apm/inst/grpc_server.rb
152
+ - lib/solarwinds_apm/inst/httpclient.rb
153
+ - lib/solarwinds_apm/inst/logger_formatter.rb
154
+ - lib/solarwinds_apm/inst/logging_log_event.rb
155
+ - lib/solarwinds_apm/inst/lumberjack_formatter.rb
156
+ - lib/solarwinds_apm/inst/memcached.rb
157
+ - lib/solarwinds_apm/inst/mongo.rb
158
+ - lib/solarwinds_apm/inst/mongo2.rb
159
+ - lib/solarwinds_apm/inst/moped.rb
160
+ - lib/solarwinds_apm/inst/net_http.rb
161
+ - lib/solarwinds_apm/inst/rack.rb
162
+ - lib/solarwinds_apm/inst/rack_cache.rb
163
+ - lib/solarwinds_apm/inst/redis.rb
164
+ - lib/solarwinds_apm/inst/resque.rb
165
+ - lib/solarwinds_apm/inst/rest-client.rb
166
+ - lib/solarwinds_apm/inst/sequel.rb
167
+ - lib/solarwinds_apm/inst/sidekiq-client.rb
168
+ - lib/solarwinds_apm/inst/sidekiq-worker.rb
169
+ - lib/solarwinds_apm/inst/typhoeus.rb
170
+ - lib/solarwinds_apm/instrumentation.rb
171
+ - lib/solarwinds_apm/loading.rb
172
+ - lib/solarwinds_apm/logger.rb
173
+ - lib/solarwinds_apm/noop/README.md
174
+ - lib/solarwinds_apm/noop/context.rb
175
+ - lib/solarwinds_apm/noop/metadata.rb
176
+ - lib/solarwinds_apm/noop/profiling.rb
177
+ - lib/solarwinds_apm/oboe_init_options.rb
178
+ - lib/solarwinds_apm/ruby.rb
179
+ - lib/solarwinds_apm/sdk/current_trace_info.rb
180
+ - lib/solarwinds_apm/sdk/custom_metrics.rb
181
+ - lib/solarwinds_apm/sdk/logging.rb
182
+ - lib/solarwinds_apm/sdk/trace_context_headers.rb
183
+ - lib/solarwinds_apm/sdk/tracing.rb
184
+ - lib/solarwinds_apm/support.rb
185
+ - lib/solarwinds_apm/support/profiling.rb
186
+ - lib/solarwinds_apm/support/trace_context.rb
187
+ - lib/solarwinds_apm/support/trace_state.rb
188
+ - lib/solarwinds_apm/support/trace_string.rb
189
+ - lib/solarwinds_apm/support/transaction_metrics.rb
190
+ - lib/solarwinds_apm/support/transaction_settings.rb
191
+ - lib/solarwinds_apm/support/x_trace_options.rb
192
+ - lib/solarwinds_apm/support_report.rb
193
+ - lib/solarwinds_apm/test.rb
194
+ - lib/solarwinds_apm/thread_local.rb
195
+ - lib/solarwinds_apm/util.rb
196
+ - lib/solarwinds_apm/version.rb
197
+ - log/.keep
198
+ - log/postgresql/.keep
199
+ - solarwinds_apm.gemspec
200
+ - yardoc_frontpage.md
201
+ homepage: https://cloud.solarwinds.com/
202
+ licenses:
203
+ - Apache-2.0
204
+ metadata:
205
+ changelog_uri: https://github.com/appoptics/appoptics-apm-ruby/releases
206
+ documentation_uri: https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent
207
+ homepage_uri: https://cloud.solarwinds.com/
208
+ source_code_uri: https://github.com/appoptics/appoptics-apm-ruby
209
+ post_install_message:
210
+ rdoc_options: []
211
+ require_paths:
212
+ - lib
213
+ required_ruby_version: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - ">="
216
+ - !ruby/object:Gem::Version
217
+ version: 2.5.0
218
+ required_rubygems_version: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ requirements: []
224
+ rubygems_version: 3.1.6
225
+ signing_key:
226
+ specification_version: 4
227
+ summary: SolarWindsAPM performance instrumentation gem for Ruby
228
+ test_files: []