Skip to content

A easy to use reliable health checking service with Prometheus export

License

Notifications You must be signed in to change notification settings

Phara0h/sky-puppy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sky Puppy

A easy to use reliable endpoint coordinator / health checking service with Prometheus export

Sky Puppy Postman Collection

Install

npm install -g sky-puppy

Run

sky-puppy

Checkers

Test
Databases
HTTP/HTTPS
  • request (native)
Services

Sample Config

Sky Puppy looks for a file called sky-puppy-config.json in the folder it is ran at.

{
  "alerters": {
    "discord_down": {
      "uri": "http://discord.com",
      "json": true,
      "method": "PUT",
      "body": {
        "embeds": [
          {
            "title": "undefined is undefined!",
            "description": "This service was healthy for undefined seconds!",
            "color": 14828098,
            "footer": {
              "text": ""
            },
            "timestamp": "undefined"
          }
        ],
        "username": "Sky Puppy",
        "avatar_url": "https://i.imgur.com/J5vIVSt.png"
      }
    },
    "discord_unhealthy": {
      "uri": "http://discord.com",
      "json": true,
      "method": "PUT",
      "body": {
        "embeds": [
          {
            "title": "undefined is undefined!",
            "description": "This service was healthy for undefined seconds!",
            "color": 14852674,
            "footer": {
              "text": ""
            },
            "timestamp": "undefined"
          }
        ],
        "username": "Sky Puppy",
        "avatar_url": "https://i.imgur.com/J5vIVSt.png"
      }
    },
    "discord_healthy": {
      "uri": "http://discord.com",
      "json": true,
      "method": "PUT",
      "body": {
        "embeds": [
          {
            "title": "undefined is undefined!",
            "description": "Carry on, looks like things are back! We were down for undefined seconds.",
            "color": 6480450,
            "footer": {
              "text": ""
            },
            "timestamp": "undefined"
          }
        ],
        "username": "Sky Puppy",
        "avatar_url": "https://i.imgur.com/3rfFeOu.png"
      }
    }
  },
  "services": {
    "your_service": {
      "interval": 3,
      "start_delay": 2,
      "checker": {
          "name": "request",
          "settings": {
            "uri": "http://127.0.0.1/a/cool/endpoint",
            "timeout": 2,
            "json": true,
            "method": "PUT",
            "body": {
              "test": "sweet"
            },
          }
      },
      "alerts": [
        {
          "type": "down",
          "alerter": "discord_down"
        },
        {
          "type": "unhealthy",
          "alerter": "discord_unhealthy"
        },
        {
          "type": "healthy",
          "alerter": "discord_healthy"
        }
      ]
    }
  },
  "skypuppy": {
    "version": "1.0.0",
    "log": {
        "enable": true,
        "colors": true,
        "level": "info"
    }
  }
}

Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

11 December 2020

628dc13FIxed some bugs, made sky puppy more crash safe and better logging

18 November 2020

0cc7817Fixed a minor bug, dates should now work in prom.

17 November 2020

61b2674Minor debug fix

17 November 2020

ec30c55Few fixes
  • Added date to each prom stats only when it was updated
  • Fixed bug with version not showing in prom stats
  • Fixed possible bug around alerts

4 November 2020

e196e2bFixed bug Cannot find module package.json

4 November 2020

9b1b3c0Fixed bin package bug

4 November 2020

6197717ETIMEDOUT is now unhealthy instead of down

4 November 2020

9712744Update changelog-template.hbs

4 November 2020

bd98346Fixed bugs and added pretty console logs
  • Fixed last_unhealthy_total_duration and last_healthy_total_duration bug reporting the wrong elapsed time.
  • Fixed healthy status getting reported even when unhealthy/down has not yet been reported.
  • Fixed bug relating to console title displaying config version instead of application version.
  • Added new console logs (see sample config for details)
  • Added 2 new test-server routes

3 November 2020

6604d77Clean up and more
  • Added skypuppy console log title
  • Fixed eslint issues
  • Fixed bug that altered on healthy status at start of sky puppy
  • Fixed bug if settings field was left out of services checkers

2 November 2020

6e251c0Added sky-puppy-checker-cloudflare-status to the list of checkers
d204255Added sky-puppy-checker-mongodb to list of checkers

2 November 2020

4b1a2e4Fixed changelog to have full commit message

2 November 2020

7f27201New feature: Messages
  • Added the ability to add messages from checkers
  • Messages can be accessed in alterters message / viewed in prom
  • Added the ability to map codes to messages in a global setting via checkers settings EX:
"sky-puppy-checker-template": {
"foo": "bar",
"code_messages": {
"200": "Override me plz",
"500": "Yikes its down"
}
}
  • Added the ability to override those code_messages inside each service as well EX:
"checker": {
"name": "sky-puppy-checker-template",
"settings": {
"bar": "test"
},
"code_messages": {
"200": "Yup its up"
}
}

30 October 2020

a927cdfAdded sky-puppy-checker-template to tests and readme

30 October 2020

7674805Fixed bug around checkers name

30 October 2020

344b6f0Added module based checkers! Now you can write custom checkers to check any thing.

30 October 2020

5d614ebAdded endpoints, Added postman docs, Fixed bugs and more!
f6f9a56added process tile

14 September 2020

505209aUpdate README.nbs

v0.2.0

14 September 2020

b03ca2einit commit config based is done REST endpoints to come
b7535a3Initial commit