ruby_for_grafana_loki 0.0.2 → 0.0.3

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
  SHA256:
3
- metadata.gz: 9eef001f7dac198a73f52c35da02295aef8ba51ab0db026acc2e418997cb714a
4
- data.tar.gz: dc2dee45368c93bec26a05a499b475ab90081f54ce2d659f8b4ce11db96e8949
3
+ metadata.gz: 06ddcda970511a6f243e21f6d19eaa42bfabbc2f816cb7530617ef27d03b9715
4
+ data.tar.gz: 58ca70bcfa882b7266330a1ca941faa49e3f97aa05546cf7e7e5fd2a28bbb875
5
5
  SHA512:
6
- metadata.gz: f37dd7531afb81c2c04987b9299b6a2dfc383cd9734741103e55dd3d7bcd1b8355b0f54a79a8cde94fad82b545ee5dfab811e2058cddd3f0e1b42db269df8711
7
- data.tar.gz: 42d03ddc5615765bc7a7d7580b215000816c8ffbb46bb84ca69243d88f23924c194ced1c0b98a6e6a1dbe15ca8cd9e11a6d82d67f54278e02c5e82a9a7bbf6e6
6
+ metadata.gz: be9241c7bab297a1488fc039857fbc76e6bac11a97e343115bc9bedc254ed7ad911d4687a97bf65b58c2e29e65185885d10940affff50b9b018b8d4d7d3796ab
7
+ data.tar.gz: a847f31bad0534f38356c532c54dd39eb8e02e21175e66bb4823c93e4a80e83e46de678ad288311423817cc95b15198bd4aee266d8e4cca0de58910c4ef369ca
data/README.md CHANGED
@@ -1,8 +1,5 @@
1
1
 
2
-
3
- # Example with Rails logger
4
- rails_logger = Logger.new(STDOUT)
5
- client = RubyForGrafanaLoki.client(rails_logger)
6
-
7
- # Send a log entry to Loki
8
- client.send_log("This is a log message.")
2
+ # Usage in your gem or application
3
+ log_file_path = "log/#{Rails.env}.log"
4
+ client = RubyForGrafanaLoki.client(log_file_path)
5
+ client.send_log("This is a log message.")
@@ -2,10 +2,17 @@ module RubyForGrafanaLoki
2
2
  class Client
3
3
  include RubyForGrafanaLoki::Request
4
4
 
5
- def initialize(logger)
6
- @logger = logger
5
+ def initialize(log_file_path)
6
+ @log_file_path = log_file_path
7
7
  end
8
8
 
9
+ def send_all_logs
10
+ File.open(@log_file_path, 'r') do |file|
11
+ file.each_line do |line|
12
+ send_log(line)
13
+ end
14
+ end
15
+ end
9
16
  def send_log(log_message)
10
17
  curr_datetime = Time.now.to_i * 1_000_000_000
11
18
 
@@ -35,7 +42,7 @@ module RubyForGrafanaLoki
35
42
  uri = '/loki/api/v1/push'
36
43
 
37
44
  # Use logger for sending logs to both default logger and Loki
38
- @logger.info "Sending log to Loki: #{json_payload}"
45
+ # @logger.info "Sending log to Loki: #{json_payload}"
39
46
 
40
47
  # Send logs to Loki using the post method
41
48
  post(uri, json_payload)
@@ -4,36 +4,36 @@ module RubyForGrafanaLoki
4
4
  BASE_URL = 'http://localhost:3100/'
5
5
 
6
6
  def connection
7
- Faraday.new(options) do |faraday|
8
- faraday.adapter Faraday.default_adapter
9
- faraday.request :url_encoded
7
+ Faraday.new(options) do |faraday|
8
+ faraday.adapter Faraday.default_adapter
9
+ faraday.request :url_encoded
10
10
  end
11
11
  end
12
12
 
13
13
  def post(path, body)
14
- response = connection.post(path) do |req|
15
- req.headers['Content-Type'] = 'application/json'
16
- req.body = JSON.generate(body)
17
- end
14
+ response = connection.post(path) do |req|
15
+ req.headers['Content-Type'] = 'application/json'
16
+ req.body = JSON.generate(body)
17
+ end
18
18
 
19
- # Check if the request was successful
20
- if response.success?
21
- return JSON.parse(response.body)
22
- else
23
- raise "Failed to make POST request. Response code: #{response.status}, Response body: #{response.body}"
24
- end
19
+ # Check if the request was successful
20
+ if response.success?
21
+ return JSON.parse(response.body)
22
+ else
23
+ raise "Failed to make POST request. Response code: #{response.status}, Response body: #{response.body}"
25
24
  end
25
+ end
26
26
 
27
27
  private
28
28
  def options
29
- headers = {
30
- accept: 'application/json',
31
- 'Content-Type' => 'application/json'
29
+ headers = {
30
+ accept: 'application/json',
31
+ 'Content-Type' => 'application/json'
32
+ }
33
+ return {
34
+ url: BASE_URL,
35
+ headers: headers
32
36
  }
33
- return {
34
- url: BASE_URL,
35
- headers: headers
36
- }
37
- end
38
- end
37
+ end
38
+ end
39
39
  end
@@ -1,29 +1,28 @@
1
1
  module RubyForGrafanaLoki
2
- module Request
3
- include RubyForGrafanaLoki:: Connection
2
+ module Request
3
+ include RubyForGrafanaLoki:: Connection
4
4
 
5
- def post(url, payload)
6
- respond_with(
7
- connection.post url, payload
8
- )
9
- end
5
+ def post(url, payload)
6
+ respond_with(
7
+ connection.post url, payload
8
+ )
9
+ end
10
10
 
11
- private
12
- def respond_with(response)
13
- if response.success?
14
- puts 'Log sent successfully to Loki.'
15
- puts "Response code: #{response.status}, Response body: #{response.body}"
16
- body = response.body.empty? ? response.body : JSON.parse(response.body)
17
- puts body
18
- else
19
- puts "Failed to send log to Loki. Response code: #{response.status}, Response body: #{response.body}"
20
- end
21
- end
22
-
23
- def get(path)
24
- respond_with(
25
- connection.get(path)
26
- )
27
- end
28
- end
11
+ private
12
+ def respond_with(response)
13
+ if response.success?
14
+ puts 'Log sent successfully to Loki.'
15
+ puts "Response code: #{response.status}, Response body: #{response.body}"
16
+ body = response.body.empty? ? response.body : JSON.parse(response.body)
17
+ puts body
18
+ else
19
+ puts "Failed to send log to Loki. Response code: #{response.status}, Response body: #{response.body}"
20
+ end
21
+ end
22
+ def get(path)
23
+ respond_with(
24
+ connection.get(path)
25
+ )
26
+ end
27
+ end
29
28
  end
@@ -1,3 +1,3 @@
1
1
  module RubyForGrafanaLoki
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_for_grafana_loki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Ten