Error monitoring and crash reporting SDK for .NET with: - Automatic exception capture - User journey tracking - Breadcrumb trails - Buffered sending with offline queue - Sample rate control |
||
|---|---|---|
| .gitignore | ||
| IronTelemetry.Client.csproj | ||
| IronTelemetry.cs | ||
| JourneyContext.cs | ||
| LICENSE | ||
| Models.cs | ||
| OfflineQueue.cs | ||
| README.md | ||
| TelemetryClient.cs | ||
| TelemetryExtensions.cs | ||
| TelemetryOptions.cs | ||
README.md
IronTelemetry.Client
Error monitoring and crash reporting SDK for .NET applications.
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();