mirror of
https://github.com/cmur2/dyndnsd.git
synced 2025-07-01 22:30:19 +02:00
tracing: migrate from OpenTracing to OpenTelemetry
- still uses Jaeger client (`AgentExporter`) and supports similar configuration except host + port which can be done via https://github.com/open-telemetry/opentelemetry-ruby/tree/main/exporter/jaeger#how-can-i-configure-the-jaeger-exporter
This commit is contained in:
@ -45,24 +45,17 @@ module Dyndnsd
|
||||
# @param block [Proc]
|
||||
# @return [void]
|
||||
def self.span(operation, &block)
|
||||
scope = OpenTracing.start_active_span(operation)
|
||||
span = scope.span
|
||||
span.set_tag('component', 'dyndnsd')
|
||||
span.set_tag('span.kind', 'server')
|
||||
begin
|
||||
tracer = OpenTelemetry.tracer_provider.tracer(Dyndnsd.name, Dyndnsd::VERSION)
|
||||
tracer.in_span(
|
||||
operation,
|
||||
attributes: {'component' => 'dyndnsd'},
|
||||
kind: :server
|
||||
) do |span|
|
||||
Dyndnsd.logger.debug "Creating span ID #{span.context.hex_span_id} for trace ID #{span.context.hex_trace_id}"
|
||||
block.call(span)
|
||||
rescue StandardError => e
|
||||
span.set_tag('error', true)
|
||||
span.log_kv(
|
||||
event: 'error',
|
||||
'error.kind': e.class.to_s,
|
||||
'error.object': e,
|
||||
message: e.message,
|
||||
stack: e.backtrace&.join("\n") || ''
|
||||
)
|
||||
span.record_exception(e)
|
||||
raise e
|
||||
ensure
|
||||
scope.close
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -18,7 +18,7 @@ module Dyndnsd
|
||||
return if !db.changed?
|
||||
|
||||
Helper.span('updater_update') do |span|
|
||||
span.set_tag('dyndnsd.updater.name', self.class.name&.split('::')&.last || 'None')
|
||||
span.set_attribute('dyndnsd.updater.name', self.class.name&.split('::')&.last || 'None')
|
||||
|
||||
# write zone file in bind syntax
|
||||
File.open(@zone_file, 'w') { |f| f.write(@generator.generate(db)) }
|
||||
|
@ -35,7 +35,7 @@ module Dyndnsd
|
||||
# @return [void]
|
||||
def update(db)
|
||||
Helper.span('updater_update') do |span|
|
||||
span.set_tag('dyndnsd.updater.name', self.class.name&.split('::')&.last || 'None')
|
||||
span.set_attribute('dyndnsd.updater.name', self.class.name&.split('::')&.last || 'None')
|
||||
|
||||
soa_rr = Resolv::DNS::Resource::IN::SOA.new(
|
||||
@zone_nameservers[0], @zone_email_address,
|
||||
|
Reference in New Issue
Block a user