diff --git a/404.html b/404.html index 084b8f9236..baac10036c 100644 --- a/404.html +++ b/404.html @@ -59,7 +59,7 @@ versions.version_opentelemetry_instrumentation_sinatra = "0.20.0"; versions.version_opentelemetry_propagator_b3 = "0.21.0"; versions.version_opentelemetry_resource_detectors = "0.21.0"; - versions.version_opentelemetry_sdk = "1.4.0"; + versions.version_opentelemetry_sdk = "1.4.1"; var whichGem = gems.find(function(gem) { return window.location.href.includes("//open-telemetry.github.io/opentelemetry-ruby/" + gem + "/latest"); diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry.html new file mode 100644 index 0000000000..0444c7d0b4 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry.html @@ -0,0 +1,130 @@ + + + + + + + Module: OpenTelemetry + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace.rb,
+ lib/opentelemetry/sdk/version.rb,
lib/opentelemetry/sdk/internal.rb,
lib/opentelemetry/sdk/resources.rb,
lib/opentelemetry/sdk/trace/span.rb,
lib/opentelemetry/sdk/trace/event.rb,
lib/opentelemetry/sdk/configurator.rb,
lib/opentelemetry/sdk/trace/export.rb,
lib/opentelemetry/sdk/trace/tracer.rb,
lib/opentelemetry/sdk/trace/samplers.rb,
lib/opentelemetry/sdk/trace/span_data.rb,
lib/opentelemetry/sdk/forwarding_logger.rb,
lib/opentelemetry/sdk/trace/span_limits.rb,
lib/opentelemetry/sdk/resources/resource.rb,
lib/opentelemetry/sdk/trace/span_processor.rb,
lib/opentelemetry/sdk/instrumentation_scope.rb,
lib/opentelemetry/sdk/trace/samplers/result.rb,
lib/opentelemetry/sdk/trace/tracer_provider.rb,
lib/opentelemetry/sdk/instrumentation_library.rb,
lib/opentelemetry/sdk/trace/samplers/decision.rb,
lib/opentelemetry/sdk/trace/export/span_exporter.rb,
lib/opentelemetry/sdk/trace/samplers/parent_based.rb,
lib/opentelemetry/sdk/trace/export/metrics_reporter.rb,
lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb,
lib/opentelemetry/sdk/trace/export/batch_span_processor.rb,
lib/opentelemetry/sdk/trace/export/console_span_exporter.rb,
lib/opentelemetry/sdk/trace/export/simple_span_processor.rb,
lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb,
lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb,
lib/opentelemetry/sdk.rb
+
+
+ +
+ +

Overview

+
+ +

OpenTelemetry is an open source observability framework, providing a general-purpose API, SDK, and related tools required for the instrumentation of cloud-native software, frameworks, and libraries.

+ +

The OpenTelemetry module provides global accessors for telemetry objects. See the documentation for the opentelemetry-api gem for details.

+ + +
+
+
+ + +

Defined Under Namespace

+

+ + + Modules: SDK + + + + +

+ + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK.html new file mode 100644 index 0000000000..316310f0c1 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK.html @@ -0,0 +1,336 @@ + + + + + + + Module: OpenTelemetry::SDK + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK + + + +

+
+ + + + +
+
Extended by:
+
SDK
+
+ + + + + + +
+
Included in:
+
SDK
+
+ + + +
+
Defined in:
+
lib/opentelemetry/sdk.rb,
+ lib/opentelemetry/sdk/trace.rb,
lib/opentelemetry/sdk/version.rb,
lib/opentelemetry/sdk/internal.rb,
lib/opentelemetry/sdk/resources.rb,
lib/opentelemetry/sdk/trace/span.rb,
lib/opentelemetry/sdk/trace/event.rb,
lib/opentelemetry/sdk/configurator.rb,
lib/opentelemetry/sdk/trace/export.rb,
lib/opentelemetry/sdk/trace/tracer.rb,
lib/opentelemetry/sdk/trace/samplers.rb,
lib/opentelemetry/sdk/trace/span_data.rb,
lib/opentelemetry/sdk/forwarding_logger.rb,
lib/opentelemetry/sdk/trace/span_limits.rb,
lib/opentelemetry/sdk/resources/resource.rb,
lib/opentelemetry/sdk/trace/span_processor.rb,
lib/opentelemetry/sdk/instrumentation_scope.rb,
lib/opentelemetry/sdk/trace/samplers/result.rb,
lib/opentelemetry/sdk/trace/tracer_provider.rb,
lib/opentelemetry/sdk/instrumentation_library.rb,
lib/opentelemetry/sdk/trace/samplers/decision.rb,
lib/opentelemetry/sdk/trace/export/span_exporter.rb,
lib/opentelemetry/sdk/trace/samplers/parent_based.rb,
lib/opentelemetry/sdk/trace/export/metrics_reporter.rb,
lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb,
lib/opentelemetry/sdk/trace/export/batch_span_processor.rb,
lib/opentelemetry/sdk/trace/export/console_span_exporter.rb,
lib/opentelemetry/sdk/trace/export/simple_span_processor.rb,
lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb,
lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb
+
+
+ +
+ +

Overview

+
+ +

SDK provides the reference implementation of the OpenTelemetry API.

+ + +
+
+
+ + +

Defined Under Namespace

+

+ + + Modules: Internal, Resources, Trace + + + + Classes: Configurator, ForwardingLogger, InstrumentationLibrary, InstrumentationScope + + +

+ + +

+ Constant Summary + collapse +

+ +
+ +
VERSION = +
+
+ +

Current OpenTelemetry version

+ + +
+
+
+ + +
+
+
'1.4.1'
+ +
ConfigurationError = +
+
+ +

ConfigurationError is an exception type used to wrap configuration errors passed to OpenTelemetry.error_handler. This can be used to distinguish errors reported during SDK configuration.

+ + +
+
+
+ + +
+
+
Class.new(OpenTelemetry::Error)
+ +
+ + + + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Method Details

+ + +
+

+ + #configure {|configurator| ... } ⇒ Object + + + + + +

+
+ +

Configures SDK and instrumentation

+ +

Example usage: Without a block defaults are installed without any instrumentation

+ +
OpenTelemetry::SDK.configure
+
+ +

Install instrumentation individually with optional config

+ +
OpenTelemetry::SDK.configure do |c|
+  c.use 'OpenTelemetry::Instrumentation::Faraday', tracer_middleware: SomeMiddleware
+end
+
+ +

Install all instrumentation with optional config

+ +
OpenTelemetry::SDK.configure do |c|
+  c.use_all 'OpenTelemetry::Instrumentation::Faraday' => { tracer_middleware: SomeMiddleware }
+end
+
+ +

Add a span processor

+ +
OpenTelemetry::SDK.configure do |c|
+  c.add_span_processor SpanProcessor.new(SomeExporter.new)
+end
+
+ +

Configure everything

+ +
OpenTelemetry::SDK.configure do |c|
+  c.logger = Logger.new(File::NULL)
+  c.add_span_processor SpanProcessor.new(SomeExporter.new)
+  c.use_all
+end
+
+ + +
+
+
+ +

Yield Parameters:

+
    + +
  • + + configurator + + + (Configurator) + + + + — +
    +

    Yields a configurator to the provided block

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+
+
# File 'lib/opentelemetry/sdk.rb', line 63
+
+def configure
+  configurator = Configurator.new
+  yield configurator if block_given?
+  configurator.configure
+rescue StandardError
+  begin
+    raise ConfigurationError
+  rescue ConfigurationError => e
+    OpenTelemetry.handle_error(exception: e, message: "unexpected configuration error due to #{e.cause}")
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Configurator.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Configurator.html new file mode 100644 index 0000000000..3e6c66579f --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Configurator.html @@ -0,0 +1,1257 @@ + + + + + + + Class: OpenTelemetry::SDK::Configurator + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Configurator + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/configurator.rb
+
+ +
+ +

Overview

+
+ +

The configurator provides defaults and facilitates configuring the SDK for use.

+ + +
+
+
+ + +

Defined Under Namespace

+

+ + + + + Classes: NoopTextMapPropagator + + +

+ + + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initializeConfigurator + + + + + +

+
+ +

Returns a new instance of Configurator.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+36
+37
+38
+39
+40
+41
+42
+43
+44
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 36
+
+def initialize
+  @instrumentation_names = []
+  @instrumentation_config_map = {}
+  @propagators = nil
+  @span_processors = []
+  @use_mode = USE_MODE_UNSPECIFIED
+  @resource = Resources::Resource.default
+  @id_generator = OpenTelemetry::Trace
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #error_handlerObject + + + + + +

+ + + + +
+
+
+
+59
+60
+61
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 59
+
+def error_handler
+  @error_handler ||= OpenTelemetry.error_handler
+end
+
+
+ + + +
+

+ + #id_generator=(value) ⇒ Object (writeonly) + + + + + +

+
+ +

Sets the attribute id_generator

+ + +
+
+
+

Parameters:

+
    + +
  • + + value + + + + + + + — +
    +

    the value to set the attribute id_generator to.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+34
+35
+36
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 34
+
+def id_generator=(value)
+  @id_generator = value
+end
+
+
+ + + +
+

+ + #propagators=(value) ⇒ Object (writeonly) + + + + + +

+
+ +

Sets the attribute propagators

+ + +
+
+
+

Parameters:

+
    + +
  • + + value + + + + + + + — +
    +

    the value to set the attribute propagators to.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+34
+35
+36
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 34
+
+def propagators=(value)
+  @propagators = value
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add_span_processor(span_processor) ⇒ Object + + + + + +

+
+ +

Add a span processor to the export pipeline

+ + +
+
+
+

Parameters:

+
    + +
  • + + span_processor + + + (#on_start, #on_finish, #shutdown, #force_flush) + + + + — +
    +

    A span_processor that satisfies the duck type #on_start, #on_finish, #shutdown, #force_flush. See SimpleSpanProcessor for an example.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+125
+126
+127
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 125
+
+def add_span_processor(span_processor)
+  @span_processors << span_processor
+end
+
+
+ +
+

+ + #configureObject + + + + + +

+
+

+ 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. +

+ +

The configure method is where we define the setup process. This allows us to make certain guarantees about which systems and globals are setup at each stage. The setup process is: - setup logging - setup propagation - setup tracer_provider and meter_provider - install instrumentation

+ + +
+
+
+ + +
+ + + + +
+
+
+
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 137
+
+def configure
+  OpenTelemetry.logger = logger
+  OpenTelemetry.error_handler = error_handler
+  configure_propagation
+  configure_span_processors
+  tracer_provider.id_generator = @id_generator
+  OpenTelemetry.tracer_provider = tracer_provider
+  metrics_configuration_hook
+  install_instrumentation
+end
+
+
+ +
+

+ + #loggerObject + + + + + +

+ + + + +
+
+
+
+46
+47
+48
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 46
+
+def logger
+  @logger ||= OpenTelemetry.logger
+end
+
+
+ +
+

+ + #logger=(new_logger) ⇒ Object + + + + + +

+
+ +

Accepts a logger and wraps it in the ForwardingLogger which allows for controlling the severity level emitted by the OpenTelemetry.logger independently of the supplied logger.

+ + +
+
+
+

Parameters:

+
    + +
  • + + new_logger + + + (Logger) + + + + — +
    +

    The logger for OpenTelemetry to use

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+55
+56
+57
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 55
+
+def logger=(new_logger)
+  @logger = ForwardingLogger.new(new_logger, level: ENV['OTEL_LOG_LEVEL'] || Logger::INFO)
+end
+
+
+ +
+

+ + #resource=(new_resource) ⇒ Object + + + + + +

+
+ +

Accepts a resource object that is merged with the default telemetry sdk resource. The use of this method is optional, and is provided as means to include additional resource information. If a resource key collision occurs the passed in resource takes priority.

+ + +
+
+
+

Parameters:

+
    + +
  • + + new_resource + + + (Resource) + + + + — +
    +

    The resource to be merged

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+69
+70
+71
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 69
+
+def resource=(new_resource)
+  @resource = @resource.merge(new_resource)
+end
+
+
+ +
+

+ + #service_name=(service_name) ⇒ Object + + + + + +

+
+ +

Accepts a string that is merged in as the service.name resource attribute. The most recent assigned value will be used in the event of repeated calls to this setter.

+ + +
+
+
+

Parameters:

+
    + +
  • + + service_name + + + (String) + + + + — +
    +

    The value to be used as the service name

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+77
+78
+79
+80
+81
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 77
+
+def service_name=(service_name)
+  self.resource = OpenTelemetry::SDK::Resources::Resource.create(
+    OpenTelemetry::SemanticConventions::Resource::SERVICE_NAME => service_name
+  )
+end
+
+
+ +
+

+ + #service_version=(service_version) ⇒ Object + + + + + +

+
+ +

Accepts a string that is merged in as the service.version resource attribute. The most recent assigned value will be used in the event of repeated calls to this setter.

+ + +
+
+
+

Parameters:

+
    + +
  • + + service_version + + + (String) + + + + — +
    +

    The value to be used as the service version

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+87
+88
+89
+90
+91
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 87
+
+def service_version=(service_version)
+  self.resource = OpenTelemetry::SDK::Resources::Resource.create(
+    OpenTelemetry::SemanticConventions::Resource::SERVICE_VERSION => service_version
+  )
+end
+
+
+ +
+

+ + #use(instrumentation_name, config = nil) ⇒ Object + + + + + +

+
+ +

Install an instrumentation with specificied optional config. Use can be called multiple times to install multiple instrumentation. Only use or use_all, but not both when installing instrumentation. A call to use_all after use will result in an exception.

+ + +
+
+
+

Parameters:

+
    + +
  • + + instrumentation_name + + + (String) + + + + — +
    +

    The name of the instrumentation

    +
    + +
  • + +
  • + + config + + + (optional Hash) + + + (defaults to: nil) + + + — +
    +

    The config for this instrumentation

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+101
+102
+103
+104
+105
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 101
+
+def use(instrumentation_name, config = nil)
+  check_use_mode!(USE_MODE_ONE)
+  @instrumentation_names << instrumentation_name
+  @instrumentation_config_map[instrumentation_name] = config if config
+end
+
+
+ +
+

+ + #use_all(instrumentation_config_map = {}) ⇒ Object + + + + + +

+
+ +

Install all registered instrumentation. Configuration for specific instrumentation can be provided with the optional instrumentation_config_map parameter. Only use or use_all, but not both when installing instrumentation. A call to use after use_all will result in an exception.

+ + +
+
+
+

Parameters:

+
    + +
  • + + instrumentation_config_map + + + (optional Hash<String,Hash>) + + + (defaults to: {}) + + + — +
    +

    A map with string keys representing the instrumentation name and values specifying the instrumentation config

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+115
+116
+117
+118
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 115
+
+def use_all(instrumentation_config_map = {})
+  check_use_mode!(USE_MODE_ALL)
+  @instrumentation_config_map = instrumentation_config_map
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Configurator/NoopTextMapPropagator.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Configurator/NoopTextMapPropagator.html new file mode 100644 index 0000000000..05bd0f4a91 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Configurator/NoopTextMapPropagator.html @@ -0,0 +1,342 @@ + + + + + + + Class: OpenTelemetry::SDK::Configurator::NoopTextMapPropagator + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Configurator::NoopTextMapPropagator + + + Private +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/configurator.rb
+
+ +
+ +
+
+

+ This class is part of a private API. + You should avoid using this class if possible, as it may be removed or be changed in the future. +

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Method Details

+ + +
+

+ + #extract(carrier, context: Context.current, getter: Context::Propagation.text_map_getter) ⇒ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+19
+20
+21
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 19
+
+def extract(carrier, context: Context.current, getter: Context::Propagation.text_map_getter)
+  context
+end
+
+
+ +
+

+ + #fieldsObject + + + + + +

+
+

+ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+23
+24
+25
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 23
+
+def fields
+  EMPTY_LIST
+end
+
+
+ +
+

+ + #inject(carrier, context: Context.current, setter: Context::Propagation.text_map_setter) ⇒ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+
+
# File 'lib/opentelemetry/sdk/configurator.rb', line 17
+
+def inject(carrier, context: Context.current, setter: Context::Propagation.text_map_setter); end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/ForwardingLogger.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/ForwardingLogger.html new file mode 100644 index 0000000000..0dce4a1c77 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/ForwardingLogger.html @@ -0,0 +1,630 @@ + + + + + + + Class: OpenTelemetry::SDK::ForwardingLogger + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::ForwardingLogger + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/forwarding_logger.rb
+
+ +
+ +

Overview

+
+ +

The ForwardingLogger provides a wrapper to control the OpenTelemetry log level, while respecting the configured level of the supplied logger. If the OTEL_LOG_LEVEL is set to debug, and the supplied logger is configured with an ERROR log level, only OpenTelemetry logs at the ERROR level or higher will be emitted.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(logger, level:) ⇒ ForwardingLogger + + + + + +

+
+ +

Returns a new instance of ForwardingLogger.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 13
+
+def initialize(logger, level:)
+  @logger = logger
+
+  if level.is_a?(Integer)
+    @level = level
+  else
+    case level.to_s.downcase
+    when 'debug'
+      @level = Logger::DEBUG
+    when 'info'
+      @level = Logger::INFO
+    when 'warn'
+      @level = Logger::WARN
+    when 'error'
+      @level = Logger::ERROR
+    when 'fatal'
+      @level = Logger::FATAL
+    when 'unknown'
+      @level = Logger::UNKNOWN
+    else
+      raise ArgumentError, "invalid log level: #{level}"
+    end
+  end
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add(severity, message = nil, progname = nil, &block) ⇒ Object + + + + + +

+ + + + +
+
+
+
+38
+39
+40
+41
+42
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 38
+
+def add(severity, message = nil, progname = nil, &block)
+  return true if severity < @level
+
+  @logger.add(severity, message, progname, &block)
+end
+
+
+ +
+

+ + #debug(progname = nil, &block) ⇒ Object + + + + + +

+ + + + +
+
+
+
+44
+45
+46
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 44
+
+def debug(progname = nil, &block)
+  add(Logger::DEBUG, nil, progname, &block)
+end
+
+
+ +
+

+ + #error(progname = nil, &block) ⇒ Object + + + + + +

+ + + + +
+
+
+
+56
+57
+58
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 56
+
+def error(progname = nil, &block)
+  add(Logger::ERROR, nil, progname, &block)
+end
+
+
+ +
+

+ + #fatal(progname = nil, &block) ⇒ Object + + + + + +

+ + + + +
+
+
+
+60
+61
+62
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 60
+
+def fatal(progname = nil, &block)
+  add(Logger::FATAL, nil, progname, &block)
+end
+
+
+ +
+

+ + #info(progname = nil, &block) ⇒ Object + + + + + +

+ + + + +
+
+
+
+48
+49
+50
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 48
+
+def info(progname = nil, &block)
+  add(Logger::INFO, nil, progname, &block)
+end
+
+
+ +
+

+ + #unknown(progname = nil, &block) ⇒ Object + + + + + +

+ + + + +
+
+
+
+64
+65
+66
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 64
+
+def unknown(progname = nil, &block)
+  add(Logger::UNKNOWN, nil, progname, &block)
+end
+
+
+ +
+

+ + #warn(progname = nil, &block) ⇒ Object + + + + + +

+ + + + +
+
+
+
+52
+53
+54
+
+
# File 'lib/opentelemetry/sdk/forwarding_logger.rb', line 52
+
+def warn(progname = nil, &block)
+  add(Logger::WARN, nil, progname, &block)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/InstrumentationLibrary.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/InstrumentationLibrary.html new file mode 100644 index 0000000000..31d7217eef --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/InstrumentationLibrary.html @@ -0,0 +1,324 @@ + + + + + + + Class: OpenTelemetry::SDK::InstrumentationLibrary + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::InstrumentationLibrary + + Deprecated + +

+
+ +
+
Inherits:
+
+ Struct + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/instrumentation_library.rb
+
+ +
+ +

Overview

+
+
Deprecated.
+

Use InstrumentationScope instead.

+
+ +

InstrumentationLibrary is a struct containing library information for export.

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + + +
+

Instance Attribute Details

+ + + +
+

+ + #nameObject + + + + + +

+
+ +

Returns the value of attribute name

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of name

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+11
+12
+13
+
+
# File 'lib/opentelemetry/sdk/instrumentation_library.rb', line 11
+
+def name
+  @name
+end
+
+
+ + + +
+

+ + #versionObject + + + + + +

+
+ +

Returns the value of attribute version

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of version

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+11
+12
+13
+
+
# File 'lib/opentelemetry/sdk/instrumentation_library.rb', line 11
+
+def version
+  @version
+end
+
+
+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/InstrumentationScope.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/InstrumentationScope.html new file mode 100644 index 0000000000..200bf087fe --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/InstrumentationScope.html @@ -0,0 +1,321 @@ + + + + + + + Class: OpenTelemetry::SDK::InstrumentationScope + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::InstrumentationScope + + + +

+
+ +
+
Inherits:
+
+ Struct + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/instrumentation_scope.rb
+
+ +
+ +

Overview

+
+ +

InstrumentationScope is a struct containing scope information for export.

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + + +
+

Instance Attribute Details

+ + + +
+

+ + #nameObject + + + + + +

+
+ +

Returns the value of attribute name

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of name

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+10
+11
+12
+
+
# File 'lib/opentelemetry/sdk/instrumentation_scope.rb', line 10
+
+def name
+  @name
+end
+
+
+ + + +
+

+ + #versionObject + + + + + +

+
+ +

Returns the value of attribute version

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of version

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+10
+11
+12
+
+
# File 'lib/opentelemetry/sdk/instrumentation_scope.rb', line 10
+
+def version
+  @version
+end
+
+
+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Internal.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Internal.html new file mode 100644 index 0000000000..8667a6e663 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Internal.html @@ -0,0 +1,737 @@ + + + + + + + Module: OpenTelemetry::SDK::Internal + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK::Internal + + + Private +

+
+ + + + +
+
Extended by:
+
Internal
+
+ + + + + + +
+
Included in:
+
Internal
+
+ + + +
+
Defined in:
+
lib/opentelemetry/sdk/internal.rb
+
+ +
+ +

Overview

+
+

+ 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. +

+ +

Internal contains helpers used by the reference implementation.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Method Details

+ + +
+

+ + #boolean?(value) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+15
+16
+17
+
+
# File 'lib/opentelemetry/sdk/internal.rb', line 15
+
+def boolean?(value)
+  value.instance_of?(TrueClass) || value.instance_of?(FalseClass)
+end
+
+
+ +
+

+ + #numeric?(value) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+23
+24
+25
+
+
# File 'lib/opentelemetry/sdk/internal.rb', line 23
+
+def numeric?(value)
+  value.instance_of?(Integer) || value.instance_of?(Float)
+end
+
+
+ +
+

+ + #valid_array_value?(value) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+
+
# File 'lib/opentelemetry/sdk/internal.rb', line 31
+
+def valid_array_value?(value)
+  return false unless value.is_a?(Array)
+  return true if value.empty?
+
+  case value.first
+  when String
+    value.all? { |v| v.instance_of?(String) }
+  when TrueClass, FalseClass
+    value.all? { |v| boolean?(v) }
+  when Numeric
+    value.all? { |v| numeric?(v) }
+  else
+    false
+  end
+end
+
+
+ +
+

+ + #valid_attributes?(owner, kind, attrs) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+
+
# File 'lib/opentelemetry/sdk/internal.rb', line 51
+
+def valid_attributes?(owner, kind, attrs)
+  attrs.nil? || attrs.each do |k, v|
+    if !valid_key?(k)
+      OpenTelemetry.handle_error(message: "invalid #{kind} attribute key type #{k.class} on span '#{owner}'")
+      return false
+    elsif !valid_value?(v)
+      OpenTelemetry.handle_error(message: "invalid #{kind} attribute value type #{v.class} for key '#{k}' on span '#{owner}'")
+      return false
+    end
+  end
+
+  true
+end
+
+
+ +
+

+ + #valid_key?(key) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+19
+20
+21
+
+
# File 'lib/opentelemetry/sdk/internal.rb', line 19
+
+def valid_key?(key)
+  key.instance_of?(String)
+end
+
+
+ +
+

+ + #valid_simple_value?(value) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+27
+28
+29
+
+
# File 'lib/opentelemetry/sdk/internal.rb', line 27
+
+def valid_simple_value?(value)
+  value.instance_of?(String) || boolean?(value) || numeric?(value)
+end
+
+
+ +
+

+ + #valid_value?(value) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+47
+48
+49
+
+
# File 'lib/opentelemetry/sdk/internal.rb', line 47
+
+def valid_value?(value)
+  valid_simple_value?(value) || valid_array_value?(value)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Resources.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Resources.html new file mode 100644 index 0000000000..ed4728a3de --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Resources.html @@ -0,0 +1,128 @@ + + + + + + + Module: OpenTelemetry::SDK::Resources + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK::Resources + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/resources.rb,
+ lib/opentelemetry/sdk/resources/resource.rb
+
+
+ +
+ +

Overview

+
+ +

Resources contains the Resource class.

+ + +
+
+
+ + +

Defined Under Namespace

+

+ + + + + Classes: Resource + + +

+ + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Resources/Resource.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Resources/Resource.html new file mode 100644 index 0000000000..20d5c7cd3d --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Resources/Resource.html @@ -0,0 +1,777 @@ + + + + + + + Class: OpenTelemetry::SDK::Resources::Resource + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Resources::Resource + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/resources/resource.rb
+
+ +
+ +

Overview

+
+ +

Resource represents a resource, which captures identifying information about the entities for which telemetry (metrics or traces) is reported.

+ + +
+
+
+ + +
+ + + + + + + +

+ Class Method Summary + collapse +

+ + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(frozen_attributes) ⇒ Resource + + + + + +

+
+

+ 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. +

+ +

The constructor is private and only for use internally by the class. Users should use the create factory method to obtain a OpenTelemetry::SDK::Resources::Resource instance.

+ + +
+
+
+

Parameters:

+
    + +
  • + + frozen_attributes + + + (Hash<String, String>) + + + + — +
    +

    Frozen-hash of frozen-string key-value pairs to be used as attributes for this resource

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+84
+85
+86
+
+
# File 'lib/opentelemetry/sdk/resources/resource.rb', line 84
+
+def initialize(frozen_attributes)
+  @attributes = frozen_attributes
+end
+
+
+ +
+ + +
+

Class Method Details

+ + +
+

+ + .create(attributes = {}) ⇒ Resource + + + + + +

+
+ +

Returns a newly created OpenTelemetry::SDK::Resources::Resource with the specified attributes

+ + +
+
+
+

Parameters:

+
    + +
  • + + Hash{String + + + (Hash{String => String, Numeric, Boolean} attributes Hash of key-value pairs to be used +as attributes for this resource) + + + + — +
    +

    => String, Numeric, Boolean} attributes Hash of key-value pairs to be used as attributes for this resource

    +
    + +
  • + +
+ +

Returns:

+ +

Raises:

+
    + +
  • + + + (ArgumentError) + + + + — +
    +

    If attribute keys and values are not strings

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+
+
# File 'lib/opentelemetry/sdk/resources/resource.rb', line 22
+
+def create(attributes = {})
+  frozen_attributes = attributes.each_with_object({}) do |(k, v), memo|
+    raise ArgumentError, 'attribute keys must be strings' unless k.is_a?(String)
+    raise ArgumentError, 'attribute values must be (array of) strings, integers, floats, or booleans' unless Internal.valid_value?(v)
+
+    memo[-k] = v.freeze
+  end.freeze
+
+  new(frozen_attributes)
+end
+
+
+ +
+

+ + .defaultObject + + + + + +

+ + + + +
+
+
+
+33
+34
+35
+
+
# File 'lib/opentelemetry/sdk/resources/resource.rb', line 33
+
+def default
+  @default ||= create(SemanticConventions::Resource::SERVICE_NAME => 'unknown_service').merge(process).merge(telemetry_sdk).merge(service_name_from_env)
+end
+
+
+ +
+

+ + .processObject + + + + + +

+ + + + +
+
+
+
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+
+
# File 'lib/opentelemetry/sdk/resources/resource.rb', line 56
+
+def process
+  resource_attributes = {
+    SemanticConventions::Resource::PROCESS_PID => Process.pid,
+    SemanticConventions::Resource::PROCESS_COMMAND => $PROGRAM_NAME,
+    SemanticConventions::Resource::PROCESS_RUNTIME_NAME => RUBY_ENGINE,
+    SemanticConventions::Resource::PROCESS_RUNTIME_VERSION => RUBY_VERSION,
+    SemanticConventions::Resource::PROCESS_RUNTIME_DESCRIPTION => RUBY_DESCRIPTION
+  }
+
+  create(resource_attributes)
+end
+
+
+ +
+

+ + .telemetry_sdkObject + + + + + +

+ + + + +
+
+
+
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+
+
# File 'lib/opentelemetry/sdk/resources/resource.rb', line 37
+
+def telemetry_sdk
+  resource_attributes = {
+    SemanticConventions::Resource::TELEMETRY_SDK_NAME => 'opentelemetry',
+    SemanticConventions::Resource::TELEMETRY_SDK_LANGUAGE => 'ruby',
+    SemanticConventions::Resource::TELEMETRY_SDK_VERSION => OpenTelemetry::SDK::VERSION
+  }
+
+  resource_pairs = ENV['OTEL_RESOURCE_ATTRIBUTES']
+  return create(resource_attributes) unless resource_pairs.is_a?(String)
+
+  resource_pairs.split(',').each do |pair|
+    key, value = pair.split('=')
+    resource_attributes[key] = value
+  end
+
+  resource_attributes.delete_if { |_key, value| value.nil? || value.empty? }
+  create(resource_attributes)
+end
+
+
+ +
+ +
+

Instance Method Details

+ + +
+

+ + #attribute_enumeratorEnumerator + + + + + +

+
+ +

Returns an enumerator for attributes of this OpenTelemetry::SDK::Resources::Resource

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Enumerator) + + + +
  • + +
+ +
+ + + + +
+
+
+
+91
+92
+93
+
+
# File 'lib/opentelemetry/sdk/resources/resource.rb', line 91
+
+def attribute_enumerator
+  @attribute_enumerator ||= attributes.to_enum
+end
+
+
+ +
+

+ + #merge(other) ⇒ Resource + + + + + +

+
+ +

Returns a new, merged OpenTelemetry::SDK::Resources::Resource by merging the current OpenTelemetry::SDK::Resources::Resource with the other OpenTelemetry::SDK::Resources::Resource. In case of a collision, the current OpenTelemetry::SDK::Resources::Resource takes precedence

+ + +
+
+
+

Parameters:

+
    + +
  • + + other + + + (Resource) + + + + — +
    +

    The other resource to merge

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Resource) + + + + — +
    +

    A new resource formed by merging the current resource with other

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+102
+103
+104
+105
+106
+
+
# File 'lib/opentelemetry/sdk/resources/resource.rb', line 102
+
+def merge(other)
+  return self unless other.is_a?(Resource)
+
+  self.class.send(:new, attributes.merge(other.attributes).freeze)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace.html new file mode 100644 index 0000000000..0faa5af813 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace.html @@ -0,0 +1,130 @@ + + + + + + + Module: OpenTelemetry::SDK::Trace + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK::Trace + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace.rb,
+ lib/opentelemetry/sdk/trace/span.rb,
lib/opentelemetry/sdk/trace/event.rb,
lib/opentelemetry/sdk/trace/export.rb,
lib/opentelemetry/sdk/trace/tracer.rb,
lib/opentelemetry/sdk/trace/samplers.rb,
lib/opentelemetry/sdk/trace/span_data.rb,
lib/opentelemetry/sdk/trace/span_limits.rb,
lib/opentelemetry/sdk/trace/span_processor.rb,
lib/opentelemetry/sdk/trace/samplers/result.rb,
lib/opentelemetry/sdk/trace/tracer_provider.rb,
lib/opentelemetry/sdk/trace/samplers/decision.rb,
lib/opentelemetry/sdk/trace/export/span_exporter.rb,
lib/opentelemetry/sdk/trace/samplers/parent_based.rb,
lib/opentelemetry/sdk/trace/export/metrics_reporter.rb,
lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb,
lib/opentelemetry/sdk/trace/export/batch_span_processor.rb,
lib/opentelemetry/sdk/trace/export/console_span_exporter.rb,
lib/opentelemetry/sdk/trace/export/simple_span_processor.rb,
lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb,
lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb
+
+
+ +
+ +

Overview

+
+ +

The Trace module contains the OpenTelemetry tracing reference implementation.

+ + +
+
+
+ + +

Defined Under Namespace

+

+ + + Modules: Export, Samplers + + + + Classes: Event, Span, SpanData, SpanLimits, SpanProcessor, Tracer, TracerProvider + + +

+ + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Event.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Event.html new file mode 100644 index 0000000000..9311c0cbfa --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Event.html @@ -0,0 +1,411 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Event + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Event + + + +

+
+ +
+
Inherits:
+
+ Struct + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/event.rb
+
+ +
+ +

Overview

+
+ +

A text annotation with a set of attributes and a timestamp for export.

+ +

Field types are as follows: name: String attributes: frozen Hash=> String, Numeric, Boolean, Array<String, Numeric, Boolean> timestamp: Integer nanoseconds since Epoch

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + + +
+

Instance Attribute Details

+ + + +
+

+ + #attributesObject + + + + + +

+
+ +

Returns the value of attribute attributes

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of attributes

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+16
+17
+18
+
+
# File 'lib/opentelemetry/sdk/trace/event.rb', line 16
+
+def attributes
+  @attributes
+end
+
+
+ + + +
+

+ + #nameObject + + + + + +

+
+ +

Returns the value of attribute name

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of name

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+16
+17
+18
+
+
# File 'lib/opentelemetry/sdk/trace/event.rb', line 16
+
+def name
+  @name
+end
+
+
+ + + +
+

+ + #timestampObject + + + + + +

+
+ +

Returns the value of attribute timestamp

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of timestamp

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+16
+17
+18
+
+
# File 'lib/opentelemetry/sdk/trace/event.rb', line 16
+
+def timestamp
+  @timestamp
+end
+
+
+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export.html new file mode 100644 index 0000000000..07f96267a3 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export.html @@ -0,0 +1,189 @@ + + + + + + + Module: OpenTelemetry::SDK::Trace::Export + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK::Trace::Export + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export.rb,
+ lib/opentelemetry/sdk/trace/export/span_exporter.rb,
lib/opentelemetry/sdk/trace/export/metrics_reporter.rb,
lib/opentelemetry/sdk/trace/export/batch_span_processor.rb,
lib/opentelemetry/sdk/trace/export/console_span_exporter.rb,
lib/opentelemetry/sdk/trace/export/simple_span_processor.rb,
lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb
+
+
+ +
+ +

Overview

+
+ +

The Export module contains the built-in exporters and span processors for the OpenTelemetry reference implementation.

+ + +
+
+
+ + +

Defined Under Namespace

+

+ + + Modules: MetricsReporter + + + + Classes: BatchSpanProcessor, ConsoleSpanExporter, ExportError, InMemorySpanExporter, SimpleSpanProcessor, SpanExporter + + +

+ + +

+ Constant Summary + collapse +

+ +
+ +
SUCCESS = +
+
+ +

The operation finished successfully.

+ + +
+
+
+ + +
+
+
0
+ +
FAILURE = +
+
+ +

The operation finished with an error.

+ + +
+
+
+ + +
+
+
1
+ +
TIMEOUT = +
+
+ +

The operation timed out.

+ + +
+
+
+ + +
+
+
2
+ +
+ + + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/BatchSpanProcessor.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/BatchSpanProcessor.html new file mode 100644 index 0000000000..753c2d5fd1 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/BatchSpanProcessor.html @@ -0,0 +1,809 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export/batch_span_processor.rb
+
+ +
+ +

Overview

+
+ +

Implementation of the duck type SpanProcessor that batches spans exported by the SDK then pushes them to the exporter pipeline.

+ +

Typically, the BatchSpanProcessor will be more suitable for production environments than the SimpleSpanProcessor.

+ +

All spans reported by the SDK implementation are first added to a synchronized queue (with a #max_queue_size maximum size, after the size is reached spans are dropped) and exported every schedule_delay to the exporter pipeline in batches of max_export_batch_size.

+ +

If the queue gets half full a preemptive notification is sent to the worker thread that exports the spans to wake up and start a new export cycle.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(exporter, exporter_timeout: Float(ENV.fetch('OTEL_BSP_EXPORT_TIMEOUT', 30_000)), schedule_delay: Float(ENV.fetch('OTEL_BSP_SCHEDULE_DELAY', 5_000)), max_queue_size: Integer(ENV.fetch('OTEL_BSP_MAX_QUEUE_SIZE', 2048)), max_export_batch_size: Integer(ENV.fetch('OTEL_BSP_MAX_EXPORT_BATCH_SIZE', 512)), start_thread_on_boot: String(ENV['OTEL_RUBY_BSP_START_THREAD_ON_BOOT']) !~ /false/i, metrics_reporter: nil) ⇒ Object + + + + + +

+
+ +

Returns a new instance of the OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.

+ + +
+
+
+

Parameters:

+
    + +
  • + + exporter + + + (SpanExporter) + + + + — +
    +

    the (duck type) SpanExporter to where the recorded Spans are pushed after batching.

    +
    + +
  • + +
  • + + exporter_timeout + + + (Numeric) + + + (defaults to: Float(ENV.fetch('OTEL_BSP_EXPORT_TIMEOUT', 30_000))) + + + — +
    +

    the maximum allowed time to export data. Defaults to the value of the OTEL_BSP_EXPORT_TIMEOUT environment variable, if set, or 30,000 (30 seconds).

    +
    + +
  • + +
  • + + schedule_delay + + + (Numeric) + + + (defaults to: Float(ENV.fetch('OTEL_BSP_SCHEDULE_DELAY', 5_000))) + + + — +
    +

    the delay interval between two consecutive exports. Defaults to the value of the OTEL_BSP_SCHEDULE_DELAY environment variable, if set, or 5,000 (5 seconds).

    +
    + +
  • + +
  • + + max_queue_size + + + (Integer) + + + (defaults to: Integer(ENV.fetch('OTEL_BSP_MAX_QUEUE_SIZE', 2048))) + + + — +
    +

    the maximum queue size in spans. Defaults to the value of the OTEL_BSP_MAX_QUEUE_SIZE environment variable, if set, or 2048.

    +
    + +
  • + +
  • + + max_export_batch_size + + + (Integer) + + + (defaults to: Integer(ENV.fetch('OTEL_BSP_MAX_EXPORT_BATCH_SIZE', 512))) + + + — +
    +

    the maximum batch size in spans. Defaults to the value of the OTEL_BSP_MAX_EXPORT_BATCH_SIZE environment variable, if set, or 512.

    +
    + +
  • + +
+ +

Raises:

+
    + +
  • + + + (ArgumentError) + + + +
  • + +
+ +
+ + + + +
+
+
+
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+
+
# File 'lib/opentelemetry/sdk/trace/export/batch_span_processor.rb', line 47
+
+def initialize(exporter,
+               exporter_timeout: Float(ENV.fetch('OTEL_BSP_EXPORT_TIMEOUT', 30_000)),
+               schedule_delay: Float(ENV.fetch('OTEL_BSP_SCHEDULE_DELAY', 5_000)),
+               max_queue_size: Integer(ENV.fetch('OTEL_BSP_MAX_QUEUE_SIZE', 2048)),
+               max_export_batch_size: Integer(ENV.fetch('OTEL_BSP_MAX_EXPORT_BATCH_SIZE', 512)),
+               start_thread_on_boot: String(ENV['OTEL_RUBY_BSP_START_THREAD_ON_BOOT']) !~ /false/i,
+               metrics_reporter: nil)
+  raise ArgumentError if max_export_batch_size > max_queue_size
+  raise ArgumentError, "exporter #{exporter.inspect} does not appear to be a valid exporter" unless Common::Utilities.valid_exporter?(exporter)
+
+  @exporter = exporter
+  @exporter_timeout_seconds = exporter_timeout / 1000.0
+  @mutex = Mutex.new
+  @export_mutex = Mutex.new
+  @condition = ConditionVariable.new
+  @keep_running = true
+  @delay_seconds = schedule_delay / 1000.0
+  @max_queue_size = max_queue_size
+  @batch_size = max_export_batch_size
+  @metrics_reporter = metrics_reporter || OpenTelemetry::SDK::Trace::Export::MetricsReporter
+  @spans = []
+  @pid = nil
+  @thread = nil
+  reset_on_fork(restart_thread: start_thread_on_boot)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #force_flush(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Export all ended spans to the configured Exporter that have not yet been exported.

+ +

This method should only be called in cases where it is absolutely necessary, such as when using some FaaS providers that may suspend the process after an invocation, but before the Processor exports the completed spans.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    SUCCESS if no error occurred, FAILURE if a non-specific failure occurred, TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+
+
# File 'lib/opentelemetry/sdk/trace/export/batch_span_processor.rb', line 103
+
+def force_flush(timeout: nil) # rubocop:disable Metrics/MethodLength
+  start_time = OpenTelemetry::Common::Utilities.timeout_timestamp
+  snapshot = lock do
+    reset_on_fork(restart_thread: @keep_running)
+    spans.shift(spans.size)
+  end
+  until snapshot.empty?
+    remaining_timeout = OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time)
+    return TIMEOUT if remaining_timeout&.zero?
+
+    batch = snapshot.shift(@batch_size)
+    result_code = export_batch(batch, timeout: remaining_timeout)
+    return result_code unless result_code == SUCCESS
+  end
+
+  @exporter.force_flush(timeout: OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time))
+ensure
+  # Unshift the remaining spans if we timed out. We drop excess spans from
+  # the snapshot because they're older than any spans in the spans buffer.
+  lock do
+    n = spans.size + snapshot.size - max_queue_size
+    if n.positive?
+      dropped_spans = snapshot.shift(n)
+      report_dropped_spans(dropped_spans, reason: 'buffer-full', function: __method__.to_s)
+    end
+    spans.unshift(*snapshot) unless snapshot.empty?
+    @condition.signal if spans.size > max_queue_size / 2
+  end
+end
+
+
+ +
+

