logstash-output-coralogix 1.0.0 → 1.0.5

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: '0059319f6ac7e932acbdb9b7085f03720431abd31b389448a392d9bb9513f201'
4
- data.tar.gz: 2f768fe950077bb4e6f57fce260243c3314520c270ee0d01cb64bc5b2e82efc9
3
+ metadata.gz: 68a61cebb9cdbf29259aa7d105e9bda6194ddeefdfccc917dd7b4496f8950dd2
4
+ data.tar.gz: 8987b411f5a3348f4f80cbb289b9fba8bc796324c20bdc93e3f4cffaa9ff169c
5
5
  SHA512:
6
- metadata.gz: ed1b4d33af3c7cff45583cde7c7c0a65d8c68484342cf2ab0ae46f7d6e11584b9100e701486ed5b610193acbc62dbab8f39e185b09d6d3f97f353f7747f26138
7
- data.tar.gz: 7c93152430ddb13861dc8c60b2c1de01896205960653edefc3ec3921dafd2f3a723ca2cf02e2aafe57e5ad01988de0409d0cc76e7c888a1feda701260c9a83f5
6
+ metadata.gz: dd2d53e2812dbd3f0dd21340605983cad5c17f336bde064687035a56e1a08f9b5b481af96862482f568b308ce8cfca4a9eb216c83c95ebb1cd109500091c336e
7
+ data.tar.gz: b2f7d9c14080134ea52446232124f1e01f4f55ebbde4df22ebfa1b50dace5410beaabb1697a9b69a38fa68c466d76357b17908b0e8848c76c5a0e7294c6e662f
data/README.md CHANGED
@@ -94,4 +94,23 @@ Coralogix automatically generates the timestamp based on the log arrival time. I
94
94
 
95
95
  ### JSON support
96
96
 
97
- In case your raw log message is a JSON object you should set `is_json` key to a **true** value, otherwise you can ignore it.
97
+ In case your raw log message is a JSON object you should set `is_json` key to a **true** value, otherwise you can ignore it.
98
+
99
+ ### Proxy support
100
+
101
+ This plugin supports sending data via proxy. Here is the example of the configuration:
102
+
103
+ ```ruby
104
+ output {
105
+ coralogix {
106
+ ...
107
+ # Proxy settings
108
+ proxy => {
109
+ host => "PROXY_ADDRESS"
110
+ port => PROXY_PORT
111
+ user => "PROXY_USER" # Optional
112
+ password => "PROXY_PASSWORD" # Optional
113
+ }
114
+ }
115
+ }
116
+ ```
@@ -3,7 +3,6 @@ require "json"
3
3
  require "date"
4
4
  require "logstash/outputs/base"
5
5
  require "logstash/namespace"
6
- require "centralized_ruby_logger"
7
6
 
8
7
  DEFAULT_APP_NAME = "FAILED_APP_NAME"
9
8
  DEFAULT_SUB_SYSTEM = "FAILED_SUB_SYSTEM_NAME"
@@ -17,6 +16,8 @@ class LogStash::Outputs::Coralogix < LogStash::Outputs::Base
17
16
  config :is_json, :validate => :boolean, :required => false
18
17
  config :force_compression, :validate => :boolean, :required => false, :default => false
19
18
  config :debug, :validate => :boolean, :required => false, :default => false
19
+ config :endpoint, :validate => :string, :required => false, :default => nil
20
+ config :proxy, :validate => :hash, :required => false, :default => {}
20
21
  @configured = false
21
22
 
22
23
  public def register
@@ -30,7 +31,7 @@ class LogStash::Outputs::Coralogix < LogStash::Outputs::Base
30
31
  logger = get_logger(record)
31
32
 
32
33
  log_record = log_key_name != nil ? record.fetch(log_key_name, record) : record
33
- log_record = is_json ? log_record.to_json : log_record
34
+ log_record = (is_json ? log_record.to_json : log_record) rescue log_record
34
35
  log_record = log_record.to_s.empty? ? record : log_record
35
36
 
36
37
  timestamp = record.fetch(timestamp_key_name, nil)
@@ -61,9 +62,18 @@ class LogStash::Outputs::Coralogix < LogStash::Outputs::Base
61
62
  def configure
62
63
  begin
63
64
  @loggers = {}
65
+
66
+ # Overwrite Coralogix endpoint
67
+ unless endpoint.nil?
68
+ ENV["CORALOGIX_LOG_URL"] = "https://#{endpoint}/api/v1/logs"
69
+ ENV["CORALOGIX_TIME_DELTA_URL"] = "https://#{endpoint}/sdk/v1/time"
70
+ end
71
+
72
+ require "centralized_ruby_logger"
73
+
64
74
  #If config parameters doesn't start with $ then we can configure Coralogix logger now.
65
75
  if !config_params["APP_NAME"].start_with?("$") && !config_params["SUB_SYSTEM"].start_with?("$")
66
- @logger = Coralogix::CoralogixLogger.new config_params["PRIVATE_KEY"], config_params["APP_NAME"], config_params["SUB_SYSTEM"], debug, "Logstash (#{version?})", force_compression
76
+ @logger = Coralogix::CoralogixLogger.new config_params["PRIVATE_KEY"], config_params["APP_NAME"], config_params["SUB_SYSTEM"], debug, "Logstash (#{version?})", force_compression, proxy
67
77
  @configured = true
68
78
  end
69
79
  rescue Exception => e
@@ -94,12 +104,12 @@ class LogStash::Outputs::Coralogix < LogStash::Outputs::Base
94
104
 
95
105
  def get_logger(record)
96
106
 
97
- return @logger if @configured
107
+ return @logger if @configured && !@logger.nil?
98
108
 
99
109
  app_name, sub_name = get_app_sub_name(record)
100
110
 
101
- if !@loggers.key?("#{app_name}.#{sub_name}")
102
- @loggers["#{app_name}.#{sub_name}"] = Coralogix::CoralogixLogger.new config_params["PRIVATE_KEY"], app_name, sub_name, debug, "Logstash (#{version?})", force_compression
111
+ if !@loggers.key?("#{app_name}.#{sub_name}") || @loggers.fetch("#{app_name}.#{sub_name}", nil).nil?
112
+ @loggers["#{app_name}.#{sub_name}"] = Coralogix::CoralogixLogger.new config_params["PRIVATE_KEY"], app_name, sub_name, debug, "Logstash (#{version?})", force_compression, proxy
103
113
  end
104
114
 
105
115
  return @loggers["#{app_name}.#{sub_name}"]
@@ -1,8 +1,9 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-coralogix'
3
- s.version = '1.0.0'
3
+ s.version = '1.0.5'
4
+ s.date = '2021-02-09'
4
5
  s.licenses = ['Apache-2.0']
5
- s.summary = 'Deliever the logs to Coralogix service.'
6
+ s.summary = 'Deliver the logs to Coralogix service.'
6
7
  s.description = 'This gem is a Logstash output plugin to deliver the logs to Coralogix service.'
7
8
  s.homepage = 'https://coralogix.com/'
8
9
  s.authors = ['Coralogix']
@@ -21,7 +22,7 @@ Gem::Specification.new do |s|
21
22
  # Gem dependencies
22
23
  s.add_runtime_dependency 'logstash-core-plugin-api', '~> 2.0'
23
24
  s.add_runtime_dependency 'logstash-codec-plain'
24
- s.add_runtime_dependency 'centralized_ruby_logger', '>= 0.0.12'
25
+ s.add_runtime_dependency 'centralized_ruby_logger', '>= 0.0.15'
25
26
 
26
27
  s.add_development_dependency 'logstash-devutils'
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-coralogix
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coralogix
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-12 00:00:00.000000000 Z
11
+ date: 2021-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core-plugin-api
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.12
47
+ version: 0.0.15
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.12
54
+ version: 0.0.15
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: logstash-devutils
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -87,7 +87,7 @@ licenses:
87
87
  metadata:
88
88
  logstash_plugin: 'true'
89
89
  logstash_group: output
90
- post_install_message:
90
+ post_install_message:
91
91
  rdoc_options: []
92
92
  require_paths:
93
93
  - lib
@@ -102,10 +102,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  requirements: []
105
- rubyforge_project:
105
+ rubyforge_project:
106
106
  rubygems_version: 2.7.3
107
- signing_key:
107
+ signing_key:
108
108
  specification_version: 4
109
- summary: Deliever the logs to Coralogix service.
109
+ summary: Deliver the logs to Coralogix service.
110
110
  test_files:
111
111
  - spec/outputs/coralogix_spec.rb