Skip to main content

Launcher, Configuration Layer for OpenTelemetry

Project description

build status PyPI version Downloads

Launcher, a Lightstep Distro for OpenTelemetry 🚀

NOTE: This is in beta and is expected to GA in Fall 2020.

What is Launcher?

Launcher is a configuration layer that chooses default values for configuration options that many OpenTelemetry users want. It provides a single function in each language to simplify discovery of the options and components available to users. The goal of Launcher is to help users that aren't familiar with OpenTelemetry quickly ramp up on what they need to get going and instrument.

Getting started

pip install opentelemetry-launcher

Configure

Minimal setup

from opentelemetry.launcher import configure_opentelemetry
from opentelemetry import trace

configure_opentelemetry(
    service_name="service-123",
    access_token="my-token",  # optional
)

tracer = trace.get_tracer(__name__)

with tracer.start_as_current_span("foo") as span:
    span.set_attribute("attr1", "valu1")
    with tracer.start_as_current_span("bar"):
        with tracer.start_as_current_span("baz"):
            print("Hello world from OpenTelemetry Python!")

Additional tracer options

configure_opentelemetry(
    service_name="service-123",
    service_version="1.2.3",
    access_token="my-token",
    span_exporter_endpoint="ingest.lightstep.com:443",
    log_level=debug,
    span_exporter_insecure=False,
)

Usage with Auto Instrumentation

OpenTelemetry Python includes a command that allows the user to automatically instrument certain third party libraries. Here is an example that shows how to use this launcher with auto instrumentation.

First, create a new virtual environment:

cd ~
mkdir auto_instrumentation
virtualenv auto_instrumentation
source auto_instrumentation/bin/activate
pip install opentelemetry-launcher
pip install requests
pip install flask
opentelemetry-bootstrap -a install

Once that is done, clone the opentelemetry-python repo to get the example code:

git clone git@github.com:open-telemetry/opentelemetry-python.git
git checkout v1.0.0rc1
cd opentelemetry-python

Set the environment variables:

export LS_SERVICE_NAME=auto-instrumentation-testing
export LS_ACCESS_TOKEN=<the access token>

Run the server:

cd docs/examples/auto-instrumentation
opentelemetry-instrument python server_uninstrumented.py

Run the client in a separate console:

cd docs/examples/auto-instrumentation
python client.py testing

This should produce spans that can be captured in the Lightstep Explorer.

Configuration Options

Config Env Variable Required Default
service_name LS_SERVICE_NAME y -
service_version LS_SERVICE_VERSION n None
access_token LS_ACCESS_TOKEN n None
span_exporter_endpoint OTEL_EXPORTER_OTLP_TRACES_ENDPOINT n ingest.lightstep.com:443
span_exporter_insecure OTEL_EXPORTER_OTLP_TRACES_INSECURE n False
propagators OTEL_PROPAGATORS n b3
resource_attributes OTEL_RESOURCE_ATTRIBUTES n telemetry.sdk.language=python,telemetry.sdk.version=0.12b0
log_level OTEL_LOG_LEVEL n ERROR

The configuration option for propagators accepts a comma-separated string that will be interpreted as a list. For example, a,b,c,d will be interpreted as ["a", "b", "c", "d"]. The configuration option for resource_attributes accepts a comma-separated string of key=value pairs that will be interpreted as a dictionary. For example, a=1,b=2,c=3,d=4 will be interpreted as {"a": 1, "b": 2, "c": 3, "d": 4}.

Principles behind Launcher

100% interoperability with OpenTelemetry

One of the key principles behind putting together Launcher is to make lives of OpenTelemetry users easier, this means that there is no special configuration that requires users to install Launcher in order to use OpenTelemetry. It also means that any users of Launcher can leverage the flexibility of configuring OpenTelemetry as they need.

Validation

Another decision we made with launcher is to provide end users with a layer of validation of their configuration. This provides us the ability to give feedback to our users faster, so they can start collecting telemetry sooner.

Start using it today in Go, Java, Javascript and Python and let us know what you think!


Made with :heart: @ Lightstep

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opentelemetry-launcher-1.0.0rc1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

opentelemetry_launcher-1.0.0rc1-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file opentelemetry-launcher-1.0.0rc1.tar.gz.

File metadata

  • Download URL: opentelemetry-launcher-1.0.0rc1.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for opentelemetry-launcher-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 6c5d3866107dccb4046258eef037cb86e5a32e2954dda4940cbe521385dbf262
MD5 1fd326dc0ac3a204195eb1f3ac55ba8d
BLAKE2b-256 49e96de926018ef231e0e27fa6fb33a0a0373c9aeab34fba55976334bf1ebdd0

See more details on using hashes here.

File details

Details for the file opentelemetry_launcher-1.0.0rc1-py3-none-any.whl.

File metadata

  • Download URL: opentelemetry_launcher-1.0.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for opentelemetry_launcher-1.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 448340f0f66b8a38bf6845de055731faa12e1e3971817e0c7b13170488346cb4
MD5 e708a65086c7ae3895abbbc3e8f82388
BLAKE2b-256 288460fdde2cb10db2630d9c143d46374c623e193d844e84eb54e4ab1a675922

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page