Skip to content
monitor web services and report, if they are not working
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
check
collector
config
docker
exporter
service
watch
.gitignore
.travis.yml
LICENSE.txt
Makefile
README.md
glide.yaml
petze.go

README.md

Travis CI

Petze

Petze monitors web sites and services. It exports prometheus.io metrics and writes a logrus log.

One instance of petze is designed to monitor many services at little cost.

Motivation

While there is a vast amount of monitoring solutions out there I still felt there was somthing simplistic missing, that would play nicely with prometheus.io, which I have come to appreciate very much.

Status

As of June 2017 we have a first working version and we are trying to get the configs right - feedback is most welcome.

Configuration

Petze is configured through a set of yaml configuration files. The config folder name can be passed to petze, if not it will look for the configuration in

Configuration layout

Petze is configured from files in a configuration folder.

Main config file petze.yml

# 
# optional http address if you want to run without tls
address: server-name.net:8080
# running on tls
tls:
  address: server-name:8443
  cert: path/to/cert.pem
  key: path/to/key.pem
# optional basic auth
basicauthfile: path/to/basic-auth-file

Service configurations

Any other files with a .yml suffix will be treated as service configurations. It is strongly encouraged to organize them in folder structures. These will be refected in the service ids.

---
endpoint: http://www.bestbytes.de
interval: 5m
# run requests in a session, with cookies
session:
  - uri: "/"
    comment: home page visit
    check:
      - statuscode: 200
      - duration: 200ms
      - goquery:
      	  ".body div.test":
      	  min: 3
  
  - method: POST
    comment: this is how you perform XHR requests  
    uri: "/path/to/a/rest/service?foo=bar"
    content-type: application/json
    headers:
      "X-Test": ["foo"]
    data:
      foo: bar
    check:
      - content-type: application/json
      - duration: 100ms
      - header:
          "X-Test": "foo"
      - json-path:
        # this is a json path expression
        "$[0].product.images+":
        	min: 1
  - uri: "/another/path"
    check:
      - duration: 100ms
You can’t perform that action at this time.