oneapm_rpm 1.3.6 → 1.3.7.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +8 -8
  2. data/lib/one_apm/agent/agent/start_worker_thread.rb +8 -8
  3. data/lib/one_apm/agent/cross_app/cross_app_monitor.rb +2 -2
  4. data/lib/one_apm/agent/cross_app/cross_app_tracing.rb +2 -2
  5. data/lib/one_apm/agent/database.rb +17 -17
  6. data/lib/one_apm/agent/database/obfuscation_helpers.rb +13 -13
  7. data/lib/one_apm/agent/database/obfuscator.rb +5 -5
  8. data/lib/one_apm/agent/database/postgres_explain_obfuscator.rb +4 -4
  9. data/lib/one_apm/agent/datastore/metric_helper.rb +12 -12
  10. data/lib/one_apm/agent/datastore/mongo/command_formatter.rb +6 -6
  11. data/lib/one_apm/agent/datastore/mongo/metric_translator.rb +6 -6
  12. data/lib/one_apm/agent/datastore/mongo/obfuscator.rb +2 -2
  13. data/lib/one_apm/agent/datastore/mongo/statement_formatter.rb +4 -4
  14. data/lib/one_apm/agent/javascript_instrumentor.rb +22 -22
  15. data/lib/one_apm/agent/synthetics_monitor.rb +7 -7
  16. data/lib/one_apm/agent/threading/thread_profile.rb +2 -2
  17. data/lib/one_apm/collector/collector/http_connection.rb +4 -4
  18. data/lib/one_apm/collector/collector_service.rb +1 -1
  19. data/lib/one_apm/collector/commands/thread_profiler_session.rb +4 -4
  20. data/lib/one_apm/collector/containers/agent_command_router.rb +4 -4
  21. data/lib/one_apm/collector/containers/custom_event_aggregator.rb +10 -10
  22. data/lib/one_apm/collector/containers/error_collector.rb +4 -4
  23. data/lib/one_apm/collector/containers/sql_sampler.rb +2 -2
  24. data/lib/one_apm/collector/containers/transaction_event_aggregator.rb +36 -36
  25. data/lib/one_apm/collector/containers/transaction_sampler.rb +4 -4
  26. data/lib/one_apm/collector/containers/utilization_data.rb +1 -1
  27. data/lib/one_apm/collector/samplers/delayed_job_sampler.rb +7 -7
  28. data/lib/one_apm/collector/samplers/vm_sampler.rb +18 -18
  29. data/lib/one_apm/collector/stats_engine/gc_profiler.rb +6 -6
  30. data/lib/one_apm/collector/stats_engine/metric_stats.rb +1 -1
  31. data/lib/one_apm/collector/support/proc_poller.rb +2 -2
  32. data/lib/one_apm/configuration.rb +2 -2
  33. data/lib/one_apm/configuration/default_source.rb +2 -2
  34. data/lib/one_apm/configuration/environment_source.rb +5 -5
  35. data/lib/one_apm/configuration/high_security_source.rb +7 -7
  36. data/lib/one_apm/errors/noticed_error.rb +2 -2
  37. data/lib/one_apm/inst/dispatcher/puma.rb +7 -4
  38. data/lib/one_apm/inst/framework/grape.rb +9 -9
  39. data/lib/one_apm/inst/framework/sinatra/transaction_namer.rb +2 -2
  40. data/lib/one_apm/inst/http_clients/curb.rb +2 -2
  41. data/lib/one_apm/inst/http_clients/excon.rb +7 -7
  42. data/lib/one_apm/inst/http_clients/httpclient.rb +2 -2
  43. data/lib/one_apm/inst/http_clients/typhoeus.rb +2 -2
  44. data/lib/one_apm/inst/nosql/memcache.rb +5 -5
  45. data/lib/one_apm/inst/nosql/mongo2.rb +8 -8
  46. data/lib/one_apm/inst/orm/active_record.rb +2 -2
  47. data/lib/one_apm/inst/rails3/action_controller.rb +1 -1
  48. data/lib/one_apm/inst/rails4/action_view_subscriber.rb +2 -2
  49. data/lib/one_apm/inst/rails4/active_record_subscriber.rb +3 -3
  50. data/lib/one_apm/inst/support/queue_time.rb +14 -14
  51. data/lib/one_apm/logger/agent_logger.rb +4 -4
  52. data/lib/one_apm/metrics/metric_spec.rb +10 -10
  53. data/lib/one_apm/rack/browser_monitoring.rb +135 -144
  54. data/lib/one_apm/rack/developer_mode.rb +22 -33
  55. data/lib/one_apm/rack/developer_mode/helper.rb +1 -1
  56. data/lib/one_apm/rack/middleware_base.rb +2 -0
  57. data/lib/one_apm/rack/middleware_helper.rb +21 -0
  58. data/lib/one_apm/rack/middleware_hooks.rb +10 -8
  59. data/lib/one_apm/rack/middleware_tracing.rb +47 -44
  60. data/lib/one_apm/rack/middleware_wrapper.rb +63 -57
  61. data/lib/one_apm/support/backtrace/backtrace_node.rb +4 -4
  62. data/lib/one_apm/support/backtrace/backtrace_service.rb +7 -7
  63. data/lib/one_apm/support/collection_helper.rb +4 -4
  64. data/lib/one_apm/support/event_buffer/synthetics_event_buffer.rb +2 -2
  65. data/lib/one_apm/support/json_marshaller.rb +2 -2
  66. data/lib/one_apm/support/method_tracer.rb +2 -2
  67. data/lib/one_apm/support/method_tracer/helpers.rb +2 -2
  68. data/lib/one_apm/support/obfuscator.rb +5 -5
  69. data/lib/one_apm/support/rules_engine.rb +2 -2
  70. data/lib/one_apm/support/rules_engine/replacement_rule.rb +4 -4
  71. data/lib/one_apm/support/rules_engine/segment_terms_rule.rb +8 -8
  72. data/lib/one_apm/support/supported_versions.rb +9 -13
  73. data/lib/one_apm/support/vm/rubinius_vm.rb +1 -1
  74. data/lib/one_apm/transaction.rb +8 -8
  75. data/lib/one_apm/transaction/class_methods.rb +8 -8
  76. data/lib/one_apm/transaction/instance_helpers.rb +1 -1
  77. data/lib/one_apm/transaction/metric_constants.rb +27 -27
  78. data/lib/one_apm/transaction/sample_buffer/developer_mode_sample_buffer.rb +3 -3
  79. data/lib/one_apm/transaction/sample_buffer/force_persist_sample_buffer.rb +2 -2
  80. data/lib/one_apm/transaction/sample_buffer/slowest_sample_buffer.rb +2 -2
  81. data/lib/one_apm/transaction/sample_buffer/transaction_sample_buffer.rb +3 -3
  82. data/lib/one_apm/transaction/segment.rb +2 -2
  83. data/lib/one_apm/transaction/transaction_finish_append.rb +3 -3
  84. data/lib/one_apm/transaction/transaction_jruby_functions.rb +3 -3
  85. data/lib/one_apm/transaction/transaction_name.rb +3 -3
  86. data/lib/one_apm/transaction/transaction_namer.rb +7 -7
  87. data/lib/one_apm/transaction/transaction_sample_builder.rb +3 -3
  88. data/lib/one_apm/transaction/transaction_summary.rb +4 -4
  89. data/lib/one_apm/transaction/transaction_timings.rb +1 -1
  90. data/lib/one_apm/version.rb +3 -2
  91. metadata +3 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTExMGZiZWY1OWJhYjhkMDA3OGU5ZGYzODg2OTdjNDhjMTUzOTVjZA==
