tingyun_rpm 1.1.4.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/Guardfile +10 -0
- data/lib/ting_yun/agent.rb +1 -0
- data/lib/ting_yun/agent/agent.rb +16 -27
- data/lib/ting_yun/agent/collector/error_collector.rb +7 -18
- data/lib/ting_yun/agent/collector/error_collector/noticed_error.rb +26 -21
- data/lib/ting_yun/agent/collector/middle_ware_collector/cpu_sampler.rb +4 -9
- data/lib/ting_yun/agent/collector/sql_sampler.rb +32 -188
- data/lib/ting_yun/agent/collector/sql_sampler/slow_sql.rb +47 -0
- data/lib/ting_yun/agent/collector/sql_sampler/sql_trace.rb +73 -0
- data/lib/ting_yun/agent/collector/sql_sampler/transaction_sql_data.rb +26 -0
- data/lib/ting_yun/agent/collector/stats_engine/metric_stats.rb +6 -5
- data/lib/ting_yun/agent/collector/stats_engine/stats_hash.rb +2 -2
- data/lib/ting_yun/agent/collector/transaction_sampler.rb +23 -159
- data/lib/ting_yun/agent/collector/transaction_sampler/class_method.rb +130 -0
- data/lib/ting_yun/agent/collector/transaction_sampler/slowest_sample_buffer.rb +1 -1
- data/lib/ting_yun/agent/collector/transaction_sampler/transaction_sample_buffer_base.rb +1 -1
- data/lib/ting_yun/agent/cross_app/cross_app_monitor.rb +29 -79
- data/lib/ting_yun/agent/cross_app/cross_app_tracing.rb +36 -66
- data/lib/ting_yun/agent/database.rb +41 -349
- data/lib/ting_yun/agent/database/connection_manager.rb +44 -0
- data/lib/ting_yun/agent/database/explain_plan_helpers.rb +173 -0
- data/lib/ting_yun/agent/database/obfuscator.rb +151 -0
- data/lib/ting_yun/agent/database/statement.rb +70 -0
- data/lib/ting_yun/agent/event/event_loop.rb +1 -2
- data/lib/ting_yun/agent/instance_methods/connect.rb +8 -20
- data/lib/ting_yun/agent/instance_methods/container_data_manager.rb +2 -3
- data/lib/ting_yun/agent/instance_methods/handle_errors.rb +6 -1
- data/lib/ting_yun/agent/instance_methods/start.rb +13 -81
- data/lib/ting_yun/agent/transaction.rb +48 -391
- data/lib/ting_yun/agent/transaction/apdex.rb +53 -0
- data/lib/ting_yun/agent/transaction/attributes.rb +2 -1
- data/lib/ting_yun/agent/transaction/class_method.rb +127 -0
- data/lib/ting_yun/agent/transaction/exceptions.rb +42 -0
- data/lib/ting_yun/agent/transaction/instance_method.rb +139 -0
- data/lib/ting_yun/agent/transaction/request_attributes.rb +9 -39
- data/lib/ting_yun/agent/transaction/trace.rb +7 -5
- data/lib/ting_yun/agent/transaction/trace_node.rb +1 -3
- data/lib/ting_yun/agent/transaction/traced_method_stack.rb +2 -3
- data/lib/ting_yun/agent/transaction/transaction_sample_builder.rb +6 -1
- data/lib/ting_yun/agent/transaction/transaction_state.rb +59 -17
- data/lib/ting_yun/agent/transaction/transaction_timings.rb +72 -0
- data/lib/ting_yun/configuration.rb +11 -0
- data/lib/ting_yun/configuration/default_source.rb +20 -17
- data/lib/ting_yun/configuration/manager.rb +50 -21
- data/lib/ting_yun/frameworks.rb +1 -0
- data/lib/ting_yun/frameworks/rails.rb +15 -0
- data/lib/ting_yun/instrumentation/active_record.rb +12 -18
- data/lib/ting_yun/instrumentation/middleware_tracing.rb +8 -14
- data/lib/ting_yun/instrumentation/mongo.rb +21 -27
- data/lib/ting_yun/instrumentation/mongo_command_log_subscriber.rb +7 -3
- data/lib/ting_yun/instrumentation/moped.rb +2 -2
- data/lib/ting_yun/instrumentation/net.rb +4 -5
- data/lib/ting_yun/instrumentation/rack.rb +1 -2
- data/lib/ting_yun/instrumentation/rails4/active_record_subscriber.rb +22 -20
- data/lib/ting_yun/instrumentation/redis.rb +2 -2
- data/lib/ting_yun/instrumentation/support/controller_instrumentation.rb +1 -1
- data/lib/ting_yun/instrumentation/support/external_error.rb +19 -16
- data/lib/ting_yun/instrumentation/support/javascript_instrumentor.rb +92 -0
- data/lib/ting_yun/instrumentation/support/thrift_helper.rb +73 -0
- data/lib/ting_yun/instrumentation/thrift.rb +19 -222
- data/lib/ting_yun/logger.rb +1 -0
- data/lib/ting_yun/logger/agent_logger.rb +11 -67
- data/lib/ting_yun/logger/create_logger_helper.rb +72 -0
- data/lib/ting_yun/metrics/metric_data.rb +9 -31
- data/lib/ting_yun/metrics/metric_spec.rb +11 -0
- data/lib/ting_yun/metrics/stats.rb +24 -1
- data/lib/ting_yun/middleware/agent_middleware.rb +28 -0
- data/lib/ting_yun/middleware/browser_monitoring.rb +111 -0
- data/lib/ting_yun/support/coerce.rb +1 -0
- data/lib/ting_yun/support/exception.rb +2 -33
- data/lib/ting_yun/support/local_environment.rb +7 -7
- data/lib/ting_yun/support/serialize/marshaller.rb +7 -25
- data/lib/ting_yun/ting_yun_service.rb +12 -9
- data/lib/ting_yun/ting_yun_service/connection.rb +3 -0
- data/lib/ting_yun/ting_yun_service/http.rb +4 -1
- data/lib/ting_yun/ting_yun_service/request.rb +5 -13
- data/lib/ting_yun/ting_yun_service/upload_service.rb +5 -7
- data/lib/ting_yun/version.rb +3 -5
- data/lib/tingyun_rpm.rb +12 -10
- data/tingyun_rpm.gemspec +3 -0
- metadata +49 -5
- data/.DS_Store +0 -0
- data/lib/ting_yun/agent/collector/base_sampler.rb +0 -2
@@ -6,36 +6,11 @@
|
|
6
6
|
module TingYun
|
7
7
|
module Support
|
8
8
|
module Exception
|
9
|
-
# An exception that is thrown by the server if the agent license is invalid.
|
10
|
-
class LicenseException < StandardError;
|
11
|
-
end
|
12
|
-
|
13
|
-
# An exception that is thrown by the agent, if server['nbs.agent_enable']==false.
|
14
|
-
class AgentEnableException <StandardError;
|
15
|
-
end
|
16
9
|
|
17
10
|
# An exception that is thrown by the server, drop the data.
|
18
11
|
class UnKnownServerException < StandardError;
|
19
12
|
end
|
20
13
|
|
21
|
-
# An exception that forces an agent to stop reporting until its mongrel is restarted.
|
22
|
-
class ForceDisconnectException < StandardError;
|
23
|
-
end
|
24
|
-
|
25
|
-
# An exception that forces an agent to restart.
|
26
|
-
class ForceRestartException < StandardError;
|
27
|
-
end
|
28
|
-
|
29
|
-
# An exception that forces an agent to restart.
|
30
|
-
class InvalidDataException < StandardError;
|
31
|
-
end
|
32
|
-
|
33
|
-
class ExpiredConfigurationException < StandardError;
|
34
|
-
end
|
35
|
-
|
36
|
-
# An exception that forces an agent to restart initAgentApp.
|
37
|
-
class InvalidDataTokenException < StandardError;
|
38
|
-
end
|
39
14
|
# Used to blow out of a periodic task without logging a an error, such as for routine
|
40
15
|
# failures.
|
41
16
|
class ServerConnectionException < StandardError;
|
@@ -54,15 +29,8 @@ module TingYun
|
|
54
29
|
class SerializationError < StandardError;
|
55
30
|
end
|
56
31
|
|
57
|
-
class
|
58
|
-
end
|
59
|
-
|
60
|
-
class UnsupportedMediaType < StandardError
|
61
|
-
end
|
62
|
-
# Used to wrap errors reported to agent by the collector
|
63
|
-
class CollectorError < StandardError;
|
32
|
+
class AppSessionKeyError < StandardError;
|
64
33
|
end
|
65
|
-
|
66
34
|
#This is the base class for all errors that we want to record , It provides the
|
67
35
|
# standard support text at the front of the message, and is used for flagging
|
68
36
|
# agent errors when checking queue limits.
|
@@ -74,6 +42,7 @@ module TingYun
|
|
74
42
|
|
75
43
|
class InternalServerError < StandardError
|
76
44
|
end
|
45
|
+
|
77
46
|
end
|
78
47
|
end
|
79
48
|
end
|
@@ -23,7 +23,7 @@ module TingYun
|
|
23
23
|
|
24
24
|
# Runs through all the objects in ObjectSpace to find the first one that
|
25
25
|
# match the provided class
|
26
|
-
def find_class_in_object_space(klass)
|
26
|
+
def self.find_class_in_object_space(klass)
|
27
27
|
if TingYun::Support::LanguageSupport.object_space_usable?
|
28
28
|
ObjectSpace.each_object(klass) do |x|
|
29
29
|
return x
|
@@ -53,7 +53,7 @@ module TingYun
|
|
53
53
|
rainbows
|
54
54
|
unicorn
|
55
55
|
]
|
56
|
-
while dispatchers.any? &&
|
56
|
+
while dispatchers.any? && !@discovered_dispatcher
|
57
57
|
send 'check_for_'+(dispatchers.shift)
|
58
58
|
end
|
59
59
|
end
|
@@ -100,20 +100,20 @@ module TingYun
|
|
100
100
|
|
101
101
|
def check_for_unicorn
|
102
102
|
if (defined?(::Unicorn) && defined?(::Unicorn::HttpServer)) && TingYun::Support::LanguageSupport.object_space_usable?
|
103
|
-
|
104
|
-
@discovered_dispatcher = :unicorn if
|
103
|
+
_v = TingYun::Support::LocalEnvironment.find_class_in_object_space(::Unicorn::HttpServer)
|
104
|
+
@discovered_dispatcher = :unicorn if _v
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
108
|
def check_for_rainbows
|
109
109
|
if (defined?(::Rainbows) && defined?(::Rainbows::HttpServer)) && TingYun::Support::LanguageSupport.object_space_usable?
|
110
|
-
|
111
|
-
@discovered_dispatcher = :rainbows if
|
110
|
+
_v = TingYun::Support::LocalEnvironment.find_class_in_object_space(::Rainbows::HttpServer)
|
111
|
+
@discovered_dispatcher = :rainbows if _v
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
115
|
def check_for_puma
|
116
|
-
if defined?(::Puma) &&
|
116
|
+
if defined?(::Puma) && $0.include?('puma')
|
117
117
|
@discovered_dispatcher = :puma
|
118
118
|
end
|
119
119
|
end
|
@@ -7,21 +7,6 @@ module TingYun
|
|
7
7
|
module Support
|
8
8
|
module Serialize
|
9
9
|
class Marshaller
|
10
|
-
def parsed_error(error)
|
11
|
-
error_code = error['errorCode']
|
12
|
-
error_message = error['errorMessage']
|
13
|
-
case error_code
|
14
|
-
when 460
|
15
|
-
raise TingYun::Support::Exception::LicenseException.new("#{error_code}: #{error_message}")
|
16
|
-
when 461
|
17
|
-
raise TingYun::Support::Exception::InvalidDataTokenException.new("#{error_code}: #{error_message}")
|
18
|
-
when 462
|
19
|
-
raise TingYun::Support::Exception::InvalidDataException.new("#{error_code}: #{error_message}")
|
20
|
-
when 470
|
21
|
-
raise TingYun::Support::Exception::ExpiredConfigurationException.new("#{error_code}: #{error_message}")
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
10
|
def prepare(data, options={})
|
26
11
|
encoder = options[:encoder] || default_encoder
|
27
12
|
if data.respond_to?(:to_collector_array)
|
@@ -50,18 +35,15 @@ module TingYun
|
|
50
35
|
protected
|
51
36
|
|
52
37
|
def return_value(data)
|
53
|
-
if data.respond_to?(:has_key?)
|
54
|
-
if data
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
raise TingYun::Support::Exception::AgentEnableException.new("sorry,the application is unable to use the tingyun service now ")
|
59
|
-
else
|
60
|
-
return data['result']
|
61
|
-
end
|
38
|
+
if data.respond_to?(:has_key?) && data.has_key?('status')
|
39
|
+
if data['status'] =="error"
|
40
|
+
raise TingYun::Support::Exception::UnKnownServerException.new("sorry,the application is unable to use the tingyun service now, we should reconnect again ")
|
41
|
+
else
|
42
|
+
return data['result']
|
62
43
|
end
|
44
|
+
else
|
45
|
+
raise TingYun::Support::Exception::UnKnownServerException.new("sorry,the application is unable to use the tingyun service now, we should reconnect again ")
|
63
46
|
end
|
64
|
-
data
|
65
47
|
end
|
66
48
|
end
|
67
49
|
end
|
@@ -31,11 +31,11 @@ module TingYun
|
|
31
31
|
:ssl_cert_store,
|
32
32
|
:shared_tcp_connection
|
33
33
|
|
34
|
-
|
34
|
+
|
35
|
+
def initialize(license_key=nil)
|
35
36
|
|
36
37
|
@license_key = license_key || TingYun::Agent.config[:'license_key']
|
37
38
|
@request_timeout = TingYun::Agent.config[:timeout]
|
38
|
-
@collector = collector
|
39
39
|
@data_version = TingYun::VERSION::STRING
|
40
40
|
@marshaller =TingYun::Support::Serialize::JsonMarshaller.new
|
41
41
|
@metric_id_cache = {}
|
@@ -53,6 +53,7 @@ module TingYun
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def get_redirect_host
|
56
|
+
@collector=TingYun::Support.collector
|
56
57
|
invoke_remote(:getRedirectHost)
|
57
58
|
end
|
58
59
|
|
@@ -81,25 +82,23 @@ module TingYun
|
|
81
82
|
handle_serialization_error(method, e)
|
82
83
|
end
|
83
84
|
# serialize_finish_time = Time.now
|
85
|
+
uri = remote_method_uri(method)
|
86
|
+
full_uri = "#{@collector}#{uri}"
|
84
87
|
|
85
|
-
if
|
86
|
-
TingYun::Agent.logger.info("the prepare data: #{data}")
|
88
|
+
if audit_mode?
|
89
|
+
TingYun::Agent.logger.info("the prepare data: #{data} to url: #{full_uri}")
|
87
90
|
else
|
88
91
|
TingYun::Agent.logger.info("prepare to send data")
|
89
92
|
end
|
90
93
|
|
91
94
|
data, encoding = compress_request_if_needed(data)
|
92
|
-
# size = data.size
|
93
95
|
|
94
|
-
uri = remote_method_uri(method)
|
95
|
-
full_uri = "#{@collector}#{uri}"
|
96
|
-
TingYun::Agent.logger.info("url: #{full_uri}") if TingYun::Agent.config[:'nbs.audit_mode']
|
97
96
|
response = send_request(:data => data,
|
98
97
|
:uri => uri,
|
99
98
|
:encoding => encoding,
|
100
99
|
:collector => @collector)
|
101
100
|
|
102
|
-
if
|
101
|
+
if audit_mode?
|
103
102
|
TingYun::Agent.logger.info("the return data: #{response.body}")
|
104
103
|
else
|
105
104
|
TingYun::Agent.logger.info("the send-process end")
|
@@ -111,6 +110,10 @@ module TingYun
|
|
111
110
|
data = nil
|
112
111
|
end
|
113
112
|
|
113
|
+
def audit_mode?
|
114
|
+
TingYun::Agent.config[:'nbs.audit_mode']
|
115
|
+
end
|
116
|
+
|
114
117
|
def handle_serialization_error(method, e)
|
115
118
|
msg = "Failed to serialize #{method} data using #{@marshaller.class.to_s}: #{e.inspect}"
|
116
119
|
error = TingYun::Support::Exception::SerializationError.new(msg)
|
@@ -8,6 +8,9 @@ module TingYun
|
|
8
8
|
# Return a Net::HTTP connection object to make a call to the collector.
|
9
9
|
# We'll reuse the same handle for cases where we're using keep-alive, or
|
10
10
|
# otherwise create a new one.
|
11
|
+
|
12
|
+
|
13
|
+
|
11
14
|
def http_connection
|
12
15
|
if @in_session
|
13
16
|
establish_shared_connection
|
@@ -7,6 +7,7 @@ require 'net/http'
|
|
7
7
|
require 'ting_yun/ting_yun_service/ssl'
|
8
8
|
require 'ting_yun/ting_yun_service/request'
|
9
9
|
require 'ting_yun/ting_yun_service/connection'
|
10
|
+
require 'ting_yun/support/exception'
|
10
11
|
|
11
12
|
module TingYun
|
12
13
|
class TingYunService
|
@@ -18,7 +19,9 @@ module TingYun
|
|
18
19
|
|
19
20
|
def remote_method_uri(method)
|
20
21
|
params = {'licenseKey'=> @license_key,'version' => @data_version}
|
21
|
-
|
22
|
+
raise ::TingYun::Support::Exception::AppSessionKeyError.new("@appSessionKey is asked when the upload-method happen") if method==:upload && @appSessionKey.nil?
|
23
|
+
params[:appSessionKey] = @appSessionKey
|
24
|
+
|
22
25
|
uri = "/" + method.to_s
|
23
26
|
uri << '?' + params.map do |k,v|
|
24
27
|
next unless v
|
@@ -33,18 +33,9 @@ module TingYun
|
|
33
33
|
end
|
34
34
|
TingYun::Agent.logger.debug "Received response, status: #{response.code}, encoding: '#{response['content-encoding']}'"
|
35
35
|
|
36
|
-
|
37
36
|
case response
|
38
37
|
when Net::HTTPSuccess
|
39
38
|
true # do nothing
|
40
|
-
when Net::HTTPServiceUnavailable
|
41
|
-
raise TingYun::Support::Exception::ServerConnectionException, "Service unavailable (#{response.code}): #{response.message}"
|
42
|
-
when Net::HTTPGatewayTimeOut
|
43
|
-
raise TingYun::Support::Exception::ServerConnectionException, "Gateway timeout (#{response.code}): #{response.message}"
|
44
|
-
when Net::HTTPRequestEntityTooLarge
|
45
|
-
raise TingYun::Support::Exception::UnrecoverableServerException, '413 Request Entity Too Large'
|
46
|
-
when Net::HTTPUnsupportedMediaType
|
47
|
-
raise TingYun::Support::Exception::UnsupportedMediaType, '415 Unsupported Media Type'
|
48
39
|
else
|
49
40
|
raise TingYun::Support::Exception::ServerConnectionException, "Unexpected response from server (#{response.code}): #{response.message}"
|
50
41
|
end
|
@@ -64,8 +55,9 @@ module TingYun
|
|
64
55
|
end
|
65
56
|
|
66
57
|
def check_post_size(post)
|
67
|
-
|
68
|
-
TingYun::Agent.
|
58
|
+
size = post.size
|
59
|
+
return if size < TingYun::Agent.config[:post_size_limit]
|
60
|
+
TingYun::Agent.logger.debug "Tried to send too much data: #{size} bytes"
|
69
61
|
raise TingYun::Support::Exception::UnrecoverableServerException.new('413 Request Entity Too Large')
|
70
62
|
end
|
71
63
|
|
@@ -81,8 +73,8 @@ module TingYun
|
|
81
73
|
def valid_to_marshal?(data)
|
82
74
|
@marshaller.dump(data)
|
83
75
|
true
|
84
|
-
rescue StandardError, SystemStackError =>
|
85
|
-
TingYun::Agent.logger.warn("Unable to marshal environment report on connect.",
|
76
|
+
rescue StandardError, SystemStackError => error
|
77
|
+
TingYun::Agent.logger.warn("Unable to marshal environment report on connect.", error)
|
86
78
|
false
|
87
79
|
end
|
88
80
|
end
|
@@ -22,15 +22,12 @@ module TingYun
|
|
22
22
|
|
23
23
|
def metric_data(stats_hash)
|
24
24
|
|
25
|
-
timeslice_start = stats_hash.started_at
|
26
|
-
timeslice_end = stats_hash.harvested_at || Time.now
|
27
|
-
|
28
25
|
action_array, adpex_array, general_array, components_array, errors_array = build_metric_data_array(stats_hash)
|
29
26
|
|
30
27
|
upload_data = {
|
31
28
|
:type => 'perfMetrics',
|
32
|
-
:timeFrom =>
|
33
|
-
:timeTo =>
|
29
|
+
:timeFrom => stats_hash.started_at.to_i,
|
30
|
+
:timeTo => stats_hash.harvested_at.to_i || Time.now.to_i,
|
34
31
|
:interval => 60,
|
35
32
|
:actions => action_array,
|
36
33
|
:apdex => adpex_array,
|
@@ -43,9 +40,10 @@ module TingYun
|
|
43
40
|
result
|
44
41
|
end
|
45
42
|
|
43
|
+
|
46
44
|
# The collector wants to recieve metric data in a format that's different
|
47
|
-
# from how we store it inte -nally, so this method handles the translation.
|
48
|
-
# It also handles translating metric names to IDs using our metric ID cache.
|
45
|
+
# # from how we store it inte -nally, so this method handles the translation.
|
46
|
+
# # It also handles translating metric names to IDs using our metric ID cache.
|
49
47
|
def build_metric_data_array(stats_hash)
|
50
48
|
action_array = []
|
51
49
|
adpex_array = []
|
data/lib/ting_yun/version.rb
CHANGED
data/lib/tingyun_rpm.rb
CHANGED
@@ -23,28 +23,30 @@
|
|
23
23
|
|
24
24
|
require 'ting_yun/frameworks'
|
25
25
|
|
26
|
-
|
26
|
+
# require 'pry'
|
27
27
|
#if the agent had started in manual , then shouldn't start in auto again
|
28
28
|
|
29
|
+
|
29
30
|
if defined?(Rails::VERSION)
|
30
31
|
if Rails::VERSION::MAJOR.to_i >= 3
|
31
32
|
module TingYun
|
32
33
|
class Railtie < Rails::Railtie
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
initializer "tingyun_rpm.start_plugin" do |app|
|
36
|
+
TingYun::Agent.logger.info('initialize tingyun_rpm start_plugin')
|
37
|
+
TingYun::Frameworks.init_start(:config => app.config)
|
38
|
+
end
|
38
39
|
end
|
39
40
|
end
|
40
41
|
else
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
# After version 2.0 of Rails we can access the configuration directly.
|
43
|
+
# We need it to add dev mode routes after initialization finished.
|
44
|
+
config = nil
|
45
|
+
config = Rails.configuration if Rails.respond_to?(:configuration)
|
46
|
+
TingYun::Frameworks.init_start(:config => config)
|
46
47
|
end
|
47
48
|
else
|
48
49
|
TingYun::Frameworks.init_start
|
49
50
|
end
|
50
51
|
|
52
|
+
|
data/tingyun_rpm.gemspec
CHANGED
@@ -36,11 +36,14 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.add_development_dependency 'pry', '~> 0.9.12'
|
37
37
|
s.add_development_dependency 'hometown', '~> 0.2.5'
|
38
38
|
s.add_development_dependency 'yard'
|
39
|
+
s.add_development_dependency 'rubycritic'
|
40
|
+
|
39
41
|
|
40
42
|
if RUBY_VERSION >= '1.9.3'
|
41
43
|
s.add_development_dependency 'guard', '= 2.12.5'
|
42
44
|
s.add_development_dependency 'guard-minitest', '= 2.4.4'
|
43
45
|
s.add_development_dependency 'rb-fsevent', '= 0.9.4'
|
46
|
+
s.add_development_dependency 'guard-rubycritic'
|
44
47
|
end
|
45
48
|
|
46
49
|
# compatible with Ruby 1.8.7
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tingyun_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tingyun
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubycritic
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: guard
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,6 +220,20 @@ dependencies:
|
|
206
220
|
- - '='
|
207
221
|
- !ruby/object:Gem::Version
|
208
222
|
version: 0.9.4
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: guard-rubycritic
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
209
237
|
- !ruby/object:Gem::Dependency
|
210
238
|
name: i18n
|
211
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,7 +268,6 @@ executables: []
|
|
240
268
|
extensions: []
|
241
269
|
extra_rdoc_files: []
|
242
270
|
files:
|
243
|
-
- ".DS_Store"
|
244
271
|
- ".gitignore"
|
245
272
|
- ".travis.yml"
|
246
273
|
- CODE_OF_CONDUCT.md
|
@@ -252,7 +279,6 @@ files:
|
|
252
279
|
- lib/ting_yun/agent.rb
|
253
280
|
- lib/ting_yun/agent/agent.rb
|
254
281
|
- lib/ting_yun/agent/class_methods.rb
|
255
|
-
- lib/ting_yun/agent/collector/base_sampler.rb
|
256
282
|
- lib/ting_yun/agent/collector/error_collector.rb
|
257
283
|
- lib/ting_yun/agent/collector/error_collector/error_trace_array.rb
|
258
284
|
- lib/ting_yun/agent/collector/error_collector/noticed_error.rb
|
@@ -262,16 +288,24 @@ files:
|
|
262
288
|
- lib/ting_yun/agent/collector/middle_ware_collector/middle_ware.rb
|
263
289
|
- lib/ting_yun/agent/collector/middle_ware_collector/sampler.rb
|
264
290
|
- lib/ting_yun/agent/collector/sql_sampler.rb
|
291
|
+
- lib/ting_yun/agent/collector/sql_sampler/slow_sql.rb
|
292
|
+
- lib/ting_yun/agent/collector/sql_sampler/sql_trace.rb
|
293
|
+
- lib/ting_yun/agent/collector/sql_sampler/transaction_sql_data.rb
|
265
294
|
- lib/ting_yun/agent/collector/stats_engine.rb
|
266
295
|
- lib/ting_yun/agent/collector/stats_engine/metric_stats.rb
|
267
296
|
- lib/ting_yun/agent/collector/stats_engine/stats_hash.rb
|
268
297
|
- lib/ting_yun/agent/collector/transaction_sampler.rb
|
298
|
+
- lib/ting_yun/agent/collector/transaction_sampler/class_method.rb
|
269
299
|
- lib/ting_yun/agent/collector/transaction_sampler/slowest_sample_buffer.rb
|
270
300
|
- lib/ting_yun/agent/collector/transaction_sampler/transaction_sample_buffer_base.rb
|
271
301
|
- lib/ting_yun/agent/cross_app/cross_app_monitor.rb
|
272
302
|
- lib/ting_yun/agent/cross_app/cross_app_tracing.rb
|
273
303
|
- lib/ting_yun/agent/cross_app/inbound_request_monitor.rb
|
274
304
|
- lib/ting_yun/agent/database.rb
|
305
|
+
- lib/ting_yun/agent/database/connection_manager.rb
|
306
|
+
- lib/ting_yun/agent/database/explain_plan_helpers.rb
|
307
|
+
- lib/ting_yun/agent/database/obfuscator.rb
|
308
|
+
- lib/ting_yun/agent/database/statement.rb
|
275
309
|
- lib/ting_yun/agent/datastore.rb
|
276
310
|
- lib/ting_yun/agent/datastore/metric_helper.rb
|
277
311
|
- lib/ting_yun/agent/datastore/mongo.rb
|
@@ -288,7 +322,11 @@ files:
|
|
288
322
|
- lib/ting_yun/agent/method_tracer_helpers.rb
|
289
323
|
- lib/ting_yun/agent/threading/agent_thread.rb
|
290
324
|
- lib/ting_yun/agent/transaction.rb
|
325
|
+
- lib/ting_yun/agent/transaction/apdex.rb
|
291
326
|
- lib/ting_yun/agent/transaction/attributes.rb
|
327
|
+
- lib/ting_yun/agent/transaction/class_method.rb
|
328
|
+
- lib/ting_yun/agent/transaction/exceptions.rb
|
329
|
+
- lib/ting_yun/agent/transaction/instance_method.rb
|
292
330
|
- lib/ting_yun/agent/transaction/request_attributes.rb
|
293
331
|
- lib/ting_yun/agent/transaction/trace.rb
|
294
332
|
- lib/ting_yun/agent/transaction/trace_node.rb
|
@@ -296,6 +334,7 @@ files:
|
|
296
334
|
- lib/ting_yun/agent/transaction/transaction_metrics.rb
|
297
335
|
- lib/ting_yun/agent/transaction/transaction_sample_builder.rb
|
298
336
|
- lib/ting_yun/agent/transaction/transaction_state.rb
|
337
|
+
- lib/ting_yun/agent/transaction/transaction_timings.rb
|
299
338
|
- lib/ting_yun/configuration.rb
|
300
339
|
- lib/ting_yun/configuration/default_source.rb
|
301
340
|
- lib/ting_yun/configuration/dotted_hash.rb
|
@@ -340,15 +379,18 @@ files:
|
|
340
379
|
- lib/ting_yun/instrumentation/support/event_formatter.rb
|
341
380
|
- lib/ting_yun/instrumentation/support/evented_subscriber.rb
|
342
381
|
- lib/ting_yun/instrumentation/support/external_error.rb
|
382
|
+
- lib/ting_yun/instrumentation/support/javascript_instrumentor.rb
|
343
383
|
- lib/ting_yun/instrumentation/support/metric_translator.rb
|
344
384
|
- lib/ting_yun/instrumentation/support/mongo_formatter.rb
|
345
385
|
- lib/ting_yun/instrumentation/support/parameter_filtering.rb
|
346
386
|
- lib/ting_yun/instrumentation/support/queue_time.rb
|
347
387
|
- lib/ting_yun/instrumentation/support/split_controller.rb
|
388
|
+
- lib/ting_yun/instrumentation/support/thrift_helper.rb
|
348
389
|
- lib/ting_yun/instrumentation/support/transaction_namer.rb
|
349
390
|
- lib/ting_yun/instrumentation/thrift.rb
|
350
391
|
- lib/ting_yun/logger.rb
|
351
392
|
- lib/ting_yun/logger/agent_logger.rb
|
393
|
+
- lib/ting_yun/logger/create_logger_helper.rb
|
352
394
|
- lib/ting_yun/logger/log_once.rb
|
353
395
|
- lib/ting_yun/logger/memory_logger.rb
|
354
396
|
- lib/ting_yun/logger/null_logger.rb
|
@@ -357,6 +399,8 @@ files:
|
|
357
399
|
- lib/ting_yun/metrics/metric_data.rb
|
358
400
|
- lib/ting_yun/metrics/metric_spec.rb
|
359
401
|
- lib/ting_yun/metrics/stats.rb
|
402
|
+
- lib/ting_yun/middleware/agent_middleware.rb
|
403
|
+
- lib/ting_yun/middleware/browser_monitoring.rb
|
360
404
|
- lib/ting_yun/support/coerce.rb
|
361
405
|
- lib/ting_yun/support/collector.rb
|
362
406
|
- lib/ting_yun/support/exception.rb
|
@@ -408,7 +452,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
408
452
|
version: 1.3.5
|
409
453
|
requirements: []
|
410
454
|
rubyforge_project:
|
411
|
-
rubygems_version: 2.
|
455
|
+
rubygems_version: 2.5.1
|
412
456
|
signing_key:
|
413
457
|
specification_version: 4
|
414
458
|
summary: TingYun Ruby Agent
|