statping

package module
v0.79.99 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2018 License: GPL-3.0 Imports: 0 Imported by: 0

README

Statping - Web and App Status Monitoring for Any Type of Project
View Wiki | Demo
API | Docker | EC2 | Heroku | Mac | Linux | Windows | Plugins

Statping - Status Page & Monitoring Server

An easy to use Status Page for your websites and applications. Statping will automatically fetch the application and render a beautiful status page with tons of features for you to build an even better status page. This Status Page generator allows you to use MySQL, Postgres, or SQLite on multiple operating systems.

GoDoc Gitter

A Future-Proof Status Page

Statping strives to remain future-proof and remain intact if a failure is created. Your Statping service should not be running on the same instance you're trying to monitor. If your server crashes your Status Page should still remaining online to notify your users of downtime.

Lightweight and Fast

Statping is a very lightweight application and is available for Linux, Mac, and Windows. The Docker image is only ~16Mb so you know that this application won't be filling up your hard drive space. The Status binary for all other OS's is ~17Mb at most.

No Requirements

Statping is built in Go Language so all you need is the precompile binary based on your operating system. You won't need to install anything extra once you have the Statping binary installed. You can even run Statping on a Raspberry Pi.

Custom SASS Styling

Statping will allow you to completely customize your Status Page using SASS styling with easy to use variables. The Docker image actually contains a prebuilt SASS binary so you won't even need to setup anything!

Mobile View is Gorgeous

Your status page will be optimized for mobile and desktop viewers. Statping has a full width edge to edge view, which you can also edit to meet your requirements.

Run on Any Server

Whether you're a Docker fan-boy or a AWS EC2 master, Statping gives you multiple options to simply get running. Our Amazon AMI image is only 8Gb and will automatically update to the most stable version of Statping. Running on an EC2 server might be the most cost effective way to host your own Statping Status Page. The server runs on the smallest EC2 instance (t2.nano) AWS has to offer, which only costs around $4.60 USD a month for your dedicated Status Page. Want to run it on your own Docker server? Awesome! Statping has multiple docker-compose.yml files to work with. Statping can automatically create a SSL Certification for your status page.

Slack, Email, Twilio and more

Statping includes email notification via SMTP and Slack integration using Incoming Webhook. Insert the webhook URL into the Settings page in Statping and enable the Slack integration. Anytime a service fails, you're channel that you specified on Slack will receive a message.

User Created Plugins and Notifiers

View the Plugin Wiki to see detailed information about Golang Plugins. Statping isn't just another Status Page for your applications, it's a framework that allows you to create your own plugins to interact with every element of your status page. Notifier's can also be create with only 1 golang file. Plugin are created in Golang using the statping/plugin golang package. The plugin package has a list of interfaces/events to accept into your own plugin application.

Easy to use Dashboard

Having a straight forward dashboard makes Statping that much better. Monitor your websites and applications with a basic HTTP GET request, or add a POST request with your own JSON to post to the endpoint.

Exporting Static HTML

If you want to use Statping as a CLI application without running a server, you can export your status page to a static HTML. This export tool is very useful for people who want to export their HTML and upload/commit it to Github Pages or an FTP server.

statping export
index.html will be created in the current directory with CDN URL's for assets.

Run on Docker

Use the Statping Docker Image to create a status page in seconds. Checkout the Docker Wiki to view more details on how to get started using Docker.

docker run -it -p 8080:8080 hunterlong/statping

There are multiple ways to startup a Statping server. You want to make sure Statping is on it's own instance that is not on the same server as the applications you wish to monitor. It doesn't look good when your Status Page goes down, I recommend a small EC2 instance so you can set it, and forget it.

Docker Compose

In this folder there is a standard docker-compose file that include nginx, postgres, and Statping.

docker-compose up -d

Docker Compose with Automatic SSL

You can automatically start a Statping server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services.

LETSENCRYPT_HOST=mydomain.com \
    LETSENCRYPT_EMAIL=info@mydomain.com \
    docker-compose -f docker-compose-ssl.yml up -d

Once your instance has started, it will take a moment to get your SSL certificate. Make sure you have a A or CNAME record on your domain that points to the IP/DNS of your server running Statping.

Run on EC2 Server

Running Statping on the smallest EC2 server is very quick using the AWS AMI Image. Checkout the AWS Wiki to see a step by step guide on how to get your EC2 Statping service online.

Create Security Groups

