opentelemetry-sdk 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/opentelemetry/sdk/internal.rb +5 -5
- data/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb +9 -9
- data/lib/opentelemetry/sdk/trace/span.rb +6 -6
- data/lib/opentelemetry/sdk/trace/tracer_provider.rb +1 -1
- data/lib/opentelemetry/sdk/version.rb +1 -1
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ef291be552aa487d0348eeadee291923710eb8621f74b552d41835f480056869
         | 
| 4 | 
            +
              data.tar.gz: 84ccd40e5b33a3a7a4c0c90b265e87708f3f42ba843166b39d2282aa5eb2382a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 43c4598b75aaeea2c46e89c72db0bc10b2a78a9a9d553c3bf777d65dc0b80a8cdab4d3c0c52f05fa9fdf691a4e3e8e8cb5e808c4d762fdca7cfa0832ee6dd1a1
         | 
| 7 | 
            +
              data.tar.gz: c4e434f89f6a8ee8207b8036e31147db0ea9bf4931bb6130db120c6b6a0b78a93ca32e17bf1316a1b56f6162724335716cfaaf34b6b046a1df28be22de4b9653
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,10 @@ | |
| 1 1 | 
             
            # Release History: opentelemetry-sdk
         | 
| 2 2 |  | 
| 3 | 
            +
            ### v1.3.2 / 2024-01-23
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            * FIXED: Reduce allocations on GraphQL hot paths
         | 
| 6 | 
            +
            * FIXED: Add context to metrics reporting of buffer-full events
         | 
| 7 | 
            +
             | 
| 3 8 | 
             
            ### v1.3.1 / 2023-11-02
         | 
| 4 9 |  | 
| 5 10 | 
             
            * FIXED: Spec compliance for span attribute limit
         | 
| @@ -49,17 +49,17 @@ module OpenTelemetry | |
| 49 49 | 
             
                  end
         | 
| 50 50 |  | 
| 51 51 | 
             
                  def valid_attributes?(owner, kind, attrs)
         | 
| 52 | 
            -
                    attrs.nil? || attrs. | 
| 52 | 
            +
                    attrs.nil? || attrs.each do |k, v|
         | 
| 53 53 | 
             
                      if !valid_key?(k)
         | 
| 54 54 | 
             
                        OpenTelemetry.handle_error(message: "invalid #{kind} attribute key type #{k.class} on span '#{owner}'")
         | 
| 55 | 
            -
                        false
         | 
| 55 | 
            +
                        return false
         | 
| 56 56 | 
             
                      elsif !valid_value?(v)
         | 
| 57 57 | 
             
                        OpenTelemetry.handle_error(message: "invalid #{kind} attribute value type #{v.class} for key '#{k}' on span '#{owner}'")
         | 
| 58 | 
            -
                        false
         | 
| 59 | 
            -
                      else
         | 
| 60 | 
            -
                        true
         | 
| 58 | 
            +
                        return false
         | 
| 61 59 | 
             
                      end
         | 
| 62 60 | 
             
                    end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                    true
         | 
| 63 63 | 
             
                  end
         | 
| 64 64 | 
             
                end
         | 
| 65 65 | 
             
              end
         | 
| @@ -81,8 +81,8 @@ module OpenTelemetry | |
| 81 81 | 
             
                          reset_on_fork
         | 
| 82 82 | 
             
                          n = spans.size + 1 - max_queue_size
         | 
| 83 83 | 
             
                          if n.positive?
         | 
| 84 | 
            -
                            spans.shift(n)
         | 
