apminsight 1.0.1 → 1.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/apm-agent.gemspec +64 -0
- data/conf/apminsight.conf +15 -24
- data/lib/agent/am_objectholder.rb +25 -19
- data/lib/agent/api/custom_tracker.rb +79 -0
- data/lib/agent/configuration/am_configuration.rb +249 -37
- data/lib/agent/handler/custom_api_handler.rb +40 -0
- data/lib/agent/handler/sequence_book.rb +118 -0
- data/lib/agent/handler/tracker_handler.rb +58 -0
- data/lib/agent/logging/am_logger.rb +13 -9
- data/lib/agent/metrics/am_metricsformatter.rb +117 -59
- data/lib/agent/metrics/am_metricsparser.rb +195 -468
- data/lib/agent/metrics/am_metricstore.rb +7 -6
- data/lib/agent/metrics/exception_record.rb +24 -0
- data/lib/agent/server/am_agent.rb +42 -17
- data/lib/agent/server/am_connector.rb +65 -21
- data/lib/agent/server/instrument/action_view.rb +64 -0
- data/lib/agent/server/instrument/active_record.rb +52 -0
- data/lib/agent/server/instrument/am_apm.rb +107 -97
- data/lib/agent/server/instrument/am_instrumenter.rb +54 -42
- data/lib/agent/server/instrument/environment.rb +42 -0
- data/lib/agent/server/instrument/rails.rb +56 -0
- data/lib/agent/server/instrument/sinatra.rb +97 -0
- data/lib/agent/server/worker/am_worker.rb +93 -49
- data/lib/agent/trackers/database_tracker.rb +107 -0
- data/lib/agent/trackers/default_tracker.rb +57 -0
- data/lib/agent/trackers/root_tracker.rb +43 -0
- data/lib/agent/util/am_constants.rb +46 -3
- data/lib/agent/util/am_util.rb +64 -1
- data/lib/agent/util/transaction_util.rb +35 -0
- data/lib/agent/version.rb +13 -0
- data/lib/apminsight.rb +4 -1
- metadata +114 -76
@@ -0,0 +1,107 @@
|
|
1
|
+
module ManageEngine
|
2
|
+
module Tracker
|
3
|
+
class DatabaseTracker < DefaultTracker
|
4
|
+
|
5
|
+
def sql(query)
|
6
|
+
@query = format(query.dup)
|
7
|
+
end
|
8
|
+
|
9
|
+
def params(binds = [])
|
10
|
+
@binds = binds
|
11
|
+
end
|
12
|
+
|
13
|
+
def sqlBacktrace(backtrace)
|
14
|
+
@backtrace = backtrace
|
15
|
+
end
|
16
|
+
|
17
|
+
def getRawQuery
|
18
|
+
@query
|
19
|
+
end
|
20
|
+
|
21
|
+
def getObfuscatedQuery
|
22
|
+
ManageEngine::APMObjectHolder.instance.util.parametrizeQuery @query
|
23
|
+
end
|
24
|
+
|
25
|
+
def getCompleteQuery
|
26
|
+
begin
|
27
|
+
query = @query # Maintaining the original query
|
28
|
+
if query != nil && @binds != nil && @binds.length > 0
|
29
|
+
@binds.each do |ar|
|
30
|
+
if query.index("?") != nil
|
31
|
+
query["?"]=ar.value.to_s
|
32
|
+
end
|
33
|
+
end
|
34
|
+
return query
|
35
|
+
end
|
36
|
+
rescue Exception=>exe
|
37
|
+
@logger.logException "Not severe -#{exe.message}",exe
|
38
|
+
end
|
39
|
+
@query
|
40
|
+
end
|
41
|
+
|
42
|
+
# Returns array [db_operation, tablename]
|
43
|
+
def getQueryInfo
|
44
|
+
sql = @query
|
45
|
+
sql.strip!
|
46
|
+
sql.downcase!
|
47
|
+
sqlArr = sql.split(" ")
|
48
|
+
|
49
|
+
begin
|
50
|
+
tableName = case sqlArr[0]
|
51
|
+
when "select" then sqlArr[sqlArr.index("from")+1]
|
52
|
+
when "insert" then sqlArr[sqlArr.index("into")+1]
|
53
|
+
when "update" then sqlArr[1]
|
54
|
+
when "delete" then sqlArr[sqlArr.index("from")+1]
|
55
|
+
when "create" then sqlArr[1] + sqlArr[2]
|
56
|
+
when "alter" then sqlArr[1] + sqlArr[2]
|
57
|
+
when "drop" then sqlArr[1] + sqlArr[2]
|
58
|
+
when "show" then sqlArr[1]
|
59
|
+
when "describe" then sqlArr[1]
|
60
|
+
else "-"
|
61
|
+
end
|
62
|
+
|
63
|
+
return [sqlArr[0], tableName]
|
64
|
+
|
65
|
+
rescue Exception=>e
|
66
|
+
@logger.logException "#{e.message}",e
|
67
|
+
return [sqlArr[0], '-']
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def format s
|
72
|
+
s.gsub!("\"", '')
|
73
|
+
s.gsub!("\n", '')
|
74
|
+
s
|
75
|
+
end
|
76
|
+
|
77
|
+
def getAdditionalInfo
|
78
|
+
info = super
|
79
|
+
begin
|
80
|
+
if (@query != nil)
|
81
|
+
if (info == nil)
|
82
|
+
info = Hash.new
|
83
|
+
end
|
84
|
+
|
85
|
+
obj = ManageEngine::APMObjectHolder.instance
|
86
|
+
|
87
|
+
info["query"] = !obj.config.sql_capture_params ? getCompleteQuery : getObfuscatedQuery
|
88
|
+
# send only one backtrace, Exception backtrace have more priority
|
89
|
+
if (@backtrace != nil && @error == nil)
|
90
|
+
info["stacktrace"] = obj.util.formatStacktrace(@backtrace)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
rescue Exception => e
|
94
|
+
@logger.logException("Error updating additionalInfo in dbTracker.", e)
|
95
|
+
end
|
96
|
+
|
97
|
+
info
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
def to_s
|
102
|
+
"#{@name} - #{@query}"
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module ManageEngine
|
2
|
+
module Tracker
|
3
|
+
|
4
|
+
class DefaultTracker
|
5
|
+
|
6
|
+
attr_accessor :name, :error, :endtime, :starttime, :child, :sibling
|
7
|
+
|
8
|
+
def initialize(name = "unknonwn", time = ManageEngine::APMObjectHolder.instance.util.currenttimemillis)
|
9
|
+
@starttime = time.to_i
|
10
|
+
@name = name
|
11
|
+
@logger = ManageEngine::APMObjectHolder.instance.log
|
12
|
+
end
|
13
|
+
|
14
|
+
def finish(time = ManageEngine::APMObjectHolder.instance.util.currenttimemillis)
|
15
|
+
@endtime = time.to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
def error?
|
19
|
+
@error != nil
|
20
|
+
end
|
21
|
+
|
22
|
+
def setError(exception)
|
23
|
+
@error = exception
|
24
|
+
end
|
25
|
+
|
26
|
+
def setName(context)
|
27
|
+
@name = context
|
28
|
+
end
|
29
|
+
|
30
|
+
def duration
|
31
|
+
(@endtime - @starttime).to_i
|
32
|
+
end
|
33
|
+
|
34
|
+
def ==(obj)
|
35
|
+
return obj != nil && @name == obj.name
|
36
|
+
end
|
37
|
+
|
38
|
+
def hash
|
39
|
+
return @name.hash
|
40
|
+
end
|
41
|
+
|
42
|
+
def to_s
|
43
|
+
@name
|
44
|
+
end
|
45
|
+
|
46
|
+
def getAdditionalInfo
|
47
|
+
if error?
|
48
|
+
{ManageEngine::APMObjectHolder.instance.constants.mf_exception_st => ManageEngine::APMObjectHolder.instance.util.formatStacktrace(@error.backtrace)}
|
49
|
+
else
|
50
|
+
nil
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'agent/trackers/default_tracker'
|
2
|
+
|
3
|
+
module ManageEngine
|
4
|
+
module Tracker
|
5
|
+
class RootTracker < DefaultTracker
|
6
|
+
|
7
|
+
attr_accessor :status, :url
|
8
|
+
|
9
|
+
def url=(url = "unknown")
|
10
|
+
@url = ManageEngine::APMObjectHolder.instance.txn_util.normalizeName(url)
|
11
|
+
end
|
12
|
+
|
13
|
+
def http_method(method)
|
14
|
+
@http_method = method
|
15
|
+
end
|
16
|
+
|
17
|
+
def http_params(params)
|
18
|
+
@http_params = params
|
19
|
+
end
|
20
|
+
|
21
|
+
def queryString(querystring)
|
22
|
+
@queryString = querystring
|
23
|
+
end
|
24
|
+
|
25
|
+
def setStatus(httpcode)
|
26
|
+
@status = httpcode
|
27
|
+
end
|
28
|
+
|
29
|
+
def getAdditionalInfo
|
30
|
+
info = super
|
31
|
+
if (@http_method != nil && @queryString != nil && @status != nil)
|
32
|
+
if (info == nil)
|
33
|
+
info = Hash.new
|
34
|
+
end
|
35
|
+
info["http_method_name"] = @http_method
|
36
|
+
info["http_query_str"] = @queryString
|
37
|
+
info["httpcode"] = @status
|
38
|
+
end
|
39
|
+
info
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -2,14 +2,19 @@
|
|
2
2
|
module ManageEngine
|
3
3
|
class APMConstants
|
4
4
|
|
5
|
-
attr_reader :apm_gem,:apm_conf,:agent_conf,:connection_open_timeout,:connection_read_timeout,:connect_uri,:connect_data_uri,:connect_trace_uri
|
6
|
-
attr_reader :
|
7
|
-
attr_reader :
|
5
|
+
attr_reader :apm_gem,:s247_apm_gem,:apm_conf,:agent_conf,:connection_open_timeout,:connection_read_timeout,:connect_uri,:connect_data_uri,:connect_trace_uri,:connect_config_update_uri,:mergepattern_conf
|
6
|
+
attr_reader :site24x7USurl, :site24x7EUurl, :site24x7CNurl, :site24x7INurl, :site24x7AUurl
|
7
|
+
attr_reader :licence_exceeds,:licence_expired,:unmanage_agent,:manage_agent,:agent_config_updated,:error_notfound,:error_server,:delete_agent,:response_code,:custom_config_info, :agent_specific_info
|
8
|
+
attr_reader :mf_transaction,:mf_separator,:mf_db,:mf_apdex,:mf_namespace,:mf_name,:mf_all,:agent_store,:agent_lock,:mf_overflow
|
9
|
+
attr_reader :mf_logmetric, :mf_logmetric_warning, :mf_exception_st, :mf_err_st, :mf_loginfo, :mf_loginfo_time, :mf_loginfo_level, :mf_loginfo_str, :mf_loginfo_err_clz, :mf_loginfo_st, :mf_loginfo_level_warn
|
10
|
+
attr_reader :en_alphabets, :en_numerals
|
8
11
|
|
9
12
|
def initialize
|
10
13
|
|
11
14
|
#File path for APM Conf file
|
12
15
|
@apm_gem="apminsight"
|
16
|
+
@s247_apm_gem="site24x7_apminsight"
|
17
|
+
|
13
18
|
#File path for APM Conf file
|
14
19
|
@apm_conf="apminsight.conf"
|
15
20
|
|
@@ -21,6 +26,9 @@ module ManageEngine
|
|
21
26
|
|
22
27
|
#file path for agent data store lock
|
23
28
|
@agent_store="apminsight.store"
|
29
|
+
|
30
|
+
#file name for url merge patterns
|
31
|
+
@mergepattern_conf="transaction_merge_patterns.conf"
|
24
32
|
|
25
33
|
|
26
34
|
#Timeout for opening Connections
|
@@ -38,15 +46,28 @@ module ManageEngine
|
|
38
46
|
#Connection uri for trace
|
39
47
|
@connect_trace_uri="arh/trace?instance_id="
|
40
48
|
|
49
|
+
#Connection uri for config update
|
50
|
+
@connect_config_update_uri="arh/agent_config_update?instance_id="
|
51
|
+
|
52
|
+
#Site24x7 url for agent communication
|
53
|
+
@site24x7USurl = "https://plusinsight.site24x7.com/"
|
54
|
+
@site24x7EUurl = "https://plusinsight.site24x7.eu/"
|
55
|
+
@site24x7CNurl = "https://plusinsight.site24x7.cn/"
|
56
|
+
@site24x7AUurl = "https://plusinsight.site24x7.net.au/"
|
57
|
+
@site24x7INurl = "https://plusinsight.site24x7.in/"
|
58
|
+
|
41
59
|
#Response Codes
|
42
60
|
@licence_expired = 701
|
43
61
|
@licence_exceeds = 702
|
44
62
|
@delete_agent = 900
|
45
63
|
@unmanage_agent =910
|
46
64
|
@manage_agent = 911
|
65
|
+
@agent_config_updated = 920
|
47
66
|
@error_notfound = 404
|
48
67
|
@error_server = 500
|
49
68
|
@response_code = "response-code"
|
69
|
+
@custom_config_info = "custom_config_info"
|
70
|
+
@agent_specific_info = "agent_specific_info"
|
50
71
|
|
51
72
|
#Metrics Formatter -mf
|
52
73
|
@mf_apdex = "apdex"
|
@@ -57,8 +78,30 @@ module ManageEngine
|
|
57
78
|
@mf_separator = "/"
|
58
79
|
@mf_transaction = "transaction" + @mf_separator + "http"
|
59
80
|
@mf_db = "db"
|
81
|
+
@mf_overflow = "0verf10w"
|
82
|
+
|
83
|
+
@mf_logmetric = "logmetric"
|
84
|
+
@mf_logmetric_warning = "warning"
|
85
|
+
@mf_err_st = "err_st"
|
86
|
+
@mf_exception_st = "exception_st"
|
87
|
+
@mf_loginfo = "loginfo"
|
88
|
+
@mf_loginfo_time = "time"
|
89
|
+
@mf_loginfo_level = "level"
|
90
|
+
@mf_loginfo_str = "str"
|
91
|
+
@mf_loginfo_err_clz = "err_clz"
|
92
|
+
@mf_loginfo_st = "st"
|
93
|
+
@mf_loginfo_level_warn = "WARN"
|
60
94
|
|
95
|
+
@en_alphabets = "YXBtaWza"
|
96
|
+
@en_numerals = "24876981"
|
97
|
+
|
98
|
+
end
|
61
99
|
|
100
|
+
def setLicenseKey lkey
|
101
|
+
@apm_gem="site24x7_apminsight"
|
102
|
+
@connect_data_uri="arh/data?license.key="+lkey+"&instance_id="
|
103
|
+
@connect_trace_uri="arh/trace?license.key="+lkey+"&instance_id="
|
104
|
+
@connect_config_update_uri="arh/agent_config_update?license.key="+lkey+"&instance_id="
|
62
105
|
end
|
63
106
|
end
|
64
107
|
end
|
data/lib/agent/util/am_util.rb
CHANGED
@@ -1,11 +1,50 @@
|
|
1
|
+
require "agent/am_objectholder"
|
2
|
+
|
1
3
|
require 'socket'
|
4
|
+
require 'openssl'
|
5
|
+
require 'base64'
|
6
|
+
|
2
7
|
module ManageEngine
|
3
8
|
class APMUtil
|
4
|
-
|
9
|
+
|
5
10
|
def setLogger log
|
6
11
|
@log = log
|
7
12
|
end
|
8
13
|
|
14
|
+
def encrypt text, key
|
15
|
+
if (text == nil || key == nil)
|
16
|
+
return nil
|
17
|
+
end
|
18
|
+
cipher_text = nil
|
19
|
+
begin
|
20
|
+
key = key.length > 16 ? key[(key.length-16)..-1] : key
|
21
|
+
cipher = OpenSSL::Cipher.new('AES-128-CBC').encrypt
|
22
|
+
cipher.key = key
|
23
|
+
cipher.iv = ManageEngine::APMObjectHolder.instance.constants.en_alphabets + ManageEngine::APMObjectHolder.instance.constants.en_numerals
|
24
|
+
cipher_text = Base64.encode64(cipher.update(text) + cipher.final)
|
25
|
+
rescue Exception=>e
|
26
|
+
cipher_text = nil
|
27
|
+
end
|
28
|
+
return cipher_text
|
29
|
+
end
|
30
|
+
|
31
|
+
def decrypt cipher_text, key
|
32
|
+
if (cipher_text == nil || key == nil)
|
33
|
+
return nil
|
34
|
+
end
|
35
|
+
plain_text = nil
|
36
|
+
begin
|
37
|
+
key = key.length > 16 ? key[(key.length-16)..-1] : key
|
38
|
+
cipher = OpenSSL::Cipher.new('AES-128-CBC').decrypt
|
39
|
+
cipher.key = key
|
40
|
+
cipher.iv = ManageEngine::APMObjectHolder.instance.constants.en_alphabets + ManageEngine::APMObjectHolder.instance.constants.en_numerals
|
41
|
+
plain_text = cipher.update(Base64.decode64(cipher_text)) + cipher.final
|
42
|
+
rescue Exception=>e
|
43
|
+
plain_text = nil
|
44
|
+
end
|
45
|
+
return plain_text
|
46
|
+
end
|
47
|
+
|
9
48
|
#Reads the Property Files and returns a Hashes
|
10
49
|
def readProperties filepath
|
11
50
|
props = {}
|
@@ -126,5 +165,29 @@ module ManageEngine
|
|
126
165
|
qry
|
127
166
|
end
|
128
167
|
|
168
|
+
def formatStacktrace(stacktrace)
|
169
|
+
strace = Array.new
|
170
|
+
|
171
|
+
if (stacktrace != nil)
|
172
|
+
begin
|
173
|
+
stacktrace.each do |stackelement|
|
174
|
+
temp = Array.new
|
175
|
+
temp[0] = stackelement
|
176
|
+
temp[1] = ""
|
177
|
+
temp[2] = ""
|
178
|
+
temp[3] = ""
|
179
|
+
strace.push(temp)
|
180
|
+
if (strace.size == 10)
|
181
|
+
break;
|
182
|
+
end
|
183
|
+
end
|
184
|
+
rescue Exception=>e
|
185
|
+
@log.logException "Error while formatting stack trace. #{e.message}", e
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
strace
|
190
|
+
end
|
191
|
+
|
129
192
|
end#c
|
130
193
|
end#m
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module ManageEngine
|
2
|
+
class TransactionUtil
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
@obj = ManageEngine::APMObjectHolder.instance
|
6
|
+
end
|
7
|
+
|
8
|
+
def normalizeName(txnName)
|
9
|
+
if (txnName != nil)
|
10
|
+
txnName.gsub!(/\/\d+/, "/*") # Replace all numbers with *
|
11
|
+
# Transaction merge patterns - provided by user
|
12
|
+
@obj.config.url_merge_pattern.each do |key, val|
|
13
|
+
if (txnName.match(key) != nil)
|
14
|
+
txnName=val
|
15
|
+
break
|
16
|
+
end
|
17
|
+
end # do
|
18
|
+
end # if (txnName != nil)
|
19
|
+
txnName
|
20
|
+
end # def normalizeName
|
21
|
+
|
22
|
+
def listen?(txnName)
|
23
|
+
if (txnName != nil)
|
24
|
+
@obj.config.txn_skip_listen.each do |pattern|
|
25
|
+
pattern = pattern.start_with?('.*') ? pattern : ('.' + pattern)
|
26
|
+
if (txnName.match(pattern) != nil)
|
27
|
+
return false
|
28
|
+
end
|
29
|
+
end # do
|
30
|
+
end
|
31
|
+
true
|
32
|
+
end # def listen?
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Holds the major and minor versions of the agent
|
2
|
+
# These values are used in gemspec and in agent communication
|
3
|
+
# This is one point change, no need to update version numbers at multiple places
|
4
|
+
#
|
5
|
+
# NOTE: Changing version in 'VERSION' file is optional.
|
6
|
+
|
7
|
+
module ManageEngine
|
8
|
+
class APMInsight
|
9
|
+
VERSION = '1.8.2'
|
10
|
+
MAJOR_VERSION = '1.8'
|
11
|
+
MINOR_VERSION = '2'
|
12
|
+
end
|
13
|
+
end
|
data/lib/apminsight.rb
CHANGED
metadata
CHANGED
@@ -1,132 +1,170 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: apminsight
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 8
|
8
|
+
- 2
|
9
|
+
version: 1.8.2
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
-
|
11
|
+
authors:
|
12
|
+
- Adithyan P
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
|
17
|
+
date: 2019-11-27 00:00:00 +05:30
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: shoulda
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
22
31
|
type: :development
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
26
34
|
name: bundler
|
27
|
-
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
37
|
none: false
|
29
|
-
requirements:
|
38
|
+
requirements:
|
30
39
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 1
|
43
|
+
- 0
|
44
|
+
- 0
|
32
45
|
version: 1.0.0
|
33
46
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
37
49
|
name: jeweler
|
38
|
-
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
52
|
none: false
|
40
|
-
requirements:
|
53
|
+
requirements:
|
41
54
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 1
|
58
|
+
- 6
|
59
|
+
- 4
|
43
60
|
version: 1.6.4
|
44
61
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
48
64
|
name: rcov
|
49
|
-
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
67
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
55
74
|
type: :development
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
59
77
|
name: rails
|
60
|
-
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
80
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
segments:
|
85
|
+
- 3
|
86
|
+
- 0
|
87
|
+
- 0
|
65
88
|
version: 3.0.0
|
66
89
|
type: :development
|
67
|
-
|
68
|
-
|
69
|
-
description: ! 'ManageEngine Applications Manager APM Insight gives you end-to-end
|
70
|
-
web-transaction awareness of Rails applications enabling you to isolate performance
|
71
|
-
issues and resolve them quickly. To monitor Rails application performance, download
|
72
|
-
and deploy Applications Manager''s Ruby agent(apminsight) in your Application Server.
|
73
|
-
This agent allows you to send information about Ruby applications. You can install
|
74
|
-
APM Insight Agent via Rubygems or download it from Applications Manager''s website:
|
75
|
-
http://www.manageengine.com/products/applications_manager/apm-insight-agent-installation.html'
|
90
|
+
version_requirements: *id005
|
91
|
+
description: "ManageEngine Applications Manager APM Insight gives you end-to-end web-transaction awareness of Rails applications enabling you to isolate performance issues and resolve them quickly. To monitor Rails application performance, download and deploy Applications Manager's Ruby agent(apminsight) in your Application Server. This agent allows you to send information about Ruby applications. You can install APM Insight Agent via Rubygems or download it from Applications Manager's website: http://www.manageengine.com/products/applications_manager/apm-insight-agent-installation.html"
|
76
92
|
email: apm-insight@zohocorp.com
|
77
93
|
executables: []
|
94
|
+
|
78
95
|
extensions: []
|
79
|
-
|
96
|
+
|
97
|
+
extra_rdoc_files:
|
80
98
|
- LICENSE.txt
|
81
99
|
- README.rdoc
|
82
|
-
files:
|
100
|
+
files:
|
83
101
|
- LICENSE.txt
|
84
102
|
- README.rdoc
|
85
103
|
- Rakefile
|
86
104
|
- VERSION
|
105
|
+
- apm-agent.gemspec
|
87
106
|
- conf/apminsight.conf
|
88
107
|
- lib/apminsight.rb
|
89
108
|
- lib/agent/am_objectholder.rb
|
90
|
-
- lib/agent/
|
109
|
+
- lib/agent/api/custom_tracker.rb
|
91
110
|
- lib/agent/configuration/am_configuration.rb
|
92
|
-
- lib/agent/
|
93
|
-
- lib/agent/
|
94
|
-
- lib/agent/
|
95
|
-
- lib/agent/
|
111
|
+
- lib/agent/handler/custom_api_handler.rb
|
112
|
+
- lib/agent/handler/sequence_book.rb
|
113
|
+
- lib/agent/handler/tracker_handler.rb
|
114
|
+
- lib/agent/logging/am_logger.rb
|
96
115
|
- lib/agent/metrics/am_metricscollector.rb
|
116
|
+
- lib/agent/metrics/am_metricsformatter.rb
|
97
117
|
- lib/agent/metrics/am_metricsparser.rb
|
118
|
+
- lib/agent/metrics/am_metricstore.rb
|
119
|
+
- lib/agent/metrics/exception_record.rb
|
98
120
|
- lib/agent/server/am_agent.rb
|
99
121
|
- lib/agent/server/am_connector.rb
|
100
|
-
- lib/agent/server/
|
122
|
+
- lib/agent/server/instrument/action_view.rb
|
123
|
+
- lib/agent/server/instrument/active_record.rb
|
101
124
|
- lib/agent/server/instrument/am_apm.rb
|
102
125
|
- lib/agent/server/instrument/am_instrumenter.rb
|
126
|
+
- lib/agent/server/instrument/environment.rb
|
127
|
+
- lib/agent/server/instrument/rails.rb
|
128
|
+
- lib/agent/server/instrument/sinatra.rb
|
129
|
+
- lib/agent/server/worker/am_worker.rb
|
130
|
+
- lib/agent/trackers/database_tracker.rb
|
131
|
+
- lib/agent/trackers/default_tracker.rb
|
132
|
+
- lib/agent/trackers/root_tracker.rb
|
133
|
+
- lib/agent/util/am_constants.rb
|
134
|
+
- lib/agent/util/am_util.rb
|
135
|
+
- lib/agent/util/transaction_util.rb
|
136
|
+
- lib/agent/version.rb
|
137
|
+
has_rdoc: true
|
103
138
|
homepage: http://www.manageengine.com/products/applications_manager/ruby-webtransaction-monitoring.html
|
104
139
|
licenses: []
|
140
|
+
|
105
141
|
post_install_message:
|
106
142
|
rdoc_options: []
|
107
|
-
|
143
|
+
|
144
|
+
require_paths:
|
108
145
|
- lib
|
109
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
147
|
none: false
|
111
|
-
requirements:
|
112
|
-
- -
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
|
115
|
-
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
segments:
|
152
|
+
- 0
|
153
|
+
version: "0"
|
154
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
155
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
segments:
|
160
|
+
- 0
|
161
|
+
version: "0"
|
121
162
|
requirements: []
|
163
|
+
|
122
164
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.7
|
165
|
+
rubygems_version: 1.3.7
|
124
166
|
signing_key:
|
125
167
|
specification_version: 3
|
126
|
-
summary:
|
127
|
-
awareness of Rails applications enabling you to isolate performance issues and resolve
|
128
|
-
them quickly. To monitor Rails application performance, download and deploy Applications
|
129
|
-
Manager''s Ruby agent(apminsight) in your Application Server. This agent allows
|
130
|
-
you to send information about Ruby applications. You can install APM Insight Agent
|
131
|
-
via Rubygems or download it from Applications Manager''s website : http://www.manageengine.com/products/applications_manager/apm-insight-agent-installation.html'
|
168
|
+
summary: "ManageEngine Applications Manager APM Insight gives you end-to-end web-transaction awareness of Rails applications enabling you to isolate performance issues and resolve them quickly. To monitor Rails application performance, download and deploy Applications Manager's Ruby agent(apminsight) in your Application Server. This agent allows you to send information about Ruby applications. You can install APM Insight Agent via Rubygems or download it from Applications Manager's website : http://www.manageengine.com/products/applications_manager/apm-insight-agent-installation.html"
|
132
169
|
test_files: []
|
170
|
+
|