4
+ MmM5MDg1YzYyMWM0ZGNiZTdiNzY2OTBhYmZmNDIzODIwOGExNGVjNg==
5
5
  data.tar.gz: !binary |-
6
- ODM2MDJmYTM0ZWQ3NDZkMWE1YTA1ZDQ1MGJhMDU2Mjk2MDc1NmMyYg==
6
+ NTY4ZjZhNzI3MWIwYmNhMDJhNTg1MDVhMTk2MzgzMWU2ODM5ZjQzMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDg1ZmFhMDA5YjcyYjQzYTFhZmQzN2RhNGFhM2E0ZjIxOWM4ZTFmYTY0ZDUw
10
- N2QzYmRhOTk1ZDhhNmNmMjM0MzA4Y2Y3MGE2NzcyYTFhMmE2ZThiMTRlM2Fk
11
- OTEwMDdkYmRkOGI2OGY0ZDFjODlhY2RmMTc5NjQxNzE2ZmIyZTg=
9
+ OTBjMTIxZTlkZTMzODM4YjdlNzgxMWM4MjY3ZGFlNzM2YjM3MTJkYjFiNDhl
10
+ NjBkNWZlMzA0NGQzZDZhMGRmNjVlZTQxMDg1NzRmMmM0YjRlOWU5MTc0ZTEw
11
+ OWMyZmZmZjViNjQ5OTg3YmNmZTExOTIzYTYxNTMwM2M3ZjdkNDg=
12
12
  data.tar.gz: !binary |-
