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
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/openc3/utilities/open_telemetry.rb', line 56
def self.setup_open_telemetry(service_name, support_rails = false)
if ENV['OTEL_EXPORTER_OTLP_ENDPOINT']
split_services = ENV['OPENC3_OTEL'].to_s.split(',')
@otel_enabled = true if split_services.include?(service_name) or split_services.include?('ALL')
if @otel_enabled
require 'redis'
require 'httpclient'
require 'openc3/utilities/bucket'
Bucket.getClient()
require 'opentelemetry/sdk'
require 'opentelemetry/exporter/otlp'
require 'opentelemetry/instrumentation/redis'
require 'opentelemetry/instrumentation/http_client'
require 'opentelemetry/instrumentation/aws_sdk'
if support_rails
require 'opentelemetry/instrumentation/rack'
require 'opentelemetry/instrumentation/action_pack'
end
OpenTelemetry::SDK.configure do |c|
c.service_name = service_name
if support_rails
c.use('OpenTelemetry::Instrumentation::Rack')
c.use('OpenTelemetry::Instrumentation::ActionPack', { enable_recognize_route: true })
end
c.use 'OpenTelemetry::Instrumentation::Redis', {
db_statement: :include,
}
c.use 'OpenTelemetry::Instrumentation::HttpClient'
c.use 'OpenTelemetry::Instrumentation::AwsSdk'
end
end
end
end
|