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