fluent-plugin-jfrog-metrics 0.2.11 → 0.2.12

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: cb8dfdd51ee10875ad7d6ec7c539a92ebc703061e4bc87aa407229ebb1b97898
4
- data.tar.gz: b5f7c2a0121c9100a579f6ce61d5845ae6058656f06031d06dbc4800a7b8bfe3
3
+ metadata.gz: 28f317687267209cdc5e43c874fa40503c6ab86d970ec1509ff1d3e1af7cf26f
4
+ data.tar.gz: 4ab7a27eeee244cb9b497c2d4d3b97553049ba859cdbda3b194c7cf4d81b3cdf
5
5
  SHA512:
6
- metadata.gz: a7fca5a309cb9c334116019c7914456870f31aa1ca8adcadb8803932327bea1a0d8ecfd6cd4f36346b6c3904dc83c795618877a2ceca8a78bcd4ae3a6d3ab667
7
- data.tar.gz: 8ed3af580a9cea432a5a66983c5c87e2c28b46134f3772e4fdc9b712bdd55ca75ea4ca8247cd2bdbbf426a13e6982d4dee69151ab96b39d7f8f55dd040749c1e
6
+ metadata.gz: ebd57e01c5255ec2bd69201919c05069d90cb9847653cc8b620b89034e75bce2f06fe378897f0756f2c6aee257ae463ea32a1ccdc17b9ee7fd0f89a88eabdab2
7
+ data.tar.gz: 30a48056fda84ab46678855b9fa84270c6618518c5835e7ae3b853d3a27fd6dd8ee8b5dab907c00fd84c83a59e6bfaf551fec8ca3a8447fd0741f5a3a8656aa8
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fluent-plugin-jfrog-metrics (0.2.11)
4
+ fluent-plugin-jfrog-metrics (0.2.12)
5
5
  fluentd (>= 0.14.10, < 2)
