site24x7_apminsight 1.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.
- data/LICENSE.txt +60 -0
- data/README.rdoc +67 -0
- data/Rakefile +63 -0
- data/VERSION +1 -0
- data/conf/apminsight.conf +96 -0
- data/lib/agent/am_objectholder.rb +66 -0
- data/lib/agent/configuration/am_configuration.rb +268 -0
- data/lib/agent/logging/am_logger.rb +109 -0
- data/lib/agent/metrics/am_metricscollector.rb +30 -0
- data/lib/agent/metrics/am_metricsformatter.rb +277 -0
- data/lib/agent/metrics/am_metricsparser.rb +569 -0
- data/lib/agent/metrics/am_metricstore.rb +29 -0
- data/lib/agent/server/am_agent.rb +116 -0
- data/lib/agent/server/am_connector.rb +242 -0
- data/lib/agent/server/instrument/am_apm.rb +99 -0
- data/lib/agent/server/instrument/am_instrumenter.rb +43 -0
- data/lib/agent/server/worker/am_worker.rb +271 -0
- data/lib/agent/util/am_constants.rb +80 -0
- data/lib/agent/util/am_util.rb +130 -0
- data/lib/site24x7_apminsight.rb +5 -0
- metadata +131 -0
@@ -0,0 +1,80 @@
|
|
1
|
+
|
2
|
+
module ManageEngine
|
3
|
+
class APMConstants
|
4
|
+
|
5
|
+
attr_reader :apm_gem,:apm_conf,:agent_conf,:connection_open_timeout,:connection_read_timeout,:connect_uri,:connect_data_uri,:connect_trace_uri,:connect_config_update_uri,:site24x7url
|
6
|
+
attr_reader :licence_exceeds,:licence_expired,:unmanage_agent,:manage_agent,:agent_config_updated,:error_notfound,:error_server,:delete_agent,:response_code,:custom_config_info
|
7
|
+
attr_reader :mf_transaction,:mf_separator,:mf_db,:mf_apdex,:mf_namespace,:mf_name,:mf_all,:agent_store,:agent_lock,:mf_overflow
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
|
11
|
+
#File path for APM Conf file
|
12
|
+
@apm_gem="apminsight"
|
13
|
+
#File path for APM Conf file
|
14
|
+
@apm_conf="apminsight.conf"
|
15
|
+
|
16
|
+
#file path for agent id, enable details
|
17
|
+
@agent_conf="apminsight.info"
|
18
|
+
|
19
|
+
#file path for agent data store lock
|
20
|
+
@agent_lock="apminsight.lock"
|
21
|
+
|
22
|
+
#file path for agent data store lock
|
23
|
+
@agent_store="apminsight.store"
|
24
|
+
|
25
|
+
|
26
|
+
#Timeout for opening Connections
|
27
|
+
@connection_open_timeout=60
|
28
|
+
|
29
|
+
#Timeout for Reading data from Connections
|
30
|
+
@connection_read_timeout=60
|
31
|
+
|
32
|
+
#Connection uri
|
33
|
+
@connect_uri="arh/connect"
|
34
|
+
|
35
|
+
#Connection uri for data
|
36
|
+
@connect_data_uri="arh/data?instance_id="
|
37
|
+
|
38
|
+
#Connection uri for trace
|
39
|
+
@connect_trace_uri="arh/trace?instance_id="
|
40
|
+
|
41
|
+
#Connection uri for config update
|
42
|
+
@connect_config_update_uri="arh/agent_config_update?instance_id="
|
43
|
+
|
44
|
+
#Site24x7 url for agent communication
|
45
|
+
@site24x7url="https://plusinsight.site24x7.com/"
|
46
|
+
|
47
|
+
#Response Codes
|
48
|
+
@licence_expired = 701
|
49
|
+
@licence_exceeds = 702
|
50
|
+
@delete_agent = 900
|
51
|
+
@unmanage_agent =910
|
52
|
+
@manage_agent = 911
|
53
|
+
@agent_config_updated = 920
|
54
|
+
@error_notfound = 404
|
55
|
+
@error_server = 500
|
56
|
+
@response_code = "response-code"
|
57
|
+
@custom_config_info = "custom_config_info"
|
58
|
+
|
59
|
+
#Metrics Formatter -mf
|
60
|
+
@mf_apdex = "apdex"
|
61
|
+
@mf_namespace = "ns"
|
62
|
+
@mf_name = "name"
|
63
|
+
@mf_all = "all"
|
64
|
+
|
65
|
+
@mf_separator = "/"
|
66
|
+
@mf_transaction = "transaction" + @mf_separator + "http"
|
67
|
+
@mf_db = "db"
|
68
|
+
@mf_overflow = "0verf10w"
|
69
|
+
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
def setLicenseKey lkey
|
74
|
+
@apm_gem="site24x7_apminsight"
|
75
|
+
@connect_data_uri="arh/data?license.key="+lkey+"&instance_id="
|
76
|
+
@connect_trace_uri="arh/trace?license.key="+lkey+"&instance_id="
|
77
|
+
@connect_config_update_uri="arh/agent_config_update?license.key="+lkey+"&instance_id="
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require 'socket'
|
2
|
+
module ManageEngine
|
3
|
+
class APMUtil
|
4
|
+
|
5
|
+
def setLogger log
|
6
|
+
@log = log
|
7
|
+
end
|
8
|
+
|
9
|
+
#Reads the Property Files and returns a Hashes
|
10
|
+
def readProperties filepath
|
11
|
+
props = {}
|
12
|
+
begin
|
13
|
+
propsFile=File.open(filepath, 'r')
|
14
|
+
propsFile.read.each_line do |line|
|
15
|
+
line.strip!
|
16
|
+
if (line[0] != ?# and line[0] != ?=)
|
17
|
+
i = line.index('=')
|
18
|
+
if (i)
|
19
|
+
props[line[0..i - 1].strip] = line[i + 1..-1].strip
|
20
|
+
else
|
21
|
+
props[line] = ''
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
rescue Exception=>e
|
26
|
+
@log.info "Problem in Reading Property File : #{e.message} "
|
27
|
+
@log.error "#{e.backtrace}"
|
28
|
+
ensure
|
29
|
+
propsFile.close
|
30
|
+
end
|
31
|
+
props
|
32
|
+
end
|
33
|
+
|
34
|
+
#write the Properties into the Property file
|
35
|
+
def writeProperties(f,props)
|
36
|
+
begin
|
37
|
+
file = File.new(f,"w+")
|
38
|
+
props.each {|key,value| file.puts "#{key}=#{value}\n"}
|
39
|
+
rescue Exception=>e
|
40
|
+
@log.info "Problem in Writing Property File : \n File : #{f}"
|
41
|
+
@log.logException "#{e.message}",e
|
42
|
+
ensure
|
43
|
+
file.close
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def copyFiles src, dest
|
48
|
+
result = false
|
49
|
+
begin
|
50
|
+
srcFile = File.open(src)
|
51
|
+
destFile = File.open(dest , "w")
|
52
|
+
destFile.write( srcFile.read(100) ) while not srcFile.eof?
|
53
|
+
result = true
|
54
|
+
rescue Exception=>e
|
55
|
+
@log.info "Problem in Copying File : \n File : #{src} to #{dest}"
|
56
|
+
@log.logException "#{e.message}",e
|
57
|
+
result = false;
|
58
|
+
ensure
|
59
|
+
srcFile.close
|
60
|
+
destFile.close
|
61
|
+
end
|
62
|
+
|
63
|
+
result
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
def getBooleanValue(str)
|
68
|
+
if str == true || str == "true" || str == "True" || str == "TRUE"
|
69
|
+
return true
|
70
|
+
else
|
71
|
+
return false
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def currenttimemillis
|
76
|
+
(Time.now.to_f*1000).to_i
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
def getArray value,sep
|
81
|
+
arr = Array.new
|
82
|
+
if(value!=nil && value.length>0)
|
83
|
+
arr = value.split(sep)
|
84
|
+
end
|
85
|
+
arr
|
86
|
+
end
|
87
|
+
def isPortBusy(port)
|
88
|
+
Timeout::timeout(1) do
|
89
|
+
begin
|
90
|
+
TCPSocket.new('localhost', port).close
|
91
|
+
true
|
92
|
+
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
|
93
|
+
false
|
94
|
+
end
|
95
|
+
end
|
96
|
+
rescue Timeout::Error
|
97
|
+
false
|
98
|
+
end
|
99
|
+
|
100
|
+
def is_integer(val)
|
101
|
+
Integer(val)
|
102
|
+
rescue ArgumentError
|
103
|
+
false
|
104
|
+
else
|
105
|
+
true
|
106
|
+
end
|
107
|
+
|
108
|
+
def is_float(val)
|
109
|
+
Float(val)
|
110
|
+
rescue ArgumentError
|
111
|
+
false
|
112
|
+
else
|
113
|
+
true
|
114
|
+
end
|
115
|
+
|
116
|
+
def parametrizeQuery qry
|
117
|
+
begin
|
118
|
+
qry.gsub!(/'(.*?[^'])??'/,"?")
|
119
|
+
qry.gsub!(/\"(.*?[^\"])??\"/,"?")
|
120
|
+
qry.gsub!(/=.\d+/,"=?")
|
121
|
+
qry.gsub!(/,.\d+/,", ?")
|
122
|
+
rescue Exception=>e
|
123
|
+
@log.info "Problem in Parameterizing query: #{e.message} "
|
124
|
+
@log.logException "#{e.message}",e
|
125
|
+
end
|
126
|
+
qry
|
127
|
+
end
|
128
|
+
|
129
|
+
end#c
|
130
|
+
end#m
|
metadata
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: site24x7_apminsight
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '1.0'
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Rajalakshmi Ezhilan
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-05-30 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: shoulda
|
16
|
+
requirement: &27413904 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *27413904
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: bundler
|
27
|
+
requirement: &27413616 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.0.0
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *27413616
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: jeweler
|
38
|
+
requirement: &27413328 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.6.4
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *27413328
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rcov
|
49
|
+
requirement: &27413040 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *27413040
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rails
|
60
|
+
requirement: &27412752 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 3.0.0
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *27412752
|
69
|
+
description: Site24x7 APMInsight gives you end-to-end web-transaction awareness of
|
70
|
+
Rails applications enabling you to isolate performance issues and resolve them quickly.
|
71
|
+
To monitor Rails application performance, download and deploy Ruby agent(site24x7_apminsight)
|
72
|
+
in your Application Server. This agent allows you to send information about Ruby
|
73
|
+
applications. You can install APM Insight Agent via Rubygems or download it from
|
74
|
+
your user account in Site24x7
|
75
|
+
email: apm-insight@zohocorp.com
|
76
|
+
executables: []
|
77
|
+
extensions: []
|
78
|
+
extra_rdoc_files:
|
79
|
+
- LICENSE.txt
|
80
|
+
- README.rdoc
|
81
|
+
files:
|
82
|
+
- LICENSE.txt
|
83
|
+
- README.rdoc
|
84
|
+
- Rakefile
|
85
|
+
- VERSION
|
86
|
+
- conf/apminsight.conf
|
87
|
+
- lib/site24x7_apminsight.rb
|
88
|
+
- lib/agent/am_objectholder.rb
|
89
|
+
- lib/agent/logging/am_logger.rb
|
90
|
+
- lib/agent/configuration/am_configuration.rb
|
91
|
+
- lib/agent/util/am_constants.rb
|
92
|
+
- lib/agent/util/am_util.rb
|
93
|
+
- lib/agent/metrics/am_metricsformatter.rb
|
94
|
+
- lib/agent/metrics/am_metricstore.rb
|
95
|
+
- lib/agent/metrics/am_metricscollector.rb
|
96
|
+
- lib/agent/metrics/am_metricsparser.rb
|
97
|
+
- lib/agent/server/am_agent.rb
|
98
|
+
- lib/agent/server/am_connector.rb
|
99
|
+
- lib/agent/server/worker/am_worker.rb
|
100
|
+
- lib/agent/server/instrument/am_apm.rb
|
101
|
+
- lib/agent/server/instrument/am_instrumenter.rb
|
102
|
+
homepage: https://help.site24x7.com/Installing-Ruby-Agent.html
|
103
|
+
licenses: []
|
104
|
+
post_install_message:
|
105
|
+
rdoc_options: []
|
106
|
+
require_paths:
|
107
|
+
- lib
|
108
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ! '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
requirements: []
|
121
|
+
rubyforge_project:
|
122
|
+
rubygems_version: 1.7.2
|
123
|
+
signing_key:
|
124
|
+
specification_version: 3
|
125
|
+
summary: Site24x7 APMInsight gives you end-to-end web-transaction awareness of Rails
|
126
|
+
applications enabling you to isolate performance issues and resolve them quickly.
|
127
|
+
To monitor Rails application performance, download and deploy Ruby agent(site24x7_apminsight.gem)
|
128
|
+
in your Application Server. This agent allows you to send information about Ruby
|
129
|
+
applications. You can install APM Insight Agent via Rubygems or download it from
|
130
|
+
your user account in Site24x7
|
131
|
+
test_files: []
|