apminsight 1.8.3 → 1.8.6

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.
@@ -24,7 +24,7 @@ module ManageEngine
24
24
  @alreadyconnected = checkAgentInfo
25
25
  @site24x7 = checkLicenseFile
26
26
  if (@site24x7)
27
- @site24x7url = @license_key.start_with?('eu_') ? @obj.constants.site24x7EUurl : @license_key.start_with?('cn_') ? @obj.constants.site24x7CNurl : @license_key.start_with?('au_') ? @obj.constants.site24x7AUurl : @license_key.start_with?('in_') ? @obj.constants.site24x7INurl : @obj.constants.site24x7USurl
27
+ @site24x7url = @license_key.start_with?('eu_') ? @obj.constants.site24x7EUurl : @license_key.start_with?('cn_') ? @obj.constants.site24x7CNurl : @license_key.start_with?('au_') ? @obj.constants.site24x7AUurl : @license_key.start_with?('in_') ? @obj.constants.site24x7INurl : @license_key.start_with?('gd_') ? @obj.constants.site24x7GDurl : @license_key.start_with?('jp_') ? @obj.constants.site24x7JPurl : @obj.constants.site24x7USurl
28
28
  end
29
29
  @db_operations =["select","insert","update","delete"]
30
30
  urlMergePattern
@@ -58,6 +58,7 @@ module ManageEngine
58
58
  #conf file exists in APPlication Home
59
59
  @obj.log.debug "Config File Exists. It is read from #{@obj.constants.apm_conf}"
60
60
  @config = @obj.util.readProperties(@obj.constants.apm_conf)
61
+ secureConfFile "#{@obj.constants.apm_conf}"
61
62
  else
62
63
  gemSpecs = Gem.loaded_specs[@obj.constants.s247_apm_gem]
63
64
  if (gemSpecs == nil)
@@ -72,13 +73,14 @@ module ManageEngine
72
73
  #copied sucessfully
73
74
  @obj.log.info "Config File copied to application home directory. It is read from #{@obj.constants.apm_conf}"
74
75
  @config = @obj.util.readProperties(@obj.constants.apm_conf)
76
+ secureConfFile "#{@obj.constants.apm_conf}"
75
77
  else
76
78
  #Problem in copying, so reading props from Conf file in Gem Location
77
79
  @obj.log.warn "Config File not copied. It is read from #{gem_conf}"
78
80
  @config = @obj.util.readProperties(gem_conf)
81
+ secureConfFile gem_conf
79
82
  end
80
83
  end
81
-
82
84
  rescue Exception=>e
83
85
  @obj.log.info "[Exception] Problem in Reading Configuration File : \n File : #{@obj.constants.apm_conf}"
84
86
  @obj.log.logException "#{e.message}",e
@@ -87,6 +89,14 @@ module ManageEngine
87
89
  end
88
90
  end
89
91
 
92
+ def secureConfFile(file)
93
+ begin
94
+ File.chmod(0600, file)
95
+ rescue Exception => e
96
+ @obj.log.warn "Unable to secure the conf file #{file}"
97
+ end
98
+ end
99
+
90
100
  def checkAgentInfo
91
101
  if FileTest.exists?(@obj.constants.agent_conf)
92
102
  @obj.log.debug "Status : Agent Already Connected"
@@ -111,15 +121,14 @@ module ManageEngine
111
121
  end
112
122
 
113
123
  def checkLicenseFile
114
- if(@license_key != nil)
115
- @obj.log.info "License key is not null. Connecting to site24x7"
116
- @obj.constants.setLicenseKey @license_key
117
- true
118
- else
119
- @obj.log.info "License key is null. Connecting to APPManager"
120
- false
121
- end
122
-
124
+ @obj.constants.setLicenseKey @license_key
125
+ if(@license_key.start_with?('APMI_'))
126
+ @obj.log.info "Connecting to App Manager"
127
+ false
128
+ else
129
+ @obj.log.info "Connecting to Site24x7"
130
+ true
131
+ end
123
132
  end
124
133
 
125
134
  def urlMergePattern
@@ -138,6 +147,8 @@ module ManageEngine
138
147
  @instance_id = props["agent.id"]
139
148
  @agent_enabled= @obj.util.getBooleanValue props["agent.enabled"]
140
149
  @obj.util.writeProperties(@obj.constants.agent_conf,props)
150
+
151
+ secureConfFile(@obj.constants.agent_conf)
141
152
  end
142
153
 
143
154
  def initValues
@@ -246,8 +257,7 @@ module ManageEngine
246
257
  def getHostType
247
258
  begin
248
259
  # Check for AWS environment
249
- # response = Net::HTTP.get_response(URI('http://169.254.169.254/latest/meta-data/'))
250
- url = URI.parse('http://169.254.169.254/latest/meta-data/')
260
+ url = URI.parse('http://169.254.169.254/latest/meta-data/') # AWS metadata url
251
261
  request = Net::HTTP::Get.new(url.path)
252
262
  response = Net::HTTP.start(url.host, url.port, :read_timeout => 2) {|http| http.request(request)}
253
263
  if (response.kind_of? Net::HTTPOK)
@@ -259,8 +269,7 @@ module ManageEngine
259
269
 
260
270
  begin
261
271
  #Check for Azure environment
262
- # response = Net::HTTP.get_response(URI('http://169.254.169.254/metadata/v1/maintenance'))
263
- url = URI.parse('http://169.254.169.254/metadata/v1/maintenance')
272
+ url = URI.parse('http://169.254.169.254/metadata/v1/maintenance') # Azure metadata url
264
273
  request = Net::HTTP::Get.new(url.path)
265
274
  response = Net::HTTP.start(url.host, url.port, :read_timeout => 2) {|http| http.request(request)}
266
275
  if (response.kind_of? Net::HTTPOK)
@@ -270,6 +279,15 @@ module ManageEngine
270
279
  rescue Exception => e
271
280
  end
272
281
 
282
+ begin
283
+ # Check for Heroku env. In the backgroud it is using AWS EC2, hence sending as AWS
284
+ if (ENV.has_key?('DYNO') || ENV.has_key?('STACK'))
285
+ @hostType = "AWS"
286
+ return @hostType
287
+ end
288
+ rescue Exception => e
289
+ end
290
+
273
291
  @hostType = nil
274
292
  end
275
293
 
@@ -289,11 +307,24 @@ module ManageEngine
289
307
  def getEnvData
290
308
  env = Hash.new
291
309
  begin
292
- ENV.to_hash.each do |key, value|
293
- env[key] = value
294
- end
295
- #env["Application Path"]="#{Rails.root}"
310
+ env["OS"] = Gem::Platform.local.os
311
+ env["OS Version"] = Gem::Platform.local.version
312
+ env["OS Arch"] = Gem::Platform.local.cpu
313
+ env["Ruby Version"] = "#{RUBY_VERSION}"
314
+ gemSpecs = Gem.loaded_specs[@obj.constants.s247_apm_gem]
315
+ if (gemSpecs == nil)
316
+ gemSpecs = Gem.loaded_specs[@obj.constants.apm_gem]
317
+ end
318
+ if (gemSpecs != nil)
319
+ env["Agent Installed Path"] = gemSpecs.full_gem_path
320
+ end
321
+
322
+ # ENV.to_hash.each do |key, value|
323
+ # env[key] = value
324
+ # end
325
+ env["Application Path"] = "#{Dir.pwd}"
296
326
  rescue Exception=>e
327
+ @obj.log.warn "Error in capturing env data. #{e.message}"
297
328
  end
298
329
  env
299
330
  end
@@ -39,17 +39,20 @@ module ManageEngine
39
39
  resp = nil
40
40
  if @obj.config.alreadyconnected
41
41
  @obj.log.debug "[doConnect] Already Connected - Make Contact - Instance id = #{@obj.config.instance_id}"
42
- if @obj.config.site24x7
43
- resp = startConnect "?license.key="+@obj.config.license_key+"&instance_id="+@obj.config.instance_id,agentInfo
44
- else
45
- resp = startConnect "?instance_id="+@obj.config.instance_id,agentInfo
46
- end
42
+ resp = startConnect "?license.key="+@obj.config.license_key+"&instance_id="+@obj.config.instance_id,agentInfo
47
43
  else
