Phobos
Enterprise Application Monitoring and Management for Akka.NET OSS
Published by Petabridge
  • last updated 9 day(s) ago
  • 3623 daily downloads
  • 1831095 total downloads
  • Latest version: 2.8.4

Phobos.Actor 2.4.3

Automatic Akka.NET tracing and monitoring integration as part of the Phobos Enterprise Framework.

Install-Package Phobos.Actor -Version 2.4.3
dotnet add package Phobos.Actor --version 2.4.3
<PackageReference Include="Phobos.Actor" Version="2.4.3"/>
paket add Phobos.Actor --version 2.4.3

Release Notes

Phobos 2.x Revision Release** Upgraded to [Akka.NET v1.5.14](https://github.com/akkadotnet/akka.net/releases/tag/1.5.14) Updated all `IWithTrace` messages that Phobos uses to propagate `TelemetrySpan`s between actors to implement Akka.NET's `IWrappedMessage` interface - this will cause these messages to properly log their contents when sent to `DeadLetter`s and will also ensure that serialization is handled correctly when `akka.actor.serialize-messages=on` (once https://github.com/akkadotnet/akka.net/pull/7010 is merged) Major Performance Improvements** We've made major performance improvements to all areas of Phobos in 2.4.3. Here's what our in-memory PingPong looks like between versions: 2.4.2** ``` BenchmarkDotNet v0.13.9+228a464e8be6c580ad9408e98f18813f6407fb5a, Windows 11 (10.0.22621.2715/22H2/2022Update/SunValley2) AMD Ryzen 7 6800H with Radeon Graphics, 1 CPU, 16 logical and 8 physical cores .NET SDK 8.0.100 [Host] : .NET 7.0.14 (7.0.1423.51910), X64 RyuJIT AVX2 DefaultJob : .NET 7.0.14 (7.0.1423.51910), X64 RyuJIT AVX2 ``` | Method | MonitoringEnabled | TracingEnabled | Mean | Error | StdDev | Median | Req/sec | |-------------------------------------- |------------------ |--------------- |-----------:|---------:|---------:|-----------:|-------------:| | **Actor_ping_pong_single_pair_in_memory** | **False** | **False** | **264.6 ns** | **4.37 ns** | **4.09 ns** | **264.4 ns** | **3,779,726.78** | | **Actor_ping_pong_single_pair_in_memory** | **False** | **True** | **1,027.5 ns** | **8.65 ns** | **8.09 ns** | **1,028.9 ns** | **973,214.83** | | **Actor_ping_pong_single_pair_in_memory** | **True** | **False** | **345.1 ns** | **6.89 ns** | **16.77 ns** | **335.5 ns** | **2,897,787.55** | | **Actor_ping_pong_single_pair_in_memory** | **True** | **True** | **1,066.8 ns** | **17.63 ns** | **16.49 ns** | **1,067.0 ns** | **937,377.97** | versus 2.4.3** ``` BenchmarkDotNet v0.13.10, Windows 11 (10.0.22621.2715/22H2/2022Update/SunValley2) AMD Ryzen 7 6800H with Radeon Graphics, 1 CPU, 16 logical and 8 physical cores .NET SDK 8.0.100 [Host] : .NET 7.0.14 (7.0.1423.51910), X64 RyuJIT AVX2 DefaultJob : .NET 7.0.14 (7.0.1423.51910), X64 RyuJIT AVX2 ``` | Method | MonitoringEnabled | TracingEnabled | Mean | Error | StdDev | Req/sec | Gen0 | Allocated | |-------------------------------------- |------------------ |--------------- |---------:|---------:|---------:|-------------:|-------:|----------:| | **Actor_ping_pong_single_pair_in_memory** | **False** | **False** | **222.1 ns** | **3.81 ns** | **3.56 ns** | **4,502,145.93** | **0.0055** | **48 B** | | **Actor_ping_pong_single_pair_in_memory** | **False** | **True** | **892.4 ns** | **16.83 ns** | **14.92 ns** | **1,120,553.02** | **0.0781** | **652 B** | | **Actor_ping_pong_single_pair_in_memory** | **True** | **False** | **383.2 ns** | **2.46 ns** | **2.30 ns** | **2,609,607.03** | **0.0055** | **48 B** | | **Actor_ping_pong_single_pair_in_memory** | **True** | **True** | **923.8 ns** | **13.16 ns** | **11.66 ns** | **1,082,481.37** | **0.0781** | **652 B** | This is a 15.4% improvement when both tracing and metrics are enabled. We've also made Phobos' serializer at least twice as fast as it was before; the default filtering engine is 4x faster; and we've made `Baggage` handling much more efficient inside Phobos than it was previously. If we compare some of our end-to-end Akka.Cluster.Sharding benchmarks over the network, the results speak for themselves: 2.4.2** | Method | StateMode | Mean | Error | StdDev | Median | Req/sec | |-------------------------|-------------|------------:|----------:|----------:|------------:|-----------:| | StreamingToLocalEntity | Persistence | 2,293.1 ns | 45.71 ns | 112.98 ns | 2,253.6 ns | 436,097.67 | | StreamingToRemoteEntity | Persistence | 25,087.4 ns | 494.66 ns | 929.09 ns | 25,139.2 ns | 39,860.64 | | StreamingToLocalEntity | DData | 2,731.5 ns | 188.06 ns | 554.50 ns | 2,501.9 ns | 366,094.21 | | StreamingToRemoteEntity | DData | 25,517.2 ns | 503.23 ns | 798.17 ns | 25,546.8 ns | 39,189.19 | 2.4.3** | Method | StateMode | Mean | Error | StdDev | Median | Req/sec | |-------------------------|-------------|------------:|----------:|----------:|------------:|-----------:| | StreamingToLocalEntity | Persistence | 2,239.2 ns | 154.65 ns | 455.99 ns | 1,986.8 ns | 446,597.04 | | StreamingToRemoteEntity | Persistence | 24,179.3 ns | 472.33 ns | 735.35 ns | 24,319.6 ns | 41,357.63 | | StreamingToLocalEntity | DData | 2,227.6 ns | 143.00 ns | 421.64 ns | 1,982.1 ns | 448,915.08 | | StreamingToRemoteEntity | DData | 24,615.0 ns | 486.97 ns | 813.62 ns | 24,651.3 ns | 40,625.66 | There's a lot of things that touch this benchmark (Akka.Remote networking layer, serialization, dispatching, Phobos, etc) - but the overall impact of remote end to end tracing is improved by 4% solely through efficiency improvements in Phobos.

Dependencies

.NETCoreApp

.NETStandard

Versions

Version
Downloads
Last Updated
246
9 day(s) ago
2802
56 day(s) ago
2001
90 day(s) ago
641
91 day(s) ago
1284
98 day(s) ago
802
105 day(s) ago
1209
124 day(s) ago
150
131 day(s) ago
1189
139 day(s) ago
51134
300 day(s) ago
742
310 day(s) ago
616
316 day(s) ago
15813
399 day(s) ago
8811
435 day(s) ago
2515
469 day(s) ago
599
504 day(s) ago
5735
511 day(s) ago
104
559 day(s) ago
6630
582 day(s) ago
11518
642 day(s) ago
368
645 day(s) ago
8326
700 day(s) ago
8415
726 day(s) ago
766
729 day(s) ago
4177
729 day(s) ago
52
734 day(s) ago
1838
783 day(s) ago
4
784 day(s) ago
1786
828 day(s) ago
257
916 day(s) ago
144
989 day(s) ago
65400
1048 day(s) ago
85
1052 day(s) ago
50
1056 day(s) ago
63
1063 day(s) ago
16
1077 day(s) ago
4214
1100 day(s) ago
156
1106 day(s) ago
62
1107 day(s) ago
13600
1107 day(s) ago
15
1107 day(s) ago
439
1133 day(s) ago
4
1133 day(s) ago
12374
1142 day(s) ago
456
1176 day(s) ago
15
1177 day(s) ago
2019
1177 day(s) ago
101
1183 day(s) ago
65
1190 day(s) ago
6964
1206 day(s) ago
452
1219 day(s) ago
507
1231 day(s) ago
7141
1252 day(s) ago
1181
1288 day(s) ago
717
1290 day(s) ago
3267
1323 day(s) ago
2327
1344 day(s) ago
691
1352 day(s) ago
1978
1406 day(s) ago
1464
1422 day(s) ago
256
1428 day(s) ago
3416
1448 day(s) ago
5807
1492 day(s) ago
11065
1549 day(s) ago
121
1553 day(s) ago
97
1553 day(s) ago
97
1553 day(s) ago
97
1553 day(s) ago
570
1583 day(s) ago
221
1598 day(s) ago
1619
1619 day(s) ago
855
1654 day(s) ago
1264
1666 day(s) ago
92
1666 day(s) ago

Info

Statistics

  • 292074 total downloads
  • 5735 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2023 Petabridge

Petabridge