Skip to content
This repository was archived by the owner on Apr 27, 2021. It is now read-only.

brakmic/ServiceWatcher

Repository files navigation

ServiceWatcher

Service Watcher based on Reactive Extensions

The code parts with Rx Observables are based on this blog entry.

This solution runs in Azure Emulator and receives client heartbeats via POST-requests.

We, at advarics GmbH, use a similar version to control our remote Services in real-time.

The ServiceWatcher utilizes a simple Database structure following the Code First workflow.

Every heartbeat entry gets inserted into the table Heartbeat and can be received via GET.

For example to receive all Heartbeats: http://localhost:81/odata/Heartbeats

A "heartbeat" is just a simple JSON payload that describes the client and which Rx Stream it belongs to. Rx Streams are configured via the Azure WebRole settings. There's also an option to configure the WebApp to run as an ordinary IIS application. In this case you'd use the Web.config settings.

I recommend Fiddler to send Heartbeat-Requests.

Heartbeats-Log in Azure Emulator

The configuration of streams is done in Azure WebRole config

Streams are defined in the RxStreams field as comma-separated values. Every stream has its own timeout settings which is by convention RxStreamTimerSTREAMNAME.

For example: RxStreamTimerWebShop for Stream named WebShop. If a stream has no explicit timeout set then the RxStreamTimerDefault will be used.

To be informed about disconnected clients (that is, clients who are not sending heartbeats within an expected time frame) you can set up an SMTP mail-server to deliver warning notices.

Developed at

advarics GmbH, Innsbruck (Austria)

Branch Office Bochum (Germany)

License

MIT

About

Reactive Extensions on ASP.NET & Azure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published