8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/solid_queue_guard/metrics/open_telemetry.rb', line 8
def export(report)
return unless OptionalDependency.require!('opentelemetry-sdk', 'opentelemetry-sdk')
meter = ::OpenTelemetry.meter_provider.meter('solid_queue_guard')
overall_gauge = meter.create_gauge('solid_queue.guard.overall_status', unit: 'status')
overall_gauge.record(STATUS_VALUES.fetch(report.status))
check_gauge = meter.create_gauge('solid_queue.guard.check_status', unit: 'status')
report.results.each do |result|
check_gauge.record(CHECK_STATUS_VALUES.fetch(result.status), attributes: { 'check.id' => result.id })
end
rescue StandardError => e
Rails.logger.warn("[solid_queue_guard] OpenTelemetry export failed: #{e.class}: #{e.message}")
end
|