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 +4 -4
- data/lib/constants.rb +3 -0
- data/lib/httpsender.rb +31 -3
- data/lib/manager.rb +22 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d79ae660063e583a61b3a6033f9cc28e247d85bb
|
4
|
+
data.tar.gz: 47599e3e7f0d052839223b54d55df4987180ab2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|