TicketMan.Diagnostics
0.1.0
dotnet add package TicketMan.Diagnostics --version 0.1.0
NuGet\Install-Package TicketMan.Diagnostics -Version 0.1.0
<PackageReference Include="TicketMan.Diagnostics" Version="0.1.0" />
<PackageVersion Include="TicketMan.Diagnostics" Version="0.1.0" />
<PackageReference Include="TicketMan.Diagnostics" />
paket add TicketMan.Diagnostics --version 0.1.0
#r "nuget: TicketMan.Diagnostics, 0.1.0"
#:package TicketMan.Diagnostics@0.1.0
#addin nuget:?package=TicketMan.Diagnostics&version=0.1.0
#tool nuget:?package=TicketMan.Diagnostics&version=0.1.0
TicketMan Diagnostics SDK
Automatic crash and error reporting for .NET applications, delivered to the TicketMan Software Suite for incident creation, grouping and AI root-cause analysis.
Plug & play: install the package, set two environment variables, done. Without a configured endpoint the SDK is completely inert — zero background work, zero overhead.
| Package | Use for |
|---|---|
TicketMan.Diagnostics |
Any .NET 10 app: console, worker services, WPF, WinForms |
TicketMan.Diagnostics.AspNetCore |
ASP.NET Core apps (adds HTTP error capture + request/user context) |
Quick start
export TICKETMAN_DIAG_ENDPOINT=https://your-suite.example.com/api/diagnostics/reports
export TICKETMAN_DIAG_API_KEY=<key issued by your TicketMan Suite>
Hosted apps (ASP.NET Core, worker services):
builder.Services.AddTicketManDiagnostics();
// ASP.NET Core only — add the middleware early in the pipeline:
app.UseTicketManDiagnostics();
Console / desktop apps (no DI host):
using IDiagnosticsSession session = TicketManDiagnostics.Init();
// optional manual capture:
session.Client.CaptureException(ex);
In WPF/WinForms call Init() on the UI thread (e.g. the App constructor) so UI-thread
exception channels are hooked. See docs/desktop-integration.md.
What it does
- Captures automatically: process-fatal unhandled exceptions (crash reports are spooled
to disk before the process dies and delivered on the next start), unobserved task
exceptions, exceptions logged at or above a configurable level (default
Critical— failing hosted services; setTICKETMAN_DIAG_CAPTURE_LOG_LEVEL=Errorto also capture exceptions your code catches and logs), WPF/WinForms UI-thread exceptions, ASP.NET Core request exceptions and configurable HTTP error status ranges (5xx by default). - Collects: application identity (name/version/build/commit/environment), full exception
chain + stable cross-language fingerprint, OS/runtime/process/memory/container/Kubernetes
metadata, W3C trace correlation, recent
ILoggerbreadcrumbs, and — opt-in only — request bodies and user identity. Optional minidump on crash (TICKETMAN_DIAG_ENABLE_DUMPS). - Protects: an always-on masking pipeline redacts passwords, tokens, API keys, authorization headers, cookies, connection strings and JWTs before anything touches disk or network. Masking cannot be disabled.
- Never hurts the app: every entry point is fail-safe (the SDK never throws into the host), capture is non-blocking, delivery is a background queue with retry/backoff, a file spool (size-capped, oldest-first eviction) survives offline periods and crashes, and per-fingerprint rate limiting keeps crash loops from flooding anything.
Configuration
Environment variables only — see docs/configuration.md for the full reference. The essentials:
| Variable | Effect |
|---|---|
TICKETMAN_DIAG_ENDPOINT |
Ingest URL; unset = SDK inactive |
TICKETMAN_DIAG_API_KEY |
Auth key (X-TicketMan-Key header) |
TICKETMAN_DIAG_ENVIRONMENT |
Reported environment name |
TICKETMAN_DIAG_ENABLE_DUMPS |
Minidump on crash (default off) |
TICKETMAN_DIAG_CAPTURE_USER |
Include user claims (default off) |
TICKETMAN_DIAG_CAPTURE_REQUEST_BODY |
Include masked request body (default off) |
TICKETMAN_DIAG_CAPTURE_LOG_LEVEL |
Min. log level turning a logged exception into a report (default Critical) |
TICKETMAN_DIAG_DEBUG |
SDK self-log to stderr for troubleshooting |
Documentation
- Configuration reference
- What data is collected — per-field, with opt-in status
- Wire contract v1 — the language-agnostic ingest contract
- Desktop integration notes
- Troubleshooting
- Samples — console, worker, ASP.NET Core minimal API, WPF
Development
dotnet build # build everything (Windows needed for the WPF sample)
dotnet test # 110+ tests incl. process crash-restart integration
dotnet run -c Release --project benchmarks/TicketMan.Diagnostics.Benchmarks
Releases: push a v* tag — CI builds, tests, packs and publishes to nuget.org
(requires the NUGET_API_KEY repository secret).
License
Proprietary — see LICENSE.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Diagnostics.NETCore.Client (>= 0.2.661903)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on TicketMan.Diagnostics:
| Package | Downloads |
|---|---|
|
TicketMan.Diagnostics.AspNetCore
ASP.NET Core integration for the TicketMan Diagnostics SDK — captures unhandled request exceptions and configurable HTTP error status ranges, with opt-in HTTP context and user capture. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 123 | 7/22/2026 |
| 0.1.0-preview | 132 | 7/19/2026 |