{"id":15127741,"url":"https://github.com/open-source-labs/chronos","last_synced_at":"2025-12-26T20:49:32.730Z","repository":{"id":37180877,"uuid":"206973196","full_name":"open-source-labs/Chronos","owner":"open-source-labs","description":"📊 📊 📊 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.","archived":false,"fork":false,"pushed_at":"2025-04-04T14:23:16.000Z","size":263328,"stargazers_count":845,"open_issues_count":65,"forks_count":206,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-07T21:01:40.821Z","etag":null,"topics":["aws","container-stats","desktop-application","docker","docker-container","electron","graphql","grpc","health","kafka","kubernetes","microservice-toolkit","microservices","monitoring","monitoring-tool","nodejs","npm-module","npm-package","react","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@chronosmicro/tracker","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-source-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"open-source-labs","custom":["https://donorbox.org/donations-to-oslabs-inc"]}},"created_at":"2019-09-07T13:37:38.000Z","updated_at":"2025-03-29T10:32:51.000Z","dependencies_parsed_at":"2023-02-06T11:01:39.952Z","dependency_job_id":"bce96eb5-ec14-4f6e-8df2-2bfae5ab314a","html_url":"https://github.com/open-source-labs/Chronos","commit_stats":null,"previous_names":["oslabs-beta/chronos"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FChronos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FChronos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FChronos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FChronos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-source-labs","download_url":"https://codeload.github.com/open-source-labs/Chronos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986270,"owners_count":21194024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","container-stats","desktop-application","docker","docker-container","electron","graphql","grpc","health","kafka","kubernetes","microservice-toolkit","microservices","monitoring","monitoring-tool","nodejs","npm-module","npm-package","react","typescript"],"created_at":"2024-09-26T02:05:22.854Z","updated_at":"2025-12-26T20:49:32.650Z","avatar_url":"https://github.com/open-source-labs.png","language":"TypeScript","funding_links":["https://github.com/sponsors/open-source-labs","https://donorbox.org/donations-to-oslabs-inc"],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://chronoslany.com/\"\u003e\n    \u003cimg src=\"assets/animated_logo.gif\" alt=\"Chronos\" title=\"Chronos\" align=\"center\" height=\"500\" /\u003e\n\u003c/a\u003e\n\u003cdiv align=\"center\"\u003e\n\n![Build Passing](https://img.shields.io/badge/build-awesome-brightgreen)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/open-source-labs/Chronos)\n![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)\n![Release: 13.0](https://img.shields.io/badge/Release-12.0-brightgreen)\n\n\u003c/div\u003e\n\n# Chronos\n\n### ⭐️ Star us on GitHub! ⭐️\n\n**Visit our website at [chronoslany.com](https://chronoslany.com/).**\n\nChronos is a comprehensive developer tool that monitors the health and web traffic for containerized (Docker \u0026 Kubernetes) and non-containerized microservices communicated via REST APIs or gRPC, whether hosted locally or on Amazon Web Services (AWS). Use Chronos to see real-time data monitoring and receive automated notifications over Slack or email.\n\n## What's New?\n\n### Chronos 15.0\n\n\u003cdiv\u003e\n\nContributors:\n[Arnold Pinkhasov](https://github.com/apinkhasov101),\n[Ashley Bisram](https://github.com/ashleybisram),\n[Fridchard Chery](https://github.com/Gitfrich),\n[Peter Toussaint](https://github.com/Peter2oussaint)\n\n\u003c/div\u003e\nUpdates:\n\u003cli\u003eImproved runtime by incorporating esbuild-loader, removing deprecated syntax/unused node modules, and other bundling optimizations.\u003c/li\u003e\n\u003cli\u003eRefactored SASS by updating deprecated syntax and import statements.\u003c/li\u003e\n\u003cli\u003eGrafana dashboard updates include deprecated syntax removal and a more intuitive layout, making it simpler for users to visualize key metrics in the newest version of Grafana.\u003c/li\u003e\n\u003cli\u003eTypeScript migration allows contributors and users to catch errors early and work with a more robust codebase, making the app more reliable.\u003c/li\u003e\n\u003cli\u003eIntroduced ChroNotes, full documentation of our file structure and their purposes.\u003c/li\u003e\n\u003cli\u003eRefactored the UI of the app to give it a more intuitive appearance regarding where/how to initialize network monitoring.\u003c/li\u003e\n\n\n\u003ca href='https://ashleybisram.medium.com/a-new-chapter-for-chronos-introducing-version-15-0-12b83def342b'\u003eVersion 15.0 Medium Article\u003c/a\u003e\n\n### **Iteration Log**\n\u003cdetails\u003e\u003csummary\u003eChronos 14.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\n\nContributors:\n[Michael Tagg](https://github.com/mdtagg),\n[Ted Pham](https://github.com/TedPham397),\n[Sofia Sarhiri](https://github.com/sarhiri),\n[Stephen Yang](https://github.com/stephenhyang)\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eImplemented a new visualization button (example) to expedite data rendering processes.\u003c/li\u003e\n    \u003cli\u003eRefactored microservices example, switched over to community version of MongoDB for easier URI implementation.\u003c/li\u003e\n    \u003cli\u003eModularized cluttered components into modular units to improve code readability and reusability.\u003c/li\u003e\n    \u003cli\u003eOptimized startup scripts to reduce application load time and streamline environment configuration.\u003c/li\u003e\n    \u003cli\u003eUpgraded Material-UI from version 4 to version 5, adapting to new API changes and improving UI responsiveness. \u003c/li\u003e\n    \u003cli\u003eRefactored portions of the electron app \u003c/li\u003e\n    \u003cli\u003eRefactored data parsing logic to reduce unnecessary rerenders and improve app performance\u003c/li\u003e\n    \u003cli\u003eFixed data bottle necks in the local npm packages, data is now able to flow to microservices for data visualization\u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://medium.com/@m.sofiasarhiri/a-tale-as-old-as-time-for-the-modern-developer-chronos-v-14-f84733fd4f93'\u003eVersion 14.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eChronos 13.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\n\nContributors:\n[Elsa Holmgren](https://github.com/ekh88),\n[Mckenzie Morris](https://github.com/mckenzie-morris),\n[Kelly Chandler](https://github.com/kchandler44),\n[Sean Simpson](https://github.com/seantokuzo),\n[Zhongyan Liang](https://github.com/ZhongyanLiang)\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eCreated new and improved microservices application with updated syntax to better demonstrate Chronos' capabilities\u003c/li\u003e\n    \u003cli\u003eDockerized microservices application to demonstrate Chronos within a containerized environment\u003c/li\u003e\n    \u003cli\u003eAdded visulization of Chronos' codebase to illustrate overall structure\u003c/li\u003e\n    \u003cli\u003eSimplified installation and startup instructions in the root directory README file\u003c/li\u003e\n    \u003cli\u003eImproved documentation in chronos_npm_package README file for easier on-boarding \u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://medium.com/@holmgren.e/crisis-averted-chronos-guards-against-development-disasters-8f3653f3c136'\u003eVersion 13.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eChronos 12.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\nContributors:\n[Haoyu Liu](https://github.com/HaoyL666),\n[Edwin Leong](https://github.com/edwinlny),\n[Eisha Kaushal](https://github.com/eishakaushal),\n[Tyler Coryell](https://github.com/Tcoryell)\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eGrafana charting and visualizer\u003c/li\u003e\n    \u003cli\u003eIncrease in Prometheus and cAdvisor integration span\u003c/li\u003e\n    \u003cli\u003eIncreased testing coverage to include unit testing and Selenium-based, end-to-end testing\u003c/li\u003e\n    \u003cli\u003eIntegrated CI/CD which automates GitHub Action to run testing suites in order and create a publishing action to NPM Registry\u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://medium.com/@coryelltyler/grafana-charting-improved-testing-and-ci-cd-with-chronos-12-0-6a1156cae456'\u003eVersion 12.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eChronos 11.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\nContributors:\n[Brisa Zhu](https://github.com/beezoo10),\n[Lucie Seidler](https://github.com/LucieSeidler),\n[Justin Poirier](https://github.com/jcpoirier20),\n[Jeffrey Na](https://github.com/jeffreyNa),\n[Kelsi Webb](https://github.com/kelsicw)\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eInteractive charting which can display and compare metrics in rendered graphs\u003c/li\u003e\n    \u003cli\u003eIncreased user database security with user authorization to connect multiple\u003c/li\u003e\n    \u003cli\u003eservices and databases and have instances persist without having to reconnect\u003c/li\u003e\n    \u003cli\u003eImproved documentation by adding ReadMes about how to initialize the app, how to use the given examples, and how to update config files\u003c/li\u003e\n    \u003cli\u003eUpdated NPM Package to ‘increase reliability and ease of navigation\u003c/li\u003e\n    \u003cli\u003eFixed bugs and improved test coverage\u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://medium.com/@zhu.brisa/interactive-charting-increases-user-engagement-with-chronos-11-0-61b6b8b7399b'\u003eVersion 11.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eChronos 10.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\nContributors:\n[Brian Lim](https://github.com/brianlim89),\n[Claire Tischuk](https://github.com/BoopdiBop),\n[Lennon Stewart](https://github.com/noahoo7),\n[Victor Ye](https://github.com/vctorye),\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eFull user authentication integrating with a functional database which enables users to securely save their profile and data\u003c/li\u003e\n    \u003cli\u003eUpdated microservices, gRPC, and Dockerized app examples\u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://medium.com/@br.lim89/taking-chronos-to-the-next-level-with-eks-monitoring-c9102a450b3c'\u003eVersion 10.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eChronos 9.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\nContributors:\n[Brian Lim](https://github.com/brianlim89),\n[Claire Tischuk](https://github.com/BoopdiBop),\n[Lennon Stewart](https://github.com/eishakaushal),\n[Victor Ye](https://github.com/vctorye)\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eAdded AWS - Users of Chronos are now able to monitor and visualize containers running in Amazon’s Elastic Kubernetes Service (EKS)~Medium\u003c/li\u003e\n    \u003cli\u003eAbility to monitor cost metrics through Opencast integration\u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://medium.com/@br.lim89/taking-chronos-to-the-next-level-with-eks-monitoring-c9102a450b3c'\u003eVersion 9.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eChronos 8.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\nContributors:\n[Vince Ho](https://github.com/brianlim89),\n[Matt Giant](https://github.com/BoopdiBop),\n[Derek Lam](https://github.com/eishakaushal),\n[Kit Loong Yee](https://github.com/vctorye)\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eRewrite microservice in a language with a higher level of support such as GO or Java\u003c/li\u003e\n    \u003cli\u003eUse packages such as OpenTelementry to record data and export said data to an additional application like Zipkin or Prometheus\u003c/li\u003e\n    \u003cli\u003ePurchase a license to one of the few monitoring tools that support gRPC and Node.js.\u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://derekquoc.medium.com/monitoring-node-js-grpc-microservices-with-chronos-deac9b227122'\u003eVersion 8.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eChronos 7.0\u003c/summary\u003e\n    \u003cul\u003e\n    \u003cdiv\u003e\n\nContributors:\n[Yang Song](https://github.com/curiousyang),\n[Giovanni Floreslovo](https://github.com/gfloresl),\n[James Edwards](https://github.com/Fredwards),\n[Alex Kolb](https://github.com/alexkolb1)\n\n\u003c/div\u003e\nUpdates:\n    \u003cul\u003e\n    \u003cli\u003eAbility to filter out specific metrics using a query tool\u003c/li\u003e\n    \u003cli\u003eIncreased the number of metrics available from 12 to 100+\u003c/li\u003e\n    \u003cli\u003eOptions to filter metrics by category\u003c/li\u003e\n    \u003cli\u003eApache Kafka monitoring capabilities\u003c/li\u003e\n    \u003cli\u003eBug fixes and UI improvements\u003c/li\u003e\n    \u003c/ul\u003e\n\n\u003ca href='https://medium.com/@hannahsantoyo/introducing-chronos-7-a-complete-health-monitoring-tool-for-microservices-apache-kafka-clusters-f1ebad038074'\u003eVersion 7.0 Medium Article\u003c/a\u003e\n\n\u003c/ul\u003e\n\u003c/details\u003e\n\n### With Chronos 15.0\n\n\u003ca href=\"https://chronoslany.com/\"\u003e\n    \u003cimg src=\"assets/demo.gif\" alt=\"Chronos\" title=\"Chronos\" align=\"center\" height=\"500\" width=\"auto\" /\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\n\n## Overview of the CodeBase\n\n- In our ChroNotes, we have a full overview of all the files in the codebase, and their purpose.\n\u003ca href='https://docs.google.com/document/d/e/2PACX-1vTWIX6Is3uuvWX73ab5K521X7Ddr_fVN64F82bJ8l4VNF45cM9PbfDj2gVV9MVi_HhDrbNmZK51-dHP/pub'\u003eClick here to view\u003c/a\u003e!\n\u003cimg src='./assets/ChroNotes.png' alt='ChroNotes screenshot' align='center' height='500'/\u003e\n- If you want to visualize the way the files in the app are connected, we suggest using this data visualizer. Below, it's showing the same repository, but instead of a directory structure, each file and folder as a circle: the circle’s color is the type of file, and the circle’s size represents the size of the file. See live demo\n  \u003ca href='https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=oslabs-beta%2FChronos'\u003ehere\u003c/a\u003e.\n  \u003cimg src=\"assets/codebase_visulization.png\" alt=\"codebase visulization\" align=\"center\" height=\"500\"/\u003e\n\n\n## Features\n\n- Cloud-Based Instances:\n  - Option to choose between cloud hosted services and local services, giving Chronos the ability to monitor instances and clusters on AWS EC2, ECS, and EKS platforms \u003cimg src=\"assets/aws-logo-color.png\" alt=\"AWS\" title=\"AWS\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e\n- Local instances utilitizing `@chronosmicro/tracker` NPM package:\n  - Enables distributed tracing enabled across microservices applications\n  - Displays real-time temperature, speed, latency, and memory statistics for local services\n  - Displays and compares multiple microservice metrics in a single graph\n  - Allow Kubernetes and Docker monitoring via Prometheus server and Grafana visualization.\n  - Compatible with \u003cimg src=\"assets/graphql-logo-color.png\" alt=\"GraphQL\" title=\"GraphQL\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e\n  - Monitor an \u003ca href=\"#\"\u003e\u003cimg src=\"assets/pngwing.com.png\" alt=\"Apache Kafka\" title=\"Apache Kafka\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e cluster via the JMX Prometheus Exporter\n  - Supports \u003ca href=\"#\"\u003e\u003cimg src=\"assets/postgres-logo-color.png\" alt=\"PostgreSQL\" title=\"PostgreSQL\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e and \u003cimg src=\"assets/mongo-logo-color.png\" alt=\"MongoDB\" title=\"MongoDB\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e databases\n\n# Installation\n\nThis is for the latest Chronos **version 15.0 release**.\n\n## NPM Package\n\nIn order to use Chronos within your own application, you must have the `@chronosmicro/tracker` dependency installed.\n\nThe `@chronosmicro/tracker` package tracks your application's calls and scrapes metrics from your system.\n\n- **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`.\n\nFor more details on the NPM package and instructions for how to use it, please view the [Chronos NPM Package README](./chronos_npm_package/README.md).\n\n#\n\n\u003c!-- ### Node Version --\u003e\n\u003c!-- v12 notes: Our team also had no issues - we ran Node 18 and Electron 22--\u003e\n\u003c!-- v11 notes: Our team also had no issues - we ran Node 18.--\u003e\n\u003c!-- v10 notes: Our team never reverted to version 16.17.1 and had no issues running Node 18 and Electron 22 together. Commenting this out for future iteration teams' reference. --\u003e\n\u003c!-- Make sure you're running version 16.17.1 of \u003cimg src=\"assets/node-logo-color.png\" alt=\"Node\" title=\"Node\" align=\"center\" height=\"20\" /\u003e, to align with the \u003cimg src=\"assets/node-logo-color.png\" alt=\"Node\" title=\"Node\" align=\"center\" height=\"20\" /\u003e version used by \u003cimg src=\"assets/electron-logo-color.png\" alt=\"Electron\" title=\"Electron\" align=\"center\" height=\"20\" /\u003e version 22. --\u003e\n\u003c!-- \u003cbr\u003e --\u003e\n\n## Chronos Desktop Application\n\n\u003c!-- v13 notes : WSL environment does not work -----------------------------------\u003e\n\u003c!-- ### WSL2 Environment\n\nIf you wish to launch the Electron Application in an WSL2 envirronment(Ubuntu) you may need the following commands for an Electron window to appear\n\n- Install \u003ca href='https://sourceforge.net/projects/vcxsrv/'\u003eVcXsrv\u003c/a\u003e\n\n- Run the following command in the terminal\n\n```\nsudo 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\n```\n\n- After running your VcXsrv instance, run the following command in the terminal\n\n```\nexport DISPLAY=\"`sed -n 's/nameserver //p' /etc/resolv.conf`:0\"\n``` --\u003e\n\n### Running the Chronos desktop app in development mode (WSL Incompatible)\n\n1. From the root directory, run `npm install`\n2. Run `npm run start:electron` to start the electron app.\n3. Run `npm audit fix` or `npm audit fix --force` if prompted\n4. Refer to `Examples` sections below to spin up example applications.\n   (Recommended):\n   If you have mongo community edition running locally just run `npm run start:microservices` to start populating database with server data(more detail in Microservices Example section).\n\n#\n\n### Packing the Chronos desktop app into an executable\n\n1. From the root directory, run `npm run build`\n2. Run `npm run package`\n3. Find the `chronos.app` executable inside the newly created `release-builds` folder in the root directory.\n\n#\n\n### Creating User Database\n\n**NOTE: You must create your own user database for extended features**\n\n1. Create a MongoDB database in which to store user information and insert it within a root .env file based on .env.example [.env.example](./.env.example) (_.env.example_) file.\n   - This database will privately store user information.\n2. Once this is set up, you can create new users, log in, and have your data persist between sessions.\n\n#\n\n# Examples\n\nWe provide eight example applications for you to test out both the Chronos NPM package and the Chronos desktop application:\n\n- AWS\n  - [EC2 README](./examples/AWS/AWS-EC2/README.md)\n  - [ECS README](./examples/AWS/AWS-ECS/README.md)\n  - [EKS README](./examples/AWS/AWS-EKS/README.md)\n- Docker\n  - [Docker README](./examples/docker/README.md)\n- gRPC\n  - [gRPC README](./examples/gRPC/README.md)\n- Kubernetes\n  - [Kubernetes README](./examples/kubernetes/README.md)\n- Microservices\n  - [Microservices README](./examples/microservices/README.md)\n\nAdditional documentation on how Chronos is used **in each example** can be found in the [Chronos NPM Package README](./chronos_npm_package/README.md).\n\n#### _AWS_\n\nThe `AWS` folder includes 3 example applications with instructions on how to deploy them in AWS platforms. Note that using AWS services may cause charges.\n\n- 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.\n- 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.\n- 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 \u0026 Opencost, and how to use Grafana to grab visualizations.\n\nRefer to the [EC2 README](./examples/AWS/AWS-EC2/README.md), [ECS README](./examples/AWS/AWS-ECS/README.md), and [EKS README](./examples/AWS/AWS-EKS/README.md) example in the _AWS_ folder for more details.\n\n#\n\n#### _Docker_\n\nIn the \u003ca href=\"#\"\u003e\u003cimg src=\"assets/docker-logo-color.png\" alt=\"Docker\" title=\"Docker\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e 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.\n\nThe `docker` folder includes individual \u003ca href=\"#\"\u003e\u003cimg src=\"assets/docker-logo-color.png\" alt=\"Docker\" title=\"Docker\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e files in their respective directories. A docker-compose.yml is in the root directory in case you'd like to deploy all services together.\n\nRefer to the [Docker README](./examples/docker/README.md) in the `docker` folder for more details.\n\n#\n\n#### _gRPC_\n\nThe `gRPC` folder includes an HTML frontend and an Express server backend, as well as proto files necessary to build package definitions and make gRPC calls. The _reverse_proxy_ folder contains the server that requires in the clients, which contain methods and services defined by proto files.\n\nRefer to the [gRPC README](./examples/gRPC/README.md) in the `gRPC` folder for more details.\n\n#\n\n#### _Kubernetes_\n\nThe `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, Prometheus server, and Grafana.\n\nRefer to the [Kubernetes README](./examples/kubernetes/README.md) in the `kubernetes` folder for more details.\n\n#\n\n#### _Microservices_\n\nIn 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 \u003cimg src=\"assets/electron-logo-color.png\" alt=\"Electron\" title=\"Electron\" align=\"center\" height=\"20\" /\u003e\u003c/a\u003e app.\n\nRefer to the [microservices README](./examples/microservices/README.md) in the `microservices` folder for more details.\n\n#\n\n# Testing\n\nWe've created testing suites for Chronos with React Testing, Jest, and Selenium for unit, integration, and end-to-end tests - instructions on running them can be found in the [testing README](./__tests__/README.md).\n\n#\n\n## Contributing\n\nDevelopment of Chronos is open source on GitHub through the tech accelerator OS Labs, and we are grateful to the community for contributing bug fixes and improvements.\n\nRead our [contributing README](CONTRIBUTING.md) to learn how you can take part in improving Chronos.\n\n#### Past [Contributors](contributors.md)\n\n#\n\n## Technologies\n\n![Electron.js](https://img.shields.io/badge/Electron-191970?style=for-the-badge\u0026logo=Electron\u0026logoColor=white)\n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB)\n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026logo=express\u0026logoColor=%2361DAFB)\n![HTTP](https://img.shields.io/badge/HTTP-394EFF?style=for-the-badge)\n![gRPC](https://img.shields.io/badge/gRPC-394EFF?style=for-the-badge)\n![GraphQL](https://img.shields.io/badge/-GraphQL-E10098?style=for-the-badge\u0026logo=graphql\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![AWS](https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge\u0026logo=amazon-aws\u0026logoColor=white)\n![Jest](https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white)\n![Webpack](https://img.shields.io/badge/webpack-%238DD6F9.svg?style=for-the-badge\u0026logo=webpack\u0026logoColor=black)\n![MUI](https://img.shields.io/badge/MUI-%230081CB.svg?style=for-the-badge\u0026logo=mui\u0026logoColor=white)\n![vis.js](https://img.shields.io/badge/vis.js-3578E5?style=for-the-badge)\n![Plotly](https://img.shields.io/badge/Plotly-%233F4F75.svg?style=for-the-badge\u0026logo=plotly\u0026logoColor=white)\n![Apache Kafka](https://img.shields.io/badge/Apache%20Kafka-000?style=for-the-badge\u0026logo=apachekafka)\n![Grafana](https://img.shields.io/badge/grafana-%23F46800.svg?style=for-the-badge\u0026logo=grafana\u0026logoColor=white)\n![Selenium](https://img.shields.io/badge/-selenium-%43B02A?style=for-the-badge\u0026logo=selenium\u0026logoColor=white)\n![Prometheus](https://img.shields.io/badge/Prometheus-E6522C?style=for-the-badge\u0026logo=Prometheus\u0026logoColor=white)\n![GitHub Actions](https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white)\n![Threejs](https://img.shields.io/badge/threejs-black?style=for-the-badge\u0026logo=three.js\u0026logoColor=white)\n![Kubernetes](https://img.shields.io/badge/kubernetes-%23326ce5.svg?style=for-the-badge\u0026logo=kubernetes\u0026logoColor=white)\n![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white)\n\n## License\n\n[MIT](https://github.com/oslabs-beta/Chronos/blob/master/LICENSE.md)\n\n#\n\n###### Return to [Top](#chronos)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-source-labs%2Fchronos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-source-labs%2Fchronos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-source-labs%2Fchronos/lists"}