Sha256: 51667df726fd4325d07cdd23714dc2ce72456e9155d5e3edc4c3606635c86ed5

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 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"] = Hephaestus::Engine.fetch_infra_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/exporter/otlp"
  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

1 entries across 1 versions & 1 rubygems

Version Path
hephaestus-0.8.7 config/initializers/opentelemetry.rb