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

Phobos.TestKit 2.0.3-beta1

Framework used for testing applications that have been instrumented using Phobos. Makes it feasible to test using data collected from actor traces, monitoring, and so forth.

Install-Package Phobos.TestKit -Version 2.0.3-beta1
dotnet add package Phobos.TestKit --version 2.0.3-beta1
<PackageReference Include="Phobos.TestKit" Version="2.0.3-beta1"/>
paket add Phobos.TestKit --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
5
4 day(s) ago
58
49 day(s) ago
62
97 day(s) ago
84
131 day(s) ago
53
132 day(s) ago
54
138 day(s) ago
54
145 day(s) ago
56
165 day(s) ago
54
172 day(s) ago
55
180 day(s) ago
79
341 day(s) ago
55
351 day(s) ago
54
357 day(s) ago
67
440 day(s) ago
59
476 day(s) ago
59
510 day(s) ago
59
544 day(s) ago
55
551 day(s) ago
54
600 day(s) ago
66
623 day(s) ago
158
683 day(s) ago
56
686 day(s) ago
179
741 day(s) ago
221
767 day(s) ago
57
770 day(s) ago
59
770 day(s) ago
68
775 day(s) ago
63
823 day(s) ago
1
825 day(s) ago
61
868 day(s) ago
1
957 day(s) ago
1
1030 day(s) ago
103
1089 day(s) ago
56
1093 day(s) ago
55
1097 day(s) ago
57
1104 day(s) ago
2
1117 day(s) ago
71
1141 day(s) ago
54
1147 day(s) ago
54
1148 day(s) ago
96
1148 day(s) ago
54
1148 day(s) ago
1
1173 day(s) ago
1
1173 day(s) ago
178
1183 day(s) ago
2
1217 day(s) ago
1
1218 day(s) ago
114
1218 day(s) ago
1
1224 day(s) ago
55
1231 day(s) ago
102
1247 day(s) ago
54
1260 day(s) ago
54
1271 day(s) ago
249
1292 day(s) ago
75
1329 day(s) ago
172
1331 day(s) ago
330
1364 day(s) ago
113
1385 day(s) ago
55
1393 day(s) ago
617
1447 day(s) ago
179
1463 day(s) ago
62
1469 day(s) ago
302
1489 day(s) ago
509
1532 day(s) ago
723
1590 day(s) ago
135
1594 day(s) ago
136
1594 day(s) ago
136
1594 day(s) ago
136
1594 day(s) ago
139
1624 day(s) ago
136
1639 day(s) ago
424
1660 day(s) ago
136
1694 day(s) ago
221
1707 day(s) ago
136
1707 day(s) ago

Info

Statistics

  • 8353 total downloads
  • 2 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge