Docs » Instrument applications for SignalFx µAPM

Instrument applications for SignalFx µAPM 🔗

Important

The original µAPM product, released in 2019, is now called µAPM Previous Generation (µAPM PG). In the documentation, µAPM now refers to the product released on March 31, 2020.

If you are using µAPM Previous Generation (µAPM PG), see µAPM PG Instrumentation Guide.

The APM distributed tracing solution is designed to be instrumentation agnostic, OpenTracing-compatible, and supports a variety of popular open instrumentation libraries including OpenTelemetry, OpenTracing, OpenCensus, Jaeger, and Zipkin. Trace propagation across services is supported via Zipkin’s B3 headers, enabling inter-operability of services written in different programming languages or using different instrumentation libraries.

As long as the tracer sending spans to SignalFx uses the Zipkin’s v1 or v2 JSON, or Jaeger’s Thrift or gRPC wire formats, SignalFx will accept spans irrespective of how they were instrumented. You can use one of the open libraries mentioned above, or a homegrown implementation.

SignalFx provides automatic instrumentation for a wide variety of programming languages, with support for many application frameworks, web frameworks and common open-source third party libraries. To get started instrumenting your applications, see Instrumentation overview for SignalFx µAPM.

Note

You should not attempt to use automatic instrumentation or instrumentation agents from multiple vendors at the same time. This will lead to unpredictable results, broken instrumentation, and in some cases might crash your application. To guarantee the stability of your applications and the best instrumentation experience, only use one vendor instrumentation or agent at a time.