| 85 | 
            -
                            report_dropped_spans( | 
| 84 | 
            +
                            dropped_spans = spans.shift(n)
         | 
| 85 | 
            +
                            report_dropped_spans(dropped_spans, reason: 'buffer-full', function: __method__.to_s)
         | 
| 86 86 | 
             
                          end
         | 
| 87 87 | 
             
                          spans << span
         | 
| 88 88 | 
             
                          @condition.signal if spans.size > batch_size
         | 
| @@ -122,8 +122,8 @@ module OpenTelemetry | |
| 122 122 | 
             
                        lock do
         | 
| 123 123 | 
             
                          n = spans.size + snapshot.size - max_queue_size
         | 
| 124 124 | 
             
                          if n.positive?
         | 
| 125 | 
            -
                            snapshot.shift(n)
         | 
| 126 | 
            -
                            report_dropped_spans( | 
| 125 | 
            +
                            dropped_spans = snapshot.shift(n)
         | 
| 126 | 
            +
                            report_dropped_spans(dropped_spans, reason: 'buffer-full', function: __method__.to_s)
         | 
| 127 127 | 
             
                          end
         | 
| 128 128 | 
             
                          spans.unshift(snapshot) unless snapshot.empty?
         | 
| 129 129 | 
             
                          @condition.signal if spans.size > max_queue_size / 2
         | 
| @@ -146,8 +146,8 @@ module OpenTelemetry | |
| 146 146 |  | 
| 147 147 | 
             
                        thread&.join(timeout)
         | 
| 148 148 | 
             
                        force_flush(timeout: OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time))
         | 
| 149 | 
            -
                        dropped_spans = lock { spans. | 
| 150 | 
            -
                        report_dropped_spans(dropped_spans, reason: 'terminating') if dropped_spans. | 
| 149 | 
            +
                        dropped_spans = lock { spans.shift(spans.length) }
         | 
| 150 | 
            +
                        report_dropped_spans(dropped_spans, reason: 'terminating') if dropped_spans.any?
         | 
| 151 151 | 
             
                        @exporter.shutdown(timeout: OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time))
         | 
| 152 152 | 
             
                      end
         | 
| 153 153 |  | 
| @@ -200,12 +200,12 @@ module OpenTelemetry | |
| 200 200 | 
             
                        else
         | 
| 201 201 | 
             
                          OpenTelemetry.handle_error(exception: ExportError.new("Unable to export #{batch.size} spans"))
         | 
| 202 202 | 
             
                          @metrics_reporter.add_to_counter('otel.bsp.export.failure')
         | 
| 203 | 
            -
                          report_dropped_spans(batch | 
| 203 | 
            +
                          report_dropped_spans(batch, reason: 'export-failure')
         | 
| 204 204 | 
             
                        end
         | 
| 205 205 | 
             
                      end
         | 
| 206 206 |  | 
| 207 | 
            -
                      def report_dropped_spans( | 
| 208 | 
            -
                        @metrics_reporter.add_to_counter('otel.bsp.dropped_spans', increment:  | 
| 207 | 
            +
                      def report_dropped_spans(dropped_spans, reason:, function: nil)
         | 
| 208 | 
            +
                        @metrics_reporter.add_to_counter('otel.bsp.dropped_spans', increment: dropped_spans.size, labels: { 'reason' => reason, OpenTelemetry::SemanticConventions::Trace::CODE_FUNCTION => function }.compact)
         | 
| 209 209 | 
             
                      end
         | 
| 210 210 |  | 
| 211 211 | 
             
                      def fetch_batch
         | 
| @@ -282,7 +282,7 @@ module OpenTelemetry | |
| 282 282 | 
             
                    end
         | 
| 283 283 |  | 
| 284 284 | 
             
                    # @api private
         | 
| 285 | 
            -
                    def initialize(context, parent_context, parent_span, name, kind, parent_span_id, span_limits, span_processors, attributes, links, start_timestamp, resource, instrumentation_scope) # rubocop:disable | 
| 285 | 
            +
                    def initialize(context, parent_context, parent_span, name, kind, parent_span_id, span_limits, span_processors, attributes, links, start_timestamp, resource, instrumentation_scope) # rubocop:disable Metrics/MethodLength, Metrics/PerceivedComplexity
         | 
| 286 286 | 
             
                      super(span_context: context)
         | 
| 287 287 | 
             
                      @mutex = Mutex.new
         | 
| 288 288 | 
             
                      @name = name
         | 
| @@ -297,7 +297,7 @@ module OpenTelemetry | |
| 297 297 | 
             
                      @total_recorded_events = 0
         | 
| 298 298 | 
             
                      @total_recorded_links = links&.size || 0
         | 
| 299 299 | 
             
                      @total_recorded_attributes = attributes&.size || 0
         | 
| 300 | 
            -
                      @attributes = attributes | 
| 300 | 
            +
                      @attributes = attributes
         | 
| 301 301 | 
             
                      trim_span_attributes(@attributes)
         | 
| 302 302 | 
             
                      @events = nil
         | 
| 303 303 | 
             
                      @links = trim_links(links, span_limits.link_count_limit, span_limits.link_attribute_count_limit)
         | 
| @@ -317,7 +317,7 @@ module OpenTelemetry | |
| 317 317 | 
             
                      # SpanData.
         | 
| 318 318 | 
             
                      @monotonic_start_timestamp = monotonic_now
         | 
| 319 319 | 
             
                      @realtime_start_timestamp = if parent_span.recording?
         | 
| 320 | 
            -
                                                    relative_realtime(parent_span.realtime_start_timestamp, parent_span.monotonic_start_timestamp)
         | 
| 320 | 
            +
                                                    relative_realtime(parent_span.realtime_start_timestamp, parent_span.monotonic_start_timestamp, @monotonic_start_timestamp)
         | 
| 321 321 | 
             
                                                  else
         | 
| 322 322 | 
             
                                                    realtime_now
         | 
| 323 323 | 
             
                                                  end
         | 
| @@ -419,15 +419,15 @@ module OpenTelemetry | |
| 419 419 | 
             
                    def relative_timestamp(timestamp)
         | 
| 420 420 | 
             
                      return time_in_nanoseconds(timestamp) unless timestamp.nil?
         | 
| 421 421 |  | 
| 422 | 
            -
                      relative_realtime(realtime_start_timestamp, monotonic_start_timestamp)
         | 
| 422 | 
            +
                      relative_realtime(realtime_start_timestamp, monotonic_start_timestamp, monotonic_now)
         | 
| 423 423 | 
             
                    end
         | 
| 424 424 |  | 
| 425 425 | 
             
                    def time_in_nanoseconds(timestamp)
         | 
| 426 426 | 
             
                      (timestamp.to_r * 1_000_000_000).to_i
         | 
| 427 427 | 
             
                    end
         | 
| 428 428 |  | 
| 429 | 
            -
                    def relative_realtime(realtime_base, monotonic_base)
         | 
| 430 | 
            -
                      realtime_base + ( | 
| 429 | 
            +
                    def relative_realtime(realtime_base, monotonic_base, now)
         | 
| 430 | 
            +
                      realtime_base + (now - monotonic_base)
         | 
| 431 431 | 
             
                    end
         | 
| 432 432 |  | 
| 433 433 | 
             
                    def realtime_now
         | 
| @@ -141,7 +141,7 @@ module OpenTelemetry | |
| 141 141 | 
             
                      if result.recording? && !@stopped
         | 
| 142 142 | 
             
                        trace_flags = result.sampled? ? OpenTelemetry::Trace::TraceFlags::SAMPLED : OpenTelemetry::Trace::TraceFlags::DEFAULT
         | 
| 143 143 | 
             
                        context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id, trace_flags: trace_flags, tracestate: result.tracestate)
         | 
| 144 | 
            -
                        attributes = attributes&.merge(result.attributes) || result.attributes
         | 
| 144 | 
            +
                        attributes = attributes&.merge(result.attributes) || result.attributes.dup
         | 
| 145 145 | 
             
                        Span.new(
         | 
| 146 146 | 
             
                          context,
         | 
| 147 147 | 
             
                          parent_context,
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: opentelemetry-sdk
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.3. | 
| 4 | 
            +
              version: 1.3.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - OpenTelemetry Authors
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-01-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: opentelemetry-api
         | 
| @@ -294,10 +294,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby | |
| 294 294 | 
             
            licenses:
         | 
| 295 295 | 
             
            - Apache-2.0
         | 
| 296 296 | 
             
            metadata:
         | 
| 297 | 
            -
              changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v1.3. | 
| 297 | 
            +
              changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v1.3.2/file.CHANGELOG.html
         | 
| 298 298 | 
             
              source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/sdk
         | 
| 299 299 | 
             
              bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
         | 
| 300 | 
            -
              documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v1.3. | 
| 300 | 
            +
              documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v1.3.2
         | 
| 301 301 | 
             
            post_install_message: 
         | 
| 302 302 | 
             
            rdoc_options: []
         | 
| 303 303 | 
             
            require_paths:
         |