ruby_for_grafana_loki 0.0.4 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -6
- data/lib/ruby_for_grafana_loki/client.rb +19 -13
- data/lib/ruby_for_grafana_loki/connection.rb +2 -2
- data/lib/ruby_for_grafana_loki/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 585c4f7f187bc40f31942698a8f46c0dd4ed0939ca47c4e692d5ed53b3e712cc
|
4
|
+
data.tar.gz: 29ce38884eb75cc9046b55767256eb999cafc6585606df8de8b620a0962ee891
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00ea45cbd679c2a9c5388f5935b03eb7b61bf7b8a92c06e5c8d653d854da9b71803837dd91721a5fc9455e81c33607e8a661b55ac9678fdd571bd70d8bf13258
|
7
|
+
data.tar.gz: 9beda2ef7e96973cda525d86378213f0d92584596c920e99985779a1e14acc74852a8a33b89fd90204082b490fcf554d59a6d52c7eaf89832f7140ddeb3e2d7e
|
data/README.md
CHANGED
@@ -1,11 +1,18 @@
|
|
1
1
|
|
2
2
|
# Usage in your gem or application
|
3
3
|
<pre>
|
4
|
+
|
5
|
+
- add gem "ruby_for_grafana_loki-0.0.5.gem" //to the Gemfile
|
6
|
+
- bundle install
|
7
|
+
|
8
|
+
in the project:
|
9
|
+
- logs_type = %w(ERROR WARN FATAL) // Use custom logs type: ERROR, WARN, FATAL, INFO, DEBUG
|
10
|
+
- log_file_path = "log/#{Rails.env}.log"
|
11
|
+
- client = RubyForGrafanaLoki.client(log_file_path, logs_type)
|
12
|
+
- client.jobName = "job name" // your job name
|
13
|
+
- client.hostName = "host name" // your host name
|
14
|
+
- client.sourceName = "source name" // your source name
|
15
|
+
- client.send_all_logs
|
16
|
+
- client.send_log("This is a test log message.")
|
4
17
|
|
5
|
-
|
6
|
-
logs_type = %w(ERROR WARN) # Use custom logs type: ERROR, WARN, FATAL, INFO, DEBUG
|
7
|
-
log_file_path = "log/#{Rails.env}.log"
|
8
|
-
client = RubyForGrafanaLoki.client(log_file_path, logs_type)
|
9
|
-
client.send_all_logs
|
10
|
-
client.send_log("This is a log message.") # not required
|
11
18
|
</pre>
|
@@ -1,11 +1,19 @@
|
|
1
1
|
module RubyForGrafanaLoki
|
2
2
|
LOGS_TYPE = %w(ERROR WARN FATAL INFO DEBUG).freeze
|
3
|
+
|
3
4
|
class Client
|
4
5
|
include RubyForGrafanaLoki::Request
|
5
6
|
|
7
|
+
attr_accessor :job_name
|
8
|
+
attr_accessor :host_name
|
9
|
+
attr_accessor :source_name
|
10
|
+
|
6
11
|
def initialize(log_file_path, allowed_logs_type = LOGS_TYPE)
|
7
12
|
@log_file_path = log_file_path
|
8
13
|
@allowed_logs_type = allowed_logs_type
|
14
|
+
@job_name = "job name"
|
15
|
+
@host_name = "host name"
|
16
|
+
@source_name = "source name"
|
9
17
|
end
|
10
18
|
|
11
19
|
def send_all_logs
|
@@ -15,25 +23,25 @@ module RubyForGrafanaLoki
|
|
15
23
|
end
|
16
24
|
end
|
17
25
|
end
|
26
|
+
|
18
27
|
def send_log(log_message)
|
19
28
|
curr_datetime = Time.now.to_i * 1_000_000_000
|
20
29
|
|
21
|
-
|
22
|
-
msg = "On server #{host} detected error"
|
30
|
+
msg = "On server #{@host_name} detected error"
|
23
31
|
|
24
32
|
payload = {
|
25
|
-
|
33
|
+
'streams' => [
|
26
34
|
{
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
35
|
+
'stream' => {
|
36
|
+
'source' => @source_name,
|
37
|
+
'job' => @job_name,
|
38
|
+
'host' => @host_name
|
31
39
|
},
|
32
|
-
|
33
|
-
|
40
|
+
'values' => [[curr_datetime.to_s, log_message]],
|
41
|
+
'entries' => [
|
34
42
|
{
|
35
|
-
|
36
|
-
|
43
|
+
'ts' => curr_datetime,
|
44
|
+
'line' => "[WARN] " + msg
|
37
45
|
}
|
38
46
|
]
|
39
47
|
}
|
@@ -46,8 +54,6 @@ module RubyForGrafanaLoki
|
|
46
54
|
post(uri, json_payload)
|
47
55
|
end
|
48
56
|
|
49
|
-
private
|
50
|
-
|
51
57
|
def match_logs_type?(log_line)
|
52
58
|
type = log_line.match(/(ERROR|WARN|FATAL|INFO|DEBUG)/)&.to_s
|
53
59
|
|
@@ -18,7 +18,7 @@ module RubyForGrafanaLoki
|
|
18
18
|
|
19
19
|
# Check if the request was successful
|
20
20
|
if response.success?
|
21
|
-
|
21
|
+
JSON.parse(response.body)
|
22
22
|
else
|
23
23
|
raise "Failed to make POST request. Response code: #{response.status}, Response body: #{response.body}"
|
24
24
|
end
|
@@ -30,7 +30,7 @@ module RubyForGrafanaLoki
|
|
30
30
|
accept: 'application/json',
|
31
31
|
'Content-Type' => 'application/json'
|
32
32
|
}
|
33
|
-
|
33
|
+
{
|
34
34
|
url: BASE_URL,
|
35
35
|
headers: headers
|
36
36
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_for_grafana_loki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oleg Ten
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description:
|
55
|
+
description: Send logs to Grafana Loki
|
56
56
|
email:
|
57
57
|
- tennet0505@gmail.com
|
58
58
|
executables: []
|