Sha256: 89f0042c5c3590d5920b66a77305dd4d16ed124aeb1eefa5d28f7f6977a99a93

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

# typed: false
# frozen_string_literal: true

unless Rails.env.development?
  # establish the environment for OTEL
  ENV["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://api.honeycomb.io"

  ENV["OTEL_EXPORTER_OTLP_HEADERS"] = fetch_plug_env_secret(
    label: "OTEL_EXPORTER_OTLP_HEADERS",
    default: "x-honeycomb-team=your-api-key",
  )

  ENV["OTEL_SERVICE_NAME"] = "plug-#{plug_shortname}-#{Rails.env}"

  require "opentelemetry/sdk"
  require "opentelemetry/semantic_conventions"

  OpenTelemetry::SDK.configure do |c|
    c.logger = Rails.logger

    c.use_all(
      "OpenTelemetry::Instrumentation::PG" => { db_statement: :obfuscate },
      "OpenTelemetry::Instrumentation::Rack" => { use_rack_events: false },
    )

    if productionish?
      c.add_span_processor(
        OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
          OpenTelemetry::Exporter::OTLP::Exporter.new,
        ),
      )
    else # useful for testing instrumentation
      c.add_span_processor(
        OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor.new(
          OpenTelemetry::SDK::Trace::Export::SpanExporter.new,
        ),
      )
    end # development is intentionally disabled
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hephaestus-0.7.2.3 config/initializers/opentelemetry.rb
hephaestus-0.7.2.2 config/initializers/opentelemetry.rb