Sha256: c451d2a926311da34e36c4856c211d26e29b4a2bb61c60e8ef060a2d096407ef

Contents?: true

Size: 996 Bytes

Versions: 1

Compression:

Stored size: 996 Bytes

Contents

# frozen_string_literal: true
require 'rest-client'

class MetricsHelper
  def initialize(metric_prefix, jpd_url, username, apikey)
    @metric_prefix = metric_prefix
    @jpd_url = jpd_url
    @username = username
    @apikey = apikey
  end

  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
    execute_rest_call(url, @username, @apikey)
  end

  def execute_rest_call(url, user, password)
    response = RestClient::Request.new(
      method: :get,
      url: url,
      user: user,
      password: password
    ).execute do |response, request, result|
      case response.code
      when 200
        return response.body
      else
        raise Fluent::ConfigError, 'Cannot fetch #{@metric_prefix} metrics'
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent-plugin-jfrog-metrics-0.1.0 lib/fluent/plugin/metrics_helper.rb