struct OpenTelemetry::InstrumentationDocumentation::Framework::SpiderGazelle

Overview

OpenTelemetry::Instrumentation::FrameWork::SpiderGazelle

Instruments

Reference: action-controller/router/route_handler.cr

Autoinstrumentation for Spider-Gazelle is pretty minimal. Other core instrumentation handles most of the heavy lifting. This instrumentation package supplements that work by adding the http.route attribute to the RouteHandler span, if there is a route to be added.

To instrument a Spider-Gazelle application, add the following requires to your src/config.cr file:

require "action-controller"
require "opentelemetry-instrumentation"
require "opentelemetry-instrumentation/src/opentelemetry/instrumentation/**"

After adding that, add a stanza to do some basic configuration of the OpenTelemetry framework:

OpenTelemetry.configure do |config|
  config.service_name = "My Spider-Gazelle App"
  config.service_version = "1.0.0"
  config.exporter = OpenTelemetry::Exporter.new(variant: :http) do |exporter|
    exporter = exporter.as(OpenTelemetry::Exporter::Http)
    exporter.endpoint = "https://otlp.nr-data.net:4318/v1/traces"
    headers = HTTP::Headers.new
    headers["api-key"] = ENV["NEW_RELIC_LICENSE_KEY"]?.to_s
    exporter.headers = headers
  end
end

That is all that you should need to do. If your environment has an appropriate license key in the NEW_RELIC_LICENSE_KEY environment variable, the OpenTelemetry exporter will send the traces to New Relic. A similar setup should work with any provider that supports OTLP/HTTP ingest of OpenTelemetry.

Methods Affected

Defined in:

opentelemetry/instrumentation/frameworks/spider-gazelle.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new #

Instance Method Detail

def initialize #