Radiator is a Clojure application which generates radiator view as html from configurable endpoints. Radiator can show Gitlab or AWS Codepipeline statuses. Also AWS Cloudwatch alarms and custom metrics can be shown.
Currently radiator view is configured as 3*2 grid. This can be changed with little effort.
Radiator is quite usable in situations where is need to monitor multiple AWS accounts. For example one can have different accounts for development, testing and production-
Radiator can be installed as a AWS Lambda or run as server.
Because Radiator targets also Lambda enviroment all resources like images are linked to external resources. Radiator is hardly usable without some endpoints to poll.
Endpoints are configured as Clojure code in namespace radiator.config.
{:name "Name of the project"
:aws {:uri "Uri to aws-endpoint poller"
:api-key "key"}
:endpoints [{:name "Health check for my software"
:uri "https://myapp.app/health"
:gitlab-pipelines [{:name "Name of the gitlab pipeline"
:uri "Uri to endpoint -> https://{domain}/api/v4/projects/{:id}/pipelines"
:api-key "api-key"}]}
Gitlab pipelines need only uri and the endpoint.
AWS endpoints need lambdas installed to every account which is monitored. One easy way is to use radiator exposer from https://github.com/hjhamala/radiator-exposer.
Radiator.config namespace contains ways to change used images and texts. Example images are from Tango desktop project and are freely usable.
Prerequirities
- Leiningen 2.0.0
- NPM
Run
npm install serverless serverless-clj-plugin
serverless deploy
Serverless builds and tests application and deploys it behind API Gateway as a lambda. Radiator needs token as a query parameter. Token can be set in radiator.config.
You will need Leiningen 2.0.0 or above installed.
To start a web server for the application, run:
lein run
https://opensource.org/licenses/BSD-2-Clause
Copyright © 2017 Heikki Hämäläinen