Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instrumentation and Statistics #13

Open
nvivo opened this issue Dec 23, 2015 · 2 comments
Open

Instrumentation and Statistics #13

nvivo opened this issue Dec 23, 2015 · 2 comments

Comments

@nvivo
Copy link
Member

nvivo commented Dec 23, 2015

This is just to expose some ideas I have.

Although Akka has logging support, I feel that for Even to be easy to use, it should include some instrumentation support. In essence, I'd like Even to have some built-in way to generate either a data structure or an automatically generated HTML report with information like:

  • Overall status of the system telling things like how many aggregates/projections exist and how many events the system saw since it started
  • A list of all projections, if they are up-to-date or rebuilding, and the sequence of each one
  • Which aggregates are loaded in memory
  • How many messages each component processed
  • How many accepted and rejected commands aggregates/command processors had
  • How many restarts (failures) projections or aggregates had

It should expose a simple API expose system status to ASP.NET (probably exposing some url with all the information available). The HTML generation could be an external component, but basic instrumentation would need to be built into core.

Some ideas may come from Akka Monitoring, but the idea is that it shouldn't require the user to add code to aggregates or projections (but the user could possibly use it to manually add instrumentation events).

Instrumentation would be turned off by default and turnd on on during Even setup, as:

sys.SetupEven()
    .WithInstrumentation()
    .Start();
@promontis
Copy link
Contributor

Yeah... that would be awesome! We might want to use something like https://github.com/damianh/LibLog to provide an abstract way of dealing with logging those instrumentations. For example, LibLog supports Serilog and Serilog can write such stuff to various services like ElasticSearch (with Kibana).

@DamianReeves
Copy link
Collaborator

Maybe the new dotnet logging (https://github.com/aspnet/Logging) abstractions are a better starting point. I'm sure eventually all mainstream .NET logging libraries will have adapters for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants