- last updated 6 day(s) ago
- 1603 daily downloads
- 1595803 total downloads
- Latest version: 2.6.2
Phobos.Actor 2.6.1
Automatic Akka.NET tracing and monitoring integration as part of the Phobos Enterprise Framework.
Install-Package Phobos.Actor -Version 2.6.1
dotnet add package Phobos.Actor --version 2.6.1
<PackageReference Include="Phobos.Actor" Version="2.6.1"/>
paket add Phobos.Actor --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
- Phobos.Monitoring (>=2.6.1)
- Phobos.Tracing (>=2.6.1)
- Akka.Cluster (>=1.5.32)
- Phobos.Actor.Common (>=1.1.2)
.NETStandard
- Phobos.Monitoring (>=2.6.1)
- Phobos.Tracing (>=2.6.1)
- Akka.Cluster (>=1.5.32)
- Phobos.Actor.Common (>=1.1.2)
Versions
Info
- last updated 13 day(s) ago
- Project Site
- License Info
Statistics
- 256327 total downloads
- 131 downloads of current version
Owners and Products
PetabridgeAuthors
Petabridge
Copyright
Copyright © 2017-2025 Petabridge
Petabridge