48
44
  @obj.log.debug "[doConnect] Going to connect - New "
49
- if @obj.config.site24x7
50
- resp = startConnect "?license.key="+@obj.config.license_key,agentInfo
45
+ # if @obj.config.site24x7
46
+ # resp = startConnect "?license.key="+@obj.config.license_key,agentInfo
47
+ # else
48
+ # resp = startConnect "",agentInfo
49
+ # end
50
+ # Checking the license pattern for APM as per team requirement
51
+ if !@obj.config.site24x7 && !@obj.config.license_key.match?("APMI_[A-Fa-f0-9]{64}")
52
+ @obj.log.info "Invalid license key for App Manager, aborting agent init"
53
+ @obj.shutdown=true
51
54
  else
52
- resp = startConnect "",agentInfo
55
+ resp = startConnect "?license.key="+@obj.config.license_key,agentInfo
53
56
  end
54
57
  end
55
58
 
@@ -16,7 +16,7 @@ class APMWorker
16
16
  @obj = ManageEngine::APMObjectHolder.instance
17
17
 
18
18
  if @status=="working"
19
- @obj.log.debug "woker thread already started"
19
+ @obj.log.debug "worker thread already started"
20
20
  elsif @status == "initialized"
21
21
  @obj.log.info "start worker thread for - #{Process.pid} :: #{@status} "
22
22
  #@obj.log.info "Starting APMWorker Thread #{Process.pid} "
@@ -3,7 +3,7 @@ module ManageEngine
3
3
  class APMConstants
4
4
 
5
5
  attr_reader :conf_location, :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
6
+ attr_reader :site24x7USurl, :site24x7EUurl, :site24x7CNurl, :site24x7INurl, :site24x7AUurl, :site24x7GDurl, :site24x7JPurl
7
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
8
  attr_reader :mf_transaction,:mf_separator,:mf_db,:mf_apdex,:mf_namespace,:mf_name,:mf_all,:agent_store,:agent_lock,:mf_overflow
9
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
@@ -12,8 +12,8 @@ module ManageEngine
12
12
  def initialize
13
13
  @conf_location=ENV.has_key?('APMINSIGHT_HOME') ? ENV['APMINSIGHT_HOME']+"/" : "./"
14
14
  #File path for APM Conf file
15
- @apm_gem=@conf_location + "apminsight"
16
- @s247_apm_gem=@conf_location + "site24x7_apminsight"
15
+ @apm_gem="apminsight"
16
+ @s247_apm_gem="site24x7_apminsight"
17
17
 
18
18
  #File path for APM Conf file
19
19
  @apm_conf=@conf_location + "apminsight.conf"
@@ -55,6 +55,8 @@ module ManageEngine
55
55
  @site24x7CNurl = "https://plusinsight.site24x7.cn/"
56
56
  @site24x7AUurl = "https://plusinsight.site24x7.net.au/"
57
57
  @site24x7INurl = "https://plusinsight.site24x7.in/"
58
+ @site24x7GDurl = "https://gdplusinsight.site24x7.com/"
59
+ @site24x7JPurl = "https://plusinsight.site24x7.jp/"
58
60
 
59
61
  #Response Codes
60
62
  @licence_expired = 701
data/lib/agent/version.rb CHANGED
@@ -6,8 +6,8 @@
6
6
 
7
7
  module ManageEngine
8
8
  class APMInsight
9
- VERSION = '1.8.3'
9
+ VERSION = '1.8.6'
10
10
  MAJOR_VERSION = '1.8'
11
- MINOR_VERSION = '3'
11
+ MINOR_VERSION = '6'
12
12
  end
13
13
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 8
8
- - 3
9
- version: 1.8.3
8
+ - 6
9
+ version: 1.8.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Adithyan P
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2021-03-23 00:00:00 +05:30
17
+ date: 2022-08-26 00:00:00 +05:30
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency