fluent-plugin-jfrog-metrics 0.2.11 → 0.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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