• Stars
    star
    829
  • Rank 55,018 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 5 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ“Š πŸ“Š πŸ“Š Monitors the health and web traffic of servers, microservices, Kubernetes/Kafka clusters, containers, and AWS services with real-time data monitoring and receive automated notifications over Slack or email.
Chronos

Build Passing PRs Welcome License: MIT Release: 5.2

Chronos

Star us on GitHub β€” it helps!

Visit our splash page at chronoslany.com

Chronos is a comprehensive developer tool that monitors the health and web traffic of servers, microservices, containers, and now, Amazon Web Services (AWS). Use Chronos to see real-time data monitoring and receive automated notifications over Slack or email.

What's New?

  • Chronos is now able to work out of the box, addressing previous bugs that prevented Chronos to work as intended. File structure, dependencies, and webpack entry point have been updated, allowing Chronos Electron desktop application to run on multiple platforms.
  • User's account information and services can now be stored and saved in MongoDB User database.
  • Bug fixes and UI tweaksβ€Šβ€”β€ŠChronos is now a faster and more seamless experience than ever.
  • Updated step-by-step instructions to learn how to deploy local services such as dockerized containers, microservices, and gRPC examples, as well as monitor them using the chronosmicro/tracker npm package.
  • Steamlined approach to access and dynamically displayed grafana dashboards for deployed EKS cluster (utilizing Prometheus data scraping and generated grafana dashboards) using the Grafana API.

Previously implemented updates:

  • Option to choose between cloud hosted services and local services, now giving Chronos the ability to monitor instances and clusters on AWS' EC2, ECS, and EKS platforms.
  • An updated AWS Graphs Container to dynamically render plots for EC2 or ECS data fetched with Electron using event listeners connecting to AWS CloudWatch w/ the aws-sdk package, as well as utilizing Prometheus data scraping and Grafana integration to fetch and render EKS data.
  • A step-by-step instruction on setting up a new, functional EC2 instance, ECS cluster, and EKS cluster, ready to be monitored and tested by the app.

Features

  • Cloud-Based Instances:
    • Option to choose between cloud hosted services and local services, now giving Chronos the ability to monitor instances and clusters on AWS' EC2, ECS, and EKS platforms AWS
  • Local Instances utilitizing @chronosmicro/tracker NPM package:
    • Distributed tracing enabled across microservices applications
    • Displays real-time temperature, speed, latency, and memory statistics for local services
    • Display and compare multiple microservice metrics in a single graph
    • Kubernetes monitoring via Prometheus server
    • Compatible with GraphQL
    • Monitor an Apache Kafka cluster via the JMX Prometheus Exporter
    • Supports PostgreSQL and MongoDB databases

Installation

This is for the latest Chronos version 10 release.

NOTE: The Chronos tracker code is included in the chronos_npm_package folder for ease of development, but the published npm package can be downloaded by running npm install @chronosmicro/tracker


WSL2 Environment

If you wish to launch the Electron Application in an WSL2 envirronment(Ubuntu) you may need the following commands for an Electron window to appear

  • Install VcXsrv

  • Run the following command in the terminal

sudo apt install libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev
  • After running your VcXsrv instance, run the following command in the terminal
export DISPLAY="`sed -n 's/nameserver //p' /etc/resolv.conf`:0"

Running the Chronos Desktop App in Development Mode

  1. From the root directory, run npm install
  2. Run 'npm run build'
  3. Open a new terminal and run npm run dev:app to start the Webpack development server
  4. Open a new terminal and run npm run dev:electron to start the Electron UI in development mode

Packing the Chronos App into an Executable

  1. From the root directory, run npm run build
  2. Run npm package
  3. Find the chronos.app executable inside the newly created release-builds folder in the root directory.

Chronos Tracker Microservice Examples

We provide three working example microservice applications branch for you to test out Chronos:

  • examples/microservices
  • examples/docker
  • examples/kubernetes

Microservices

In the microservices folder, we provide a sample microservice application that successfully utilizes Chronos to apply all the powerful, built-in features of our monitoring tool. You can then visualize the data with the Electron app.

Refer to the README in the microservices folder for more details.

Docker

In the Docker folder within the master branch, we provide a sample dockerized microservices application to test out Chronos and to apply distributed tracing across different containers for your testing convenience.

The docker folder includes individual Docker files in their respective directories. A docker-compose.yml is in the root directory in case you'd like to deploy all services together.

Refer to the README in the docker folder for more details.


Kubernetes

The kubernetes folder includes a React frontend and an Express server backend, and the Dockerfiles needed to containerize them for Kubernetes deployment. The launch folder includes the YAML files needed to configure the deployments, services, and configurations of the frontend, backend, and Prometheus server.

