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

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
184
8 day(s) ago
977
42 day(s) ago
510
77 day(s) ago
1126
84 day(s) ago
31
133 day(s) ago
4358
156 day(s) ago
7895
216 day(s) ago
380
219 day(s) ago
5680
274 day(s) ago
5631
300 day(s) ago
745
303 day(s) ago
2965
303 day(s) ago
36
308 day(s) ago
1476
356 day(s) ago
2
358 day(s) ago
1727
401 day(s) ago
256
490 day(s) ago
142
563 day(s) ago
53900
622 day(s) ago
72
625 day(s) ago
39
630 day(s) ago
53
637 day(s) ago
14
650 day(s) ago
4194
674 day(s) ago
144
680 day(s) ago
20
681 day(s) ago
13575
681 day(s) ago
4
681 day(s) ago
437
706 day(s) ago
2
706 day(s) ago
12199
715 day(s) ago
454
750 day(s) ago
13
751 day(s) ago
2007
751 day(s) ago
99
757 day(s) ago
53
764 day(s) ago
6956
780 day(s) ago
440
793 day(s) ago
493
804 day(s) ago
7133
825 day(s) ago
1166
862 day(s) ago
705
864 day(s) ago
3242
897 day(s) ago
2315
918 day(s) ago
679
926 day(s) ago
1784
980 day(s) ago
1452
996 day(s) ago
243
1001 day(s) ago
3401
1022 day(s) ago
5787
1065 day(s) ago
11050
1122 day(s) ago
94
1126 day(s) ago
87
1126 day(s) ago
36401
1126 day(s) ago
556
1157 day(s) ago
209
1172 day(s) ago
1608
1192 day(s) ago
852
1227 day(s) ago
1235
1239 day(s) ago
89
1240 day(s) ago

Info

Statistics

  • 209377 total downloads
  • 14 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge