Skip to content
A simple monitoring solution for Amazon's Elastic Container Service (ECS)
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.
aws Adding recommended IAM policy Feb 10, 2018
public Settings modal is setup, all it needs now are... Settings. Apr 2, 2017
screenshots Adding some screenshots to be used in the readme Jan 31, 2018
server Making the aws region configurable Feb 9, 2018
src
.dockerignore fix to the dockerfile, the npm install --production command wasnt goo… Mar 10, 2017
.gitignore Initial commit Mar 7, 2017
Dockerfile
LICENSE Initial commit Mar 7, 2017
README.md
globalConfig.js Adding a homepage property to the package.json which allows the asset… Mar 14, 2017
package.json Adding instance details tooltip to the agent page. This offers some b… Feb 7, 2018

README.md

ECS monitor

A simple monitoring solution which gives you insight into your EC2 Container Service (ECS) clusters, services and container logs. The main focus around this application is to aggregate cluster and service stats so that they can be monitored in one place, without having to click around - Making it useful to put on a telley for the team.

As well as aggregation, ECS monitor also offers various features over and above the Amazon Console - Such as Task churn, which detects when a service is misbehaving by rapidly starting and stopping tasks.

reactrxjsmaterializecss

Screenshots

Demo services dashboard

Demo agents dashboard


All screenshots...

Build

development

To run the app in development, first you need to create a file in the app root directory called devCredentials.json. This is to supply the app with aws credentials. The file won't be source controlled. It's a single object with 3 properties:

{
    "AWS_REGION: "e.g. eu-west-1",
    "DEVELOPMENT_AWS_ACCESS_KEY": "...",
    "DEVELOPMENT_AWS_SECRET_KEY": "..."
}

Once you have created the credentials file, starting the app is simple:

$ npm start

It supports hot reloading of css and triggers a recompile and page reload whenever a javascript file is modified.

production

$ npm run build

Will compile a production ready build of the client side application.

$ node server/server.js

Will run the server.

When running a production build, we stop looking for local developer credentials and instead request temporary credentials from the server (/authenticate). The server sends a request to AWS STS (Security Token Service) to retrieve temporary identity. In order for the server to do this you need to set 3 environment variables:

  1. AWS_REGION
  2. AWS_ACCESS_KEY_ID
  3. AWS_SECRET_ACCESS_KEY
IAM policy

The recommended IAM policy to run the monitor under can be found here (/aws/policy.json)

docker

$ docker build -t ecs-monitor {checkout_dir}
$ docker run -p 1337:1337 --rm \
    -e AWS_REGION=... \
    -e AWS_ACCESS_KEY_ID=... \
    -e AWS_SECRET_ACCESS_KEY=... \
    ecs-monitor

tombola

by tombola, enjoy

This project was bootstrapped with Create React App.

You can’t perform that action at this time.