13
- ODkxOGFjYmMyZjZlOTczYjdiODFmNDhjZDRkMzYxMjA0Mzc3ZDRmY2I4NjNm
14
- YmQxYjZmODMwNDNiZjE0OThlZmJiNjQ3NTgxMDY5YTcwMDkxMDk3MTYyZjIw
15
- NjBhMTczNWU3NjU2MDI3YzM2NmZjNjg5M2VjODhiZDFmN2ZiMjQ=
13
+ NjJkYWQzZDNiMjczMTVjMGJhMjgzMzAzMzFhN2MyNWNkNjIyZWJiMDg0OTM2
14
+ N2ZkYzgxMjRhNzkxYTQ2NDE3MjNhNjEwYWU2YTA0Y2IzYWUyNjFhZWQ1MWYy
15
+ YTAyMmJhZmY0M2MxZDIyMGZmYzU5MWY5YmRmNmQ3NzQ4NmFjM2Y=
@@ -5,9 +5,9 @@ module OneApm
5
5
  class Agent
6
6
  module StartWorkerThread
7
7
 
8
- MIN_ALLOWED_REPORT_PERIOD = 1.0
9
- UTILIZATION_REPORT_PERIOD = 30 * 60
10
- LOG_ONCE_KEYS_RESET_PERIOD = 60.0
8
+ OA_MIN_ALLOWED_REPORT_PERIOD = 1.0
9
+ OA_UTILIZATION_REPORT_PERIOD = 30 * 60
10
+ OA_LOG_ONCE_KEYS_RESET_PERIOD = 60.0
11
11
 
12
12
  def start_worker_thread(connection_options = {})
13
13
  if disable = OneApm::Manager.config[:disable_harvest_thread]
@@ -44,14 +44,14 @@ module OneApm
44
44
 
45
45
  @event_loop.fire_every(Manager.config[:data_report_period], :report_data)
46
46
  @event_loop.fire_every(report_period_for(:analytic_event_data), :report_event_data)
47
- @event_loop.fire_every(LOG_ONCE_KEYS_RESET_PERIOD, :reset_log_once_keys)
47
+ @event_loop.fire_every(OA_LOG_ONCE_KEYS_RESET_PERIOD, :reset_log_once_keys)
48
48
  @event_loop.fire_every(Manager.config[:data_report_period], :detect_config)
49
49
 
50
50
  if OneApm::Manager.config[:collect_utilization] && !in_resque_child_process?
51
51
  @event_loop.on(:report_utilization_data) { transmit_utilization_data }
52
52
 
53
53
  @event_loop.fire(:report_utilization_data)
54
- @event_loop.fire_every(UTILIZATION_REPORT_PERIOD, :report_utilization_data)
54
+ @event_loop.fire_every(OA_UTILIZATION_REPORT_PERIOD, :report_utilization_data)
55
55
  end
56
56
 
57
57
  @event_loop.run
@@ -68,9 +68,9 @@ module OneApm
68
68
  period = OneApm::Manager.config[:data_report_period]
69
69
  OneApm::Manager.logger.warn("Could not find configured period for #{method}, falling back to data_report_period (#{period} s)")
70
70
  end
71
- if period < MIN_ALLOWED_REPORT_PERIOD
72
- OneApm::Manager.logger.warn("Configured #{config_key} was #{period}, but minimum allowed is #{MIN_ALLOWED_REPORT_PERIOD}, using #{MIN_ALLOWED_REPORT_PERIOD}.")
73
- period = MIN_ALLOWED_REPORT_PERIOD
71
+ if period < OA_MIN_ALLOWED_REPORT_PERIOD
72
+ OneApm::Manager.logger.warn("Configured #{config_key} was #{period}, but minimum allowed is #{OA_MIN_ALLOWED_REPORT_PERIOD}, using #{OA_MIN_ALLOWED_REPORT_PERIOD}.")
73
+ period = OA_MIN_ALLOWED_REPORT_PERIOD
74
74
  end
75
75
  period
76
76
  end
@@ -16,7 +16,7 @@ module OneApm
16
16
 
17
17
  ONEAPM_ID_HEADER_KEY = 'HTTP_X_ONEAPM_ID'.freeze