+ + #on_finish(span) ⇒ Object + + + + + +

+
+ +

Adds a span to the batch. Thread-safe; may block on lock.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+
+
# File 'lib/opentelemetry/sdk/trace/export/batch_span_processor.rb', line 77
+
+def on_finish(span)
+  return unless span.context.trace_flags.sampled?
+
+  lock do
+    reset_on_fork
+    n = spans.size + 1 - max_queue_size
+    if n > 0
+      dropped_spans = spans.shift(n)
+      report_dropped_spans(dropped_spans, reason: 'buffer-full', function: __method__.to_s)
+    end
+    spans << span
+    @condition.signal if spans.size > batch_size
+  end
+end
+
+
+ +
+

+ + #on_start(_span, _parent_context) ⇒ Object + + + + + +

+
+ +

Does nothing for this processor

+ + +
+
+
+ + +
+ + + + +
+
+
+
+74
+
+
# File 'lib/opentelemetry/sdk/trace/export/batch_span_processor.rb', line 74
+
+def on_start(_span, _parent_context); end
+
+
+ +
+

+ + #shutdown(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Shuts the consumer thread down and flushes the current accumulated buffer will block until the thread is finished.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    SUCCESS if no error occurred, FAILURE if a non-specific failure occurred, TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+
+
# File 'lib/opentelemetry/sdk/trace/export/batch_span_processor.rb', line 139
+
+def shutdown(timeout: nil)
+  start_time = OpenTelemetry::Common::Utilities.timeout_timestamp
+  thread = lock do
+    @keep_running = false
+    @condition.signal
+    @thread
+  end
+
+  thread&.join(timeout)
+  force_flush(timeout: OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time))
+  dropped_spans = lock { spans.shift(spans.length) }
+  report_dropped_spans(dropped_spans, reason: 'terminating') if dropped_spans.any?
+  @exporter.shutdown(timeout: OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time))
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/ConsoleSpanExporter.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/ConsoleSpanExporter.html new file mode 100644 index 0000000000..ee07881cdf --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/ConsoleSpanExporter.html @@ -0,0 +1,388 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export/console_span_exporter.rb
+
+ +
+ +

