Skip to content

An OpenTelemetry Protocol adapter for the Spandex library.

License

Notifications You must be signed in to change notification settings

michaelst/spandex_otlp

 
 

Repository files navigation

SpandexOTLP

Elixir codecov

A OpenTelemetry Protocol adapter for the Spandex library.

Installation

Add spandex_otlp to your list of dependencies in mix.exs:

def deps do
  [
    {:spandex_otlp, "~> 0.1.0-rc.2"}
  ]
end

Getting Started

You must first follow the steps in the Spandex guide to get Spandex setup while substituting SpandexOTLP.Adapter for SpandexDatadog.Adapter.

config :my_app, MyApp.Tracer,
  adapter: SpandexOTLP.Adapter

Then make the following changes to your config.exs to configure this adapter.

config :spandex_otlp, SpandexOTLP,
  otp_app: :my_app,
  endpoint: "<host:port>",
  ca_cert_file: "./tls/ca.pem", # Path to your PEM file in your priv directory. Only if you plan on using HTTPS.
  headers: %{},
  resources: %{
    "service.name" => "<Your Service Name>",
    "service.namespace" => "<Your Service Namespace>"
  }

Then add SpandexOTLP.Sender to your application supervision tree.

children = [
  SpandexOTLP.Sender
]

Configuring for Lightstep

If you plan on using Lightstep with this adapter. You can follow this example config to get started.

config :spandex_otlp, SpandexOTLP,
  otp_app: :my_app,
  endpoint: "ingest.lightstep.com:443",
  ca_cert_file: "./tls/ca.pem", # It's required to use HTTPS with Lightstep
  headers: %{
    "lightstep-access-token": "<your lightstep access token>"
  },
  resources: %{
    "service.name" => "<Your Service Name>", # Required by Lightstep
    "service.namespace" => "<Your Service Namespace>" # Required by Lightstep
  }

Regenerate Protos

protoc  -I opentelemetry-proto --elixir_out=plugins=grpc:./lib/spandex_otlp opentelemetry-proto/**/*/*.proto 

About

An OpenTelemetry Protocol adapter for the Spandex library.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 99.2%
  • Shell 0.8%