ElmahR 0.7.5

Tagged: c# elmah signalr elmahr nuget

ElmahR reached today 0.7.5, with more improvements in several areas. Let's see them very briefly.

Settings Persistence

Now ElmahR is smarted and recognizes the current settings you have in place when you decide that you want to be remembered and tick the corresponding checkbox, while previous version was remembering only settings changed after ticking it. It also remembers about more things: as you might know you can reorder the application boxes as you like, now ElmahR records the positions you gave them and restores them when you reconnect. Persistence of error types status coming soon.

Connection status diagnostics

On the top right corner of your window you might notice messages appearing every now and then, those are giving feedback about things that SignalR does under the hood when dealing with connection glitches, those messages are there mainly for me for debugging purposes and to understand better what goes on, they should not get too much in your way.

SignalR groups, finally!

The latest version does a first network optimization thanks to SignalR groups. This feature allowed me to represent each monitored application as a group of connections. Each client is added to the corresponding application group when he/she decides to observe it ('play' button in app boxes), or is removed from the group when the user is not interested in that app anymore ('pause' button). Those settings are recorded as already explained, and both this stateful info and the tracking of user's current interactions with the dashboard allowed me to leverage SignalR groups, and send errors only to clients interested in observing the source applications. This could potentially save a lot of network bandwidth if monitored applications are a lot, and users selectively turn off uninteresting ones.

What about how I implemented this feature? Has it been difficult? Absolutely not, I just read the SignalR docs about it and applied it in the right places, it's been easy and quick to do :)

Test Exception

If you go to the demo website you will see nice skulls all over the place :) Each application can be enabled to raise ELMAH test exception, and when it is ElmahR shows a skull in the corresponding box, pressing it will issue a GET request for elmah.axd/test back to the source, which is a documented way to ask ELMAH to raise a test exception inside the monitored application, exception that should then be posted back to the dashboard. It's a useful way to test if things are configured correctly, if the exception does not popup you will know that something's wrong with your setup.

Summary

Many things are happening around ElmahR, the project is doing good (and slow) progress, and the community is starting contributing back with concrete pieces, like the help I received from the Nuget package, and feedback in form of feature requests or blog posts, like the one from @gsuttie that today made it to the official ASP.NET community home page! Cool! :)

But there's still a lot to do... wanna help? :)

3 Comments

  • Kevin said

    Hi,
    I love your ElmahR and try to put it up in my servers. I get the dashboard in a subdomain, and client application in another subdomain. But I don't see the dashboard site is catching any errors. Both of the applications work fine in localhost. Is there any security settings I need to be awared of in IIS?

    Thanks,Kevin

  • admin said

    Hi Kevin,
    thanks for your appreciation :) ElmahR so far has no concept of security, mostly because the way it is build so far is more intended to be used behind a DMZ, so in a safe place. There are much more things we can say about it, but back to your point there is no security setting. Basically, what's necessary to have things running is for the source app to be able to do POST to the dashboard, if you have no problem to do that then it should work, there's no other requirement.
    Let me know :)

  • Ahmed said

    I have the same problem as Kevin , it work perfect in localhost , but i can't got it working in production servers, any ideas ?

Add a Comment