Overview

+
+ +

Outputs SpanData to the console.

+ +

Potentially useful for exploratory purposes.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initializeConsoleSpanExporter + + + + + +

+
+ +

Returns a new instance of ConsoleSpanExporter.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+15
+16
+17
+
+
# File 'lib/opentelemetry/sdk/trace/export/console_span_exporter.rb', line 15
+
+def initialize
+  @stopped = false
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #export(spans, timeout: nil) ⇒ Object + + + + + +

+ + + + +
+
+
+
+19
+20
+21
+22
+23
+24
+25
+
+
# File 'lib/opentelemetry/sdk/trace/export/console_span_exporter.rb', line 19
+
+def export(spans, timeout: nil)
+  return FAILURE if @stopped
+
+  Array(spans).each { |s| pp s }
+
+  SUCCESS
+end
+
+
+ +
+

+ + #force_flush(timeout: nil) ⇒ Object + + + + + +

+ + + + +
+
+
+
+27
+28
+29
+
+
# File 'lib/opentelemetry/sdk/trace/export/console_span_exporter.rb', line 27
+
+def force_flush(timeout: nil)
+  SUCCESS
+end
+
+
+ +
+

+ + #shutdown(timeout: nil) ⇒ Object + + + + + +

+ + + + +
+
+
+
+31
+32
+33
+34
+
+
# File 'lib/opentelemetry/sdk/trace/export/console_span_exporter.rb', line 31
+
+def shutdown(timeout: nil)
+  @stopped = true
+  SUCCESS
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/ExportError.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/ExportError.html new file mode 100644 index 0000000000..6114174510 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/ExportError.html @@ -0,0 +1,334 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Export::ExportError + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Export::ExportError + + + +

+
+ +
+
Inherits:
+
+ Error + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export.rb
+
+ +
+ +

Overview

+
+ +

Raised when an export fails; spans are available via :spans accessor

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + + +
+

Constructor Details

+ +
+

+ + #initialize(spans) ⇒ ExportError + + + + + +

+
+ +

Returns a new instance of ExportError.

+ + +
+
+
+

Parameters:

+ + + +
+ + + + +
+
+
+
+21
+22
+23
+24
+
+
# File 'lib/opentelemetry/sdk/trace/export.rb', line 21
+
+def initialize(spans)
+  super("Unable to export #{spans.size} spans")
+  @spans = spans
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #spansArray<OpenTelemetry::SDK::Trace::Span> (readonly) + + + + + +

+
+ +

Returns the Span array for this exception

+ + +
+
+
+ +

Returns:

+ + +
+ + + + +
+
+
+
+18
+19
+20
+
+
# File 'lib/opentelemetry/sdk/trace/export.rb', line 18
+
+def spans
+  @spans
+end
+
+
+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/InMemorySpanExporter.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/InMemorySpanExporter.html new file mode 100644 index 0000000000..b438b992eb --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/InMemorySpanExporter.html @@ -0,0 +1,862 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb
+
+ +
+ +

Overview

+
+ +

A SpanExporter implementation that can be used to test OpenTelemetry integration.

+ + +
+
+
+ +
+

Examples:

+ + +

+

Usage in a test suite:

+

+ +
class MyClassTest
+  def setup
+    @tracer_provider = TracerProvider.new
+    # The default is `recording: true`, which is appropriate in non-test environments.
+    @exporter = InMemorySpanExporter.new(recording: false)
+    @tracer_provider.add_span_processor(SimpleSampledSpansProcessor.new(@exporter))
+  end
+
+  def test_finished_spans
+    @exporter.recording = true
+    @tracer_provider.tracer.in_span("span") {}
+
+    spans = @exporter.finished_spans
+    spans.wont_be_nil
+    spans.size.must_equal(1)
+    spans[0].name.must_equal("span")
+
+    @exporter.recording = false
+  end
+end
+ +
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(recording: true) ⇒ Object + + + + + +

+
+ +

Returns a new instance of the OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+42
+43
+44
+45
+46
+47
+
+
# File 'lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb', line 42
+
+def initialize(recording: true)
+  @finished_spans = []
+  @stopped = false
+  @recording = recording
+  @mutex = Mutex.new
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #recordingBoolean + + + + + +

+
+ +

Controls whether or not the exporter will record spans, or discard them.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + + — +
    +

    when true, the exporter is recording. By default, this is true.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+37
+38
+39
+
+
# File 'lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb', line 37
+
+def recording
+  @recording
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #export(span_datas, timeout: nil) ⇒ Integer + + + + + +

+
+ +

Called to export sampled SpanDatas.

+ + +
+
+
+

Parameters:

+
    + +
  • + + span_datas + + + (Enumerable<SpanData>) + + + + — +
    +

    the list of sampled SpanDatas to be exported.

    +
    + +
  • + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    the result of the export, SUCCESS or FAILURE

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+75
+76
+77
+78
+79
+80
+81
+82
+
+
# File 'lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb', line 75
+
+def export(span_datas, timeout: nil)
+  @mutex.synchronize do
+    return FAILURE if @stopped
+
+    @finished_spans.concat(span_datas.to_a) if @recording
+  end
+  SUCCESS
+end
+
+
+ +
+

+ + #finished_spansArray<SpanData> + + + + + +

+
+ +

Returns a frozen array of the finished SpanDatas, represented by OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter.ioio.opentelemetryio.opentelemetry.protoio.opentelemetry.proto.traceio.opentelemetry.proto.trace.v1io.opentelemetry.proto.trace.v1.Span.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Array<SpanData>) + + + + — +
    +

    a frozen array of the finished SpanDatas.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+53
+54
+55
+56
+57
+
+
# File 'lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb', line 53
+
+def finished_spans
+  @mutex.synchronize do
+    @finished_spans.clone.freeze
+  end
+end
+
+
+ +
+

+ + #force_flush(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Called when TracerProvider#force_flush is called, if this exporter is registered to a TracerProvider object.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    SUCCESS if no error occurred, FAILURE if a non-specific failure occurred, TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+90
+91
+92
+
+
# File 'lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb', line 90
+
+def force_flush(timeout: nil)
+  SUCCESS
+end
+
+
+ +
+

+ + #resetObject + + + + + +

+
+ +

Clears the internal collection of finished Spans.

+ +

Does not reset the state of this exporter if already shutdown.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+62
+63
+64
+65
+66
+
+
# File 'lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb', line 62
+
+def reset
+  @mutex.synchronize do
+    @finished_spans.clear
+  end
+end
+
+
+ +
+

+ + #shutdown(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Called when TracerProvider#shutdown is called, if this exporter is registered to a TracerProvider object.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    SUCCESS if no error occurred, FAILURE if a non-specific failure occurred, TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+100
+101
+102
+103
+104
+105
+106
+
+
# File 'lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb', line 100
+
+def shutdown(timeout: nil)
+  @mutex.synchronize do
+    @finished_spans.clear
+    @stopped = true
+  end
+  SUCCESS
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/MetricsReporter.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/MetricsReporter.html new file mode 100644 index 0000000000..ae055c4080 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/MetricsReporter.html @@ -0,0 +1,508 @@ + + + + + + + Module: OpenTelemetry::SDK::Trace::Export::MetricsReporter + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK::Trace::Export::MetricsReporter + + + +

+
+ + + + +
+
Extended by:
+
MetricsReporter
+
+ + + + + + +
+
Included in:
+
MetricsReporter
+
+ + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export/metrics_reporter.rb
+
+ +
+ +

Overview

+
+ +

MetricsReporter defines an interface used for reporting metrics from span processors (like the BatchSpanProcessor) and exporters. It can be used to report metrics such as dropped spans, and successful and failed export attempts. This exists to decouple the Trace SDK from the unstable OpenTelemetry Metrics API. An example implementation in terms of StatsD is:

+ + +
+
+
+ +
+

Examples:

+ + +
module MetricsReporter
+  def add_to_counter(metric, increment: 1, labels: {})
+    StatsD.increment(metric, increment, labels, no_prefix: true)
+  end
+  def record_value(metric, value:, labels: {})
+    StatsD.distribution(metric, value, labels, no_prefix: true)
+  end
+  def observe_value(metric, value:, labels: {})
+    StatsD.gauge(metric, value, labels, no_prefix: true)
+  end
+end
+ +
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Method Details

+ + +
+

+ + #add_to_counter(metric, increment: 1, labels: {}) ⇒ Object + + + + + +

+
+ +

Adds an increment to a metric with the provided labels.

+ + +
+
+
+

Parameters:

+
    + +
  • + + metric + + + (String) + + + + — +
    +

    The metric name.

    +
    + +
  • + +
  • + + increment + + + (optional Numeric) + + + (defaults to: 1) + + + — +
    +

    An optional increment to report.

    +
    + +
  • + +
  • + + labels + + + (optional Hash<String, String>) + + + (defaults to: {}) + + + — +
    +

    Optional labels to associate with the metric.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+39
+
+
# File 'lib/opentelemetry/sdk/trace/export/metrics_reporter.rb', line 39
+
+def add_to_counter(metric, increment: 1, labels: {}); end
+
+
+ +
+

+ + #observe_value(metric, value:, labels: {}) ⇒ Object + + + + + +

+
+ +

Observes a value for a metric with the provided labels.

+ + +
+
+
+

Parameters:

+
    + +
  • + + metric + + + (String) + + + + — +
    +

    The metric name.

    +
    + +
  • + +
  • + + value + + + (Numeric) + + + + — +
    +

    The value to observe.

    +
    + +
  • + +
  • + + labels + + + (optional Hash<String, String>) + + + (defaults to: {}) + + + — +
    +

    Optional labels to associate with the metric.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+55
+
+
# File 'lib/opentelemetry/sdk/trace/export/metrics_reporter.rb', line 55
+
+def observe_value(metric, value:, labels: {}); end
+
+
+ +
+

+ + #record_value(metric, value:, labels: {}) ⇒ Object + + + + + +

+
+ +

Records a value for a metric with the provided labels.

+ + +
+
+
+

Parameters:

+
    + +
  • + + metric + + + (String) + + + + — +
    +

    The metric name.

    +
    + +
  • + +
  • + + value + + + (Numeric) + + + + — +
    +

    The value to report.

    +
    + +
  • + +
  • + + labels + + + (optional Hash<String, String>) + + + (defaults to: {}) + + + — +
    +

    Optional labels to associate with the metric.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+47
+
+
# File 'lib/opentelemetry/sdk/trace/export/metrics_reporter.rb', line 47
+
+def record_value(metric, value:, labels: {}); end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/SimpleSpanProcessor.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/SimpleSpanProcessor.html new file mode 100644 index 0000000000..c648888911 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/SimpleSpanProcessor.html @@ -0,0 +1,676 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export/simple_span_processor.rb
+
+ +
+ +

Overview

+
+ +

An implementation of the duck type SpanProcessor that converts the Span to ioio.opentelemetryio.opentelemetry.protoio.opentelemetry.proto.traceio.opentelemetry.proto.trace.v1io.opentelemetry.proto.trace.v1.Span and passes it to the configured exporter.

+ +

Typically, the SimpleSpanProcessor will be most suitable for use in testing; it should be used with caution in production. It may be appropriate for production use in scenarios where creating multiple threads is not desirable as well as scenarios where different custom attributes should be added to individual spans based on code scopes.

+ +

Only spans that are recorded are converted, Trace::Span#is_recording? must return true.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(span_exporter) ⇒ SimpleSpanProcessor + + + + + +

+
+ +

Returns a new OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor that converts spans to proto and forwards them to the given span_exporter.

+ + +
+
+
+

Parameters:

+
    + +
  • + + span_exporter + + + + + + + — +
    +

    the (duck type) SpanExporter to where the recorded Spans are pushed.

    +
    + +
  • + +
+ +

Raises:

+
    + +
  • + + + + + + + +
    +

    ArgumentError if the span_exporter is nil.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+31
+32
+33
+34
+35
+
+
# File 'lib/opentelemetry/sdk/trace/export/simple_span_processor.rb', line 31
+
+def initialize(span_exporter)
+  raise ArgumentError, "exporter #{span_exporter.inspect} does not appear to be a valid exporter" unless Common::Utilities.valid_exporter?(span_exporter)
+
+  @span_exporter = span_exporter
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #force_flush(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Export all ended spans to the configured Exporter that have not yet been exported, then call Exporter#force_flush.

+ +

This method should only be called in cases where it is absolutely necessary, such as when using some FaaS providers that may suspend the process after an invocation, but before the Processor exports the completed spans.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    SUCCESS if no error occurred, FAILURE if a non-specific failure occurred, TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+76
+77
+78
+
+
# File 'lib/opentelemetry/sdk/trace/export/simple_span_processor.rb', line 76
+
+def force_flush(timeout: nil)
+  @span_exporter&.force_flush(timeout: timeout) || SUCCESS
+end
+
+
+ +
+

+ + #on_finish(span) ⇒ Object + + + + + +

+
+ +

Called when a Span is ended, if the Span#recording? returns true.

+ +

This method is called synchronously on the execution thread, should not throw or block the execution thread.

+ + +
+
+
+

Parameters:

+
    + +
  • + + span + + + (Span) + + + + — +
    +

    the Span that just ended.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+57
+58
+59
+60
+61
+62
+63
+
+
# File 'lib/opentelemetry/sdk/trace/export/simple_span_processor.rb', line 57
+
+def on_finish(span)
+  return unless span.context.trace_flags.sampled?
+
+  @span_exporter&.export([span.to_span_data])
+rescue => e # rubocop:disable Style/RescueStandardError
+  OpenTelemetry.handle_error(exception: e, message: 'unexpected error in span.on_finish')
+end
+
+
+ +
+

+ + #on_start(span, parent_context) ⇒ Object + + + + + +

+
+ +

Called when a Span is started, if the Span#recording? returns true.

+ +

This method is called synchronously on the execution thread, should not throw or block the execution thread.

+ + +
+
+
+

Parameters:

+
    + +
  • + + span + + + (Span) + + + + — +
    +

    the Span that just started.

    +
    + +
  • + +
  • + + parent_context + + + (Context) + + + + — +
    +

    the parent Context of the newly started span.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+46
+47
+48
+
+
# File 'lib/opentelemetry/sdk/trace/export/simple_span_processor.rb', line 46
+
+def on_start(span, parent_context)
+  # Do nothing.
+end
+
+
+ +
+

+ + #shutdown(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Called when TracerProvider#shutdown is called.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    SUCCESS if no error occurred, FAILURE if a non-specific failure occurred, TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+85
+86
+87
+
+
# File 'lib/opentelemetry/sdk/trace/export/simple_span_processor.rb', line 85
+
+def shutdown(timeout: nil)
+  @span_exporter&.shutdown(timeout: timeout) || SUCCESS
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/SpanExporter.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/SpanExporter.html new file mode 100644 index 0000000000..ff9826095c --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Export/SpanExporter.html @@ -0,0 +1,541 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Export::SpanExporter + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Export::SpanExporter + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/export/span_exporter.rb
+
+ +
+ +

Overview

+
+ +

SpanExporter describes a duck type. It is not required to subclass this class to provide an implementation of SpanExporter, provided the interface is satisfied. SpanExporter allows different tracing services to export recorded data for sampled spans in their own format.

+ +

To export data an exporter MUST be registered to the TracerProvider using a SpanProcessor implementation.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initializeSpanExporter + + + + + +

+
+ +

Returns a new instance of SpanExporter.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+19
+20
+21
+
+
# File 'lib/opentelemetry/sdk/trace/export/span_exporter.rb', line 19
+
+def initialize
+  @stopped = false
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #export(span_data, timeout: nil) ⇒ Integer + + + + + +

+
+ +

Called to export sampled SpanDatas.

+ + +
+
+
+

Parameters:

+
    + +
  • + + span_data + + + (Enumerable<SpanData>) + + + + — +
    +

    the list of sampled SpanData to be exported.

    +
    + +
  • + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    the result of the export.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+29
+30
+31
+32
+33
+
+
# File 'lib/opentelemetry/sdk/trace/export/span_exporter.rb', line 29
+
+def export(span_data, timeout: nil)
+  return SUCCESS unless @stopped
+
+  FAILURE
+end
+
+
+ +
+

+ + #force_flush(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Called when TracerProvider#force_flush is called, if this exporter is registered to a TracerProvider object.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    SUCCESS if no error occurred, FAILURE if a non-specific failure occurred, TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+41
+42
+43
+
+
# File 'lib/opentelemetry/sdk/trace/export/span_exporter.rb', line 41
+
+def force_flush(timeout: nil)
+  SUCCESS
+end
+
+
+ +
+

+ + #shutdown(timeout: nil) ⇒ Object + + + + + +

+
+ +

Called when TracerProvider#shutdown is called, if this exporter is registered to a TracerProvider object.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+49
+50
+51
+52
+
+
# File 'lib/opentelemetry/sdk/trace/export/span_exporter.rb', line 49
+
+def shutdown(timeout: nil)
+  @stopped = true
+  SUCCESS
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers.html new file mode 100644 index 0000000000..daf4f9f7a9 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers.html @@ -0,0 +1,533 @@ + + + + + + + Module: OpenTelemetry::SDK::Trace::Samplers + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK::Trace::Samplers + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/samplers.rb,
+ lib/opentelemetry/sdk/trace/samplers/result.rb,
lib/opentelemetry/sdk/trace/samplers/decision.rb,
lib/opentelemetry/sdk/trace/samplers/parent_based.rb,
lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb,
lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb
+
+
+ +
+ +

Overview

+
+ +

The Samplers module contains the sampling logic for OpenTelemetry. The reference implementation provides a TraceIdRatioBased, ALWAYS_ON, ALWAYS_OFF, and ParentBased.

+ +

Custom samplers can be provided by SDK users. The required interface is:

+ +

should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:) -> Result description -> String

+ +

Where:

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Result) + + + + — +
    +

    The sampling result.

    +
    + +
  • + +
+ +

Defined Under Namespace

+

+ + + Modules: Decision + + + + Classes: ConstantSampler, ParentBased, Result, TraceIdRatioBased + + +

+ + +

+ Constant Summary + collapse +

+ +
+ +
ALWAYS_ON = +
+
+ +

Returns a Result with Decision::RECORD_AND_SAMPLE.

+ + +
+
+
+ + +
+
+
ConstantSampler.new(decision: Decision::RECORD_AND_SAMPLE, description: 'AlwaysOnSampler')
+ +
ALWAYS_OFF = +
+
+ +

Returns a Result with Decision::DROP.

