Class: ChargeBee::TelemetryExecutor
- Inherits:
-
Object
- Object
- ChargeBee::TelemetryExecutor
- Defined in:
- lib/chargebee/telemetry_executor.rb
Class Method Summary collapse
- .build_http_url(env, sub_domain, url) ⇒ Object
- .execute(env, telemetry_resource:, telemetry_operation:, method:, http_url:, request_headers: {}) ⇒ Object
Class Method Details
.build_http_url(env, sub_domain, url) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/chargebee/telemetry_executor.rb', line 30 def build_http_url(env, sub_domain, url) path = url.start_with?('/') ? url : "/#{url}" full = env.api_url(path, sub_domain) uri = URI.parse(full) "#{uri.scheme}://#{uri.host}#{uri.path}" end |
.execute(env, telemetry_resource:, telemetry_operation:, method:, http_url:, request_headers: {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/chargebee/telemetry_executor.rb', line 6 def execute(env, telemetry_resource:, telemetry_operation:, method:, http_url:, request_headers: {}) adapter = env.telemetry_adapter if adapter.nil? || telemetry_resource.to_s.empty? || telemetry_operation.to_s.empty? _status, result = yield(nil) return result end start = Process.clock_gettime(Process::CLOCK_MONOTONIC) headers = {} handle = start_telemetry( env, adapter, telemetry_resource, telemetry_operation, method, http_url, request_headers, headers ) begin telemetry_headers = headers.empty? ? nil : headers status_code, result = yield(telemetry_headers) end_telemetry_success(adapter, handle, start, status_code) result rescue => err end_telemetry_failure(adapter, handle, start, err) raise end end |