- last updated 2 day(s) ago
- 3992 daily downloads
- 1640424 total downloads
- Latest version: 2.8.0
Phobos.Tracing 2.6.1
Distributed tracing support for Akka.NET ActorSystems.
Install-Package Phobos.Tracing -Version 2.6.1
dotnet add package Phobos.Tracing --version 2.6.1
<PackageReference Include="Phobos.Tracing" Version="2.6.1"/>
paket add Phobos.Tracing --version 2.6.1
Release Notes
Phobos 2.x Feature Release** Phobos 2.6.1 includes several new features and improvements aimed at making Phobos data even more useful for Akka.NET developers. Customize Actor Type Names** One major issue we resolved is [Actor type information and F# API](https://github.com/petabridge/phobos-issues/issues/80), where [Akkling](https://github.com/Horusiath/Akkling) users noticed that all of their F# actors all had identical names in Phobos's metrics and traces due to the way the F# type system works differently from C#. In 2.6.0, we've added a new attribute to Phobos - the `PhobosActorName` class attribute to address this; this does not address the original problem because F# uses behavior delegate and not class inheritance. In order to resolve this, we are removing the `PhobosActorName` class attribute and replacing it with a new `PhobosActorSettings.ActorTypeName` property which will allow you to tell Phobos to use a different name for this actor type OTHER than its given CLI type that can be applied directly to `Props.Deploy`. C# Sample: ```csharp public class MyActor : UntypedActor { // Implementation here } var actorSettings = new PhobosActorSettings(trace: true, monitor: true) .WithActorTypeName("Foo"); var actorRef = Sys.ActorOf(Props.Create<MyActor>() .WithInstrumentation(actorSettings)); ``` F# Sample: ```fsharp let propsWithInstrumentation (props: Props<'T>) (trace: bool, monitor: bool, actorTypeName: string) : Props<'T> = let settings = PhobosActorSettings(trace, monitor).WithActorTypeName(actorTypeName) let newDeploy = match props.Deploy with | Some value -> value.WithInstrumentation(settings) | None -> Deploy.Local.WithInstrumentation(settings) { props with Deploy = Some newDeploy } let behavior (m: Actor<_>) = let rec loop () = actor { let! msg = m.Receive() m.Sender() <! msg return! loop () } loop () let customActor = spawnAnonymous system (propsWithInstrumentation (props behavior) (true, true, "Foo")) ``` In [Phobos' automatically collected metrics](https://phobos.petabridge.com/articles/captured-data.html#metric-data), the `actortype` attribute will now use `Foo` instead of `Assembly.Namespace.MyActor` in C# or `FunActor` in F#. In [Phobos's automatically collected traces](https://phobos.petabridge.com/articles/captured-data.html#trace-data), the `akka.actor.type` attribute will now use `Foo` instead of `Assembly.Namespace.MyActor` in C# or `FunActor` in F#.
Dependencies
.NETCoreApp
- Akka (>=1.5.32)
- Google.Protobuf (>=3.26.1)
- OpenTelemetry (>=1.6.0)
- Phobos.Actor.Common (>=1.1.2)
.NETStandard
- Akka (>=1.5.32)
- Google.Protobuf (>=3.26.1)
- OpenTelemetry (>=1.6.0)
- Phobos.Actor.Common (>=1.1.2)
Versions
Info
- last updated 35 day(s) ago
- Project Site
- License Info
Statistics
- 299027 total downloads
- 136 downloads of current version
Owners and Products
PetabridgeAuthors
Petabridge
Copyright
Copyright © 2017-2025 Petabridge
Petabridge