lib/fluent/plugin/metrics_helper.rb in fluent-plugin-jfrog-metrics-0.2.7 vs lib/fluent/plugin/metrics_helper.rb in fluent-plugin-jfrog-metrics-0.2.8

- old
+ new

@@ -3,17 +3,18 @@ require 'rest-client' class MetricsHelper @@obs_endpoint_exists = false - def initialize(metric_prefix, jpd_url, username, apikey, token, common_jpd) + def initialize(metric_prefix, jpd_url, username, apikey, token, common_jpd, verify_ssl) @metric_prefix = metric_prefix @jpd_url = jpd_url @username = username @apikey = apikey @token = token @common_jpd = common_jpd + @verify_ssl = verify_ssl end def get_metrics url = nil url = case @metric_prefix @@ -22,63 +23,66 @@ when 'jfrog.xray' "#{@jpd_url}/xray/api/v1/metrics" else "#{@jpd_url}/artifactory/api/v1/metrics" end + + puts "Executing #{@metric_prefix} metrics collection from: #{url}" if !@token.nil? && @token != '' - execute_rest_call(url, @username, nil, @token, false, true) + execute_rest_call(url, @username, nil, @token, true, @verify_ssl) elsif !@apikey.nil? && @apikey != '' - execute_rest_call(url, @username, @apikey, nil, false, false) + execute_rest_call(url, @username, @apikey, nil, false, @verify_ssl) end end def get_additional_metrics if (@metric_prefix == 'jfrog.artifactory' || @common_jpd == false) && !@token.nil? && @token != '' - puts 'Executing additional metrics collection' url = "#{@jpd_url}/observability/api/v1/metrics" - check_endpoint(url, @token) if @@obs_endpoint_exists == nil? || !@@obs_endpoint_exists - execute_rest_call(url, @username, nil, @token, true, true) if @@obs_endpoint_exists + puts "Executing additional metrics collection from: #{url}" + check_endpoint(url, @token, @verify_ssl) if @@obs_endpoint_exists == nil? || !@@obs_endpoint_exists + execute_rest_call(url, @username, nil, @token, true, @verify_ssl) if @@obs_endpoint_exists end end - def check_endpoint(url, token) + def check_endpoint(url, token, verify_ssl) response = RestClient::Request.new( method: :get, url: url, - headers: { Authorization: "Bearer #{token}" } + headers: { Authorization: "Bearer #{token}"}, + verify_ssl: verify_ssl ).execute do |response, request, result| @@obs_endpoint_exists = true if response.code == 200 puts "#{url} exists? -> #{@@obs_endpoint_exists}, storing the result for next executions" end end - def execute_rest_call(url, user, password, token, ignore_exception, use_token) + def execute_rest_call(url, user, password, token, use_token, verify_ssl) request = if use_token == true RestClient::Request.new( method: :get, url: url, - headers: { Authorization: "Bearer #{token}" } + headers: { Authorization: "Bearer #{token}" }, + verify_ssl: verify_ssl ) else RestClient::Request.new( method: :get, url: url, user: user, - password: password + password: password, + verify_ssl: verify_ssl ) end request.execute do |response, request, result| case response.code when 200 + puts "#{@metric_prefix} metrics were successfully collected from url: #{url}" return response.body else - if ignore_exception == true - return '' - else - raise Fluent::ConfigError, 'Cannot fetch #{@metric_prefix} metrics' - end + puts "Cannot fetch #{@metric_prefix} metrics from url: #{url}. Received response code: #{response.code}, Response body:\n#{response.body}" + raise Fluent::ConfigError, 'Cannot fetch #{@metric_prefix} metrics' end end end end