coralogix_logger 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6cd392cb48af14a79cb7cf58d901c7d4e1b976e
4
- data.tar.gz: db4691005c5c7d2056c24ab830d2225ba46d0157
3
+ metadata.gz: d79ae660063e583a61b3a6033f9cc28e247d85bb
4
+ data.tar.gz: 47599e3e7f0d052839223b54d55df4987180ab2c
5
5
  SHA512:
6
- metadata.gz: 955a9052ecceab5a80b59630272fb04ad09920c3488783f9c7530ec940ad873461720fde9a35716eb83a92bc0b7b3af5c860593c0b776f88d48cdf47f5d0853b
7
- data.tar.gz: 63d0f88dc5404058e9ed03d659f79ec0fd21b7589f6f1f4b4c6e4e5bb989b43e210e6c0d099f5f97eb5883a557e22d8ab29272e326a5156c945ff9363e9f2018
6
+ metadata.gz: 3b1bf87bed18fffbb29a03ecfeacf46c358c24d9e64e3a9e71e0dda9bfb05fca639216d0497be9543d35dc3589ac52442faa5b3fce5f4f7e2d0e5035ff3370f2
7
+ data.tar.gz: e42f79bd33f8229e6fc4c17c9f7071f1f12124fad23f403d2568ad5ebd660ff4a5e81e6492edb74e7823c6856bcce7456fd7d211a369f882d7e1992401b55486
data/lib/constants.rb CHANGED
@@ -29,6 +29,9 @@ module Coralogix
29
29
  #Coralogix logs url
30
30
  CORALOGIX_LOG_URL = "https://api.coralogix.com:443/api/v1/logs"
31
31
 
32
+ #Coralogix time delat url
33
+ CORALOGIX_TIME_DELTA_URL = "https://api.coralogix.com:443/sdk/v1/time"
34
+
32
35
  #Default private key
33
36
  FAILED_PRIVATE_KEY = "9626c7dd-8174-5015-a3fe-5572e042b6d9"
34
37
 
data/lib/httpsender.rb CHANGED
@@ -8,7 +8,7 @@ require 'benchmark'
8
8
  module Coralogix
9
9
  # @private
10
10
  module CoralogixHTTPSender
11
-
11
+ TICKS_IN_SECOND = 10**7
12
12
  @initialized = false
13
13
 
14
14
  def CoralogixHTTPSender.disable_proxy value
@@ -23,10 +23,8 @@ module Coralogix
23
23
  begin
24
24
  @uri = URI(CORALOGIX_LOG_URL)
25
25
  if(@disable_proxy)
26
- #@http = Net::HTTP.start(@uri.host, @uri.port, p_addr=nil, p_port=nil, :use_ssl => true, :verify_mode=> OpenSSL::SSL::VERIFY_NONE)
27
26
  @http = Net::HTTP.new(@uri.host, @uri.port, p_addr=nil, p_port=nil)
28
27
  else
29
- #@http = Net::HTTP.start(@uri.host, @uri.port, :use_ssl => true, :verify_mode=> OpenSSL::SSL::VERIFY_NONE)
30
28
  @http = Net::HTTP.new(@uri.host, @uri.port)
31
29
  end
32
30
  @http.use_ssl = true
@@ -68,6 +66,36 @@ module Coralogix
68
66
  sleep HTTP_SEND_RETRY_INTERVAL
69
67
  end
70
68
  end
69
+
70
+ # A helper method to get coralogix server current time and calculate the time difference
71
+ #
72
+ # @return [float] - time delta
73
+ def CoralogixHTTPSender.get_time_sync
74
+ self.initialize unless @initialized
75
+ begin
76
+ DebugLogger.info "Syncing time with coralogix server"
77
+ res = @http.get(CORALOGIX_TIME_DELTA_URL)
78
+
79
+ if res.is_a?(Net::HTTPSuccess) && !res.body.to_s.empty?
80
+ #Get server ticks from 1970
81
+ server_ticks = res.body.to_i.to_s # Relative to 1970
82
+ #Take the first 13 digits
83
+ server_ticks = server_ticks[0..12]
84
+ #Convert the ticks to utc time
85
+ server_time = Time.parse(Time.at(server_ticks.to_i / 1000.to_f).strftime('%H:%M:%S.%L')).utc
86
+ local_time = Time.now.utc
87
+
88
+ time_delta = (server_time - local_time) * 1000.0
89
+ DebugLogger.info "Updating time delta to: #{time_delta}"
90
+ return true, time_delta
91
+ end
92
+ return false, 0
93
+ rescue Exception => e
94
+ DebugLogger.error e.message
95
+ DebugLogger.error e.backtrace.inspect
96
+ return false, 0
97
+ end
98
+ end
71
99
  end
72
100
 
73
101
  end
data/lib/manager.rb CHANGED
@@ -18,6 +18,8 @@ module Coralogix
18
18
  @buffer_size = 0
19
19
  @bulk_template = {:privateKey => FAILED_PRIVATE_KEY, :applicationName => FAILED_APP_NAME, :subsystemName => FAILED_SUB_SYSTEM}
20
20
  @mutex = Mutex.new
21
+ @time_delta_last_update = 0
22
+ @time_delta = 0
21
23
  self.run
22
24
  end
23
25
 
@@ -52,7 +54,7 @@ module Coralogix
52
54
  @mutex.synchronize do
53
55
  if @buffer_size < MAX_LOG_BUFFER_SIZE
54
56
  #Combine a logentry from the must parameters together with the optional one.
55
- new_entry = {:text => message, :timestamp => Time.now.utc.to_f * 1000, :severity => severity, :category => category}.merge(args)
57
+ new_entry = {:text => message, :timestamp => Time.now.utc.to_f * 1000 + @time_delta, :severity => severity, :category => category}.merge(args)
56
58
  @buffer << new_entry
57
59
  #Updte the buffer size to reflect the new size.
58
60
  @buffer_size+=new_entry.to_json.bytesize
@@ -71,6 +73,8 @@ module Coralogix
71
73
  # Send bulk from the buffer
72
74
  def self.send_bulk
73
75
  begin
76
+ self.update_time_delta_interval
77
+
74
78
  @mutex.synchronize do
75
79
  # Total buffer size
76
80
  size = @buffer.size
@@ -96,6 +100,23 @@ module Coralogix
96
100
  end
97
101
  end
98
102
 
103
+ # Sync log timestamps with coralogix server
104
+ def self.update_time_delta_interval
105
+ begin
106
+ #If more than 5 seconds passed from the last sync update
107
+ if ((DateTime.now.strftime('%Q').to_i - @time_delta_last_update) / 1000) >= 300 #5 minuts
108
+ res, _time_delta = CoralogixHTTPSender.get_time_sync
109
+ if res
110
+ @time_delta = _time_delta
111
+ @time_delta_last_update = DateTime.now.strftime('%Q').to_i
112
+ end
113
+ end
114
+ rescue Exception => e
115
+ DebugLogger.error e.message
116
+ DebugLogger.error e.backtrace.inspect
117
+ end
118
+ end
119
+
99
120
  # Start timer execution.
100
121
  # The timer should send every X seconds logs from the buffer.
101
122
  def self.run
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coralogix_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Royee Goldberg