Coder Social home page Coder Social logo

splunk-otel-python's Introduction


Get Started   •   Get Involved   •   Migrating from SignalFx Python Tracing

OpenTelemetry Python Version GitHub release (latest SemVer) PyPI - Python Version Splunk GDI specification Codecov Build Status

Examples   •   Security   •   Supported Libraries   •   Troubleshooting

Splunk Distribution of OpenTelemetry Python

The Splunk distribution of OpenTelemetry Python provides multiple installable packages that automatically instrument your Python application to capture and report distributed traces to Splunk APM. Instrumentation works by patching supported libraries at runtime with an OpenTelemetry-compatible tracer to capture and export trace spans.

This distribution comes with the following defaults:

If you're currently using the SignalFx Tracing Library for Python and want to migrate to the Splunk Distribution of OpenTelemetry Python, see Migrate from the SignalFx Tracing Library for Python.


Requirements

This Splunk Distribution of OpenTelemetry requires Python 3.6 or later.

Get started

To get started, install the splunk-opentelemetry[all] package, run the bootstrap script and wrap your run command with splunk-py-trace.

For example, if the runtime parameters were:

python main.py --port=8000

Then the runtime parameters should be updated to:

$ pip install splunk-opentelemetry[all]
$ splunk-py-trace-bootstrap
$ OTEL_SERVICE_NAME=my-python-app \
    splunk-py-trace python main.py --port=8000

To see the Python instrumentation in action with sample applications, see our examples.

Basic configuration

The service name resource attribute is the only configuration option that needs to be specified. You can set it by adding a service.name attribute as shown in the example above.

A few other configuration options that may need to be changed or set are:

  • Trace propagation format if not sending to other applications using W3C trace-context. For example, if other applications are instrumented with signalfx-*-tracing instrumentation. See the trace propagation configuration documentation for more information.
  • Endpoint if not sending to a locally running Splunk OpenTelemetry Connector with default configuration. For example, if the SignalFx Smart Agent is used. See the exporters configuration documentation for more information.
  • Environment resource attribute deployment.environment to specify what environment the span originated from. For example:
    OTEL_RESOURCE_ATTRIBUTES=deployment.environment=production
    
  • Service version resource attribute service.version to specify the version of your instrumented application. For example:
    OTEL_RESOURCE_ATTRIBUTES=service.version=1.2.3
    

The deployment.environment and service.version resource attributes are not strictly required, but recommended to be set if they are available.

The OTEL_RESOURCE_ATTRIBUTES syntax is described in detail in the trace configuration section.

Supported Python Versions

The instrumentation works with Python verion 3.6 or higher. Supported libraries are listed here.

Advanced Configuration

For the majority of users, the Getting Started section is all you need. Advanced configuration documentation can be found here. In addition, special cases for instrumentation are documented here.

Manually instrument an application

Documentation on how to manually instrument a Python application is available here.

To extend the instrumentation with the OpenTelemetry Instrumentation for Python, you have to use a compatible API version.

The Splunk Distribution of OpenTelemetry Python version 1.4.1 is compatible with:

  • OpenTelemetry API version 1.9.1
  • OpenTelemetry SDK version 1.9.1
  • OpenTelemetry Instrumentation for Python version 0.28b1

Correlating traces with logs

The Splunk Distribution of OpenTelemetry Python provides a way to correlate traces with logs. See Connect Python trace data with logs.

License and versioning

The Splunk distribution of OpenTelemetry Python Instrumentation is a distribution of the OpenTelemetry Python project. It is released under the terms of the Apache Software License version 2.0. See the license file for more details.

ℹ️  SignalFx was acquired by Splunk in October 2019. See Splunk SignalFx for more information.

splunk-otel-python's People

Contributors

owais avatar dependabot[bot] avatar theletterf avatar flands avatar pellared avatar brianashby avatar inikem avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.