Sha256: 82342123b06ae30f44bab603c3fb0929e8a55c20342b00c6d23521fcdc5fc114

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

module Jaeger
  class Span
    class ThriftTagBuilder
      FIELDS = Jaeger::Thrift::Tag::FIELDS
      KEY = FIELDS[Jaeger::Thrift::Tag::KEY].fetch(:name)
      VTYPE = FIELDS[Jaeger::Thrift::Tag::VTYPE].fetch(:name)
      VLONG = FIELDS[Jaeger::Thrift::Tag::VLONG].fetch(:name)
      VDOUBLE = FIELDS[Jaeger::Thrift::Tag::VDOUBLE].fetch(:name)
      VBOOL = FIELDS[Jaeger::Thrift::Tag::VBOOL].fetch(:name)
      VSTR = FIELDS[Jaeger::Thrift::Tag::VSTR].fetch(:name)

      def self.build(key, value)
        if value.is_a?(Integer)
          Jaeger::Thrift::Tag.new(
            KEY => key.to_s,
            VTYPE => Jaeger::Thrift::TagType::LONG,
            VLONG => value
          )
        elsif value.is_a?(Float)
          Jaeger::Thrift::Tag.new(
            KEY => key.to_s,
            VTYPE => Jaeger::Thrift::TagType::DOUBLE,
            VDOUBLE => value
          )
        elsif value.is_a?(TrueClass) || value.is_a?(FalseClass)
          Jaeger::Thrift::Tag.new(
            KEY => key.to_s,
            VTYPE => Jaeger::Thrift::TagType::BOOL,
            VBOOL => value
          )
        else
          Jaeger::Thrift::Tag.new(
            KEY => key.to_s,
            VTYPE => Jaeger::Thrift::TagType::STRING,
            VSTR => value.to_s
          )
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jaeger-client-0.10.0 lib/jaeger/span/thrift_tag_builder.rb