Phobos
Enterprise Application Monitoring and Management for Akka.NET OSS
Published by Petabridge
  • last updated 36 day(s) ago
  • 2763 daily downloads
  • 1170327 total downloads
  • Latest version: 2.5.1

Phobos.Monitoring 2.0.3-beta1

High-performance monitoring and instrumentation library for .NET and .NET Core applications.

Install-Package Phobos.Monitoring -Version 2.0.3-beta1
dotnet add package Phobos.Monitoring --version 2.0.3-beta1
<PackageReference Include="Phobos.Monitoring" Version="2.0.3-beta1"/>
paket add Phobos.Monitoring --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
2454
36 day(s) ago
3559
72 day(s) ago
1526
106 day(s) ago
590
140 day(s) ago
2235
147 day(s) ago
48
196 day(s) ago
4862
219 day(s) ago
8760
279 day(s) ago
380
282 day(s) ago
7289
337 day(s) ago
6115
363 day(s) ago
750
366 day(s) ago
3382
366 day(s) ago
36
371 day(s) ago
1827
419 day(s) ago
2
421 day(s) ago
1753
464 day(s) ago
256
553 day(s) ago
142
626 day(s) ago
56631
685 day(s) ago
72
689 day(s) ago
39
693 day(s) ago
53
700 day(s) ago
14
713 day(s) ago
4197
737 day(s) ago
144
743 day(s) ago
20
744 day(s) ago
13576
744 day(s) ago
4
744 day(s) ago
437
769 day(s) ago
2
769 day(s) ago
12289
779 day(s) ago
454
813 day(s) ago
13
814 day(s) ago
2008
814 day(s) ago
99
820 day(s) ago
54
827 day(s) ago
6957
843 day(s) ago
440
856 day(s) ago
493
867 day(s) ago
7133
888 day(s) ago
1166
925 day(s) ago
705
927 day(s) ago
3242
960 day(s) ago
2315
981 day(s) ago
679
989 day(s) ago
1799
1043 day(s) ago
1452
1059 day(s) ago
243
1065 day(s) ago
3401
1085 day(s) ago
5787
1128 day(s) ago
11050
1186 day(s) ago
94
1190 day(s) ago
87
1190 day(s) ago
36616
1190 day(s) ago
556
1220 day(s) ago
209
1235 day(s) ago
1608
1256 day(s) ago
852
1290 day(s) ago
1235
1303 day(s) ago
89
1303 day(s) ago

Info

Statistics

  • 224280 total downloads
  • 14 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge