Coder Social home page Coder Social logo

wushian / warden Goto Github PK

View Code? Open in Web Editor NEW

This project forked from warden-stack/warden

0.0 1.0 0.0 1.37 MB

Define "health checks" for your applications, resources and infrastructure. Keep your Warden on the watch.

Home Page: https://getwarden.net

License: MIT License

C# 97.45% JavaScript 2.41% CSS 0.14%

warden's Introduction

Warden

####OPEN SOURCE & CROSS-PLATFORM TOOL FOR SIMPLIFIED MONITORING ####getwarden.net

Build status

Define "health checks" for your applications, resources and infrastructure. Keep your Warden on the watch.

What is Warden?

Warden is a simple, cross-platform library, built to solve the problem of monitoring the resources such as the websites, API, databases, CPU etc.

It allows to quickly define the watchers responsible for performing checks on specific resources and integrations to easily notify about any issues related to the possible downtime of your system.

Each watcher might have its own custom interval. For example you may want to check e.g. the API availability every 500 milliseconds, while the database should respond only every 10 seconds and so on. Or you could just set the common one interval (5 seconds by default) for all of the watchers.

On top of that, you may use all of this information to collect the custom metrics thanks to the hooks.

What kind of monitoring is available?

What are the integrations with external services?

How can I see what's happening with my system?

You can make use of the Web Panel which provides the UI for organizing your monitoring workspace, dashboard with real-time statistics and the storage of the historical data. If you don't want to host it on your own, there's an online version available, running in the Azure cloud at panel.getwarden.net

Is there any documentation?

Yes, please navigate to the wiki page where you can find detailed information about configuring and running the Warden.

Installation

Available as a NuGet package.

Install-Package Warden

Watchers and integrations are available as a separate NuGet packages listed here.

Cross-platform support

Project .NET 4.6.1 DotNet 5.6 Comment
Warden Core + +
Disk Watcher + +
MongoDB Watcher + +
MS SQL Watcher + +
Performance Watcher + - PerformanceCounter not compatible
Process Watcher + +
Redis Watcher + +
Server Watcher + - System.Net.Sockets not compatible
Web Watcher + +
SSL Watcher (3rd party) + +
Azure Storage Watcher (3rd party) + +
Azure Service Bus Watcher (3rd party) + - Service bus library not compatible
Cachet Integration + +
HTTP API Integration + +
MS SQL Integration + +
SendGrid Integration + +
Slack Integration + +
Twilio Integration + - Twilio not compatible
Seq Integration (3rd party) + +
Web Panel + - Some external libs are not compatible

Quick start:

Configure the Warden by adding the watchers and setting up the hooks and integrations to get notified about failures, successful checks, exceptions etc. - use that information e.g. in order to let your system administrator know when something goes wrong or to build your custom metrics.

var configuration = WardenConfiguration
    .Create()
    .AddWebWatcher("http://my-website.com")
    .AddMongoDbWatcher("mongodb://localhost:27017", "MyDatabase", cfg =>
    {
        cfg.WithQuery("Users", "{\"name\": \"admin\"}")
           .EnsureThat(users => users.Any(user => user.role == "admin"));
    })
    .IntegrateWithSendGrid("api-key", "[email protected]", cfg =>
    {
        cfg.WithDefaultSubject("Monitoring status")
           .WithDefaultReceivers("[email protected]");
    })
    .SetGlobalWatcherHooks(hooks =>
    {
        hooks.OnStart(check => GlobalHookOnStart(check))
             .OnCompleted(result => GlobalHookOnCompleted(result));
    })
    .SetAggregatedWatcherHooks((hooks, integrations) =>
    {
        hooks.OnFirstFailureAsync(results => 
                integrations.SendGrid().SendEmailAsync("Monitoring errors have occured."))
             .OnFirstSuccessAsync(results => 
                integrations.SendGrid().SendEmailAsync("Everything is up and running again!"));
    })
    .SetHooks(hooks =>
    {
        hooks.OnIterationCompleted(iteration => OnIterationCompleted(iteration))
             .OnError(exception => Logger.Error(exception));
    })
    .Build();

Start the Warden and let him do his job - now you have the full control over your system monitoring!

var warden = WardenInstance.Create(configuration);
await warden.StartAsync();

Please check out the examples by cloning the repository.

Contribute

Want to contribute? Please check the contribution guidelines.

warden's People

Contributors

janpieterz avatar mitch528 avatar oferze avatar pawlos avatar pwasiewicz avatar samjudson avatar spetz avatar thecorrado avatar wallacekelly avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.