IronTelemetry SDK for .NET
Go to file
David Friedel cf8340e731 Update README with branded header and documentation links
- Add centered logo and title with product branding
- Add links to product website and documentation
- Add NuGet badge
- Add Other SDKs table with cross-references
- Add Support section with dev@ironservices.io email
- Update repository links to git.marketally.com

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 11:08:26 +00:00
.gitignore Initial commit: IronTelemetry.Client SDK 2025-12-25 09:10:35 +00:00
IronTelemetry.Client.csproj tweaks before iamges 2025-12-26 09:20:32 -05:00
IronTelemetry.cs UserJourney 2025-12-26 06:14:09 -05:00
JourneyContext.cs Initial commit: IronTelemetry.Client SDK 2025-12-25 09:10:35 +00:00
LICENSE Initial commit: IronTelemetry.Client SDK 2025-12-25 09:10:35 +00:00
Models.cs Initial commit: IronTelemetry.Client SDK 2025-12-25 09:10:35 +00:00
OfflineQueue.cs Initial commit: IronTelemetry.Client SDK 2025-12-25 09:10:35 +00:00
README.md Update README with branded header and documentation links 2025-12-27 11:08:26 +00:00
TelemetryClient.cs UserJourney 2025-12-26 06:14:09 -05:00
TelemetryExtensions.cs Initial commit: IronTelemetry.Client SDK 2025-12-25 09:10:35 +00:00
TelemetryOptions.cs Initial commit: IronTelemetry.Client SDK 2025-12-25 09:10:35 +00:00
nuget_it.png UserJourney 2025-12-26 06:14:09 -05:00

README.md

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.