+ + +
+
+
+ + +
+
+
ConstantSampler.new(decision: Decision::DROP, description: 'AlwaysOffSampler')
+ +
+ + + + + + + + + +

+ Class Method Summary + collapse +

+ + + + + + +
+

Class Method Details

+ + +
+

+ + .parent_based(root:, remote_parent_sampled: ALWAYS_ON, remote_parent_not_sampled: ALWAYS_OFF, local_parent_sampled: ALWAYS_ON, local_parent_not_sampled: ALWAYS_OFF) ⇒ Object + + + + + +

+
+ +

Returns a new sampler. It delegates to samplers according to the following rules:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parentparent.remote?parent.trace_flags.sampled?Invoke sampler
absentn/an/aroot
presenttruetrueremote_parent_sampled
presenttruefalseremote_parent_not_sampled
presentfalsetruelocal_parent_sampled
presentfalsefalselocal_parent_not_sampled
+ + +
+
+
+

Parameters:

+
    + +
  • + + root + + + (Sampler) + + + + — +
    +

    The sampler to which the sampling decision is delegated for spans with no parent (root spans).

    +
    + +
  • + +
  • + + remote_parent_sampled + + + (optional Sampler) + + + (defaults to: ALWAYS_ON) + + + — +
    +

    The sampler to which the sampling decision is delegated for remote parent sampled spans. Defaults to ALWAYS_ON.

    +
    + +
  • + +
  • + + remote_parent_not_sampled + + + (optional Sampler) + + + (defaults to: ALWAYS_OFF) + + + — +
    +

    The sampler to which the sampling decision is delegated for remote parent not sampled spans. Defaults to ALWAYS_OFF.

    +
    + +
  • + +
  • + + local_parent_sampled + + + (optional Sampler) + + + (defaults to: ALWAYS_ON) + + + — +
    +

    The sampler to which the sampling decision is delegated for local parent sampled spans. Defaults to ALWAYS_ON.

    +
    + +
  • + +
  • + + local_parent_not_sampled + + + (optional Sampler) + + + (defaults to: ALWAYS_OFF) + + + — +
    +

    The sampler to which the sampling decision is delegated for local parent not sampld spans. Defaults to ALWAYS_OFF.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+67
+68
+69
+70
+71
+72
+73
+74
+75
+
+
# File 'lib/opentelemetry/sdk/trace/samplers.rb', line 67
+
+def self.parent_based(
+  root:,
+  remote_parent_sampled: ALWAYS_ON,
+  remote_parent_not_sampled: ALWAYS_OFF,
+  local_parent_sampled: ALWAYS_ON,
+  local_parent_not_sampled: ALWAYS_OFF
+)
+  ParentBased.new(root, remote_parent_sampled, remote_parent_not_sampled, local_parent_sampled, local_parent_not_sampled)
+end
+
+
+ +
+

+ + .trace_id_ratio_based(ratio) ⇒ Object + + + + + +

+
+ +

Returns a new sampler. The ratio describes the proportion of the trace ID space that is sampled.

+ + +
+
+
+

Parameters:

+
    + +
  • + + ratio + + + (Numeric) + + + + — +
    +

    The desired sampling ratio. Must be within [0.0, 1.0].

    +
    + +
  • + +
+ +

Raises:

+
    + +
  • + + + (ArgumentError) + + + + — +
    +

    if ratio is out of range

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+83
+84
+85
+86
+87
+
+
# File 'lib/opentelemetry/sdk/trace/samplers.rb', line 83
+
+def self.trace_id_ratio_based(ratio)
+  raise ArgumentError, 'ratio must be in range [0.0, 1.0]' unless (0.0..1.0).include?(ratio)
+
+  TraceIdRatioBased.new(ratio)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/ConstantSampler.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/ConstantSampler.html new file mode 100644 index 0000000000..2118f4ebaf --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/ConstantSampler.html @@ -0,0 +1,459 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Samplers::ConstantSampler + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Samplers::ConstantSampler + + + Private +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb
+
+ +
+ +

Overview

+
+

+ This class is part of a private API. + You should avoid using this class if possible, as it may be removed or be changed in the future. +

+ +

Implements a sampler returning a result with a constant decision.

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(decision:, description:) ⇒ ConstantSampler + + + + + +

+
+

+ 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. +

+ +

Returns a new instance of ConstantSampler.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+20
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb', line 17
+
+def initialize(decision:, description:)
+  @decision = decision
+  @description = description
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #descriptionObject (readonly) + + + + + +

+
+

+ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+15
+16
+17
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb', line 15
+
+def description
+  @description
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #==(other) ⇒ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+22
+23
+24
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb', line 22
+
+def ==(other)
+  @decision == other.decision && @description == other.description
+end
+
+
+ +
+

+ + #should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ +

See OpenTelemetry::SDK::Trace::Samplers.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+29
+30
+31
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb', line 29
+
+def should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:)
+  Result.new(decision: @decision, tracestate: OpenTelemetry::Trace.current_span(parent_context).context.tracestate)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/Decision.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/Decision.html new file mode 100644 index 0000000000..c498fe04bb --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/Decision.html @@ -0,0 +1,175 @@ + + + + + + + Module: OpenTelemetry::SDK::Trace::Samplers::Decision + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Module: OpenTelemetry::SDK::Trace::Samplers::Decision + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/samplers/decision.rb
+
+ +
+ +

Overview

+
+ +

The Decision module contains a set of constants to be used in the decision part of a sampling Result.

+ + +
+
+
+ + +
+ +

+ Constant Summary + collapse +

+ +
+ +
DROP = +
+
+ +

Decision to not record events and not sample.

+ + +
+
+
+ + +
+
+
:__drop__
+ +
RECORD_ONLY = +
+
+ +

Decision to record events and not sample.

+ + +
+
+
+ + +
+
+
:__record_only__
+ +
RECORD_AND_SAMPLE = +
+
+ +

Decision to record events and sample.

+ + +
+
+
+ + +
+
+
:__record_and_sample__
+ +
+ + + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/ParentBased.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/ParentBased.html new file mode 100644 index 0000000000..452720cac9 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/ParentBased.html @@ -0,0 +1,476 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Samplers::ParentBased + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Samplers::ParentBased + + + Private +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/samplers/parent_based.rb
+
+ +
+ +

Overview

+
+

+ This class is part of a private API. + You should avoid using this class if possible, as it may be removed or be changed in the future. +

+ +

This is a composite sampler. ParentBased helps distinguished between the following cases: * No parent (root span). * Remote parent (SpanContext.remote? with trace_flags.sampled?) * Remote parent (SpanContext.remote? with !trace_flags.sampled?) * Local parent (!SpanContext.remote? with trace_flags.sampled?) * Local parent (!SpanContext.remote? with !trace_flags.sampled?)

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(root, remote_parent_sampled, remote_parent_not_sampled, local_parent_sampled, local_parent_not_sampled) ⇒ ParentBased + + + + + +

+
+

+ 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. +

+ +

Returns a new instance of ParentBased.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+21
+22
+23
+24
+25
+26
+27
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/parent_based.rb', line 21
+
+def initialize(root, remote_parent_sampled, remote_parent_not_sampled, local_parent_sampled, local_parent_not_sampled)
+  @root = root
+  @remote_parent_sampled = remote_parent_sampled
+  @remote_parent_not_sampled = remote_parent_not_sampled
+  @local_parent_sampled = local_parent_sampled
+  @local_parent_not_sampled = local_parent_not_sampled
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #==(other) ⇒ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+29
+30
+31
+32
+33
+34
+35
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/parent_based.rb', line 29
+
+def ==(other)
+  @root == other.root &&
+    @remote_parent_sampled == other.remote_parent_sampled &&
+    @remote_parent_not_sampled == other.remote_parent_not_sampled &&
+    @local_parent_sampled == other.local_parent_sampled &&
+    @local_parent_not_sampled == other.local_parent_not_sampled
+end
+
+
+ +
+

+ + #descriptionObject + + + + + +

+
+

+ 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. +

+ +

See OpenTelemetry::SDK::Trace::Samplers.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+40
+41
+42
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/parent_based.rb', line 40
+
+def description
+  "ParentBased{root=#{@root.description}, remote_parent_sampled=#{@remote_parent_sampled.description}, remote_parent_not_sampled=#{@remote_parent_not_sampled.description}, local_parent_sampled=#{@local_parent_sampled.description}, local_parent_not_sampled=#{@local_parent_not_sampled.description}}"
+end
+
+
+ +
+

+ + #should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ +

See OpenTelemetry::SDK::Trace::Samplers.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/parent_based.rb', line 47
+
+def should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:)
+  parent_span_context = OpenTelemetry::Trace.current_span(parent_context).context
+  delegate = if !parent_span_context.valid?
+               @root
+             elsif parent_span_context.remote?
+               parent_span_context.trace_flags.sampled? ? @remote_parent_sampled : @remote_parent_not_sampled
+             else
+               parent_span_context.trace_flags.sampled? ? @local_parent_sampled : @local_parent_not_sampled
+             end
+  delegate.should_sample?(trace_id: trace_id, parent_context: parent_context, links: links, name: name, kind: kind, attributes: attributes)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/Result.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/Result.html new file mode 100644 index 0000000000..c9e203f4c0 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/Result.html @@ -0,0 +1,624 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Samplers::Result + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Samplers::Result + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/samplers/result.rb
+
+ +
+ +

Overview

+
+ +

The Result class represents an arbitrary sampling result. It has boolean values for the sampling decision and whether to record events, and a collection of attributes to be attached to a sampled root span.

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(decision:, tracestate:, attributes: nil) ⇒ Result + + + + + +

+
+ +

Returns a new sampling result with the specified decision and attributes.

+ + +
+
+
+

Parameters:

+
    + +
  • + + decision + + + (Symbol) + + + + — +
    +

    Whether or not a span should be sampled and/or record events.

    +
    + +
  • + +
  • + + attributes + + + (optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}) + + + (defaults to: nil) + + + — +
    +

    A frozen or freezable hash containing attributes to be attached to the span.

    +
    + +
  • + +
  • + + tracestate + + + (Tracestate) + + + + — +
    +

    A Tracestate that will be associated with the Span through the new SpanContext. If the sampler returns an empty Tracestate here, the Tracestate will be cleared, so samplers SHOULD normally return the passed-in Tracestate if they do not intend to change it.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+43
+44
+45
+46
+47
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/result.rb', line 43
+
+def initialize(decision:, tracestate:, attributes: nil)
+  @decision = decision
+  @attributes = attributes.freeze || EMPTY_HASH
+  @tracestate = tracestate
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #attributesHash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>} (readonly) + + + + + +

+
+ +

Returns a frozen hash of attributes to be attached to the span.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}) + + + +
  • + +
+ +
+ + + + +
+
+
+
+23
+24
+25
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/result.rb', line 23
+
+def attributes
+  @attributes
+end
+
+
+ + + +
+

+ + #tracestateTracestate (readonly) + + + + + +

+
+ +

Returns a Tracestate to be associated with the span.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Tracestate) + + + +
  • + +
+ +
+ + + + +
+
+
+
+28
+29
+30
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/result.rb', line 28
+
+def tracestate
+  @tracestate
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #recording?Boolean + + + + + +

+
+ +

Returns true if this span should record events, attributes, status, etc.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + + — +
    +

    recording decision

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+59
+60
+61
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/result.rb', line 59
+
+def recording?
+  @decision != Decision::DROP
+end
+
+
+ +
+

+ + #sampled?Boolean + + + + + +

+
+ +

Returns true if this span should be sampled.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + + — +
    +

    sampling decision

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+52
+53
+54
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/result.rb', line 52
+
+def sampled?
+  @decision == Decision::RECORD_AND_SAMPLE
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/TraceIdRatioBased.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/TraceIdRatioBased.html new file mode 100644 index 0000000000..a69709f153 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Samplers/TraceIdRatioBased.html @@ -0,0 +1,471 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Samplers::TraceIdRatioBased + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Samplers::TraceIdRatioBased + + + Private +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb
+
+ +
+ +

Overview

+
+

+ This class is part of a private API. + You should avoid using this class if possible, as it may be removed or be changed in the future. +

+ +

Implements sampling based on a probability.

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(probability) ⇒ TraceIdRatioBased + + + + + +

+
+

+ 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. +

+ +

Returns a new instance of TraceIdRatioBased.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+20
+21
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb', line 17
+
+def initialize(probability)
+  @probability = probability
+  @id_upper_bound = (probability * (2**64 - 1)).ceil
+  @description = format('TraceIdRatioBased{%.6f}', probability)
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #descriptionObject (readonly) + + + + + +

+
+

+ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+15
+16
+17
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb', line 15
+
+def description
+  @description
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #==(other) ⇒ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+23
+24
+25
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb', line 23
+
+def ==(other)
+  @description == other.description
+end
+
+
+ +
+

+ + #should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:) ⇒ Boolean + + + + + +

+
+

+ 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. +

+ +

See OpenTelemetry::SDK::Trace::Samplers.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+
+
# File 'lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb', line 30
+
+def should_sample?(trace_id:, parent_context:, links:, name:, kind:, attributes:)
+  tracestate = OpenTelemetry::Trace.current_span(parent_context).context.tracestate
+  if sample?(trace_id)
+    Result.new(decision: Decision::RECORD_AND_SAMPLE, tracestate: tracestate)
+  else
+    Result.new(decision: Decision::DROP, tracestate: tracestate)
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Span.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Span.html new file mode 100644 index 0000000000..cf94e80fe5 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Span.html @@ -0,0 +1,2044 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Span + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Span + + + +

+
+ +
+
Inherits:
+
+ Trace::Span + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/span.rb
+
+ +
+ +

Overview

+
+ +

Implementation of Trace::Span that records trace events.

+ +

This implementation includes reader methods intended to allow access to internal state by SpanProcessors. Instrumentation should use the API provided by Trace::Span and should consider Span to be write-only.

+ +

rubocop:disable Metrics/ClassLength

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + + +
+

Constructor Details

+ +
+

+ + #initialize(context, parent_context, parent_span, name, kind, parent_span_id, span_limits, span_processors, attributes, links, start_timestamp, resource, instrumentation_scope) ⇒ Span + + + + + +

+
+

+ 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. +

+ +

Returns a new instance of Span.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 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
+  super(span_context: context)
+  @mutex = Mutex.new
+  @name = name
+  @kind = kind
+  @parent_span_id = parent_span_id.freeze || OpenTelemetry::Trace::INVALID_SPAN_ID
+  @span_limits = span_limits
+  @span_processors = span_processors
+  @resource = resource
+  @instrumentation_scope = instrumentation_scope
+  @ended = false
+  @status = DEFAULT_STATUS
+  @total_recorded_events = 0
+  @total_recorded_links = links&.size || 0
+  @total_recorded_attributes = attributes&.size || 0
+  @attributes = attributes
+  trim_span_attributes(@attributes)
+  @events = nil
+  @links = trim_links(links, span_limits.link_count_limit, span_limits.link_attribute_count_limit)
+
+  # Times are hard. Whenever an explicit timestamp is provided
+  # (for Events or for the Span start_timestamp or end_timestamp),
+  # we use that as the recorded timestamp. An implicit Event timestamp
+  # and end_timestamp is computed as a monotonic clock offset from
+  # the realtime start_timestamp. The realtime start_timestamp is
+  # computed as a monotonic clock offset from the realtime
+  # start_timestamp of its parent span, if available, or it is
+  # fetched from the realtime system clock.
+  #
+  # We therefore have 3 start timestamps. The first two are used
+  # internally (and by child spans) to compute other timestamps.
+  # The last is the start timestamp actually recorded in the
+  # SpanData.
+  @monotonic_start_timestamp = monotonic_now
+  @realtime_start_timestamp = if parent_span.recording?
+                                relative_realtime(parent_span.realtime_start_timestamp, parent_span.monotonic_start_timestamp, @monotonic_start_timestamp)
+                              else
+                                realtime_now
+                              end
+  @start_timestamp = if start_timestamp
+                       time_in_nanoseconds(start_timestamp)
+                     else
+                       @realtime_start_timestamp
+                     end
+  @end_timestamp = nil
+  @span_processors.each { |processor| processor.on_start(self, parent_context) }
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #end_timestampObject (readonly) + + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def end_timestamp
+  @end_timestamp
+end
+
+
+ + + +
+