Create the AWS Security Groups with the commands below, Statping will expose port 80 and 443.

aws ec2 create-security-group --group-name StatpingPublicHTTP \
     --description "Statping HTTP Server on port 80 and 443"
# will response back a Group ID. Copy ID and use it for --group-id below.

aws ec2 authorize-security-group-ingress \
     --group-id sg-7e8b830f --protocol tcp \
     --port 80 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress \
     --group-id sg-7e8b830f --protocol tcp \
     --port 443 --cidr 0.0.0.0/0
Create EC2 without SSL
aws ec2 run-instances \
    --image-id ami-7be8a103 \
    --count 1 --instance-type t2.nano \
    --key-name MYKEYHERE \
    --security-group-ids sg-7e8b830f
Create EC2 with Automatic SSL Certification

The AWS-CLI command below will automatically create an EC2 server and create an SSL certificate from Lets Encrypt, for free.

wget https://raw.githubusercontent.com/hunterlong/statping/master/servers/ec2-ssl.sh
# Edit ec2-ssl.sh and insert your domain you want to use, then run command below.
# Use the Security Group ID that you used above for --security-group-ids

aws ec2 run-instances \
    --user-data file://ec2-ssl.sh \
    --image-id ami-7be8a103 \
    --count 1 --instance-type t2.nano \
    --key-name MYKEYHERE \
    --security-group-ids sg-7e8b830f

Prometheus Exporter

Statping includes a Prometheus Exporter so you can have even more monitoring power with your services. The Prometheus exporter can be seen on /metrics, simply create another exporter in your prometheus config. Use your Statping API Secret for the Authorization Bearer header, the /metrics URL is dedicated for Prometheus and requires the correct API Secret has Authorization header.

scrape_configs:
  - job_name: 'statping'
    bearer_token: 'MY API SECRET HERE'
    static_configs:
      - targets: ['statping:8080']

Contributing

Statping accepts Push Requests! Feel free to add your own features and notifiers. You probably want to checkout the Notifier Wiki to get a better understanding on how to create your own notification methods for failing/successful services. Testing on Statping will test each function on MySQL, Postgres, and SQLite. I recommend you run a MySQL and a Postgres Docker image for testing.

Go Report Card Build Status Cypress.io tests Docker Pulls GodocCoverage Status

Documentation

Overview

Package statping is a server monitoring application that includs a status page server. Visit the Statping repo at https://github.com/hunterlong/statping to get a full understanding of what this application can do.

Install Statping

Statping is available for Mac, Linux and Windows 64x. You can download the tar.gz file or use a couple other methods. Download the latest release at https://github.com/hunterlong/statping/releases/latest or view below. If you're on windows, download the zip file from the latest releases link.

// MacOS using homebrew
brew tap hunterlong/statping
brew install statping

// Linux installation
bash <(curl -s https://assets.statup.io/install.sh)
statping version

Docker

Statping can be built in many way, the best way is to use Docker!

docker run -it -p 8080:8080 hunterlong/statping

Enjoy Statping and tell me any issues you might be having on Github. https://github.com/hunterlong

Directories

Path Synopsis
Package main for building the Statping CLI binary application.
Package main for building the Statping CLI binary application.
Package core contains the main functionality of Statping.
Package core contains the main functionality of Statping.
notifier
Package notifier contains the main functionality for the Statping Notification system Example Notifier Below is an example of a Notifier with multiple Form values to custom your inputs.
Package notifier contains the main functionality for the Statping Notification system Example Notifier Below is an example of a Notifier with multiple Form values to custom your inputs.
dev
Package handlers contains the HTTP server along with the requests and routes.
Package handlers contains the HTTP server along with the requests and routes.
Package notifiers holds all the notifiers for Statping, which also includes user created notifiers that have been accepted in a Push Request.
Package notifiers holds all the notifiers for Statping, which also includes user created notifiers that have been accepted in a Push Request.
Package plugin contains the interfaces to build your own Golang Plugin that will receive triggers on Statping events.
Package plugin contains the interfaces to build your own Golang Plugin that will receive triggers on Statping events.
Package source holds all the assets for Statping.
Package source holds all the assets for Statping.
Package types contains all of the structs for objects in Statping including services, hits, failures, Core, and others.
Package types contains all of the structs for objects in Statping including services, hits, failures, Core, and others.
Package utils contains common methods used in most packages in Statping.
Package utils contains common methods used in most packages in Statping.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL