Giter Site home page Giter Site logo

k8liu / chronos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-source-labs/chronos

0.0 0.0 0.0 179.34 MB

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

Home Page: https://www.npmjs.com/package/@chronosmicro/tracker

License: MIT License

JavaScript 29.49% TypeScript 54.07% HTML 0.27% SCSS 16.17%

chronos's Introduction

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, and containers. Use Chronos to see real-time data monitoring and receive automated notifications over Slack or email.

What's New?

  • Metric query tool so you can filter out specific metricsβ€Šβ€”β€Šnow you only have to see what you want on the dashboard and reduce database bloat, keeping your database from being overwhelmed with data points that you don't actually need.
  • Kubernetes metrics monitoring via Prometheus.
  • Additional metrics added, bringing Chronos up from only 12 to 100+ metrics that are currently available
  • Option to filter by category and individual metric, and flip between services and categories with ease
  • Apache Kafka monitoring capability, all you need to do is run Prometheus JMX exporter on the system your Chronos application is running on. A sample JMX config.yaml file is provided in the Chronos repository for a quick and easy setup, however you are free to configure however you like.
  • Bug fixes and UI tweaksβ€Šβ€”β€ŠChronos is now a more seamless experience than ever.

Features

  • Distributed tracing enabled across microservices applications
  • Kubernetes monitoring via Prometheus server
  • Compatible with GraphQL
  • Supports PostgreSQL and MongoDB databases
  • Displays real-time temperature, speed, latency, and memory statistics
  • Display and compare multiple microservice metrics in a single graph
  • Monitor an Apache Kafka cluster via the JMX Prometheus Exporter
  • Monitor a Kubernetes cluster via a Prometheus monitoring server

Installation

This is for the latest Chronos version 8 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


Node Version

Make sure you're running version 16.17.1 of Node, to align with the Node version used by Electron version 22.


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. Open a terminal and run npm run dev:app to start the Webpack development server
  3. Open another 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.


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

chronos's People

Contributors

ronellecaguioa avatar mesherrera avatar lu0713 avatar wang3101 avatar gregpalace avatar troyprejusa avatar umius-brian avatar mjiang108 avatar fredwards avatar curiousyang avatar jenaepen avatar williamowen65 avatar gracepark01 avatar rtbuckner avatar hodesza avatar derekquoc avatar gp3-rs avatar kitloong1 avatar brunoportela avatar dialloousman avatar justinlkirk avatar hann7 avatar ajlee12 avatar alon25 avatar robicano22 avatar patpat20 avatar jessllee avatar j-dannymartinez avatar duane11003 avatar timpagra avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.