Hi, I'm Griffin ๐
I'm a server status monitoring system written with Rust language
Install Rust and Cargo. Griffin is written with Rust 2018 edition.
๐พ Server status monitoring written with Rust language
License: GNU General Public License v3.0
Griffin should save collected information to a database like sqlite so we can later display the result
Something like following would be enough as a starting point,
service: service.example.com
datetime: utc_time_code
status: response_status
Hosting a public status page is a popular concept and it would be ideal for Griffin to have a small html page with status plastered on it in addition to the inbuilt notification systems.
Ref - https://status.foss.lk
Notifications
As per mentioned in #1 we want a way to check health from a given backend.
Griffin is supposed to be easily configurable, fast solution for monitoring external backend services.
It should be able to know the backends, their health check method(ping or GET), the interval of testing and notification methods
Since YAML is highly used in DevOps environments, it's better to stick with YAML syntax for the operation.
A sample config would be like
services:
- name: Foo Web Service
host: foo.example.com
health:
- method: http
endpoint: /status
interval: 10s
- method: ping
interval: 5s
- name: Bar Web Service
host: bar.example.com
health:
- method: http
endpoint: /statuz
interval: 15s
- method: ping
interval: 10s
alerts:
- type: Email
from: [email protected]
to: [email protected]
- type: Webhook
url: https://mywebhook.com/abcd13345
# Sample griffin file
services:
- name: Foo Web Service
host: $FOO_HOST
health:
- method: http
endpoint: /status
port: 4040
interval: 1h
- method: ping
- name: Bar Web Service
host: bar.example.com
health:
- method: http
endpoint: /statuz
interval: 15s
- method: ping
interval: 30ms
alerts:
- type: Email
from: [email protected]
to: [email protected]
- type: Webhook
url: $WEBHOOK_URL
Need to expand the environment variables
At the moment, we do not handle any time units with the application so this leads to errors when running the application. It would be best if we could handle time units using Serde.
Currently, a File Path is used for obtaining the data.
It is not flexible, so we need a generic version of the reader for config
Describe the bug
If you have a duration like 10hreouz
its still accepted as hours
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.