6
- rest-client (~> 2.1.0)
6
+ rest-client (>= 2.1.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = 'fluent-plugin-jfrog-metrics'
6
- spec.version = '0.2.11'
6
+ spec.version = '0.2.12'
7
7
  spec.authors = ['MahithaB, BenHarosh']
8
8
  spec.email = ['cpe-support@jfrog.com']
9
9
 
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'bundler', '~> 1.14'
25
25
  spec.add_development_dependency 'rake', '~> 12.0'
26
26
  spec.add_development_dependency 'test-unit', '~> 3.0'
27
- spec.add_development_dependency "rest-client", "~> 2.1.0"
27
+ spec.add_development_dependency "rest-client", ">= 2.1.0"
28
28
  spec.add_runtime_dependency 'fluentd', ['>= 0.14.10', '< 2']
29
- spec.add_runtime_dependency "rest-client", "~> 2.1.0"
29
+ spec.add_runtime_dependency "rest-client", ">= 2.1.0"
30
30
  end
@@ -43,6 +43,8 @@ module Fluent
43
43
  config_param :common_jpd, :bool, default: false
44
44
  config_param :verify_ssl, :bool, default: true
45
45
 
46
+ $logger = nil
47
+
46
48
  # `configure` is called before `start`.
47
49
  # 'conf' is a `Hash` that includes the configuration parameters.
48
50
  # If the configuration is invalid, raise `Fluent::ConfigError`.
@@ -71,8 +73,9 @@ module Fluent
71
73
  def start
72
74
  super
73
75
  @running = true
76
+ $logger = log
74
77
  @thread = Thread.new do
75
- run(log)
78
+ run
76
79
  end
77
80
  end
78
81
 
@@ -82,28 +85,34 @@ module Fluent
82
85
  super
83
86
  end
84
87
 
85
- def run(logger)
86
- logger.info("Preparing metrics collection, creating timer task")
88
+ def run
89
+ $logger.info("Preparing metrics collection, creating timer task")
87
90
  timer_task = Concurrent::TimerTask.new(execution_interval: @execution_interval, run_now: true) do
88
- logger.info("Timer task execution started")
89
- do_execute(logger)
90
- logger.info("Timer task execution finished")
91
+ begin
92
+ $logger.info("Timer task execution started")
93
+ do_execute
94
+ next "Timer task execution finished successfully"
95
+ rescue => e
96
+ $logger.error("Error occurred when running Timer task: #{e.message}")
97
+ raise e
98
+ end
91
99
  end
100
+ timer_task.add_observer(TaskObserver.new)
92
101
  timer_task.execute
93
102
  sleep 100
94
103
  end
95
104
 
96
- def do_execute(logger)
105
+ def do_execute
97
106
  begin
98
- logger.info("Metrics collection started")
99
- metrics_helper = MetricsHelper.new(logger, @metric_prefix, @jpd_url, @username, @apikey, @token, @common_jpd, @verify_ssl, @request_timeout)
107
+ $logger.info("Metrics collection started")
108
+ metrics_helper = MetricsHelper.new($logger, @metric_prefix, @jpd_url, @username, @apikey, @token, @common_jpd, @verify_ssl, @request_timeout)
100
109
  platform_metrics = metrics_helper.get_metrics
101
110
 
102
111
  additional_metrics = metrics_helper.get_additional_metrics
103
112
  if !additional_metrics.nil? && additional_metrics != ''
104
113
  platform_metrics += additional_metrics.to_s
105
114
  end
106
- logger.info("Metrics collection finished")
115
+ $logger.info("Metrics collection finished")
107
116
 
108
117
  if @target_platform == 'SPLUNK'
109
118
  parser = SplunkMetricsParser.new(@metric_prefix, router, @tag)
@@ -114,22 +123,32 @@ module Fluent
114
123
  else
115
124
  raise 'Parser Type is not valid. target_platform Should be SPLUNK or NEWRELIC or DATADOG'
116
125
  end
117
- logger.debug("Emitting collected metrics started")
126
+ $logger.debug("Emitting collected metrics started")
118
127
  parser.emit_parsed_metrics(platform_metrics)
119
- logger.debug("Emitting collected metrics finished")
128
+ $logger.debug("Emitting collected metrics finished")
120
129
 
121
130
  rescue RestClient::Exceptions::OpenTimeout
122
- logger.info("The request timed out while trying to open a connection. The configured request timeout is: #{@request_timeout}")
131
+ $logger.info("The request timed out while trying to open a connection. The configured request timeout is: #{@request_timeout}")
123
132
  rescue RestClient::Exceptions::ReadTimeout
124
- logger.info("The request timed out while waiting for a response. The configured request timeout is: #{@request_timeout}")
133
+ $logger.info("The request timed out while waiting for a response. The configured request timeout is: #{@request_timeout}")
125
134
  rescue RestClient::Exceptions::RequestTimeout
126
- logger.info("The request timed out. The configured request timeout is: #{@request_timeout}")
135
+ $logger.info("The request timed out. The configured request timeout is: #{@request_timeout}")
127
136
  rescue RestClient::ExceptionWithResponse => e
128
- logger.info("HTTP request failed: #{e.response}")
137
+ $logger.info("HTTP request failed: #{e.response}")
129
138
  rescue StandardError => e
130
- logger.info("An unexpected error occurred during metrics collection: #{e.message}")
139
+ $logger.info("An unexpected error occurred during metrics collection: #{e.message}")
131
140
  else
132
- logger.debug("Metrics collection and emission do_execute finished with no errors")
141
+ $logger.debug("Metrics collection and emission do_execute finished with no errors")
142
+ end
143
+ end
144
+
145
+ class TaskObserver
146
+ def update(time, result, e)
147
+ if result
148
+ $logger.info("Timer task Execution successfully returned: '#{result}' at: #{time}")
149
+ else
150
+ $logger.error("Timer task Execution failed with error: #{e} at: #{time}")
151
+ end
133
152
  end
134
153
  end
135
154
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-jfrog-metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.11
4
+ version: 0.2.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - MahithaB, BenHarosh
@@ -56,14 +56,14 @@ dependencies:
56
56
  name: rest-client
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.1.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.1.0
69
69
  - !ruby/object:Gem::Dependency
@@ -90,14 +90,14 @@ dependencies:
90
90
  name: rest-client
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - "~>"
93
+ - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: 2.1.0
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - "~>"
100
+ - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: 2.1.0
103
103
  description: Fluentd Plugin for converting JFrog Artifactory, Xray generated metrics