18
18
  ONEAPM_TXN_HEADER_KEY = 'HTTP_X_ONEAPM_TRANSACTION'.freeze
19
- CONTENT_LENGTH_HEADER_KEY = 'HTTP_CONTENT_LENGTH'.freeze
19
+ OA_CONTENT_LENGTH_HEADER_KEY = 'HTTP_CONTENT_LENGTH'.freeze
20
20
 
21
21
  def on_finished_configuring(events)
22
22
  register_event_listeners(events)
@@ -163,7 +163,7 @@ module OneApm
163
163
  end
164
164
 
165
165
  def content_length_from_request(request)
166
- request[CONTENT_LENGTH_HEADER_KEY] || -1
166
+ request[OA_CONTENT_LENGTH_HEADER_KEY] || -1
167
167
  end
168
168
 
169
169
  def hash_transaction_name(identifier)
@@ -20,7 +20,7 @@ module OneApm
20
20
  OA_SYNTHETICS_HEADER = 'X-OneApm-Synthetics'
21
21
 
22
22
  # The index of the transaction GUID in the appdata header of responses
23
- APPDATA_TXN_GUID_INDEX = 5
23
+ OA_APPDATA_TXN_GUID_INDEX = 5
24
24
 
25
25
 
26
26
  ###############
@@ -200,7 +200,7 @@ module OneApm
200
200
  def add_cat_transaction_trace_parameters( response )
201
201
  appdata = extract_appdata( response )
202
202
  transaction_sampler.add_segment_parameters( \
203
- :transaction_guid => appdata[APPDATA_TXN_GUID_INDEX] )
203
+ :transaction_guid => appdata[OA_APPDATA_TXN_GUID_INDEX] )
204
204
  end
205
205
 
206
206
 
@@ -6,7 +6,7 @@ require 'one_apm/agent/database/obfuscator'
6
6
  require 'one_apm/agent/database/postgres_explain_obfuscator'
7
7
 
8
8
  module OneApm
