Class: MetricsHelper
- Inherits:
-
Object
- Object
- MetricsHelper
- Defined in:
- lib/fluent/plugin/metrics_helper.rb
Constant Summary collapse
- @@obs_endpoint_exists =
false
Instance Method Summary collapse
- #check_endpoint(url, token) ⇒ Object
- #execute_rest_call(url, user, password, token, ignore_exception, use_token) ⇒ Object
- #get_additional_metrics ⇒ Object
- #get_metrics ⇒ Object
-
#initialize(metric_prefix, jpd_url, username, apikey, token, common_jpd) ⇒ MetricsHelper
constructor
A new instance of MetricsHelper.
Constructor Details
#initialize(metric_prefix, jpd_url, username, apikey, token, common_jpd) ⇒ MetricsHelper
Returns a new instance of MetricsHelper.
8 9 10 11 12 13 14 15 |
# File 'lib/fluent/plugin/metrics_helper.rb', line 8 def initialize(metric_prefix, jpd_url, username, apikey, token, common_jpd) @metric_prefix = metric_prefix @jpd_url = jpd_url @username = username @apikey = apikey @token = token @common_jpd = common_jpd end |
Instance Method Details
#check_endpoint(url, token) ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/fluent/plugin/metrics_helper.rb', line 44 def check_endpoint(url, token) response = RestClient::Request.new( method: :get, url: url, headers: { Authorization: "Bearer #{token}" } ).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 |
#execute_rest_call(url, user, password, token, ignore_exception, use_token) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/fluent/plugin/metrics_helper.rb', line 55 def execute_rest_call(url, user, password, token, ignore_exception, use_token) request = if use_token == true RestClient::Request.new( method: :get, url: url, headers: { Authorization: "Bearer #{token}" } ) else RestClient::Request.new( method: :get, url: url, user: user, password: password ) end request.execute do |response, request, result| case response.code when 200 return response.body else if ignore_exception == true return '' else raise Fluent::ConfigError, 'Cannot fetch #{@metric_prefix} metrics' end end end end |
#get_additional_metrics ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/fluent/plugin/metrics_helper.rb', line 35 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 end end |
#get_metrics ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fluent/plugin/metrics_helper.rb', line 17 def get_metrics url = nil url = case @metric_prefix when 'jfrog.artifactory' "#{@jpd_url}/artifactory/api/v1/metrics" when 'jfrog.xray' "#{@jpd_url}/xray/api/v1/metrics" else "#{@jpd_url}/artifactory/api/v1/metrics" end if !@token.nil? && @token != '' execute_rest_call(url, @username, nil, @token, false, true) elsif !@apikey.nil? && @apikey != '' execute_rest_call(url, @username, @apikey, nil, false, false) end end |