Phobos.TestKit 2.12.0

Framework used for testing applications that have been instrumented using Phobos. Makes it feasible to test using data collected from actor traces, monitoring, and so forth.

Install-Package Phobos.TestKit -Version 2.12.0
dotnet add package Phobos.TestKit --version 2.12.0
<PackageReference Include="Phobos.TestKit" Version="2.12.0" />
paket add Phobos.TestKit --version 2.12.0
# Phobos ![Phobos logo](https://raw.githubusercontent.com/petabridge/phobos-issues/refs/heads/master/phobos_logo_small.png) [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...
Version Downloads Last Updated
2.12.0 Current 0 1 hour(s) ago
2.11.3 22 21 day(s) ago
2.11.2 30 27 day(s) ago
2.11.1 30 28 day(s) ago
2.11.0 58 56 day(s) ago
2.10.5 82 81 day(s) ago
2.10.4 130 131 day(s) ago
2.10.3 130 131 day(s) ago
2.10.2 195 201 day(s) ago
2.10.1 214 218 day(s) ago
2.10.0 233 237 day(s) ago
2.9.1 241 244 day(s) ago
2.9.0 256 259 day(s) ago
2.8.5 334 333 day(s) ago
2.8.4 385 379 day(s) ago
2.8.3 388 426 day(s) ago
2.8.2 415 460 day(s) ago
2.8.1 379 461 day(s) ago
2.8.0 381 468 day(s) ago
2.7.0 380 474 day(s) ago
2.6.2 382 494 day(s) ago
2.6.1 380 501 day(s) ago
2.6.0 381 509 day(s) ago
2.5.4 407 670 day(s) ago
2.5.3 382 680 day(s) ago
2.5.2 381 686 day(s) ago
2.5.1 416 769 day(s) ago
2.5.0 386 805 day(s) ago
2.4.5 387 839 day(s) ago
2.4.4 385 873 day(s) ago
2.4.3 381 881 day(s) ago
2.4.2 392 952 day(s) ago
2.4.1 485 1012 day(s) ago
2.4.0 382 1015 day(s) ago
2.3.1 505 1070 day(s) ago
2.3.0 547 1096 day(s) ago
2.2.1 384 1099 day(s) ago
2.2.0 390 1152 day(s) ago
2.2.0-beta2 313 1154 day(s) ago
2.1.1 382 929 day(s) ago
2.1.0 387 1197 day(s) ago
2.1.0-beta2 313 1286 day(s) ago
2.1.0-beta1 312 1359 day(s) ago
2.0.6 429 1418 day(s) ago
2.0.5 382 1422 day(s) ago
2.0.4 382 1426 day(s) ago
2.0.3 384 1433 day(s) ago
2.0.3-beta1 314 1446 day(s) ago
2.0.2 398 1470 day(s) ago
2.0.1 381 1476 day(s) ago
2.0.0 381 1477 day(s) ago
2.0.0-beta4 313 1503 day(s) ago
2.0.0-beta3 314 1546 day(s) ago
2.0.0-beta2 313 1547 day(s) ago
2.0.0-beta1 313 1553 day(s) ago
1.6.1 386 1099 day(s) ago
1.6.0 395 1104 day(s) ago
1.5.1 423 1477 day(s) ago
1.5.0 381 1477 day(s) ago
1.5.0-beta1 313 1503 day(s) ago
1.4.2 504 1512 day(s) ago
1.4.1 441 1547 day(s) ago
1.4.0 382 1560 day(s) ago
1.3.3 429 1576 day(s) ago
1.3.2 381 1589 day(s) ago
1.3.1 380 1600 day(s) ago
1.3.0 576 1621 day(s) ago
1.2.5 402 1658 day(s) ago
1.2.4 499 1660 day(s) ago
1.2.3 657 1693 day(s) ago
1.2.2 439 1714 day(s) ago
1.2.1 381 1722 day(s) ago
1.2.0 944 1776 day(s) ago
1.1.4 506 1792 day(s) ago
1.1.3 389 1798 day(s) ago
1.1.2 629 1818 day(s) ago
1.1.1 835 1862 day(s) ago
1.1.0 1,050 1919 day(s) ago
1.0.6 465 1953 day(s) ago
1.0.5 463 1968 day(s) ago
1.0.4 750 1989 day(s) ago
1.0.3 462 2023 day(s) ago
1.0.2 548 2036 day(s) ago
1.0.1 463 2036 day(s) ago
0.8.0 462 1923 day(s) ago
0.7.2 463 1923 day(s) ago
0.7.1 463 1923 day(s) ago
0.7.0 461 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

Statistics

  • 34369 total downloads
  • 0 downloads of current version
  • 91.8 KB package size

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2026 Petabridge