9
- MYSQL_EXPLAIN_COLUMNS = [
9
+ OA_MYSQL_EXPLAIN_COLUMNS = [
10
10
  "Id",
11
11
  "Select Type",
12
12
  "Table",
@@ -21,7 +21,7 @@ module OneApm
21
21
 
22
22
  module Agent
23
23
  module Database
24
- MAX_QUERY_LENGTH = 16384
24
+ OA_MAX_QUERY_LENGTH = 16384
25
25
 
26
26
  extend self
27
27
 
@@ -30,8 +30,8 @@ module OneApm
30
30
  end
31
31
 
32
32
  def truncate_query(query)
33
- if query.length > (MAX_QUERY_LENGTH - 4)
34
- query[0..MAX_QUERY_LENGTH - 4] + '...'
33
+ if query.length > (OA_MAX_QUERY_LENGTH - 4)
34
+ query[0..OA_MAX_QUERY_LENGTH - 4] + '...'
35
35
  else
36
36
  query
37
37
  end
@@ -60,10 +60,10 @@ module OneApm
60
60
  end
61
61
  end
62
62
 
63
- RECORD_FOR = [:raw, :obfuscated].freeze
63
+ OA_RECORD_FOR = [:raw, :obfuscated].freeze
64
64
 
65
65
  def should_record_sql?(config_section=:transaction_tracer)
66
- RECORD_FOR.include?(record_sql_method(config_section))
66
+ OA_RECORD_FOR.include?(record_sql_method(config_section))
67
67
  end
68
68
 
69
69
  def should_collect_explain_plans?(config_section=:transaction_tracer)
@@ -94,7 +94,7 @@ module OneApm
94
94
  return explain_plan || []
95
95
  end
96
96
 
97
- SUPPORTED_ADAPTERS_FOR_EXPLAIN = %w[postgres postgresql mysql2 mysql sqlite].freeze
97
+ OA_SUPPORTED_ADAPTERS_FOR_EXPLAIN = %w[postgres postgresql mysql2 mysql sqlite].freeze
98
98
 
99
99
  def explain_statement(statement, config, &explainer)
100
100
  return unless is_select?(statement)
@@ -110,7 +110,7 @@ module OneApm
110
110
  end
111
111
 
112
112
  adapter = adapter_from_config(config)
113
- if !SUPPORTED_ADAPTERS_FOR_EXPLAIN.include?(adapter)
113
+ if !OA_SUPPORTED_ADAPTERS_FOR_EXPLAIN.include?(adapter)
114
114
  OneApm::Manager.logger.debug("Not collecting explain plan because an unknown connection adapter ('#{adapter}') was used.")
115
115
  return
116
116
  end
@@ -136,14 +136,14 @@ module OneApm
136
136
  end
137
137
  end
138
138
 
139
- QUERY_PLAN = 'QUERY PLAN'.freeze
139
+ OA_QUERY_PLAN = 'QUERY PLAN'.freeze
140
140
 
141
141
  def process_explain_results_postgres(results)
142
142
  if results.is_a?(String)
143
143
  query_plan_string = results
144
144
  else
145
145
  lines = []
146
- results.each { |row| lines << row[QUERY_PLAN] }
146
+ results.each { |row| lines << row[OA_QUERY_PLAN] }
147
147
  query_plan_string = lines.join("\n")
148
148
  end
149
149
 
@@ -152,7 +152,7 @@ module OneApm
152
152
  end
153
153
  values = query_plan_string.split("\n").map { |line| [line] }
154
154
 
155
- [[QUERY_PLAN], values]
155
+ [[OA_QUERY_PLAN], values]
156
156
  end
157
157
 
158
158
  def string_explain_plan_results(results)
@@ -185,11 +185,11 @@ module OneApm
185
185
  [headers, values]
186
186
  end
187
187
 
188
- SQLITE_EXPLAIN_COLUMNS = %w[addr opcode p1 p2 p3 p4 p5 comment]
188
+ OA_SQLITE_EXPLAIN_COLUMNS = %w[addr opcode p1 p2 p3 p4 p5 comment]
189
189
 
190
190
  def process_explain_results_sqlite(results)
191
191
  return string_explain_plan_results(results) if results.is_a?(String)
192
- headers = SQLITE_EXPLAIN_COLUMNS
192
+ headers = OA_SQLITE_EXPLAIN_COLUMNS
193
193
  values = []
194
194
  results.each do |row|
195
195
  values << headers.map { |h| row[h] }
@@ -210,7 +210,7 @@ module OneApm
210
210
  end
211
211
  end
212
212
 
213
- KNOWN_OPERATIONS = [
213
+ OA_KNOWN_OPERATIONS = [
214
214
  'alter',
215
215
  'select',
216
216
  'update',
@@ -224,13 +224,13 @@ module OneApm
224
224
  'call'
225
225
  ]
226
226
 
227
- SQL_COMMENT_REGEX = Regexp.new('/\*.*?\*/', Regexp::MULTILINE).freeze
227
+ OA_SQL_COMMENT_REGEX = Regexp.new('/\*.*?\*/', Regexp::MULTILINE).freeze
228
228
 
229
229
  def parse_operation_from_query(sql)
230
- sql = sql.gsub(SQL_COMMENT_REGEX, '')
230
+ sql = sql.gsub(OA_SQL_COMMENT_REGEX, '')
231
231
  if sql =~ /(\w+)/
232
232
  op = $1.downcase
233
- return op if KNOWN_OPERATIONS.include?(op)
233
+ return op if OA_KNOWN_OPERATIONS.include?(op)
234
234
  end
235
235
  end
236
236
 
@@ -19,56 +19,56 @@ module OneApm
19
19
  # Reversing the query string before obfuscation allows us to get around
20
20
  # the fact that a \' appearing within a string may or may not terminate
21
21
  # the string, because we know that a string cannot *start* with a \'.
22
- REVERSE_SINGLE_QUOTES_REGEX = /'(?:''|'\\|[^'])*'/
23
- REVERSE_ANY_QUOTES_REGEX = /'(?:''|'\\|[^'])*'|"(?:""|"\\|[^"])*"/
22
+ OA_REVERSE_SINGLE_QUOTES_REGEX = /'(?:''|'\\|[^'])*'/
23
+ OA_REVERSE_ANY_QUOTES_REGEX = /'(?:''|'\\|[^'])*'|"(?:""|"\\|[^"])*"/
24
24
 
25
- NUMERICS_REGEX = /\b\d+\b/
25
+ OA_NUMERICS_REGEX = /\b\d+\b/
26
26
 
27
27
  # We take a conservative, overly-aggressive approach to obfuscating
28
28
  # comments, and drop everything from the query after encountering any
29
29
  # character sequence that could be a comment initiator. We do this after
30
30
  # removal of string literals to avoid accidentally over-obfuscating when
31
31
  # a string literal contains a comment initiator.
32
- SQL_COMMENT_REGEX = Regexp.new('(?:/\*|--|#).*', Regexp::MULTILINE).freeze
32
+ OA_SQL_COMMENT_REGEX = Regexp.new('(?:/\*|--|#).*', Regexp::MULTILINE).freeze
33
33
 
34
34
  # We use these to check whether the query contains any quote characters
35
35
  # after obfuscation. If so, that's a good indication that the original
36
36
  # query was malformed, and so our obfuscation can't reliabily find
37
37
  # literals. In such a case, we'll replace the entire query with a
38
38
  # placeholder.
39
- LITERAL_SINGLE_QUOTE = "'".freeze
40
- LITERAL_DOUBLE_QUOTE = '"'.freeze
39
+ OA_LITERAL_SINGLE_QUOTE = "'".freeze
40
+ OA_LITERAL_DOUBLE_QUOTE = '"'.freeze
41
41
 
42
- PLACEHOLDER = '?'.freeze
42
+ OA_PLACEHOLDER = '?'.freeze
43
43
 
44
44
  def obfuscate_single_quote_literals(sql)
45
45
  obfuscated = sql.reverse
46
- obfuscated.gsub!(REVERSE_SINGLE_QUOTES_REGEX, PLACEHOLDER)
46
+ obfuscated.gsub!(OA_REVERSE_SINGLE_QUOTES_REGEX, OA_PLACEHOLDER)
47
47
  obfuscated.reverse!
48
48
  obfuscated
49
49
  end
50
50
 
51
51
  def obfuscate_quoted_literals(sql)
52
52
  obfuscated = sql.reverse
53
- obfuscated.gsub!(REVERSE_ANY_QUOTES_REGEX, PLACEHOLDER)
53
+ obfuscated.gsub!(OA_REVERSE_ANY_QUOTES_REGEX, OA_PLACEHOLDER)
54
54
  obfuscated.reverse!
55
55
  obfuscated
56
56
  end
57
57
 
58
58
  def obfuscate_numeric_literals(sql)
59
- sql.gsub(NUMERICS_REGEX, PLACEHOLDER)
59
+ sql.gsub(OA_NUMERICS_REGEX, OA_PLACEHOLDER)
60
60
  end
61
61
 
62
62
  def remove_comments(sql)
63
- sql.gsub(SQL_COMMENT_REGEX, PLACEHOLDER)
63
+ sql.gsub(OA_SQL_COMMENT_REGEX, OA_PLACEHOLDER)
64
64
  end
65
65
 
66
66
  def contains_single_quotes?(str)
67
- str.include?(LITERAL_SINGLE_QUOTE)
67
+ str.include?(OA_LITERAL_SINGLE_QUOTE)
68
68
  end
69
69
 
70
70
  def contains_quotes?(str)
71
- str.include?(LITERAL_SINGLE_QUOTE) || str.include?(LITERAL_DOUBLE_QUOTE)
71
+ str.include?(OA_LITERAL_SINGLE_QUOTE) || str.include?(OA_LITERAL_DOUBLE_QUOTE)
72
72
  end
73
73
  end
74
74
  end
@@ -11,8 +11,8 @@ module OneApm
11
11
 
12
12
  attr_reader :obfuscator
13
13
 
14
- QUERY_TOO_LARGE_MESSAGE = "Query too large (over 16k characters) to safely obfuscate"
15
- FAILED_TO_OBFUSCATE_MESSAGE = "Failed to obfuscate SQL query - quote characters remained after obfuscation"
14
+ OA_QUERY_TOO_LARGE_MESSAGE = "Query too large (over 16k characters) to safely obfuscate"
15
+ OA_FAILED_TO_OBFUSCATE_MESSAGE = "Failed to obfuscate SQL query - quote characters remained after obfuscation"
16
16
 
17
17
  def initialize
18
18
  reset
@@ -47,7 +47,7 @@ module OneApm
47
47
 
48
48
  def default_sql_obfuscator(sql)
49
49
  if sql[-3,3] == '...'
50
- return QUERY_TOO_LARGE_MESSAGE
50
+ return OA_QUERY_TOO_LARGE_MESSAGE
51
51
  end
52
52
 
53
53
  stmt = sql.kind_of?(Statement) ? sql : Statement.new(sql)
@@ -59,13 +59,13 @@ module OneApm
59
59
  obfuscated = obfuscate_quoted_literals(obfuscated)
60
60
  obfuscated = remove_comments(obfuscated)
61
61
  if contains_quotes?(obfuscated)
62
- obfuscated = FAILED_TO_OBFUSCATE_MESSAGE
62
+ obfuscated = OA_FAILED_TO_OBFUSCATE_MESSAGE
63
63
  end
64
64
  else
65
65
  obfuscated = obfuscate_single_quote_literals(obfuscated)
66
66
  obfuscated = remove_comments(obfuscated)
67
67
  if contains_single_quotes?(obfuscated)
68
- obfuscated = FAILED_TO_OBFUSCATE_MESSAGE
68
+ obfuscated = OA_FAILED_TO_OBFUSCATE_MESSAGE
69
69
  end
70
70
  end
71
71
 
@@ -12,8 +12,8 @@ module OneApm
12
12
  # Note that this regex can't be shared with the ones in the
13
13
  # Database::Obfuscator class because here we don't look for
14
14
  # backslash-escaped strings (and those regexes are backwards).
15
- QUOTED_STRINGS_REGEX = /'(?:[^']|'')*'|"(?:[^"]|"")*"/
16
- LABEL_LINE_REGEX = /^([^:\n]*:\s+).*$/.freeze
15
+ OA_QUOTED_STRINGS_REGEX = /'(?:[^']|'')*'|"(?:[^"]|"")*"/
16
+ OA_LABEL_LINE_REGEX = /^([^:\n]*:\s+).*$/.freeze
17
17
 
18
18
  def obfuscate(explain)
19
19
  # First, we replace all single-quoted strings.
@@ -28,7 +28,7 @@ module OneApm
28
28
  # Note also that we make no special provisions for backslash-escaped
29
29
  # single quotes (\') because these are canonicalized to two single
30
30
  # quotes ('') in the explain output.
31
- explain.gsub!(QUOTED_STRINGS_REGEX) do |match|
31
+ explain.gsub!(OA_QUOTED_STRINGS_REGEX) do |match|
32
32
  match.start_with?('"') ? match : '?'
33
33
  end
34
34
 
@@ -36,7 +36,7 @@ module OneApm
36
36
  # All parts of the query that can appear in the explain output are
37
37
  # prefixed with "<label>: ", so we want to preserve the label, but
38
38
  # remove the rest of the line.
39
- explain.gsub!(LABEL_LINE_REGEX, '\1?')
39
+ explain.gsub!(OA_LABEL_LINE_REGEX, '\1?')
40
40
  explain
41
41
  end
42
42
  end
@@ -4,15 +4,15 @@ module OneApm
4
4
  module Agent
5
5
  module Datastore
6
6
  module MetricHelper
7
- ROLLUP_METRIC = "Datastore/all".freeze
8
- WEB_ROLLUP_METRIC = "Datastore/allWeb".freeze
9
- OTHER_ROLLUP_METRIC = "Datastore/allOther".freeze
10
- DEFAULT_PRODUCT_NAME = "ActiveRecord".freeze
11
- OTHER = "Other".freeze
7
+ OA_ROLLUP_METRIC = "Datastore/all".freeze
8
+ OA_WEB_ROLLUP_METRIC = "Datastore/allWeb".freeze
9
+ OA_OTHER_ROLLUP_METRIC = "Datastore/allOther".freeze
10
+ OA_DEFAULT_PRODUCT_NAME = "ActiveRecord".freeze
11
+ OA_OTHER = "Other".freeze
12
12
 
13
- ALL = "all".freeze
14
- ALL_WEB = "allWeb".freeze
15
- ALL_OTHER = "allOther".freeze
13
+ OA_ALL = "all".freeze
14
+ OA_ALL_WEB = "allWeb".freeze
15
+ OA_ALL_OTHER = "allOther".freeze
16
16
 
17
17
  def self.statement_metric_for(product, collection, operation)
18
18
  "Datastore/statement/#{product}/#{collection}/#{operation}"
@@ -36,9 +36,9 @@ module OneApm
36
36
 
37
37
  def self.all_suffix
38
38
  if OneApm::Transaction.recording_web_transaction?
39
- ALL_WEB
39
+ OA_ALL_WEB
40
40
  else
41
- ALL_OTHER
41
+ OA_ALL_OTHER
42
42
  end
43
43
  end
44
44
 
@@ -56,7 +56,7 @@ module OneApm
56
56
  product_suffixed_rollup(product, suffix),
57
57
  product_rollup(product),
58
58
  suffixed_rollup(suffix),
59
- ROLLUP_METRIC
59
+ OA_ROLLUP_METRIC
60
60
  ]
61
61
 
62
62
  metrics.unshift statement_metric_for(product, collection, operation) if collection
@@ -65,7 +65,7 @@ module OneApm
65
65
  end
66
66
 
67
67
  def self.metrics_from_sql(product, sql)
68
- operation = OneApm::Agent::Database.parse_operation_from_query(sql) || OTHER
68
+ operation = OneApm::Agent::Database.parse_operation_from_query(sql) || OA_OTHER
69
69
  metrics_for(product, operation)
70
70
  end
71
71
 
@@ -8,9 +8,9 @@ module OneApm
8
8
  module Mongo
9
9
  module CommandFormatter
10
10
 
11
- OBFUSCATE_KEYS = [ 'filter', 'query', ].freeze
12
- BLACKLISTED_KEYS = [ 'deletes', 'documents', 'updates' ].freeze
13
- OBFUSCATE_NOSQL_KEYS = [ 'filter', 'query', 'deletes', 'documents', 'updates' ].freeze
11
+ OA_OBFUSCATE_KEYS = [ 'filter', 'query', ].freeze
12
+ OA_BLACKLISTED_KEYS = [ 'deletes', 'documents', 'updates' ].freeze
13
+ OA_OBFUSCATE_NOSQL_KEYS = [ 'filter', 'query', 'deletes', 'documents', 'updates' ].freeze
14
14
 
15
15
 
16
16
  def self.format(event, status)
@@ -24,8 +24,8 @@ module OneApm
24
24
  }
25
25
 
26
26
  event.command.each do |key, value|
27
- next if BLACKLISTED_KEYS.include?(key)
28
- if OBFUSCATE_KEYS.include?(key)
27
+ next if OA_BLACKLISTED_KEYS.include?(key)
28
+ if OA_OBFUSCATE_KEYS.include?(key)
29
29
  obfuscated = obfuscate(value)
30
30
  result[key] = obfuscated if obfuscated
31
31
  else
@@ -40,7 +40,7 @@ module OneApm
40
40
  header = "db.#{event.command.values.first}.#{event.command_name}"
41
41
  obfuscate_sql = []
42
42
  event.command.each do |key, value|
43
- if OBFUSCATE_NOSQL_KEYS.include?(key)
43
+ if OA_OBFUSCATE_NOSQL_KEYS.include?(key)
44
44
  if value.is_a?(Array)
45
45
  value.each do |val|
46
46
  obfuscate_sql << "(#{obfuscate_json(val)})"
@@ -55,10 +55,10 @@ module OneApm
55
55
  []
56
56
  end
57
57
 
58
- MONGO_PRODUCT_NAME = "MongoDB".freeze
58
+ OA_MONGO_PRODUCT_NAME = "MongoDB".freeze
59
59
 
60
60
  def self.build_metrics(name, collection)
61
- OneApm::Agent::Datastore::MetricHelper.metrics_for(MONGO_PRODUCT_NAME,
61
+ OneApm::Agent::Datastore::MetricHelper.metrics_for(OA_MONGO_PRODUCT_NAME,
62
62
  name,
63
63
  collection)
64
64
  end
@@ -67,7 +67,7 @@ module OneApm
67
67
  payload[:collection] == '$cmd' && payload[:selector]
68
68
  end
69
69
 
70
- NAMES_IN_SELECTOR = [
70
+ OA_NAMES_IN_SELECTOR = [
71
71
  :findandmodify,
72
72
 
73
73
  "aggregate",
@@ -88,7 +88,7 @@ module OneApm
88
88
 
89
89
  def self.command_key_from_selector(payload)
90
90
  selector = payload[:selector]
91
- NAMES_IN_SELECTOR.find do |check_name|
91
+ OA_NAMES_IN_SELECTOR.find do |check_name|
92
92
  selector.key?(check_name)
93
93
  end
94
94
  end
@@ -102,14 +102,14 @@ module OneApm
102
102
  end
103
103
  end
104
104
 
105
- CMD_COLLECTION = "$cmd".freeze
105
+ OA_CMD_COLLECTION = "$cmd".freeze
106
106
 
107
107
  def self.get_collection_from_selector(command_key, payload)
108
108
  if command_key
109
109
  payload[:selector][command_key]
110
110
  else
111
111
  OneApm::Manager.increment_metric("Supportability/Mongo/UnknownCollection")
112
- CMD_COLLECTION
112
+ OA_CMD_COLLECTION
113
113
  end
114
114
  end
115
115