ruby_for_grafana_loki 0.0.3 → 0.0.4

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: 06ddcda970511a6f243e21f6d19eaa42bfabbc2f816cb7530617ef27d03b9715
4
- data.tar.gz: 58ca70bcfa882b7266330a1ca941faa49e3f97aa05546cf7e7e5fd2a28bbb875
3
+ metadata.gz: 50f0f3f252b03e126ca79c758b0ec428942695733470126f9d70a1f4d9d817b1
4
+ data.tar.gz: 4bf5183f13b98110611e0767d2cb196c70ac2bb9a92f7711b36e90df71519087
5
5
  SHA512:
6
- metadata.gz: be9241c7bab297a1488fc039857fbc76e6bac11a97e343115bc9bedc254ed7ad911d4687a97bf65b58c2e29e65185885d10940affff50b9b018b8d4d7d3796ab
7
- data.tar.gz: a847f31bad0534f38356c532c54dd39eb8e02e21175e66bb4823c93e4a80e83e46de678ad288311423817cc95b15198bd4aee266d8e4cca0de58910c4ef369ca
6
+ metadata.gz: d5fccfd9c6a16fdfa7c710bcb3bd1a04c81343e6bcbccc4346530c45c62d269e50e26ab55ec126fce053d5dcfadad86fe11673c86f753593bdd84a5fce435a66
7
+ data.tar.gz: 5400a75de89bdbc5df1daf9078079130a3c89c4d41ba6c93a7c23e059b949e09af7413331b45f697be566f9645c929b2e94d399ef58b8681cdb68a20aa1bf81a
data/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
 
2
2
  # Usage in your gem or application
3
+ <pre>
4
+
5
+
6
+ logs_type = %w(ERROR WARN) # Use custom logs type: ERROR, WARN, FATAL, INFO, DEBUG
3
7
  log_file_path = "log/#{Rails.env}.log"
4
- client = RubyForGrafanaLoki.client(log_file_path)
5
- client.send_log("This is a log message.")
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
+ </pre>
@@ -1,15 +1,17 @@
1
1
  module RubyForGrafanaLoki
2
+ LOGS_TYPE = %w(ERROR WARN FATAL INFO DEBUG).freeze
2
3
  class Client
3
4
  include RubyForGrafanaLoki::Request
4
5
 
5
- def initialize(log_file_path)
6
+ def initialize(log_file_path, allowed_logs_type = LOGS_TYPE)
6
7
  @log_file_path = log_file_path
8
+ @allowed_logs_type = allowed_logs_type
7
9
  end
8
10
 
9
11
  def send_all_logs
10
12
  File.open(@log_file_path, 'r') do |file|
11
13
  file.each_line do |line|
12
- send_log(line)
14
+ send_log(line) if match_logs_type?(line)
13
15
  end
14
16
  end
15
17
  end
@@ -41,21 +43,16 @@ module RubyForGrafanaLoki
41
43
  json_payload = JSON.generate(payload)
42
44
  uri = '/loki/api/v1/push'
43
45
 
44
- # Use logger for sending logs to both default logger and Loki
45
- # @logger.info "Sending log to Loki: #{json_payload}"
46
-
47
- # Send logs to Loki using the post method
48
46
  post(uri, json_payload)
49
47
  end
48
+
49
+ private
50
+
51
+ def match_logs_type?(log_line)
52
+ type = log_line.match(/(ERROR|WARN|FATAL|INFO|DEBUG)/)&.to_s
53
+
54
+ @allowed_logs_type.include?(type)
55
+ end
50
56
  end
51
57
  end
52
58
 
53
-
54
- # # In your application code
55
- #
56
- # # Example with Rails logger
57
- # rails_logger = Logger.new(STDOUT)
58
- # client = RubyForGrafanaLoki.client(rails_logger)
59
- #
60
- # # Send a log entry to Loki
61
- # client.send_log("This is a log message.")
@@ -1,3 +1,3 @@
1
1
  module RubyForGrafanaLoki
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -5,7 +5,7 @@ loader = Zeitwerk::Loader.for_gem
5
5
  loader.setup
6
6
 
7
7
  module RubyForGrafanaLoki
8
- def self.client(logger)
9
- RubyForGrafanaLoki::Client.new(logger)
8
+ def self.client(log_file_path, logs_type)
9
+ RubyForGrafanaLoki::Client.new(log_file_path, logs_type)
10
10
  end
11
11
  end
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.3
4
+ version: 0.0.4
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-04 00:00:00.000000000 Z
11
+ date: 2023-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Attempt to make gem
42
56
  email:
43
57
  - tennet0505@gmail.com