Phobos
Enterprise Application Monitoring and Management for Akka.NET OSS
Published by Petabridge
  • last updated 2 hour(s) ago
  • 1665 daily downloads
  • 1240534 total downloads
  • Latest version: 2.5.3

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
0
2 hour(s) ago
33
6 day(s) ago
7365
89 day(s) ago
4834
124 day(s) ago
1776
158 day(s) ago
591
193 day(s) ago
2687
200 day(s) ago
65
249 day(s) ago
5225
271 day(s) ago
10657
332 day(s) ago
360
334 day(s) ago
7582
390 day(s) ago
6415
416 day(s) ago
758
419 day(s) ago
3799
419 day(s) ago
44
424 day(s) ago
1830
472 day(s) ago
4
473 day(s) ago
1763
517 day(s) ago
257
605 day(s) ago
144
679 day(s) ago
58633
737 day(s) ago
77
741 day(s) ago
42
746 day(s) ago
55
753 day(s) ago
16
766 day(s) ago
4202
790 day(s) ago
148
796 day(s) ago
54
796 day(s) ago
13581
797 day(s) ago
7
797 day(s) ago
439
822 day(s) ago
4
822 day(s) ago
12296
831 day(s) ago
456
866 day(s) ago
15
866 day(s) ago
2010
866 day(s) ago
101
873 day(s) ago
57
880 day(s) ago
6955
895 day(s) ago
444
909 day(s) ago
499
920 day(s) ago
7133
941 day(s) ago
1173
978 day(s) ago
709
979 day(s) ago
3259
1012 day(s) ago
2319
1034 day(s) ago
683
1042 day(s) ago
1810
1096 day(s) ago
1455
1112 day(s) ago
248
1117 day(s) ago
3407
1138 day(s) ago
5798
1181 day(s) ago
11056
1238 day(s) ago
99
1242 day(s) ago
88
1242 day(s) ago
88
1242 day(s) ago
88
1242 day(s) ago
561
1273 day(s) ago
212
1287 day(s) ago
1609
1308 day(s) ago
844
1343 day(s) ago
1252
1355 day(s) ago
80
1355 day(s) ago

Info

Statistics

  • 200251 total downloads
  • 16 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge