Custom Instrumentation

Custom instrumentation can be used to get extra application-specific visibility in AppOptics. Overall, there are numerous options for providing custom data including statsd, our REST API, and other plugins. However, in an APM-instrumented application, there are additional SDK methods exposed that are the simplest and most performant ways to add additional visibility.

Custom spans for distributed tracing

AppOptics traces are formed of spans tracking service execution and data logged along the way. The APM agents provide spans for key application and language features out of the box, including most common frameworks and libraries.

However, it’s quite simple to add custom span instrumentation in your favorite language, for instance:

import appoptics_apm

@appoptics_apm.log_method('slow_thing')
def my_possibly_slow_method(...):
    ...

See the SDK list below for more information.

Custom timers/counters for metric reporting and alerting

Custom metrics allow timing and counters/gauges for use in dashboarding and alerting:

long startTime = System.currentTimeMillis();
// some work here...
long duration = System.currentTimeMillis() - startTime;

Metrics.summaryMetric("my-work-duration", duration, tags);
Metrics.incrementMetric("my-work-count", tags);

See the SDK list below for more information.

There are also a number of other ways to provide custom metrics including statsd, our REST API, and other plugins.

Language SDKs

The APM agent SDK provides support specifically tailored to the conventions of each language: