Skip to content

Instrument Your Application

Subscription required

This section describes functionality which requires an active IAPM subscription. Start your subscription by choosing the plan right for you.

Connect your application to Immersive APM using OpenTelemetry. Most applications see data within 5 minutes.

Quick Configuration

All you need is your OTLP endpoint and API key:

Setting Value
Endpoint https://otlp.iapm.app
API Key Header API-Key: YOUR-API-KEY

Get your API key from the Grids page by clicking Instrument on your grid.

Instrument

Language Examples

Choose your language to see the OTLP exporter configuration:

// In your OpenTelemetry setup (Program.cs or Startup.cs)
.AddOtlpExporter(options =>
{
    options.Endpoint = new Uri("https://otlp.iapm.app");
    options.Headers = "API-Key=YOUR-API-KEY";
})

Full setup example:

builder.Services.AddOpenTelemetry()
    .WithTracing(tracing => tracing
        .AddAspNetCoreInstrumentation()
        .AddHttpClientInstrumentation()
        .AddOtlpExporter(options =>
        {
            options.Endpoint = new Uri("https://otlp.iapm.app");
            options.Headers = "API-Key=YOUR-API-KEY";
        }))
    .WithMetrics(metrics => metrics
        .AddAspNetCoreInstrumentation()
        .AddOtlpExporter(options =>
        {
            options.Endpoint = new Uri("https://otlp.iapm.app");
            options.Headers = "API-Key=YOUR-API-KEY";
        }));

.NET OpenTelemetry Docs

// Environment variables
OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.iapm.app
OTEL_EXPORTER_OTLP_HEADERS=API-Key=YOUR-API-KEY

Or programmatically:

OtlpGrpcSpanExporter exporter = OtlpGrpcSpanExporter.builder()
    .setEndpoint("https://otlp.iapm.app")
    .addHeader("API-Key", "YOUR-API-KEY")
    .build();

Java OpenTelemetry Docs

# Environment variables
OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.iapm.app
OTEL_EXPORTER_OTLP_HEADERS=API-Key=YOUR-API-KEY

Or programmatically:

from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter

exporter = OTLPSpanExporter(
    endpoint="https://otlp.iapm.app",
    headers={"API-Key": "YOUR-API-KEY"}
)

Python OpenTelemetry Docs

// Environment variables
OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.iapm.app
OTEL_EXPORTER_OTLP_HEADERS=API-Key=YOUR-API-KEY

Or programmatically:

const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-grpc');

const exporter = new OTLPTraceExporter({
  url: 'https://otlp.iapm.app',
  headers: { 'API-Key': 'YOUR-API-KEY' }
});

Node.js OpenTelemetry Docs

// Environment variables
OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.iapm.app
OTEL_EXPORTER_OTLP_HEADERS=API-Key=YOUR-API-KEY

Or programmatically:

import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"

exporter, err := otlptracegrpc.New(ctx,
    otlptracegrpc.WithEndpoint("otlp.iapm.app"),
    otlptracegrpc.WithHeaders(map[string]string{
        "API-Key": "YOUR-API-KEY",
    }),
)

Go OpenTelemetry Docs

What Gets Collected

Once configured, OpenTelemetry automatically captures:

  • Traces - Request flows across services
  • Metrics - Performance measurements (latency, throughput, errors)
  • Logs - Application log events (when configured)

Verify It's Working

  1. Deploy or run your instrumented application
  2. Generate some traffic (make a few requests)
  3. Open IAPM Web and select your grid
  4. Click Enter to see your telemetry data

Not seeing data?

  • Verify your API key is correct
  • Check that your application can reach https://otlp.iapm.app
  • Ensure OpenTelemetry packages are installed and configured
  • Look for errors in your application logs

Next Steps