Sha256: a316126598f36a83cbbbf2647f745937a99bda5dd1f3a18bad27e7434fc4f5ed

Contents?: true

Size: 1.16 KB

Versions: 13

Compression:

Stored size: 1.16 KB

Contents

# Copyright (c) 2013 AppNeta, Inc.
# All rights reserved.

module Oboe
  module XTrace
    class << self

      ##
      #  Oboe::XTrace.valid?
      #
      #  Perform basic validation on a potential X-Trace ID
      #
      def valid?(xtrace)
        begin
          # Shouldn't be nil
          return false unless xtrace

          # The X-Trace ID shouldn't be an initialized empty ID
          return false if (xtrace =~ /^1b0000000/i) == 0

          # Valid X-Trace IDs have a length of 58 bytes and start with '1b'
          return false unless xtrace.length == 58 and (xtrace =~ /^1b/i) == 0

          true
        rescue StandardError => e
          Oboe.logger.debug e.message
          Oboe.logger.debug e.backtrace
          false
        end
      end

      ##
      # Oboe::XTrace.task_id
      #
      # Extract and return the task_id portion of an X-Trace ID
      #
      def task_id(xtrace)
        begin
          return nil unless Oboe::XTrace.valid?(xtrace)

          xtrace[2..41]
        rescue StandardError => e
          Oboe.logger.debug e.message
          Oboe.logger.debug e.backtrace
          return nil
        end
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
oboe-2.7.1.7 lib/oboe/xtrace.rb
oboe-2.7.1.7-java lib/oboe/xtrace.rb
oboe-2.7.0.3-java lib/oboe/xtrace.rb
oboe-2.7.0.3 lib/oboe/xtrace.rb
oboe-2.6.8 lib/oboe/xtrace.rb
oboe-2.6.7.1 lib/oboe/xtrace.rb
oboe-2.6.6.1 lib/oboe/xtrace.rb
oboe-2.6.5.5 lib/oboe/xtrace.rb
oboe-2.6.4.1 lib/oboe/xtrace.rb
oboe-2.6.3.0 lib/oboe/xtrace.rb
oboe-2.6.2.0 lib/oboe/xtrace.rb
oboe-2.6.1.0 lib/oboe/xtrace.rb
oboe-2.6.0.2 lib/oboe/xtrace.rb