Refer to the README in the kubernetes folder for more details.


AWS

The AWS folder includes 3 example applications with instructions on how to deploy them in AWS platforms. Note that using AWS services may cause charges.

  • The ECS folder includes an web application ready to be containerized using Docker. The instruction shows how to deploy application to ECS using Docker CLI command, and it will be managed by Fargate services.
  • The EC2 folder includes a React/Redux/SQL web application ready to be containerized using Docker. The instruction shows how to deploy application using AWS Beanstalk and connect application to RDS database. Beanstalk service will generate EC2 instance.
  • The EKS folder includes a containerized note taking app that uses a Mongo database as its persistent volume. The instructions show how to deploy this application on EKS, how to monitor with Prometheus & Opencost, and how to use Grafana to grab visualizations.

Refer to the ECS README, EC2 README, and EKS README example in the AWS folder for more details.


Chronos Website

The chronosWebsite branch holds the code for the splash page. Edit the website by checking out the branch, modifying the website, and then updating the AWS S3 bucket with the changes.

Return to Top

Technologies

  • Electron
  • React
  • JavaScript
  • TypeScript
  • PostgreSQL
  • MongoDB
  • Node
  • Express
  • HTTP
  • gRPC
  • GraphQL
  • Docker
  • AWS
  • Jest
  • Webpack
  • Material-UI
  • Vis.js
  • Plotly.js
  • Apache Kafka

Contributing

Development of Chronos is open source on GitHub through the tech accelerator umbrella OS Labs, and we are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving Chronos.

License

Chronos is MIT licensed.

Return to Top

More Repositories

1

Svelvet

πŸŽ› A Svelte library for building dynamic, infinitely customizable node-based user interfaces and flowcharts
Svelte
2,540
star
2

OverVue

Prototyping Tool For Vue Devs ι€‚η”¨δΊŽVueηš„εŽŸεž‹ε·₯ε…·
Vue
2,463
star
3

Reactime

Developer tool for time travel debugging and performance monitoring in React applications.
TypeScript
2,165
star
4

PreVue

🎨 All in One Prototyping Tool For Vue Developers.
Vue
1,389
star
5

Spearmint

Testing, simplified. || An inclusive, accessibility-first GUI for generating clean, semantic Javascript tests in only a few clicks of a button.
TypeScript
1,289
star
6

SvelteStorm

SvelteStorm is an open-source IDE with a built-in Debugging window for viewing and debugging your Svelte project in real-time
Svelte
1,007
star
7

Swell

Swell: API development tool that enables developers to test endpoints served over streaming technologies including Server-Sent Events (SSE), WebSockets, HTTP2, GraphQL, gRPC, and tRPC..
JavaScript
980
star
8

Docketeer

A Docker & Kubernetes developer tool to manage containers & visualize both cluster and container metrics
TypeScript
862
star
9

obsidian

GraphQL, built for Deno - a native GraphQL caching client and server module
TypeScript
751
star
10

Recoilize

A Chrome Dev tool for debugging applications built with the experimental Recoil.js state management library.
TypeScript
604
star
11

SeeQR

A database analytic tool that allows developers to compare the efficiency of different schemas and queries on a granular level to make better informed architectural decisions regarding SQL databases at various scales.
TypeScript
594
star
12

Quell

Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution for GraphQL. Use Quell to prevent redundant client-side API requests and to minimize costly server-side response latency.
TypeScript
578
star
13

vno

a build tool for compiling and bundling Vue single-file components
TypeScript
432
star
14

ReacType

Prototyping Tool for exporting React/Typescript Applications!
TypeScript
429
star
15

Chromogen

UI-driven Jest test-generation package for Recoil selectors and Zustand store hooks
TypeScript
280
star
16

dbSpy

Visualize, modify, and build your database with dbSpy! An open-source data modeling tool to facilitate relational database development.
TypeScript
263
star
17

DenoGres

Deno + PostgreSQL = DenoGres
TypeScript
212
star
18

obsidian-developer-tool

Developer tool for monitoring client cache performance for Obsidian 8.0
TypeScript
49
star
19

SeeQR-Web

A web-based database analytic tool that allows a developer to compare the efficiency of different queries on a granular level to make better informed architectural decisions regarding Postgres databases at various scales.
TypeScript
15
star
20

Sveltestorm-Website

SvelteStorm website
Svelte
10
star
21

QuellDemo

Demo for Quell written in React utilizing Material UI, chartJS, redis, and graphQL.
TypeScript
7
star
22

reactime-web

Web page for Reactime
JavaScript
6
star
23

Reactype-web

This is the ReacType Website created with Next.js and Typescript
TypeScript
5
star
24

SeeQR-Website

SeeQR's Website
TypeScript
3
star