+ + #instrumentation_scopeObject (readonly) + + + + Also known as: + instrumentation_library + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def instrumentation_scope
+  @instrumentation_scope
+end
+
+
+ + + +
+

+ + #kindObject (readonly) + + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def kind
+  @kind
+end
+
+
+ + + +
+
+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def links
+  @links
+end
+
+
+ + + +
+

+ + #nameObject + + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def name
+  @name
+end
+
+
+ + + +
+

+ + #parent_span_idObject (readonly) + + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def parent_span_id
+  @parent_span_id
+end
+
+
+ + + +
+

+ + #resourceObject (readonly) + + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def resource
+  @resource
+end
+
+
+ + + +
+

+ + #start_timestampObject (readonly) + + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def start_timestamp
+  @start_timestamp
+end
+
+
+ + + +
+

+ + #statusObject + + + + + +

+
+ +

The following readers are intended for the use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 26
+
+def status
+  @status
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add_attributes(attributes) ⇒ self + + + + + +

+
+ +

Add attributes

+ +

Note that the OpenTelemetry project documents certain “standard attributes” that have prescribed semantic meanings.

+ + +
+
+
+

Parameters:

+
    + +
  • + + attributes + + + (Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}) + + + + — +
    +

    Values must be non-nil and (array of) string, boolean or numeric type. Array values must not contain nil elements and all elements must be of the same basic type (string, numeric, boolean).

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (self) + + + + — +
    +

    returns itself

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 107
+
+def add_attributes(attributes)
+  @mutex.synchronize do
+    if @ended
+      OpenTelemetry.logger.warn('Calling add_attributes on an ended Span.')
+    else
+      @attributes ||= {}
+      @attributes.merge!(attributes)
+      trim_span_attributes(@attributes)
+      @total_recorded_attributes += attributes.size
+    end
+  end
+  self
+end
+
+
+ +
+

+ + #add_event(name, attributes: nil, timestamp: nil) ⇒ self + + + + + +

+
+ +

Add an Event to a OpenTelemetry::SDK::Trace::Span.

+ +

Example:

+ +

span.add_event('event', attributes: => true)

+ +

Note that the OpenTelemetry project documents certain “standard event names and keys” which have prescribed semantic meanings.

+ + +
+
+
+

Parameters:

+
    + +
  • + + name + + + (String) + + + + — +
    +

    Name of the event.

    +
    + +
  • + +
  • + + attributes + + + (optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}) + + + (defaults to: nil) + + + — +
    +

    One or more key:value pairs, where the keys must be strings and the values may be (array of) string, boolean or numeric type.

    +
    + +
  • + +
  • + + timestamp + + + (optional Time) + + + (defaults to: nil) + + + — +
    +

    Optional timestamp for the event.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (self) + + + + — +
    +

    returns itself

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 139
+
+def add_event(name, attributes: nil, timestamp: nil)
+  event = Event.new(name, truncate_attribute_values(attributes, @span_limits.event_attribute_length_limit), relative_timestamp(timestamp))
+
+  @mutex.synchronize do
+    if @ended
+      OpenTelemetry.logger.warn('Calling add_event on an ended Span.')
+    else
+      @events ||= []
+      @events = append_event(@events, event)
+      @total_recorded_events += 1
+    end
+  end
+  self
+end
+
+
+ +
+

+ + #attributesHash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>} + + + + + +

+
+ +

Return a frozen copy of the current attributes. This is intended for use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}) + + + + — +
    +

    may be nil.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+39
+40
+41
+42
+43
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 39
+
+def attributes
+  # Don't bother synchronizing. Access by SpanProcessors is expected to
+  # be serialized.
+  @attributes&.clone.freeze
+end
+
+
+ +
+

+ + #eventsArray<Event> + + + + + +

+
+ +

Return a frozen copy of the current events. This is intended for use of SpanProcessors and should not be considered part of the public interface for instrumentation.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Array<Event>) + + + + — +
    +

    may be nil.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+50
+51
+52
+53
+54
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 50
+
+def events
+  # Don't bother synchronizing. Access by SpanProcessors is expected to
+  # be serialized.
+  @events&.clone.freeze
+end
+
+
+ +
+

+ + #finish(end_timestamp: nil) ⇒ self + + + + + +

+
+ +

Finishes the Span

+ +

Implementations MUST ignore all subsequent calls to #finish (there might be exceptions when Tracer is streaming event and has no mutable state associated with the Span).

+ +

Call to #finish MUST not have any effects on child spans. Those may still be running and can be ended later.

+ +

This API MUST be non-blocking*.

+ +

(*) not actually non-blocking. In particular, it synchronizes on an internal mutex, which will typically be uncontended, and Export::BatchSpanProcessor will also synchronize on a mutex, if that processor is used.

+ + +
+
+
+

Parameters:

+
    + +
  • + + end_timestamp + + + (Time) + + + (defaults to: nil) + + + — +
    +

    optional end timestamp for the span.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (self) + + + + — +
    +

    returns itself

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 236
+
+def finish(end_timestamp: nil)
+  @mutex.synchronize do
+    if @ended
+      OpenTelemetry.logger.warn('Calling finish on an ended Span.')
+      return self
+    end
+    @end_timestamp = relative_timestamp(end_timestamp)
+    @attributes = validated_attributes(@attributes).freeze
+    @events.freeze
+    @ended = true
+  end
+  @span_processors.each { |processor| processor.on_finish(self) }
+  self
+end
+
+
+ +
+

+ + #record_exception(exception, attributes: nil) ⇒ void + + + + + +

+
+

This method returns an undefined value.

+

Record an exception during the execution of this span. Multiple exceptions can be recorded on a span.

+ + +
+
+
+

Parameters:

+
    + +
  • + + exception + + + (Exception) + + + + — +
    +

    The exception to be recorded

    +
    + +
  • + +
  • + + attributes + + + (optional Hash{String => String, Numeric, Boolean, Array<String, Numeric, Boolean>}) + + + (defaults to: nil) + + + — +
    +

    One or more key:value pairs, where the keys must be strings and the values may be (array of) string, boolean or numeric type.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+164
+165
+166
+167
+168
+169
+170
+171
+172
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 164
+
+def record_exception(exception, attributes: nil)
+  event_attributes = {
+    'exception.type' => exception.class.to_s,
+    'exception.message' => exception.message,
+    'exception.stacktrace' => exception.full_message(highlight: false, order: :top).encode('UTF-8', invalid: :replace, undef: :replace, replace: '')
+  }
+  event_attributes.merge!(attributes) unless attributes.nil?
+  add_event('exception', attributes: event_attributes)
+end
+
+
+ +
+

+ + #recording?Boolean + + + + + +

+
+ +

Return the flag whether this span is recording events

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + + — +
    +

    true if this Span is active and recording information like events with the #add_event operation and attributes using

    + +

    set_attribute.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+61
+62
+63
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 61
+
+def recording?
+  !@ended
+end
+
+
+ +
+

+ + #set_attribute(key, value) ⇒ self + + + + Also known as: + []= + + + + +

+
+ +

Set attribute

+ +

Note that the OpenTelemetry project documents certain “standard attributes” that have prescribed semantic meanings.

+ + +
+
+
+

Parameters:

+
    + +
  • + + key + + + (String) + + + +
  • + +
  • + + value + + + (String, Boolean, Numeric, Array<String, Numeric, Boolean>) + + + + — +
    +

    Values must be non-nil and (array of) string, boolean or numeric type. Array values must not contain nil elements and all elements must be of the same basic type (string, numeric, boolean).

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (self) + + + + — +
    +

    returns itself

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 79
+
+def set_attribute(key, value)
+  @mutex.synchronize do
+    if @ended
+      OpenTelemetry.logger.warn('Calling set_attribute on an ended Span.')
+    else
+      @attributes ||= {}
+      @attributes[key] = value
+      trim_span_attributes(@attributes)
+      @total_recorded_attributes += 1
+    end
+  end
+  self
+end
+
+
+ +
+

+ + #to_span_dataSpanData + + + + + +

+
+

+ 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. +

+ +

Returns a SpanData containing a snapshot of the Span fields. It is assumed that the Span has been finished, and that no further modifications will be made to the Span.

+ +

This method should be called only from a SpanProcessor prior to calling the SpanExporter.

+ + +
+
+
+ +

Returns:

+ + +
+ + + + +
+
+
+
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+
+
# File 'lib/opentelemetry/sdk/trace/span.rb', line 261
+
+def to_span_data
+  SpanData.new(
+    @name,
+    @kind,
+    @status,
+    @parent_span_id,
+    @total_recorded_attributes,
+    @total_recorded_events,
+    @total_recorded_links,
+    @start_timestamp,
+    @end_timestamp,
+    @attributes,
+    @links,
+    @events,
+    @resource,
+    @instrumentation_scope,
+    context.span_id,
+    context.trace_id,
+    context.trace_flags,
+    context.tracestate
+  )
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanData.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanData.html new file mode 100644 index 0000000000..de690740c8 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanData.html @@ -0,0 +1,2001 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::SpanData + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::SpanData + + + +

+
+ +
+
Inherits:
+
+ Struct + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/span_data.rb
+
+ +
+ +

Overview

+
+ +

SpanData is a Struct containing Span data for export.

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Attribute Details

+ + + +
+

+ + #attributesObject + + + + + +

+
+ +

Returns the value of attribute attributes

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of attributes

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def attributes
+  @attributes
+end
+
+
+ + + +
+

+ + #end_timestampObject + + + + + +

+
+ +

Returns the value of attribute end_timestamp

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of end_timestamp

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def end_timestamp
+  @end_timestamp
+end
+
+
+ + + +
+

+ + #eventsObject + + + + + +

+
+ +

Returns the value of attribute events

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of events

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def events
+  @events
+end
+
+
+ + + +
+

+ + #instrumentation_scopeObject + + + + Also known as: + instrumentation_library + + + + +

+
+ +

Returns the value of attribute instrumentation_scope

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of instrumentation_scope

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def instrumentation_scope
+  @instrumentation_scope
+end
+
+
+ + + +
+

+ + #kindObject + + + + + +

+
+ +

Returns the value of attribute kind

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of kind

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def kind
+  @kind
+end
+
+
+ + + +
+
+
+ +

Returns the value of attribute links

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of links

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def links
+  @links
+end
+
+
+ + + +
+

+ + #nameObject + + + + + +

+
+ +

Returns the value of attribute name

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of name

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def name
+  @name
+end
+
+
+ + + +
+

+ + #parent_span_idObject + + + + + +

+
+ +

Returns the value of attribute parent_span_id

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of parent_span_id

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def parent_span_id
+  @parent_span_id
+end
+
+
+ + + +
+

+ + #resourceObject + + + + + +

+
+ +

Returns the value of attribute resource

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of resource

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def resource
+  @resource
+end
+
+
+ + + +
+

+ + #span_idObject + + + + + +

+
+ +

Returns the value of attribute span_id

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of span_id

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def span_id
+  @span_id
+end
+
+
+ + + +
+

+ + #start_timestampObject + + + + + +

+
+ +

Returns the value of attribute start_timestamp

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of start_timestamp

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def start_timestamp
+  @start_timestamp
+end
+
+
+ + + +
+

+ + #statusObject + + + + + +

+
+ +

Returns the value of attribute status

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of status

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def status
+  @status
+end
+
+
+ + + +
+

+ + #total_recorded_attributesObject + + + + + +

+
+ +

Returns the value of attribute total_recorded_attributes

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of total_recorded_attributes

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def total_recorded_attributes
+  @total_recorded_attributes
+end
+
+
+ + + +
+

+ + #total_recorded_eventsObject + + + + + +

+
+ +

Returns the value of attribute total_recorded_events

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of total_recorded_events

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def total_recorded_events
+  @total_recorded_events
+end
+
+
+ + + +
+
+
+ +

Returns the value of attribute total_recorded_links

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of total_recorded_links

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def total_recorded_links
+  @total_recorded_links
+end
+
+
+ + + +
+

+ + #trace_flagsObject + + + + + +

+
+ +

Returns the value of attribute trace_flags

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of trace_flags

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def trace_flags
+  @trace_flags
+end
+
+
+ + + +
+

+ + #trace_idObject + + + + + +

+
+ +

Returns the value of attribute trace_id

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of trace_id

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def trace_id
+  @trace_id
+end
+
+
+ + + +
+

+ + #tracestateObject + + + + + +

+
+ +

Returns the value of attribute tracestate

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (Object) + + + + — +
    +

    the current value of tracestate

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 13
+
+def tracestate
+  @tracestate
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #hex_parent_span_idString + + + + + +

+
+ +

Returns the lowercase hex encoded parent span ID.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (String) + + + + — +
    +

    A 16-hex-character lowercase string.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+48
+49
+50
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 48
+
+def hex_parent_span_id
+  parent_span_id.unpack1('H*')
+end
+
+
+ +
+

+ + #hex_span_idString + + + + + +

+
+ +

Returns the lowercase hex encoded span ID.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (String) + + + + — +
    +

    A 16-hex-character lowercase string.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+34
+35
+36
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 34
+
+def hex_span_id
+  span_id.unpack1('H*')
+end
+
+
+ +
+

+ + #hex_trace_idString + + + + + +

+
+ +

Returns the lowercase hex encoded trace ID.

+ + +
+
+
+ +

Returns:

+
    + +
  • + + + (String) + + + + — +
    +

    A 32-hex-character lowercase string.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+41
+42
+43
+
+
# File 'lib/opentelemetry/sdk/trace/span_data.rb', line 41
+
+def hex_trace_id
+  trace_id.unpack1('H*')
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanLimits.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanLimits.html new file mode 100644 index 0000000000..c7d2120b9f --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanLimits.html @@ -0,0 +1,815 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::SpanLimits + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::SpanLimits + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/span_limits.rb
+
+ +
+ +

Overview

+
+ +

Class that holds global trace parameters.

+ + +
+
+
+ + +
+ +

+ Constant Summary + collapse +

+ +
+ +
DEFAULT = +
+ +
+
+ + +
+
+
new
+ +
+ + + + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(attribute_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT', 'OTEL_ATTRIBUTE_COUNT_LIMIT', default: 128)), attribute_length_limit: OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT', 'OTEL_RUBY_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT', 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'), event_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_EVENT_COUNT_LIMIT', default: 128)), link_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_LINK_COUNT_LIMIT', default: 128)), event_attribute_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT', default: 128)), event_attribute_length_limit: OpenTelemetry::Common::Utilities.config_opt('OTEL_EVENT_ATTRIBUTE_VALUE_LENGTH_LIMIT', 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'), link_attribute_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_LINK_ATTRIBUTE_COUNT_LIMIT', default: 128))) ⇒ SpanLimits + + + + + +

+
+ +

Returns a OpenTelemetry::SDK::Trace::SpanLimits with the desired values.

+ + +
+
+
+ +

Raises:

+
    + +
  • + + + (ArgumentError) + + + + — +
    +

    if any of the max numbers are not positive.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 37
