For supported frameworks, Atatus .NET agent automatically captures transactions. Use StartTransaction() or CaptureTransaction() to instrument unsupported frameworks or background operations.

Required Imports

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

1. StartTransaction

Use StartTransaction() to create a custom transaction. You must call End() to complete the transaction.

Syntax

var transaction = Atatus.Agent.Tracer.StartTransaction(name, type);

Parameter

Parameter Type Description
name String (Required) Transaction name.
type String (Required) Transaction type. Use ApiConstants.TypeRequest for web requests or ApiConstants.TypeApp for background tasks.

Example

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

var transaction = Atatus.Agent.Tracer.StartTransaction("GET /users", ApiConstants.TypeRequest);

try
{
    // Your code here
}
catch (Exception ex)
{
    transaction.CaptureException(ex);
}
finally
{
    transaction.End();
}

2. CaptureTransaction

Use CaptureTransaction() to create a transaction with automatic lifecycle management. The transaction ends automatically when the callback completes.

Syntax

Atatus.Agent.Tracer.CaptureTransaction(name, type, action);

Parameter

Parameter Type Description
name String (Required) Transaction name.
type String (Required) Transaction type.
callback callback (Required) Callback function that receives the transaction instance.

Example

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

Atatus.Agent.Tracer.CaptureTransaction("HealthCheckDB", ApiConstants.TypeApp, (t) =>
{
    try
    {
        using var conn = new SqlConnection(connectionString);
        conn.Open();
        // Your database operations
        conn.Close();
    }
    catch (Exception ex)
    {
        t.CaptureException(ex);
    }
});

3. CurrentTransaction

Use CurrentTransaction to access the active transaction within the current execution context.

Syntax

var transaction = Atatus.Agent.Tracer.CurrentTransaction;

Example

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

var transaction = Atatus.Agent.Tracer.CurrentTransaction;
if (transaction != null)
{
    transaction.SetLabel("operation", "health-check");
}

See also