coralogix_logger 0.0.4 → 0.0.5
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.
- 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
|