+
+def initialize(attribute_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT', 'OTEL_ATTRIBUTE_COUNT_LIMIT', default: 128)), # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
+               attribute_length_limit: OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT', 'OTEL_RUBY_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT', 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'),
+               event_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_EVENT_COUNT_LIMIT', default: 128)),
+               link_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_SPAN_LINK_COUNT_LIMIT', default: 128)),
+               event_attribute_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT', default: 128)),
+               event_attribute_length_limit: OpenTelemetry::Common::Utilities.config_opt('OTEL_EVENT_ATTRIBUTE_VALUE_LENGTH_LIMIT', 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'),
+               link_attribute_count_limit: Integer(OpenTelemetry::Common::Utilities.config_opt('OTEL_LINK_ATTRIBUTE_COUNT_LIMIT', default: 128)))
+
+  raise ArgumentError, 'attribute_count_limit must be positive' unless attribute_count_limit.positive?
+  raise ArgumentError, 'attribute_length_limit must not be less than 32' unless attribute_length_limit.nil? || Integer(attribute_length_limit) >= 32
+  raise ArgumentError, 'event_count_limit must be positive' unless event_count_limit.positive?
+  raise ArgumentError, 'link_count_limit must be positive' unless link_count_limit.positive?
+  raise ArgumentError, 'event_attribute_count_limit must be positive' unless event_attribute_count_limit.positive?
+  raise ArgumentError, 'event_attribute_length_limit must not be less than 32' unless event_attribute_length_limit.nil? || Integer(event_attribute_length_limit) >= 32
+  raise ArgumentError, 'link_attribute_count_limit must be positive' unless link_attribute_count_limit.positive?
+
+  @attribute_count_limit = attribute_count_limit
+  @attribute_length_limit = attribute_length_limit.nil? ? nil : Integer(attribute_length_limit)
+  @event_count_limit = event_count_limit
+  @link_count_limit = link_count_limit
+  @event_attribute_count_limit = event_attribute_count_limit
+  @event_attribute_length_limit = event_attribute_length_limit.nil? ? nil : Integer(event_attribute_length_limit)
+  @link_attribute_count_limit = link_attribute_count_limit
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #attribute_count_limitObject (readonly) + + + + + +

+
+ +

The global default max number of attributes per OpenTelemetry::SDK::Trace::Span.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+13
+14
+15
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 13
+
+def attribute_count_limit
+  @attribute_count_limit
+end
+
+
+ + + +
+

+ + #attribute_length_limitObject (readonly) + + + + + +

+
+ +

The global default max length of attribute value per OpenTelemetry::SDK::Trace::Span.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+16
+17
+18
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 16
+
+def attribute_length_limit
+  @attribute_length_limit
+end
+
+
+ + + +
+

+ + #event_attribute_count_limitObject (readonly) + + + + + +

+
+ +

The global default max number of attributes per Event.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+25
+26
+27
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 25
+
+def event_attribute_count_limit
+  @event_attribute_count_limit
+end
+
+
+ + + +
+

+ + #event_attribute_length_limitObject (readonly) + + + + + +

+
+ +

The global default max length of attribute value per Event.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+28
+29
+30
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 28
+
+def event_attribute_length_limit
+  @event_attribute_length_limit
+end
+
+
+ + + +
+

+ + #event_count_limitObject (readonly) + + + + + +

+
+ +

The global default max number of Events per OpenTelemetry::SDK::Trace::Span.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+19
+20
+21
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 19
+
+def event_count_limit
+  @event_count_limit
+end
+
+
+ + + +
+
+
+ +

The global default max number of attributes per Trace::Link.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+31
+32
+33
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 31
+
+def link_attribute_count_limit
+  @link_attribute_count_limit
+end
+
+
+ + + +
+
+
+ +

The global default max number of Trace::Link entries per OpenTelemetry::SDK::Trace::Span.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+22
+23
+24
+
+
# File 'lib/opentelemetry/sdk/trace/span_limits.rb', line 22
+
+def link_count_limit
+  @link_count_limit
+end
+
+
+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanProcessor.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanProcessor.html new file mode 100644 index 0000000000..1fffca36e2 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/SpanProcessor.html @@ -0,0 +1,543 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::SpanProcessor + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::SpanProcessor + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/span_processor.rb
+
+ +
+ +

Overview

+
+ +

SpanProcessor describes a duck type and provides synchronous no-op hooks for when a Span is started or when a Span is ended. It is not required to subclass this class to provide an implementation of SpanProcessor, provided the interface is satisfied.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Method Details

+ + +
+

+ + #force_flush(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Export all ended spans to the configured Exporter that have not yet been exported.

+ +

This method should only be called in cases where it is absolutely necessary, such as when using some FaaS providers that may suspend the process after an invocation, but before the Processor exports the completed spans.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    Export::SUCCESS if no error occurred, Export::FAILURE if a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+46
+47
+48
+
+
# File 'lib/opentelemetry/sdk/trace/span_processor.rb', line 46
+
+def force_flush(timeout: nil)
+  Export::SUCCESS
+end
+
+
+ +
+

+ + #on_finish(span) ⇒ Object + + + + + +

+
+ +

Called when a OpenTelemetry::SDK::Trace::Span is ended, if the OpenTelemetry::SDK::Trace::Span#recording? returns true.

+ +

This method is called synchronously on the execution thread, should not throw or block the execution thread.

+ + +
+
+
+

Parameters:

+ + + +
+ + + + +
+
+
+
+33
+
+
# File 'lib/opentelemetry/sdk/trace/span_processor.rb', line 33
+
+def on_finish(span); end
+
+
+ +
+

+ + #on_start(span, parent_context) ⇒ Object + + + + + +

+
+ +

Called when a OpenTelemetry::SDK::Trace::Span is started, if the OpenTelemetry::SDK::Trace::Span#recording? returns true.

+ +

This method is called synchronously on the execution thread, should not throw or block the execution thread.

+ + +
+
+
+

Parameters:

+
    + +
  • + + span + + + (Span) + + + + — +
    +

    the OpenTelemetry::SDK::Trace::Span that just started.

    +
    + +
  • + +
  • + + parent_context + + + (Context) + + + + — +
    +

    the parent Context of the newly started span.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+24
+
+
# File 'lib/opentelemetry/sdk/trace/span_processor.rb', line 24
+
+def on_start(span, parent_context); end
+
+
+ +
+

+ + #shutdown(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Called when TracerProvider#shutdown is called.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    Export::SUCCESS if no error occurred, Export::FAILURE if a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+55
+56
+57
+
+
# File 'lib/opentelemetry/sdk/trace/span_processor.rb', line 55
+
+def shutdown(timeout: nil)
+  Export::SUCCESS
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Tracer.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Tracer.html new file mode 100644 index 0000000000..249528b887 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/Tracer.html @@ -0,0 +1,397 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::Tracer + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::Tracer + + + +

+
+ +
+
Inherits:
+
+ Trace::Tracer + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/tracer.rb
+
+ +
+ +

Overview

+
+ +

Tracer is the SDK implementation of Trace::Tracer.

+ + +
+
+
+ + +
+ + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + +
+

Constructor Details

+ +
+

+ + #initialize(name, version, tracer_provider) ⇒ Tracer + + + + + +

+
+

+ 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. +

+ +

Returns a new OpenTelemetry::SDK::Trace::Tracer instance.

+ + +
+
+
+

Parameters:

+
    + +
  • + + name + + + (String) + + + + — +
    +

    Instrumentation package name

    +
    + +
  • + +
  • + + version + + + (String) + + + + — +
    +

    Instrumentation package version

    +
    + +
  • + +
  • + + tracer_provider + + + (TracerProvider) + + + + — +
    +

    TracerProvider that initialized the tracer

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+21
+22
+23
+24
+
+
# File 'lib/opentelemetry/sdk/trace/tracer.rb', line 21
+
+def initialize(name, version, tracer_provider)
+  @instrumentation_scope = InstrumentationScope.new(name, version)
+  @tracer_provider = tracer_provider
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #start_root_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil) ⇒ Object + + + + + +

+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'lib/opentelemetry/sdk/trace/tracer.rb', line 26
+
+def start_root_span(name, attributes: nil, links: nil, start_timestamp: nil, kind: nil)
+  start_span(name, with_parent: Context.empty, attributes: attributes, links: links, start_timestamp: start_timestamp, kind: kind)
+end
+
+
+ +
+

+ + #start_span(name, with_parent: nil, attributes: nil, links: nil, start_timestamp: nil, kind: nil) ⇒ Object + + + + + +

+ + + + +
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+38
+
+
# File 'lib/opentelemetry/sdk/trace/tracer.rb', line 30
+
+def start_span(name, with_parent: nil, attributes: nil, links: nil, start_timestamp: nil, kind: nil)
+  with_parent ||= Context.current
+  return super(name, with_parent: with_parent, attributes: attributes, links: links, start_timestamp: start_timestamp, kind: kind) if Common::Utilities.untraced?(with_parent)
+
+  name ||= 'empty'
+  kind ||= :internal
+
+  @tracer_provider.internal_start_span(name, kind, attributes, links, start_timestamp, with_parent, @instrumentation_scope)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/TracerProvider.html b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/TracerProvider.html new file mode 100644 index 0000000000..03ff581fdd --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/OpenTelemetry/SDK/Trace/TracerProvider.html @@ -0,0 +1,1231 @@ + + + + + + + Class: OpenTelemetry::SDK::Trace::TracerProvider + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Class: OpenTelemetry::SDK::Trace::TracerProvider + + + +

+
+ +
+
Inherits:
+
+ Trace::TracerProvider + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/opentelemetry/sdk/trace/tracer_provider.rb
+
+ +
+ +

Overview

+
+ +

TracerProvider is the SDK implementation of Trace::TracerProvider.

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + + +
+

Constructor Details

+ +
+

+ + #initialize(sampler: sampler_from_environment(Samplers.parent_based(root: Samplers::ALWAYS_ON)), resource: OpenTelemetry::SDK::Resources::Resource.create, id_generator: OpenTelemetry::Trace, span_limits: SpanLimits::DEFAULT) ⇒ TracerProvider + + + + + +

+
+ +

Returns a new OpenTelemetry::SDK::Trace::TracerProvider instance.

+ + +
+
+
+

Parameters:

+
    + +
  • + + sampler + + + (optional Sampler) + + + (defaults to: sampler_from_environment(Samplers.parent_based(root: Samplers::ALWAYS_ON))) + + + — +
    +

    The sampling policy for new spans

    +
    + +
  • + +
  • + + resource + + + (optional Resource) + + + (defaults to: OpenTelemetry::SDK::Resources::Resource.create) + + + — +
    +

    The resource to associate with spans created by Tracers created by this TracerProvider

    +
    + +
  • + +
  • + + id_generator + + + (optional IDGenerator) + + + (defaults to: OpenTelemetry::Trace) + + + — +
    +

    The trace and span ID generation policy

    +
    + +
  • + +
  • + + span_limits + + + (optional SpanLimits) + + + (defaults to: SpanLimits::DEFAULT) + + + — +
    +

    The limits to apply to attribute, event and link counts for Spans created by Tracers created by this TracerProvider

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 30
+
+def initialize(sampler: sampler_from_environment(Samplers.parent_based(root: Samplers::ALWAYS_ON)),
+               resource: OpenTelemetry::SDK::Resources::Resource.create,
+               id_generator: OpenTelemetry::Trace,
+               span_limits: SpanLimits::DEFAULT)
+  @mutex = Mutex.new
+  @registry = {}
+  @registry_mutex = Mutex.new
+  @span_processors = []
+  @span_limits = span_limits
+  @sampler = sampler
+  @id_generator = id_generator
+  @stopped = false
+  @resource = resource
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #id_generatorObject + + + + + +

+
+ +

Returns the value of attribute id_generator.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+15
+16
+17
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 15
+
+def id_generator
+  @id_generator
+end
+
+
+ + + +
+

+ + #resourceObject (readonly) + + + + + +

+
+ +

Returns the value of attribute resource.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+16
+17
+18
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 16
+
+def resource
+  @resource
+end
+
+
+ + + +
+

+ + #samplerObject + + + + + +

+
+ +

Returns the value of attribute sampler.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+15
+16
+17
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 15
+
+def sampler
+  @sampler
+end
+
+
+ + + +
+

+ + #span_limitsObject + + + + + +

+
+ +

Returns the value of attribute span_limits.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+15
+16
+17
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 15
+
+def span_limits
+  @span_limits
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add_span_processor(span_processor) ⇒ Object + + + + + +

+
+ +

Adds a new SpanProcessor to this OpenTelemetry::SDK::Trace::Tracer.

+ + +
+
+
+

Parameters:

+
    + +
  • + + span_processor + + + + + + + — +
    +

    the new SpanProcessor to be added.

    +
    + +
  • + +
+ + +
+ + + + +
+
+
+
+118
+119
+120
+121
+122
+123
+124
+125
+126
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 118
+
+def add_span_processor(span_processor)
+  @mutex.synchronize do
+    if @stopped
+      OpenTelemetry.logger.warn('calling Tracer#add_span_processor after shutdown.')
+      return
+    end
+    @span_processors = @span_processors.dup.push(span_processor)
+  end
+end
+
+
+ +
+

+ + #force_flush(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Immediately export all spans that have not yet been exported for all the registered SpanProcessors.

+ +

This method should only be called in cases where it is absolutely necessary, such as when using some FaaS providers that may suspend the process after an invocation, but before the Processor exports the completed spans.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    Export::SUCCESS if no error occurred, Export::FAILURE if a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 100
+
+def force_flush(timeout: nil)
+  @mutex.synchronize do
+    return Export::SUCCESS if @stopped
+
+    start_time = OpenTelemetry::Common::Utilities.timeout_timestamp
+    results = @span_processors.map do |processor|
+      remaining_timeout = OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time)
+      return Export::TIMEOUT if remaining_timeout&.zero?
+
+      processor.force_flush(timeout: remaining_timeout)
+    end
+    results.max || Export::SUCCESS
+  end
+end
+
+
+ +
+

+ + #internal_start_span(name, kind, attributes, links, start_timestamp, parent_context, instrumentation_scope) ⇒ 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. +

+ + +
+
+
+ + +
+ + + + +
+
+
+
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 129
+
+def internal_start_span(name, kind, attributes, links, start_timestamp, parent_context, instrumentation_scope) # rubocop:disable Metrics/MethodLength
+  parent_span = OpenTelemetry::Trace.current_span(parent_context)
+  parent_span_context = parent_span.context
+
+  if parent_span_context.valid?
+    parent_span_id = parent_span_context.span_id
+    trace_id = parent_span_context.trace_id
+  end
+
+  trace_id ||= @id_generator.generate_trace_id
+  result = @sampler.should_sample?(trace_id: trace_id, parent_context: parent_context, links: links, name: name, kind: kind, attributes: attributes)
+  span_id = @id_generator.generate_span_id
+  if result.recording? && !@stopped
+    trace_flags = result.sampled? ? OpenTelemetry::Trace::TraceFlags::SAMPLED : OpenTelemetry::Trace::TraceFlags::DEFAULT
+    context = OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id, trace_flags: trace_flags, tracestate: result.tracestate)
+    attributes = attributes&.merge(result.attributes) || result.attributes.dup
+    Span.new(
+      context,
+      parent_context,
+      parent_span,
+      name,
+      kind,
+      parent_span_id,
+      @span_limits,
+      @span_processors,
+      attributes,
+      links,
+      start_timestamp,
+      @resource,
+      instrumentation_scope
+    )
+  else
+    OpenTelemetry::Trace.non_recording_span(OpenTelemetry::Trace::SpanContext.new(trace_id: trace_id, span_id: span_id, tracestate: result.tracestate))
+  end
+end
+
+
+ +
+

+ + #shutdown(timeout: nil) ⇒ Integer + + + + + +

+
+ +

Attempts to stop all the activity for this OpenTelemetry::SDK::Trace::TracerProvider. Calls SpanProcessor#shutdown for all registered SpanProcessors.

+ +

This operation may block until all the Spans are processed. Must be called before turning off the main application to ensure all data are processed and exported.

+ +

After this is called all the newly created Spans will be no-op.

+ + +
+
+
+

Parameters:

+
    + +
  • + + timeout + + + (optional Numeric) + + + (defaults to: nil) + + + — +
    +

    An optional timeout in seconds.

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Integer) + + + + — +
    +

    Export::SUCCESS if no error occurred, Export::FAILURE if a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.

    +
    + +
  • + +
+ +
+ + + + +
+
+
+
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 70
+
+def shutdown(timeout: nil)
+  @mutex.synchronize do
+    if @stopped
+      OpenTelemetry.logger.warn('calling Tracer#shutdown multiple times.')
+      return Export::FAILURE
+    end
+
+    start_time = OpenTelemetry::Common::Utilities.timeout_timestamp
+    results = @span_processors.map do |processor|
+      remaining_timeout = OpenTelemetry::Common::Utilities.maybe_timeout(timeout, start_time)
+      break [Export::TIMEOUT] if remaining_timeout&.zero?
+
+      processor.shutdown(timeout: remaining_timeout)
+    end
+    @stopped = true
+    results.max || Export::SUCCESS
+  end
+end
+
+
+ +
+

+ + #tracer(name = nil, version = nil) ⇒ Tracer + + + + + +

+
+ +

Returns a OpenTelemetry::SDK::Trace::Tracer instance.

+ + +
+
+
+

Parameters:

+
    + +
  • + + name + + + (optional String) + + + (defaults to: nil) + + + — +
    +

    Instrumentation package name

    +
    + +
  • + +
  • + + version + + + (optional String) + + + (defaults to: nil) + + + — +
    +

    Instrumentation package version

    +
    + +
  • + +
+ +

Returns:

+
    + +
  • + + + (Tracer) + + + +
  • + +
+ +
+ + + + +
+
+
+
+51
+52
+53
+54
+55
+56
+
+
# File 'lib/opentelemetry/sdk/trace/tracer_provider.rb', line 51
+
+def tracer(name = nil, version = nil)
+  name ||= ''
+  version ||= ''
+  OpenTelemetry.logger.warn 'calling TracerProvider#tracer without providing a tracer name.' if name.empty?
+  @registry_mutex.synchronize { @registry[Key.new(name, version)] ||= Tracer.new(name, version, self) }
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/_index.html b/opentelemetry-sdk/v1.4.1/_index.html new file mode 100644 index 0000000000..275543f98d --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/_index.html @@ -0,0 +1,426 @@ + + + + + + + OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

OpenTelemetry

+
+

Alphabetic Index

+ +

File Listing

+ + +
+

Namespace Listing A-Z

+ + + + + + + + +
+ + + + + + + + +
    +
  • D
  • +
      + +
    • + Decision + + (OpenTelemetry::SDK::Trace::Samplers) + +
    • + +
    +
+ + +
    +
  • E
  • +
      + +
    • + Event + + (OpenTelemetry::SDK::Trace) + +
    • + +
    • + Export + + (OpenTelemetry::SDK::Trace) + +
    • + +
    • + ExportError + + (OpenTelemetry::SDK::Trace::Export) + +
    • + +
    +
+ + + + + + + + +
    +
  • M
  • + +
+ + +
+ + + + + + + + +
    +
  • P
  • +
      + +
    • + ParentBased + + (OpenTelemetry::SDK::Trace::Samplers) + +
    • + +
    +
+ + +
    +
  • R
  • +
      + +
    • + Resource + + (OpenTelemetry::SDK::Resources) + +
    • + +
    • + Resources + + (OpenTelemetry::SDK) + +
    • + +
    • + Result + + (OpenTelemetry::SDK::Trace::Samplers) + +
    • + +
    +
+ + +
    +
  • S
  • +
      + +
    • + SDK + + (OpenTelemetry) + +
    • + +
    • + Samplers + + (OpenTelemetry::SDK::Trace) + +
    • + +
    • + SimpleSpanProcessor + + (OpenTelemetry::SDK::Trace::Export) + +
    • + +
    • + Span + + (OpenTelemetry::SDK::Trace) + +
    • + +
    • + SpanData + + (OpenTelemetry::SDK::Trace) + +
    • + +
    • + SpanExporter + + (OpenTelemetry::SDK::Trace::Export) + +
    • + +
    • + SpanLimits + + (OpenTelemetry::SDK::Trace) + +
    • + +
    • + SpanProcessor + + (OpenTelemetry::SDK::Trace) + +
    • + +
    +
+ + +
    +
  • T
  • +
      + +
    • + Trace + + (OpenTelemetry::SDK) + +
    • + +
    • + TraceIdRatioBased + + (OpenTelemetry::SDK::Trace::Samplers) + +
    • + +
    • + Tracer + + (OpenTelemetry::SDK::Trace) + +
    • + +
    • + TracerProvider + + (OpenTelemetry::SDK::Trace) + +
    • + +
    +
+ +
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/class_list.html b/opentelemetry-sdk/v1.4.1/class_list.html new file mode 100644 index 0000000000..3713d551d9 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/class_list.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + Class List + + + +
+
+

Class List

+ + + +
+ + +
+ + diff --git a/opentelemetry-sdk/v1.4.1/css/common.css b/opentelemetry-sdk/v1.4.1/css/common.css new file mode 100644 index 0000000000..cf25c45233 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/css/full_list.css b/opentelemetry-sdk/v1.4.1/css/full_list.css new file mode 100644 index 0000000000..fa35982429 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/opentelemetry-sdk/v1.4.1/css/style.css b/opentelemetry-sdk/v1.4.1/css/style.css new file mode 100644 index 0000000000..eb0dbc86f6 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/css/style.css @@ -0,0 +1,497 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; + box-sizing: border-box; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/opentelemetry-sdk/v1.4.1/method_list.html b/opentelemetry-sdk/v1.4.1/method_list.html new file mode 100644 index 0000000000..8db172f786 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/method_list.html @@ -0,0 +1,1315 @@ + + + + + + + + + + + + + + + + + + Method List + + + +
+
+

Method List

+ + + +
+ +
    + + +
  • +
    + #== + OpenTelemetry::SDK::Trace::Samplers::ParentBased +
    +
  • + + +
  • +
    + #== + OpenTelemetry::SDK::Trace::Samplers::ConstantSampler +
    +
  • + + +
  • +
    + #== + OpenTelemetry::SDK::Trace::Samplers::TraceIdRatioBased +
    +
  • + + +
  • +
    + #add + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + +
  • +
    + #add_attributes + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #add_event + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #add_span_processor + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #add_span_processor + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #add_to_counter + OpenTelemetry::SDK::Trace::Export::MetricsReporter +
    +
  • + + +
  • +
    + #attribute_count_limit + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #attribute_enumerator + OpenTelemetry::SDK::Resources::Resource +
    +
  • + + +
  • +
    + #attribute_length_limit + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #attributes + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #attributes + OpenTelemetry::SDK::Trace::Event +
    +
  • + + +
  • +
    + #attributes + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #attributes + OpenTelemetry::SDK::Trace::Samplers::Result +
    +
  • + + +
  • +
    + #boolean? + OpenTelemetry::SDK::Internal +
    +
  • + + +
  • +
    + #configure + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #configure + OpenTelemetry::SDK +
    +
  • + + +
  • +
    + create + OpenTelemetry::SDK::Resources::Resource +
    +
  • + + +
  • +
    + #debug + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + +
  • +
    + default + OpenTelemetry::SDK::Resources::Resource +
    +
  • + + +
  • +
    + #description + OpenTelemetry::SDK::Trace::Samplers::ParentBased +
    +
  • + + +
  • +
    + #description + OpenTelemetry::SDK::Trace::Samplers::ConstantSampler +
    +
  • + + +
  • +
    + #description + OpenTelemetry::SDK::Trace::Samplers::TraceIdRatioBased +
    +
  • + + +
  • +
    + #end_timestamp + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #end_timestamp + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #error + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + +
  • +
    + #error_handler + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #event_attribute_count_limit + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #event_attribute_length_limit + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #event_count_limit + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #events + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #events + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #export + OpenTelemetry::SDK::Trace::Export::SpanExporter +
    +
  • + + +
  • +
    + #export + OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter +
    +
  • + + +
  • +
    + #export + OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter +
    +
  • + + +
  • +
    + #extract + OpenTelemetry::SDK::Configurator::NoopTextMapPropagator +
    +
  • + + +
  • +
    + #fatal + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + +
  • +
    + #fields + OpenTelemetry::SDK::Configurator::NoopTextMapPropagator +
    +
  • + + +
  • +
    + #finish + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #finished_spans + OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter +
    +
  • + + +
  • +
    + #force_flush + OpenTelemetry::SDK::Trace::SpanProcessor +
    +
  • + + +
  • +
    + #force_flush + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #force_flush + OpenTelemetry::SDK::Trace::Export::SpanExporter +
    +
  • + + +
  • +
    + #force_flush + OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor +
    +
  • + + +
  • +
    + #force_flush + OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter +
    +
  • + + +
  • +
    + #force_flush + OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor +
    +
  • + + +
  • +
    + #force_flush + OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter +
    +
  • + + +
  • +
    + #hex_parent_span_id + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #hex_span_id + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #hex_trace_id + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #id_generator + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #info + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Export::ExportError +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Tracer +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Resources::Resource +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Samplers::Result +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Export::SpanExporter +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Samplers::ParentBased +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Samplers::ConstantSampler +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Samplers::TraceIdRatioBased +
    +
  • + + +
  • +
    + #initialize + OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter +
    +
  • + + +
  • +
    + #inject + OpenTelemetry::SDK::Configurator::NoopTextMapPropagator +
    +
  • + + +
  • +
    + #instrumentation_scope + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #instrumentation_scope + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #internal_start_span + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #kind + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #kind + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #link_attribute_count_limit + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #link_count_limit + OpenTelemetry::SDK::Trace::SpanLimits +
    +
  • + + +
  • +
    + #links + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #links + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #logger + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #logger= + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #merge + OpenTelemetry::SDK::Resources::Resource +
    +
  • + + +
  • +
    + #name + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #name + OpenTelemetry::SDK::Trace::Event +
    +
  • + + +
  • +
    + #name + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #name + OpenTelemetry::SDK::InstrumentationScope +
    +
  • + + +
  • +
    + #name + OpenTelemetry::SDK::InstrumentationLibrary +
    +
  • + + +
  • +
    + #numeric? + OpenTelemetry::SDK::Internal +
    +
  • + + +
  • +
    + #observe_value + OpenTelemetry::SDK::Trace::Export::MetricsReporter +
    +
  • + + +
  • +
    + #on_finish + OpenTelemetry::SDK::Trace::SpanProcessor +
    +
  • + + +
  • +
    + #on_finish + OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor +
    +
  • + + +
  • +
    + #on_finish + OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor +
    +
  • + + +
  • +
    + #on_start + OpenTelemetry::SDK::Trace::SpanProcessor +
    +
  • + + +
  • +
    + #on_start + OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor +
    +
  • + + +
  • +
    + #on_start + OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor +
    +
  • + + +
  • +
    + parent_based + OpenTelemetry::SDK::Trace::Samplers +
    +
  • + + +
  • +
    + #parent_span_id + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #parent_span_id + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + process + OpenTelemetry::SDK::Resources::Resource +
    +
  • + + +
  • +
    + #record_exception + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #record_value + OpenTelemetry::SDK::Trace::Export::MetricsReporter +
    +
  • + + +
  • +
    + #recording + OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter +
    +
  • + + +
  • +
    + #recording? + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #recording? + OpenTelemetry::SDK::Trace::Samplers::Result +
    +
  • + + +
  • +
    + #reset + OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter +
    +
  • + + +
  • +
    + #resource + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #resource + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #resource + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #resource= + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #sampled? + OpenTelemetry::SDK::Trace::Samplers::Result +
    +
  • + + +
  • +
    + #sampler + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #service_name= + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #service_version= + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #set_attribute + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #should_sample? + OpenTelemetry::SDK::Trace::Samplers::ParentBased +
    +
  • + + +
  • +
    + #should_sample? + OpenTelemetry::SDK::Trace::Samplers::ConstantSampler +
    +
  • + + +
  • +
    + #should_sample? + OpenTelemetry::SDK::Trace::Samplers::TraceIdRatioBased +
    +
  • + + +
  • +
    + #shutdown + OpenTelemetry::SDK::Trace::SpanProcessor +
    +
  • + + +
  • +
    + #shutdown + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #shutdown + OpenTelemetry::SDK::Trace::Export::SpanExporter +
    +
  • + + +
  • +
    + #shutdown + OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor +
    +
  • + + +
  • +
    + #shutdown + OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter +
    +
  • + + +
  • +
    + #shutdown + OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor +
    +
  • + + +
  • +
    + #shutdown + OpenTelemetry::SDK::Trace::Export::InMemorySpanExporter +
    +
  • + + +
  • +
    + #span_id + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #span_limits + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #spans + OpenTelemetry::SDK::Trace::Export::ExportError +
    +
  • + + +
  • +
    + #start_root_span + OpenTelemetry::SDK::Trace::Tracer +
    +
  • + + +
  • +
    + #start_span + OpenTelemetry::SDK::Trace::Tracer +
    +
  • + + +
  • +
    + #start_timestamp + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #start_timestamp + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #status + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #status + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + telemetry_sdk + OpenTelemetry::SDK::Resources::Resource +
    +
  • + + +
  • +
    + #timestamp + OpenTelemetry::SDK::Trace::Event +
    +
  • + + +
  • +
    + #to_span_data + OpenTelemetry::SDK::Trace::Span +
    +
  • + + +
  • +
    + #total_recorded_attributes + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #total_recorded_events + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #total_recorded_links + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #trace_flags + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #trace_id + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + trace_id_ratio_based + OpenTelemetry::SDK::Trace::Samplers +
    +
  • + + +
  • +
    + #tracer + OpenTelemetry::SDK::Trace::TracerProvider +
    +
  • + + +
  • +
    + #tracestate + OpenTelemetry::SDK::Trace::SpanData +
    +
  • + + +
  • +
    + #tracestate + OpenTelemetry::SDK::Trace::Samplers::Result +
    +
  • + + +
  • +
    + #unknown + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + +
  • +
    + #use + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #use_all + OpenTelemetry::SDK::Configurator +
    +
  • + + +
  • +
    + #valid_array_value? + OpenTelemetry::SDK::Internal +
    +
  • + + +
  • +
    + #valid_attributes? + OpenTelemetry::SDK::Internal +
    +
  • + + +
  • +
    + #valid_key? + OpenTelemetry::SDK::Internal +
    +
  • + + +
  • +
    + #valid_simple_value? + OpenTelemetry::SDK::Internal +
    +
  • + + +
  • +
    + #valid_value? + OpenTelemetry::SDK::Internal +
    +
  • + + +
  • +
    + #version + OpenTelemetry::SDK::InstrumentationScope +
    +
  • + + +
  • +
    + #version + OpenTelemetry::SDK::InstrumentationLibrary +
    +
  • + + +
  • +
    + #warn + OpenTelemetry::SDK::ForwardingLogger +
    +
  • + + + +
+
+ + diff --git a/opentelemetry-sdk/v1.4.1/top-level-namespace.html b/opentelemetry-sdk/v1.4.1/top-level-namespace.html new file mode 100644 index 0000000000..917f0ca625 --- /dev/null +++ b/opentelemetry-sdk/v1.4.1/top-level-namespace.html @@ -0,0 +1,110 @@ + + + + + + + Top Level Namespace + + — OpenTelemetry + + + + + + + + + + + + + + + + + + + +
+ + +

Top Level Namespace + + + +

+
+ + + + + + + + + + + +
+ +

Defined Under Namespace

+

+ + + Modules: OpenTelemetry + + + + +

+ + + + + + + + + +
+ + + +
+ + \ No newline at end of file