monitoror / monitoror Goto Github PK
View Code? Open in Web Editor NEWUnified monitoring wallboard — Light, ergonomic and reliable monitoring for anything.
Home Page: https://monitoror.com
License: MIT License
Unified monitoring wallboard — Light, ergonomic and reliable monitoring for anything.
Home Page: https://monitoror.com
License: MIT License
Randomized anti-DoS is only useful for some tile types:
Add Makefile for tarting build / tests / package front
cd front
npm --no-git-tag-version version xxx
cd ..
git add front/package.json
git commit -m "chore: bump version to xxxx"
git tag xxxx
Return long cache if the call return timeout
Wrap Store for Put the value in the store with different timeout.
Using JSONErrorHandler with custom Error type and get the value if it's a timeout.
To improve split between which data is sent to server and which one is used in front only, I think using a custom key for group sub titles can be great.
It allows to do something like that in front state:
export interface TileState {
type: TileType,
label?: string,
subTiles?: TileState[],
}
see : https://circleci.com/blog/publishing-to-github-releases-via-circleci/
Change default logger for something like this :
[2018-01-16 10:35:24.38231] [MiddlewareServer/server.go:147] [INFO ] – Starting....
[2018-01-16 10:35:24.38252] [MiddlewareServer/server.go:148] [ERROR] – some error
Instead of JSON
See : labstack/echo#1017
To avoid spamming your own services, add cache middleware with 8s TTL (with gcache ?)
Don't forget headers
Output from: http://localhost:8080/api/v1/info
{
"build-info": {
"version": "0.0.2-beta-31-g37cb071",
"git-commit": "37cb071",
"build-time": "2019-05-22T22:26:13+00:00"
},
"configuration": {
"Port": 8080,
"Env": "development",
"UpstreamCache": {
"Expire": 10000,
"CleanupInterval": 1000
},
"DownstreamCache": {
"Expire": 120000,
"CleanupInterval": 10000
},
"Monitorable": {
"Ping": {
"Count": 2,
"Timeout": 1000,
"Interval": 100
},
"Port": {
"Timeout": 1000
},
"Gitlab": {
"Token": ""
},
"Github": {
"Token": ""
},
"TravisCI": {
"Token": "",
"Timeout": 2000,
"Url": "https://api.travis-ci.org/"
}
}
}
}
Some keys are kebab-case, some are PascalCase, I will prefer camelCase everywhere, is that possible?
Http repository can query the same URL with différent parameters (ex : different json key in the same file)
Caching file of the same url should be great
For fixing cache issue in configuration file, we need to replace the full url to path without host:port/api/v1.
Ex :
url: http://localhost:8080/api/v1/http/any?url=test.com
will be :
path: /http/any?url=test.com
For doing this, we need to add apiPath notion in front end.
By default apiPath = front hostname:port + /api/v1 but it's overridable in url params
After this, we can change the actual monitoror path :
http://localhost:8000/?config=http://localhost:8080/api/v1/config?path=./test/faker-config.json
by this :
http://localhost:8000/?apiPath=http://localhost:8080/api/v1&configPath=./test/faker-config.json
Or (in production)
http://localhost:8080/?configUrl=http://github.com/...
123456789 => 123 456 789
15346ms => 15,3s ?
Change structure for something like this :
/cmd
├── main.go
/server
├── api/
├── route/
...
├── server.go
/front
...
https://www.codementor.io/packt/how-to-set-up-a-project-in-echo-mpo39w5zu
We need a dynamic / generated tiles in config.
We need to add this in hydrate config process
Hi guys!
The demo on your website doesn't seem to work.
In the same way, I can't get Monitoror to run on my machine (Debian 64 bits) with the provided executable and default configuration. I get the same error as on your site using ?configPath mode. At the end I'm asked to check my configuration because it can't be loaded.
Did I miss a step?
Use Viper for config setting and provide config to all Model and set config in echo.context
GET : /api/v1/config/validate
With 2 possible parameters:
Actualy the Error Handler is from https://github.com/eurie-inc/echo-sample
Change it for Monitowall usage
In the future we will have "dynamic" tile (like list merge request or pipeline multi branch)
In the clinet-config we need a block for this type of config.
This route will transform this bloc in "classical" tile config (0-x tile by line)
POST : /api/v1/config/hydrate
Maybe something like this ?
Tag: x.x.x
Master: x.x.x-master-{hash}
Develop: x.x.x-develop-{hash}
PR: x.x.x-nightly-{hash}
Create a service for faking Gitlab/Jenkins ...
Use project param for asking response.
Ex : gitlab projet name : test.success.12365 for
{
"Status": "SUCCESS",
"Label": "test",
"Duration": 12365
}
To keep server things on server side, sending API URLs via the config file seems to be a great way to avoid hardcoded URLs in front. Also, params can be added to the URL as the front does not need them (so we can drop them from config sent to front).
Note: do not forget group items and hydrated ones.
{
columns: 4,
tiles: [
{
type: 'ping',
url: 'http://domain.tld:port/api/.../ping?param1¶m2'
}
]
}
It's a more user friendly name :)
{
"rowSpan": 2,
"columnSpan": 5,
}
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.