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

Phobos.Actor 2.0.3-beta1

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

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

Release Notes

Phobos 2.x BETA Release** This is a BETA release of a new propsoed feature for Phobos 2.0 - "macro" tracing: the ability to disable automatic `akka.msg.recv` span creation but still receive the `SpanContext` from incoming messages and still propagate `SpanContext` to other actors via `TelemetrySpan` / `System.Diagnostic.Activity` instances you create yourself. Disabling Automatic Span Creation** You can disable automatic span creation for the entire `ActorSystem` via the following HOCON: ```hocon phobos.tracing.create-trace-upon-receive = off ``` We don't recommend doing this** as it's a potentially destructive action. Instead, it's better to disable automatic span creation in areas where you _know_ the system is busy. ```hocon akka.actor.deployment{ /manual1{ phobos.tracing.create-trace-upon-receive = off phobos.tracing.propagate-settings-to-children = on } } ``` This will allow you to disable automatic span creation for the entire hierarchy of actors beneath `/user/manual1`. You can also accomplish the same thing via C# or F# via the `Props` extension methods introduced by Phobos: ```csharp var myManualSpanActor = Sys.ActorOf(Props.Create(() => new ManualTraceCreator()) .WithInstrumentation( PhobosSettings.For(Sys).DefaultUserActorSettings .WithCreateTraceUponReceive(false) .WithPropagateToChildren(true)), "manual2"); ``` This will work identically to the HOCON above. When these settings are enabled, the affected actors will still have tracing enabled and will propagate any active trace data to other actors via `IActorRef.Tell` but _will not automatically create any additional `akka.msg.recv` spans on their own any longer_. Manually Creating Spans** So in order to create useful traces inside these areas, you can now access the `IPhobosActorContext.UsableContext` property - which contains a `SpanContext?` that can be used in the manual creation of OpenTelemetry spans: ```csharp public ManualTraceCreator() { Receive<GetActiveSpan>(_ => { // should be default(TelemetrySpan) when running with // phobos.tracing.create-trace-upon-receive = off Sender.Tell(new SpanResponse(Context.GetInstrumentation().ActiveSpan)); }); Receive<MyMsg>(m => { using (var mySpan = Context.GetInstrumentation().Tracer.StartActiveSpan("MyMsg", SpanKind.Consumer, Context.GetInstrumentation().UsableContext ?? default)) { _logging.Info("My event"); Sender.Tell(new MyReply("reply")); } }); } ``` This will allow the Phobos user full control over what appears in their spans and which actors / messages can produce spans. Span propagation still works automatically inside Phobos with automatic span creation disabled - but now you're responsible for creating your own spans. This should significantly reduce the amount of noise produced by the tracing system - we're going to experiment using this feature inside our [planned Akka.Streams support](https://github.com/petabridge/phobos-issues/issues/42).

Dependencies

.NETStandard

Versions

Version
Downloads
Last Updated
246
9 day(s) ago
2800
56 day(s) ago
2000
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
51125
300 day(s) ago
742
310 day(s) ago
616
316 day(s) ago
15811
399 day(s) ago
8810
435 day(s) ago
2515
469 day(s) ago
599
504 day(s) ago
5735
511 day(s) ago
104
559 day(s) ago
6629
582 day(s) ago
11518
642 day(s) ago
368
645 day(s) ago
8326
700 day(s) ago
8414
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
1230 day(s) ago
7141
1251 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

  • 292057 total downloads
  • 16 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge