Phobos
Enterprise Application Monitoring and Management for Akka.NET OSS
Published by Petabridge
  • last updated 1 day(s) ago
  • 2144 daily downloads
  • 1916870 total downloads
  • Latest version: 2.8.5

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
4
1 day(s) ago
1577
46 day(s) ago
4448
94 day(s) ago
2286
128 day(s) ago
682
129 day(s) ago
1433
135 day(s) ago
843
142 day(s) ago
1250
162 day(s) ago
192
169 day(s) ago
1230
177 day(s) ago
56700
338 day(s) ago
783
348 day(s) ago
662
354 day(s) ago
16636
437 day(s) ago
9371
473 day(s) ago
2556
507 day(s) ago
640
541 day(s) ago
5965
548 day(s) ago
145
597 day(s) ago
6904
620 day(s) ago
11595
680 day(s) ago
409
683 day(s) ago
8367
738 day(s) ago
8686
764 day(s) ago
807
767 day(s) ago
4218
767 day(s) ago
93
772 day(s) ago
1879
820 day(s) ago
4
822 day(s) ago
1827
865 day(s) ago
257
954 day(s) ago
144
1027 day(s) ago
65459
1086 day(s) ago
126
1090 day(s) ago
92
1094 day(s) ago
104
1101 day(s) ago
16
1114 day(s) ago
4255
1138 day(s) ago
198
1144 day(s) ago
103
1145 day(s) ago
13646
1145 day(s) ago
56
1145 day(s) ago
439
1170 day(s) ago
4
1170 day(s) ago
12451
1180 day(s) ago
456
1214 day(s) ago
15
1215 day(s) ago
2060
1215 day(s) ago
101
1221 day(s) ago
106
1228 day(s) ago
7005
1244 day(s) ago
493
1257 day(s) ago
548
1268 day(s) ago
7182
1289 day(s) ago
1222
1326 day(s) ago
758
1328 day(s) ago
3308
1361 day(s) ago
2369
1382 day(s) ago
732
1390 day(s) ago
2019
1444 day(s) ago
1507
1460 day(s) ago
297
1466 day(s) ago
3457
1486 day(s) ago
5848
1529 day(s) ago
11106
1587 day(s) ago
163
1591 day(s) ago
138
1591 day(s) ago
138
1591 day(s) ago
138
1591 day(s) ago
611
1621 day(s) ago
262
1636 day(s) ago
1660
1657 day(s) ago
896
1691 day(s) ago
1305
1704 day(s) ago
133
1704 day(s) ago

Info

Statistics

  • 305575 total downloads
  • 16 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge