Class: Lokilogger::Client
- Inherits:
-
Object
- Object
- Lokilogger::Client
- Defined in:
- lib/lokilogger/client.rb
Overview
the client
Instance Method Summary collapse
- #check_config ⇒ Object
-
#initialize(config) ⇒ Client
constructor
A new instance of Client.
- #log_level ⇒ Object
- #log_level=(log_level) ⇒ Object
- #request(severity, message, extra_tags) ⇒ Object
Constructor Details
#initialize(config) ⇒ Client
Returns a new instance of Client.
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/lokilogger/client.rb', line 10 def initialize config @config = config check_config = @config[:ssl_options].nil? ? nil : @config[:ssl_options] = @config[:proxy_options].nil? ? nil : @config[:proxy_options] = {timeout: 10, open_timeout: 10, read_timeout: 10, write_timeout: 10} Faraday.default_adapter = :async_http @conn = Faraday.new url: @config[:url], headers: {"Content-Type" => "application/json"}, ssl: , proxy: , request: do |builder| builder.request :authorization, :basic, @config[:username], @config[:password] if @config[:username] && @config[:password] end end |
Instance Method Details
#check_config ⇒ Object
24 25 26 27 28 29 |
# File 'lib/lokilogger/client.rb', line 24 def check_config fail ConfigError, "missing/malformed url in config" if !@config[:url] || @config[:url] !~ %r{^(http|https)://} fail ConfigError, "missing version in config" unless @config[:version] fail ConfigError, "missing tags in config" unless @config[:tags] fail ConfigError, "missing log_level in config" unless @config[:log_level] end |
#log_level ⇒ Object
31 32 33 |
# File 'lib/lokilogger/client.rb', line 31 def log_level @config[:log_level] end |
#log_level=(log_level) ⇒ Object
35 36 37 |
# File 'lib/lokilogger/client.rb', line 35 def log_level= log_level @config[:log_level] = log_level end |
#request(severity, message, extra_tags) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/lokilogger/client.rb', line 39 def request severity, , now = Time.now rational_seconds = now.to_r = (rational_seconds * (10**9)).to_i.to_s = @config[:tags] = .merge unless .nil? = .merge({severity:}) Async do @conn.post "/loki/api/#{@config[:version]}/push" do |req| body = {streams: [{stream: , values: [[, ]]}]}.to_json req.body = body end rescue Faraday::Error => error puts error.response[:status] puts error.response[:body] end end |