You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Originally posted by Aaronontheweb February 7, 2022 Is your feature request related to a problem? Please describe.
I've been thinking about this in a few areas:
Phobos - right now we use invocation counters to keep track of actor starts / stops to keep track the churn of actors. In platforms like Prometheus we compute the delta between start / stop events to compute the total number of alive actors. We can try using things like an OTel UpDownCounter (not yet implemented in .NET) when that gets added to reach a total number and maybe that will be more accurate.
Petabridge.Cmd - similar to how we report on shard counts right now, I'd love to update the actor commands to show a breakdown of how many actors are alive by hierarchy position and type.
Homespun telemetry solutions - right now most of these are done via the logging system or subscribing to various data channels inside Akka.NET (i.e. Cluster.Subscribe), but the actual structure of the actor hierarchy itself is difficult to capture here.
In particular, some of the work I've been doing around Phobos 2.0 has been leading me to wonder if it makes sense to emit some basic telemetry around actor creation inside Akka.NET itself.
Describe the solution you'd like
I'll have to flesh this out in some more detail, but basically add three EventStream events that can be subscribed to:
publicreadonlystructActorStarted{publicIActorRefRef{get;}// can be used for topological sort / correlationpublicTypeActorType{get;}}publicreadonlystructActorRestarted{publicIActorRefRef{get;}// can be used for topological sort / correlationpublicTypeActorType{get;}publicExceptionCrashReason{get;}}publicreadonlystructActorTerminated{publicIActorRefRef{get;}// can be used for topological sort / correlationpublicTypeActorType{get;}publicTerminatedReasonReason{get;}// stopped, parent decided, system shutting down}
Having a TerminatedReason would be really helpful - implementing that alone would be a bit of work, but I think it's achievable.
The text was updated successfully, but these errors were encountered:
* added initial actor telemetry for #6293
* added basic telemetry tests for local actors
* added spec to validate that `RemoteActorRef` doesn't influence counters
* updated `SpawnActorBenchmarks` to include telemetry impact
* converted telemetry events into `sealed class`es with `internal` constructors
* removed `Reason`
* added initial actor telemetry for akkadotnet#6293
* added basic telemetry tests for local actors
* added spec to validate that `RemoteActorRef` doesn't influence counters
* updated `SpawnActorBenchmarks` to include telemetry impact
* converted telemetry events into `sealed class`es with `internal` constructors
* removed `Reason`
(cherry picked from commit 7f68c48)
* add simple actor telemetry (#6294)
* added initial actor telemetry for #6293
* added basic telemetry tests for local actors
* added spec to validate that `RemoteActorRef` doesn't influence counters
* updated `SpawnActorBenchmarks` to include telemetry impact
* converted telemetry events into `sealed class`es with `internal` constructors
* removed `Reason`
(cherry picked from commit 7f68c48)
* Update API Verify list
* Fix API verify list
* Fix API verify list
* fix API Verify list
Co-authored-by: Aaron Stannard <aaron@petabridge.com>
Discussed in #5587
Originally posted by Aaronontheweb February 7, 2022
Is your feature request related to a problem? Please describe.
I've been thinking about this in a few areas:
UpDownCounter
(not yet implemented in .NET) when that gets added to reach a total number and maybe that will be more accurate.actor
commands to show a breakdown of how many actors are alive by hierarchy position and type.Cluster.Subscribe
), but the actual structure of the actor hierarchy itself is difficult to capture here.In particular, some of the work I've been doing around Phobos 2.0 has been leading me to wonder if it makes sense to emit some basic telemetry around actor creation inside Akka.NET itself.
Describe the solution you'd like
I'll have to flesh this out in some more detail, but basically add three
EventStream
events that can be subscribed to:Having a
TerminatedReason
would be really helpful - implementing that alone would be a bit of work, but I think it's achievable.The text was updated successfully, but these errors were encountered: