irontelemetry-dotnet/README.md

5.1 KiB

IronTelemetry

IronTelemetry SDK for .NET

Error monitoring and crash reporting for .NET applications

NuGet License: MIT

WebsiteDocumentation.NET GuideGit


IronTelemetry helps you capture exceptions, track user journeys, and get actionable insights to fix issues faster. Built for developers who want simple, powerful error monitoring without the complexity.

Installation

dotnet add package IronTelemetry.Client

Quick Start

Level 0: Basic Exception Capture

using IronTelemetry.Client;

// Initialize with your DSN
IronTelemetry.Init("https://pk_live_xxx@irontelemetry.com");

// Capture exceptions
try
{
    DoSomething();
}
catch (Exception ex)
{
    IronTelemetry.CaptureException(ex);
    throw;
}

// Or use the extension method
catch (Exception ex)
{
    throw ex.Capture();
}

Level 1: Journey Tracking

Track user journeys to understand the context of errors:

using IronTelemetry.Client;

// Track a complete user journey
using (IronTelemetry.StartJourney("Checkout Flow"))
{
    IronTelemetry.SetUser(currentUser.Id, currentUser.Email);

    using (IronTelemetry.StartStep("Validate Cart", "business"))
    {
        ValidateCart();
    }

    using (IronTelemetry.StartStep("Process Payment", "business"))
    {
        ProcessPayment();
    }

    using (IronTelemetry.StartStep("Send Confirmation", "notification"))
    {
        SendConfirmationEmail();
    }
}

Any exceptions captured during the journey are automatically correlated.

Configuration

IronTelemetry.Init(new TelemetryOptions
{
    Dsn = "https://pk_live_xxx@irontelemetry.com",
    Environment = "production",
    AppVersion = "1.2.3",
    SampleRate = 1.0,  // 100% of events
    Debug = false,
    BeforeSend = ex => !ex.Message.Contains("expected error")
});

Features

  • Automatic Exception Capture: Capture and report exceptions with full stack traces
  • Journey Tracking: Track user flows and correlate errors with context
  • Breadcrumbs: Leave a trail of events leading up to an error
  • User Context: Associate errors with specific users
  • Tags & Extras: Add custom metadata to your events
  • Buffered Sending: Events are batched and sent efficiently
  • Sample Rate: Control the volume of events sent
  • Before Send Hook: Filter events before sending

Breadcrumbs

// Add breadcrumbs to understand what happened before an error
IronTelemetry.AddBreadcrumb("User clicked checkout button", "ui");
IronTelemetry.AddBreadcrumb("Payment API called", "http");

// Or with full control
IronTelemetry.AddBreadcrumb(new Breadcrumb
{
    Category = "auth",
    Message = "User logged in",
    Level = BreadcrumbLevel.Info,
    Data = new Dictionary<string, object> { ["userId"] = "123" }
});

Global Exception Handling

For console applications:

IronTelemetry.Init("your-dsn");
TelemetryExtensions.UseUnhandledExceptionHandler();

Helper Methods

// Track a step with automatic error handling
TelemetryExtensions.TrackStep("Process Order", () =>
{
    ProcessOrder();
});

// Async version
await TelemetryExtensions.TrackStepAsync("Fetch Data", async () =>
{
    await FetchDataAsync();
});

// With return value
var result = TelemetryExtensions.TrackStep("Calculate Total", () =>
{
    return CalculateTotal();
});

Flushing

// Flush pending events before app shutdown
IronTelemetry.Flush();

// Or async
await IronTelemetry.FlushAsync();

Documentation

For complete documentation, visit irontelemetry.com/docs.

Other SDKs

Platform Package
JavaScript/TypeScript @ironservices/telemetry
Python irontelemetry
Go irontelemetry-go
Java irontelemetry-java
Rust irontelemetry

Support

License

MIT License - see LICENSE for details.