You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Visit our website at [chronoslany.com](https://chronoslany.com/).**
16
15
17
16
Chronos is a comprehensive developer tool that monitors the health and web traffic for containerized (Docker & 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.
18
17
19
-
20
18
## What's New?
21
19
22
-
### With Chronos 12.0:
23
-
24
-
- Enhanced metrics visualization by integrating more interactive and adaptable Grafana charts for Docker and Kubernetes use cases.
25
-
- Achieved an 80% boost in test coverage by formulating comprehensive unit, integration, and end-to-end tests employing Jest and Selenium.
26
-
- Implemented Prometheus data scraping functionality for Docker containers, facilitating seamless metric collection and monitoring.
27
-
- Devised an immersive 3D visualization that effectively illustrates the Kubernetes cluster infrastructure, encompassing Namespace, Service, and Pod entities. This dynamic visualization provides developers and users with heightened insights into intricate resource allocation and configuration within the cluster.
28
-
- Streamlined operational effectiveness by coordinating CI/CD pipelines, automating testing workflows, and establishing deployment protocols, ultimately leading to accelerated development cycles and heightened dependability.
29
-
- Expanded Typescript coverage to enhance code quality and bolster application resilience.
30
-
- Updated the Docker and Kubernetes example READMEs with detailed instructions on configuring Prometheus and Grafana seamlessly.
31
-
- Enhanced clarity of instructions in the `@chronosmicro/tracker` NPM package's README, offering comprehensive guidance on utilizing the package to monitor individual applications effectively.
@@ -38,26 +28,29 @@ Chronos is a comprehensive developer tool that monitors the health and web traff
38
28
<br>
39
29
40
30
**Previously implemented updates:**
41
-
- Added interactive charting to better visualize metrics and increase user engagement with their data
42
-
- Followed best test-driven development practices and increased testing with React Testing and Jest for the front end
43
-
- Overhauled user database security, mitigating database breaches and providing a safer experience
44
-
- Bug fixes and UI tweaks, creating a more pleasant user experience
45
-
- Updated outdated README instructions within the provided Docker, gRPC, Kubernetes, and microservices examples
46
-
- Revised README instructions for the `@chronosmicro/tracker` NPM package
31
+
32
+
- Enhanced metrics visualization by integrating more interactive and adaptable Grafana charts for Docker and Kubernetes use cases.
33
+
- Achieved an 80% boost in test coverage by formulating comprehensive unit, integration, and end-to-end tests employing Jest and Selenium.
34
+
- Streamlined operational effectiveness by coordinating CI/CD pipelines, automating testing workflows, and establishing deployment protocols, ultimately leading to accelerated development cycles and heightened dependability.
35
+
- Updated the Docker and Kubernetes example READMEs with detailed instructions on configuring Prometheus and Grafana seamlessly.
36
+
37
+
## Overview of the CodeBase
38
+
39
+
- Instead of the typical folders & files view, a visual representation of the code is created. 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 <ahref='https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=oslabs-beta%2FChronos'>here</a>.
- 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 <imgsrc="assets/aws-logo-color.png"alt="AWS"title="AWS"align="center"height="20" /></a>
45
+
- 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 <imgsrc="assets/aws-logo-color.png"alt="AWS"title="AWS"align="center"height="20" /></a>
52
46
- Local instances utilitizing `@chronosmicro/tracker` NPM package:
53
-
- Enables distributed tracing enabled across microservices applications
54
-
- Displays real-time temperature, speed, latency, and memory statistics for local services
55
-
- Displays and compares multiple microservice metrics in a single graph
56
-
- Allow Kubernetes and Docker monitoring via Prometheus server and Grafana visualization.
57
-
- Compatible with <imgsrc="assets/graphql-logo-color.png"alt="GraphQL"title="GraphQL"align="center"height="20" /></a>
58
-
- Monitor an <ahref="#"><imgsrc="assets/pngwing.com.png"alt="Apache Kafka"title="Apache Kafka"align="center"height="20" /></a> cluster via the JMX Prometheus Exporter
59
-
- Supports <ahref="#"><imgsrc="assets/postgres-logo-color.png"alt="PostgreSQL"title="PostgreSQL"align="center"height="20" /></a> and <imgsrc="assets/mongo-logo-color.png"alt="MongoDB"title="MongoDB"align="center"height="20" /></a> databases
60
-
47
+
- Enables distributed tracing enabled across microservices applications
48
+
- Displays real-time temperature, speed, latency, and memory statistics for local services
49
+
- Displays and compares multiple microservice metrics in a single graph
50
+
- Allow Kubernetes and Docker monitoring via Prometheus server and Grafana visualization.
51
+
- Compatible with <imgsrc="assets/graphql-logo-color.png"alt="GraphQL"title="GraphQL"align="center"height="20" /></a>
52
+
- Monitor an <ahref="#"><imgsrc="assets/pngwing.com.png"alt="Apache Kafka"title="Apache Kafka"align="center"height="20" /></a> cluster via the JMX Prometheus Exporter
53
+
- Supports <ahref="#"><imgsrc="assets/postgres-logo-color.png"alt="PostgreSQL"title="PostgreSQL"align="center"height="20" /></a> and <imgsrc="assets/mongo-logo-color.png"alt="MongoDB"title="MongoDB"align="center"height="20" /></a> databases
61
54
62
55
# Installation
63
56
@@ -83,6 +76,7 @@ For more details on the NPM package and instructions for how to use it, please v
83
76
<!-- <br> -->
84
77
85
78
## Chronos Desktop Application
79
+
86
80
### WSL2 Environment
87
81
88
82
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
1. Create a MongoDB database in which to store user information and insert it on line 2 within the [UserModel.ts](./electron/models/UserModel.ts) (_electron/models/UserModel.ts_) file.
109
-
- This database will privately store user information.
110
-
3. Once this is set up, you can create new users, log in, and have your data persist between sessions.
103
+
- This database will privately store user information.
104
+
2. Once this is set up, you can create new users, log in, and have your data persist between sessions.
105
+
111
106
#
107
+
112
108
### Running the Chronos desktop app in development mode
113
109
114
110
1. From the root directory, run `npm install`
115
111
2. Run `npm run build`
116
-
3. Open a new terminal and run `npm run dev:app` to start the Webpack development server
117
-
4. Open a new terminal and run `npm run dev:electron` to start the Electron UI in development mode
118
-
.
112
+
3. Depends on the environment, run `npm audit fix` or `npm audit fix --force` if prompted
113
+
4. Open a new terminal and run `npm run dev:app` to start the Webpack development server
114
+
5. Open a new terminal and run `npm run dev:electron` to start the Electron UI in development mode
115
+
.
116
+
119
117
#
118
+
120
119
### Packing the Chronos desktop app into an executable
121
120
122
121
1. From the root directory, run `npm run build`
123
122
2. Run `npm run package`
124
123
3. Find the `chronos.app` executable inside the newly created `release-builds` folder in the root directory.
125
124
126
125
#
126
+
127
127
# Examples
128
128
129
129
We provide eight example applications for you to test out both the Chronos NPM package and the Chronos desktop application:
Additional documentation on how Chronos is used **in each example** can be found in the [Chronos NPM Package README](./chronos_npm_package/README.md).
145
145
@@ -149,26 +149,28 @@ The `AWS` folder includes 3 example applications with instructions on how to dep
149
149
150
150
- 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.
151
151
- 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.
152
-
- 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.
152
+
- 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.
153
153
154
154
Refer 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.
155
155
156
156
#
157
+
157
158
#### _Docker_
158
159
159
160
In the <ahref="#"><imgsrc="assets/docker-logo-color.png"alt="Docker"title="Docker"align="center"height="20" /></a> 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.
160
161
161
162
The `docker` folder includes individual <ahref="#"><imgsrc="assets/docker-logo-color.png"alt="Docker"title="Docker"align="center"height="20" /></a> files in their respective directories. A docker-compose.yml is in the root directory in case you'd like to deploy all services together.
162
163
163
164
Refer to the [Docker README](./examples/docker/README.md) in the `docker` folder for more details.
164
-
#
165
165
166
+
#
166
167
167
168
#### _gRPC_
168
169
169
170
The `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.
170
171
171
172
Refer to the [gRPC README](./examples/gRPC/README.md) in the `gRPC` folder for more details.
173
+
172
174
#
173
175
174
176
#### _Kubernetes_
@@ -184,63 +186,68 @@ Refer to the [Kubernetes README](./examples/kubernetes/README.md) in the `kubern
184
186
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 <imgsrc="assets/electron-logo-color.png"alt="Electron"title="Electron"align="center"height="20" /></a> app.
185
187
186
188
Refer to the [microservices README](./examples/microservices/README.md) in the `microservices` folder for more details.
189
+
187
190
#
188
191
189
192
# Testing
190
193
191
194
We'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).
195
+
192
196
#
197
+
193
198
## Contributing
194
199
195
-
Development 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.
200
+
Development 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.
196
201
197
202
Read our [contributing README](../../CONTRIBUTING.md) to learn how you can take part in improving Chronos.
0 commit comments