Phobos
Phobos
Enterprise Application Monitoring and Management for Akka.NET OSS
Published by Petabridge
  • last updated 8 day(s) ago
  • 3292 daily downloads
  • 1088356 total downloads
  • Latest version: 2.5.0

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
184
8 day(s) ago
977
42 day(s) ago
510
77 day(s) ago
1125
84 day(s) ago
31
133 day(s) ago
4374
156 day(s) ago
7835
216 day(s) ago
357
218 day(s) ago
5600
274 day(s) ago
5486
300 day(s) ago
753
303 day(s) ago
2972
303 day(s) ago
44
308 day(s) ago
1477
356 day(s) ago
4
358 day(s) ago
1726
401 day(s) ago
257
490 day(s) ago
144
563 day(s) ago
53916
622 day(s) ago
77
625 day(s) ago
42
630 day(s) ago
55
637 day(s) ago
16
650 day(s) ago
4198
674 day(s) ago
148
680 day(s) ago
54
681 day(s) ago
13578
681 day(s) ago
7
681 day(s) ago
439
706 day(s) ago
4
706 day(s) ago
12203
715 day(s) ago
456
750 day(s) ago
15
751 day(s) ago
2009
751 day(s) ago
101
757 day(s) ago
56
764 day(s) ago
6954
780 day(s) ago
444
793 day(s) ago
499
804 day(s) ago
7133
825 day(s) ago
1173
862 day(s) ago
709
864 day(s) ago
3259
896 day(s) ago
2319
918 day(s) ago
683
926 day(s) ago
1787
980 day(s) ago
1455
996 day(s) ago
248
1001 day(s) ago
3407
1022 day(s) ago
5798
1065 day(s) ago
11056
1122 day(s) ago
99
1126 day(s) ago
88
1126 day(s) ago
88
1126 day(s) ago
88
1126 day(s) ago
561
1157 day(s) ago
212
1172 day(s) ago
1609
1192 day(s) ago
844
1227 day(s) ago
1252
1239 day(s) ago
80
1239 day(s) ago

Info

Statistics

  • 173075 total downloads
  • 16 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge