module OpenTelemetry

Overview


## Global Trace Provider
----------------------------------------------------------------

OpenTelemetry.configure do |config|
  config.service_name = "my_app_or_library"
  config.service_version = "1.1.1"
  config.exporter = OpenTelemetry::Exporter.new(variant: :stdout)
end

trace = OpenTelemetry.trace_provider("my_app_or_library", "1.1.1").trace
trace = OpenTelemetry.trace_provider do |provider|
  provider.service_name = "my_app_or_library"
  provider.service_version = "1.1.1"
end.trace

## Trace Providers as Objects With Unique Configuration
----------------------------------------------------------------

provider_a = OpenTelemetry::TraceProvider.new("my_app_or_library", "1.1.1")
provider_a.exporter = OpenTelemetry::Exporter.new(variant: :stdout)

provider_b = OpenTelementry::TraceProvider.new do |config|
  config.service_name = "my_app_or_library"
  config.service_version = "1.1.1"
  config.exporter = OpenTelemetry::Exporter.new(variant: :stdout)
end

## Getting a Trace From a Provider Object
----------------------------------------------------------------

trace = provider_a.trace # Inherit all configuration from the Provider Object

trace = provider_a.trace("microservice foo", "1.2.3") # Override the configuration

trace = provider_a.trace do |provider|
  provider.service_name = "microservice foo"
  provider.service_version = "1.2.3"
end.trace

## Creating Spans Using a Trace
----------------------------------------------------------------

trace.in_span("request") do |span|
  span.set_attribute("verb", "GET")
  span.set_attribute("url", "http://example.com/foo")
  span.add_event("dispatching to handler")
  trace.in_span("handler") do |child_span|
    child_span.add_event("handling request")
    trace.in_span("db") do |child_span|
      child_span.add_event("querying database")
    end
  end
end

Defined in:

lib/opentelemetry-api/src/anyattribute.cr
lib/opentelemetry-api/src/anyvalue.cr
lib/opentelemetry-api/src/api/abstract_context.cr
lib/opentelemetry-api/src/api/abstract_event.cr
lib/opentelemetry-api/src/api/abstract_id_generator.cr
lib/opentelemetry-api/src/api/abstract_resource.cr
lib/opentelemetry-api/src/api/abstract_span.cr
lib/opentelemetry-api/src/api/abstract_span_context.cr
lib/opentelemetry-api/src/api/abstract_status.cr
lib/opentelemetry-api/src/api/id_generator/abstract_base.cr
lib/opentelemetry-api/src/api/sendable.cr
lib/opentelemetry-api/src/api/span/abstract_kind.cr
lib/opentelemetry-api/src/api/span_context/abstract_config.cr
lib/opentelemetry-api/src/api/trace_flags.cr
lib/opentelemetry-api/src/attribute.cr
lib/opentelemetry-sdk/src/aliases.cr
lib/opentelemetry-sdk/src/clock.cr
lib/opentelemetry-sdk/src/context.cr
lib/opentelemetry-sdk/src/context/key.cr
lib/opentelemetry-sdk/src/event.cr
lib/opentelemetry-sdk/src/exporter.cr
lib/opentelemetry-sdk/src/exporters/abstract.cr
lib/opentelemetry-sdk/src/exporters/base.cr
lib/opentelemetry-sdk/src/exporters/buffered_base.cr
lib/opentelemetry-sdk/src/exporters/buffered_exporter.cr
lib/opentelemetry-sdk/src/exporters/http.cr
lib/opentelemetry-sdk/src/exporters/io.cr
lib/opentelemetry-sdk/src/exporters/null.cr
lib/opentelemetry-sdk/src/exporters/stdout.cr
lib/opentelemetry-sdk/src/exporters/unbuffered_exporter.cr
lib/opentelemetry-sdk/src/id_generator.cr
lib/opentelemetry-sdk/src/id_generator/random.cr
lib/opentelemetry-sdk/src/id_generator/unique.cr
lib/opentelemetry-sdk/src/instrument.cr:1
lib/opentelemetry-sdk/src/instrument.cr:53
lib/opentelemetry-sdk/src/instrument/counter.cr
lib/opentelemetry-sdk/src/log.cr
lib/opentelemetry-sdk/src/log_collection.cr
lib/opentelemetry-sdk/src/log_provider.cr
lib/opentelemetry-sdk/src/meter.cr
lib/opentelemetry-sdk/src/meter/exceptions.cr
lib/opentelemetry-sdk/src/meter_provider.cr
lib/opentelemetry-sdk/src/name.cr
lib/opentelemetry-sdk/src/opentelemetry-sdk.cr
lib/opentelemetry-sdk/src/propagation/text_map_getter.cr
lib/opentelemetry-sdk/src/propagation/text_map_setter.cr
lib/opentelemetry-sdk/src/propagation/trace_context.cr
lib/opentelemetry-sdk/src/propagation/trace_context/trace_parent.cr
lib/opentelemetry-sdk/src/proto/common.pb.cr
lib/opentelemetry-sdk/src/proto/logs.pb.cr
lib/opentelemetry-sdk/src/proto/logs_service.pb.cr
lib/opentelemetry-sdk/src/proto/resource.pb.cr
lib/opentelemetry-sdk/src/proto/trace.pb.cr
lib/opentelemetry-sdk/src/proto/trace_service.pb.cr
lib/opentelemetry-sdk/src/provider.cr
lib/opentelemetry-sdk/src/provider/configuration.cr
lib/opentelemetry-sdk/src/provider/configuration/factory.cr
lib/opentelemetry-sdk/src/resource.cr
lib/opentelemetry-sdk/src/sampler.cr
lib/opentelemetry-sdk/src/sampler/sampling_result.cr
lib/opentelemetry-sdk/src/samplers/always_off.cr
lib/opentelemetry-sdk/src/samplers/always_on.cr
lib/opentelemetry-sdk/src/samplers/always_record.cr
lib/opentelemetry-sdk/src/samplers/parent_based.cr
lib/opentelemetry-sdk/src/samplers/trace_id_ratio_based.cr
lib/opentelemetry-sdk/src/sendable.cr
lib/opentelemetry-sdk/src/span.cr
lib/opentelemetry-sdk/src/span/kind.cr
lib/opentelemetry-sdk/src/span_context.cr
lib/opentelemetry-sdk/src/span_context/config.cr
lib/opentelemetry-sdk/src/status.cr
lib/opentelemetry-sdk/src/trace.cr
lib/opentelemetry-sdk/src/trace/exceptions.cr
lib/opentelemetry-sdk/src/trace_flags.cr
lib/opentelemetry-sdk/src/trace_provider.cr
lib/opentelemetry-sdk/src/version.cr
opentelemetry/instrumentation/instrument.cr
opentelemetry/instrumentation/registry.cr
opentelemetry/instrumentation/version.cr