FAkka.Tracing 0.1.0-alpha1

This is a prerelease version of FAkka.Tracing.
dotnet add package FAkka.Tracing --version 0.1.0-alpha1
                    
NuGet\Install-Package FAkka.Tracing -Version 0.1.0-alpha1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FAkka.Tracing" Version="0.1.0-alpha1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FAkka.Tracing" Version="0.1.0-alpha1" />
                    
Directory.Packages.props
<PackageReference Include="FAkka.Tracing" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FAkka.Tracing --version 0.1.0-alpha1
                    
#r "nuget: FAkka.Tracing, 0.1.0-alpha1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FAkka.Tracing@0.1.0-alpha1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FAkka.Tracing&version=0.1.0-alpha1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FAkka.Tracing&version=0.1.0-alpha1&prerelease
                    
Install as a Cake Tool

FAkka.Tracing

FAkka.Tracing is an FP-first F#/.NET tracing toolkit for functions, iterations, and Akka actor incarnations.

Packages

  • FAkka.Tracing: Activity-compatible identity, transport-neutral events, sync/Task decorators, sequential iteration tracing, projection, and reports.
  • FAkka.Tracing.Akka: Akka.Remote wire serializer, HTTP discovery client, bounded fail-open outbox, and actor restart-incarnation lifecycle adapter.
  • FAkka.Tracing.Server: non-packable executable hosting a single-node Akka Cluster collector, Suave Web API, and append-only JSONL store.

Version 0.1.0-alpha1 targets .NET 10 and Akka.NET 1.5.69.

Function Tracing

#r "nuget: FAkka.Tracing, 0.1.0-alpha1"

open System.Threading.Tasks
open FAkka.Tracing

let transport event =
    printfn "%s" (TraceJson.serialize event)
    Task.FromResult { Status = Accepted; Detail = None }

let tracer = Tracer.createDefault "sample" transport

let calculate =
    Trace.decorate tracer "calculate" (fun value -> value * 2)

let result = calculate 21

Use Trace.span or Trace.spanTask when the body needs tags and counters:

let result =
    Trace.span tracer "load-contracts" (fun scope ->
        scope.AddTag("product", "ES")
        scope.AddCounter("files", 1L) |> ignore
        42)

Iteration Tracing

Trace.iter and Trace.iterTask enumerate sequentially once and create zero-based child spans:

Trace.span tracer "definitions" (fun parent ->
    definitionPaths
    |> Trace.iter parent "definition-file" System.IO.Path.GetFileName (fun scope path ->
        scope.AddTag("path", path)
        processDefinition path))

Akka Integration

Add the serializer HOCON from TraceSerialization.hocon to the client ActorSystem, bootstrap discovery once per process, and use RemoteTransport.createOutbox as the Core transport. The instrumentation hot path only calls bounded Channel.TryWrite; HTTP discovery and Akka.Remote Ask run in background work.

Actor lifecycle integration uses:

  • ActorLifecycle.beginActorIncarnation before ActorOf.
  • ActorLifecycle.registerSpawnedActor after successful creation.
  • ActorLifecycle.failActorSpawn when creation fails.
  • ActorLifecycle.completeActorTermination from the existing DeathWatch watcher.
  • ActorTracingBootstrap.start once per ActorSystem to observe local ActorRestarted events.

No dedicated supervisor or proxy actor is introduced.

Server

dotnet run --project .\src\FAkka.Tracing.Server\FAkka.Tracing.Server.fsproj -c Release -- `
  --web-port 5487 `
  --akka-port 0 `
  --data-path .\data\traces.jsonl

Routes:

  • GET /healthz
  • GET /api/v1/discovery
  • POST /api/v1/traces
  • POST /api/v1/spans
  • GET /api/v1/traces/{traceId}
  • GET /api/v1/reports/{traceId}

The default authorization seam is trusted-network allow-all. Do not expose the alpha server directly to an untrusted network.

Validation

dotnet build .\FAkka.Tracing.slnx -c Release
dotnet run --project .\tests\FAkka.Tracing.Tests\FAkka.Tracing.Tests.fsproj -c Release -- --summary
dotnet run --project .\tests\FAkka.Tracing.Akka.Tests\FAkka.Tracing.Akka.Tests.fsproj -c Release -- --summary
dotnet run --project .\tests\FAkka.Tracing.Server.Tests\FAkka.Tracing.Server.Tests.fsproj -c Release -- --summary

See doc/RUNBOOK.md for operation and doc/SD.md for complete design details.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FAkka.Tracing:

Package Downloads
FAkka.Tracing.Akka

Akka lifecycle and remote transport adapter for FAkka.Tracing.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-alpha1 89 7/11/2026