Module: OpenTelemetry::Exporter::Jaeger::Encoder Private
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
- #encoded_instrumentation_library(instrumentation_library) ⇒ Object private
- #encoded_kind(kind) ⇒ Object private
- #encoded_logs(events) ⇒ Object private
- #encoded_process(resource) ⇒ Object private
- #encoded_references(links) ⇒ Object private
- 
  
    
      #encoded_span(span_data)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  private
  
    rubocop:disable Metrics/AbcSize. 
- #encoded_status(status) ⇒ Object private
- #encoded_tag(key, value) ⇒ Object private
- #encoded_tags(attributes) ⇒ Object private
- #int64(byte_string) ⇒ Object private
Instance Method Details
#encoded_instrumentation_library(instrumentation_library) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 134 135 136 137 138 139 140 141 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 134 def encoded_instrumentation_library(instrumentation_library) return EMPTY_ARRAY unless instrumentation_library = [] << encoded_tag('otel.library.name', instrumentation_library.name) if instrumentation_library.name << encoded_tag('otel.library.version', instrumentation_library.version) if instrumentation_library.version end | 
#encoded_kind(kind) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 89 90 91 92 93 94 95 96 97 98 99 100 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 89 def encoded_kind(kind) value = KIND_MAP[kind] return EMPTY_ARRAY unless value Array( Thrift::Tag.new( KEY => 'span.kind', TYPE => Thrift::TagType::STRING, STRING => value ) ) end | 
#encoded_logs(events) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 102 103 104 105 106 107 108 109 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 102 def encoded_logs(events) events&.map do |event| Thrift::Log.new( 'timestamp' => (event..to_f * 1_000_000).to_i, 'fields' => (event.attributes) + ('name' => event.name) ) end end | 
#encoded_process(resource) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 36 37 38 39 40 41 42 43 44 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 36 def encoded_process(resource) service_name = DEFAULT_SERVICE_NAME = resource&.attribute_enumerator&.select do |key, value| service_name = value if key == 'service.name' key != 'service.name' end = () Thrift::Process.new('serviceName' => service_name, 'tags' => ) end | 
#encoded_references(links) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 111 112 113 114 115 116 117 118 119 120 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 111 def encoded_references(links) links&.map do |link| Thrift::SpanRef.new( 'refType' => Thrift::SpanRefType::FOLLOWS_FROM, 'traceIdLow' => int64(link.span_context.trace_id[16, 16]), 'traceIdHigh' => int64(link.span_context.trace_id[0, 16]), 'spanId' => int64(link.span_context.span_id) ) end end | 
#encoded_span(span_data) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
rubocop:disable Metrics/AbcSize
| 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 67 def encoded_span(span_data) # rubocop:disable Metrics/AbcSize start_time = (span_data..to_f * 1_000_000).to_i duration = (span_data..to_f * 1_000_000).to_i - start_time Thrift::Span.new( 'traceIdLow' => int64(span_data.trace_id[8, 8]), 'traceIdHigh' => int64(span_data.trace_id[0, 8]), 'spanId' => int64(span_data.span_id), 'parentSpanId' => int64(span_data.parent_span_id), 'operationName' => span_data.name, 'references' => encoded_references(span_data.links), 'flags' => span_data.trace_flags.sampled? ? 1 : 0, 'startTime' => start_time, 'duration' => duration, 'tags' => (span_data.attributes) + encoded_status(span_data.status) + encoded_kind(span_data.kind) + encoded_instrumentation_library(span_data.instrumentation_library), 'logs' => encoded_logs(span_data.events) ) end | 
#encoded_status(status) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 122 123 124 125 126 127 128 129 130 131 132 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 122 def encoded_status(status) return EMPTY_ARRAY unless status&.code == OpenTelemetry::Trace::Status::ERROR Array( Thrift::Tag.new( KEY => 'error', TYPE => Thrift::TagType::BOOL, BOOL => true ) ) end | 
#encoded_tag(key, value) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 52 def encoded_tag(key, value) value_key = case value when Integer then LONG when Float then DOUBLE when String, Array then STRING when false, true then BOOL end value = value.to_json if value.is_a?(Array) Thrift::Tag.new( KEY => key, TYPE => TYPE_MAP[value_key], value_key => value ) end | 
#encoded_tags(attributes) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 46 47 48 49 50 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 46 def (attributes) attributes&.map do |key, value| encoded_tag(key, value) end || EMPTY_ARRAY end | 
#int64(byte_string) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 143 144 145 146 | # File 'lib/opentelemetry/exporter/jaeger/encoder.rb', line 143 def int64(byte_string) int = byte_string.unpack1('Q>') int < (1 << 63) ? int : int - (1 << 64) end |