mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 01:01:39 -05:00
34 lines
904 B
Ruby
34 lines
904 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'net/http'
|
|
require 'uri'
|
|
|
|
class PrometheusMetrics
|
|
class << self
|
|
def fetch_data
|
|
return { success: false, error: 'Prometheus exporter not enabled' } unless prometheus_enabled?
|
|
|
|
host = ENV.fetch('PROMETHEUS_EXPORTER_HOST', 'localhost')
|
|
port = ENV.fetch('PROMETHEUS_EXPORTER_PORT', 9394)
|
|
|
|
begin
|
|
response = Net::HTTP.get_response(URI("http://#{host}:#{port}/metrics"))
|
|
|
|
if response.code == '200'
|
|
{ success: true, data: response.body }
|
|
else
|
|
{ success: false, error: "Prometheus server returned #{response.code}" }
|
|
end
|
|
rescue => e
|
|
Rails.logger.error "Failed to fetch Prometheus metrics: #{e.message}"
|
|
{ success: false, error: e.message }
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def prometheus_enabled?
|
|
DawarichSettings.prometheus_exporter_enabled?
|
|
end
|
|
end
|
|
end
|