Phobos.Actor 2.12.0
Automatic Akka.NET tracing and monitoring integration as part of the Phobos Enterprise Framework.
Install-Package Phobos.Actor -Version 2.12.0
dotnet add package Phobos.Actor --version 2.12.0
<PackageReference Include="Phobos.Actor" Version="2.12.0" />
paket add Phobos.Actor --version 2.12.0
Paket is a third-party, open source alternative to the NuGet client.
# Phobos

[Phobos](https://phobos.petabridge.com/)™ is an observability plugin for [Akka.NET](https://getakka.net/) that provides [OpenTelemetry](https://opentelemetry.io/)-based tracing, metrics, and log aggregation.
[Phobos is available for purchase on Sdkbin](https://sdkbin.com/publisher/petabridge/product/phobos)
## Installation
Phobos plugs directly into your Akka.NET `ActorSystem` and immediately starts providing automatic tracing, metrics, and log correlation without you having to write any instrumentation code yourself.
### 1 - Add the `Phobos.Hosting` NuGet Package
```shell
dotnet add package Phobos.Hosting
```
### 2 - Configure OpenTelemetry to Use Phobos Metrics and Tracing
```csharp
services // IServiceCollection
.AddOpenTelemetry()
.ConfigureResource(builder =>
{
builder
.AddEnvironmentVariableDetector()
.AddTelemetrySdk()
.AddServiceVersionDetector();
})
.UseOtlpExporter(OtlpExportProtocol.Grpc, new Uri(otlpEndpoint))
.WithMetrics(c =>
{
c.AddRuntimeInstrumentation()
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddPhobosInstrumentation(); // Phobos metrics
})
.WithTracing(c =>
{
c.AddHttpClientInstrumentation()
.AddAspNetCoreInstrumentation()
.AddEntityFrameworkCoreInstrumentation()
.AddSqlClientInstrumentation()
.AddPhobosInstrumentation(); // Phobos traces
});
```
### 3 - Add Phobos to Your `ActorSystem`
```csharp
public static IServiceCollection AddUserServiceAkka(this IServiceCollection services,
Action<AkkaConfigurationBuilder, IServiceProvider> additionalConfig)
{
return services.AddAkka(ActorSystemName, (builder, sp) =>
{
builder.AddUserServiceActors()
WithPhobos(AkkaRunMode.Local, configOptions => {});
additionalConfig.Invoke(builder, sp);
});
}
```
And you're done! Akka.NET traces / metrics / logs will now be automatically exported along with your ASP.NET Core, Entity Framework, SqlClient, HttpClient, and other .NET OpenTelemetry data!
For more detailed instructions, please see the [Phobos QuickStart Tutorial](https://phobos.petabridge.com/articles/quickstart.html)
## What Data Does Phobos Capture?
You can see our full list of automatically collected traces, metrics, and log events here: [https://phobos.petabridge.com/articles/captured-data.html](https://phobos.petabridge.com/articles/captured-data.html)
### Can I Configure What Phobos Collects?
Absolutely - [Phobos has finely tuneable noise control capabilities](https://phobos.petabridge.com/articles/trace-filtering.html) that allow you to configure what types of data Phobos collects fronm your application.
### What's the Performance Impact of Phobos on Akka.NET?
Tracing and metrics collection always have an amount of instrumentation overhead - you can [view our latest Phobos performance figures and best practices here](https://phobos.petabridge.com/articles/performance.html).
Copyright 2018-2025 [Petabridge](https://petabridge.com/), LLC
Loading README...
net8.0
- Phobos.Monitoring (>=2.12.0)
- Phobos.Tracing (>=2.12.0)
- Akka.Cluster (>=1.5.67)
- Akka.Persistence (>=1.5.67)
- Phobos.Actor.Common (>=1.1.2)
netstandard2.0
- Phobos.Monitoring (>=2.12.0)
- Phobos.Tracing (>=2.12.0)
- Akka.Cluster (>=1.5.67)
- Akka.Persistence (>=1.5.67)
- Phobos.Actor.Common (>=1.1.2)
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 2.12.0 Current | 6 | 1 hour(s) ago | |
| 2.11.3 | 1,327 | 21 day(s) ago | |
| 2.11.2 | 210 | 27 day(s) ago | |
| 2.11.1 | 67 | 28 day(s) ago | |
| 2.11.0 | 1,461 | 56 day(s) ago | |
| 2.10.5 | 6,700 | 81 day(s) ago | |
| 2.10.4 | 5,040 | 131 day(s) ago | |
| 2.10.3 | 132 | 131 day(s) ago | |
| 2.10.2 | 15,226 | 201 day(s) ago | |
| 2.10.1 | 2,435 | 218 day(s) ago | |
| 2.10.0 | 1,551 | 237 day(s) ago | |
| 2.9.1 | 591 | 244 day(s) ago | |
| 2.9.0 | 1,328 | 259 day(s) ago | |
| 2.8.5 | 11,404 | 333 day(s) ago | |
| 2.8.4 | 4,125 | 379 day(s) ago | |
| 2.8.3 | 8,193 | 426 day(s) ago | |
| 2.8.2 | 3,134 | 460 day(s) ago | |
| 2.8.1 | 1,016 | 461 day(s) ago | |
| 2.8.0 | 1,911 | 468 day(s) ago | |
| 2.7.0 | 1,206 | 474 day(s) ago | |
| 2.6.2 | 1,584 | 494 day(s) ago | |
| 2.6.1 | 526 | 501 day(s) ago | |
| 2.6.0 | 1,565 | 509 day(s) ago | |
| 2.5.4 | 92,967 | 670 day(s) ago | |
| 2.5.3 | 1,117 | 680 day(s) ago | |
| 2.5.2 | 997 | 686 day(s) ago | |
| 2.5.1 | 18,589 | 769 day(s) ago | |
| 2.5.0 | 17,418 | 805 day(s) ago | |
| 2.4.5 | 2,890 | 839 day(s) ago | |
| 2.4.4 | 974 | 873 day(s) ago | |
| 2.4.3 | 9,663 | 880 day(s) ago | |
| 2.4.2 | 10,290 | 952 day(s) ago | |
| 2.4.1 | 12,056 | 1012 day(s) ago | |
| 2.4.0 | 743 | 1015 day(s) ago | |
| 2.3.1 | 8,702 | 1070 day(s) ago | |
| 2.3.0 | 12,085 | 1096 day(s) ago | |
| 2.2.1 | 1,141 | 1099 day(s) ago | |
| 2.2.0 | 2,212 | 1152 day(s) ago | |
| 2.2.0-beta2 | 319 | 1154 day(s) ago | |
| 2.1.1 | 558 | 929 day(s) ago | |
| 2.1.0 | 2,160 | 1197 day(s) ago | |
| 2.1.0-beta2 | 572 | 1286 day(s) ago | |
| 2.1.0-beta1 | 459 | 1359 day(s) ago | |
| 2.0.6 | 65,884 | 1418 day(s) ago | |
| 2.0.5 | 459 | 1422 day(s) ago | |
| 2.0.4 | 425 | 1426 day(s) ago | |
| 2.0.3 | 437 | 1433 day(s) ago | |
| 2.0.3-beta1 | 332 | 1446 day(s) ago | |
| 2.0.2 | 4,589 | 1470 day(s) ago | |
| 2.0.1 | 531 | 1476 day(s) ago | |
| 2.0.0 | 437 | 1477 day(s) ago | |
| 2.0.0-beta4 | 754 | 1503 day(s) ago | |
| 2.0.0-beta3 | 771 | 1546 day(s) ago | |
| 2.0.0-beta2 | 330 | 1547 day(s) ago | |
| 2.0.0-beta1 | 416 | 1553 day(s) ago | |
| 1.6.1 | 4,551 | 1099 day(s) ago | |
| 1.6.0 | 426 | 1104 day(s) ago | |
| 1.5.1 | 14,040 | 1477 day(s) ago | |
| 1.5.0 | 389 | 1477 day(s) ago | |
| 1.5.0-beta1 | 319 | 1503 day(s) ago | |
| 1.4.2 | 12,975 | 1512 day(s) ago | |
| 1.4.1 | 2,393 | 1547 day(s) ago | |
| 1.4.0 | 439 | 1560 day(s) ago | |
| 1.3.3 | 7,338 | 1576 day(s) ago | |
| 1.3.2 | 826 | 1589 day(s) ago | |
| 1.3.1 | 881 | 1600 day(s) ago | |
| 1.3.0 | 7,515 | 1621 day(s) ago | |
| 1.2.5 | 1,555 | 1658 day(s) ago | |
| 1.2.4 | 1,091 | 1660 day(s) ago | |
| 1.2.3 | 3,641 | 1693 day(s) ago | |
| 1.2.2 | 2,702 | 1714 day(s) ago | |
| 1.2.1 | 1,065 | 1722 day(s) ago | |
| 1.2.0 | 2,352 | 1776 day(s) ago | |
| 1.1.4 | 1,841 | 1792 day(s) ago | |
| 1.1.3 | 630 | 1798 day(s) ago | |
| 1.1.2 | 3,790 | 1818 day(s) ago | |
| 1.1.1 | 6,181 | 1862 day(s) ago | |
| 1.1.0 | 11,439 | 1919 day(s) ago | |
| 1.0.6 | 944 | 1953 day(s) ago | |
| 1.0.5 | 595 | 1968 day(s) ago | |
| 1.0.4 | 1,993 | 1989 day(s) ago | |
| 1.0.3 | 1,229 | 2023 day(s) ago | |
| 1.0.2 | 1,638 | 2036 day(s) ago | |
| 1.0.1 | 466 | 2036 day(s) ago | |
| 0.8.0 | 471 | 1923 day(s) ago | |
| 0.7.2 | 471 | 1923 day(s) ago | |
| 0.7.1 | 472 | 1923 day(s) ago | |
| 0.7.0 | 552 | 1923 day(s) ago |
**Phobos 2.x Release**
**New Feature: Akka.Streams Trace Continuity**
Phobos 2.12.0 adds automatic trace-context propagation through Akka.Streams graphs. With Akka.NET 1.5.66+, which ships the framework-owned `"Akka.Streams"` `ActivitySource`, every element flowing through a stream stage carries its parent trace context forward — connecting your actor message handler, the stream graph stages, and any user spans created inside lambdas (e.g. `SqlClient`, `HttpClient` instrumentation) into one unbroken distributed trace.
The resulting trace shape looks like this:
```
[actor] akka.msg.recv RecordOrder
[stream] akka.stream.ingress QueueSource
[stream] akka.stream.stage SelectAsync
[user] db.INSERT (SqlClient / HttpClient / etc.)
```
**Akka.Streams tracing is on by default.** No code changes are required if you already call `AddPhobosInstrumentation()` — it registers the `"Akka.Streams"` `ActivitySource` automatically:
```csharp
services.AddOpenTelemetry()
.WithTracing(tracing => tracing
.AddPhobosInstrumentation() // traceAkkaStreams: true by default
.AddOtlpExporter());
```
To opt out of stream-stage spans:
```csharp
services.AddOpenTelemetry()
.WithTracing(tracing => tracing
.AddPhobosInstrumentation(traceAkkaStreams: false)
.AddOtlpExporter());
```
For details on the underlying Akka.NET `"Akka.Streams"` `ActivitySource`, see: [Akka.Streams OpenTelemetry Tracing](https://getakka.net/articles/streams/stream-tracing.html) in the Akka.NET documentation. See [#1506](https://github.com/petabridge/phobos/pull/1506).
**Bug Fixes**
- Fixed `ReceiveAsync`/`CommandAsync` message-receive spans closing prematurely before the async handler completed. The `akka.msg.recv` span now stays open for the full duration of the async handler, accurately capturing duration and faults across `await` points. Also un-skips the long-standing `AsyncAwaitRequestResponseWithFiltering` trace-continuity test that was suppressed since Phobos 1.3.0. See [#1528](https://github.com/petabridge/phobos/pull/1528).
**Improvements**
- Upgraded to [Akka.NET v1.5.67](https://github.com/akkadotnet/akka.net/releases/tag/1.5.67) and [Akka.Hosting v1.5.67](https://github.com/akkadotnet/Akka.Hosting/releases/tag/1.5.67) for latest stability and performance improvements.
Info
- last updated 1 hour(s) ago
- Project Site
- License Info
Statistics
- 439225 total downloads
- 6 downloads of current version
- 256.2 KB package size
Owners and Products
Petabridge
Authors
Petabridge
Copyright
Copyright © 2017-2026 Petabridge