otel-init-go

module
v0.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2023 License: Apache-2.0

README

otel-init-go

OpenTelemetry plumbing initializer for Go that only supports OTLP/gRPC and aims for a small code footprint and gets its configuration from environment variables exclusively. The intent is to be able to drop this into existing codebases with minimal code churn.

There is also an otelhelpers package in github.com/equinix-labs/otel-init-go/otelinit to help with traceparent propagation. The propagation helpers depend on OTel otel.SetTextMapPropagator() having been called. otelinit.InitOpenTelemetry does this for you.

API

package main

import (
    "github.com/equinix-labs/otel-init-go/otelinit"
)

func main() {
    ctx := context.Background()
    ctx, otelShutdown := otelinit.InitOpenTelemetry(ctx, "my-amazing-application")
    defer otelShutdown(ctx)
}

Configuration

Wherever possible environment variable names will comply to OpenTelemetry standards.

If OTEL_EXPORTER_OTLP_ENDPOINT is unset or empty, the init code will do almost nothing, so it's as safe as possible to add this to a service, deploy it, and configure it later.

To send traces to a localhost OTLP server without encryption, you will need to set both OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_INSECURE.

export OTEL_EXPORTER_OTLP_ENDPOINT="localhost:4317"
export OTEL_EXPORTER_OTLP_INSECURE=true

TODO:

  • add config for TLS auth
environment variable default example value
OTEL_EXPORTER_OTLP_ENDPOINT "" localhost:4317
OTEL_EXPORTER_OTLP_INSECURE false true
OTEL_EXPORTER_OTLP_HEADERS "" key=value,k=v

Directories

Path Synopsis
cmd
otelhelpers is a package of helper functions for dealing with otel traceparent propagation over files and environment variables.
otelhelpers is a package of helper functions for dealing with otel traceparent propagation over files and environment variables.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL