Skip to content

Commit b916c2e

Browse files
authored
Merge pull request #19 from HEET-Group/reademe
Readme
2 parents 0f8b63e + f6fdee9 commit b916c2e

File tree

10 files changed

+58
-29
lines changed

10 files changed

+58
-29
lines changed

README.md

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<a href="https://chronoslany.com/">
22
<img src="assets/animated_logo.gif" alt="Chronos" title="Chronos" align="center" height="500" />
33
</a>
4+
<hr>
5+
<a href="https://chronoslany.com/">
6+
<img src="assets/demo.gif" alt="Chronos" title="Chronos" align="center" height="500" width="auto" />
7+
</a>
48

59
<br>
610

@@ -16,27 +20,31 @@
1620
### ⭐️ Star us on GitHub! ⭐️
1721
**Visit our website at [chronoslany.com](https://chronoslany.com/).**
1822

19-
Chronos is a comprehensive developer tool that monitors the health and web traffic of servers, microservices, containers, and Amazon Web Services (AWS). Use Chronos to see real-time data monitoring and receive automated notifications over Slack or email.
23+
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.
2024

2125

2226
## What's New?
2327

24-
### With Chronos 11.0:
28+
### With Chronos 12.0:
29+
30+
- Improved metrics visualization by embedding more interactive and flexible Grafana charts for Docker and Kubernetes examples.
31+
- Increased test coverage up to 80% by crafting comprehensive unit, integration, and end-to-end tests using Jest and Selenium.
32+
- Fixed Docker example for not being able to display metrics correctly.
33+
- Designed an interactive 3D visualization showcasing the infrastructure of Kubernetes clusters (Namespace, Service, Pod), providing enhanced insights into the intricate resource distribution and configuration within the cluster for developers and users.
34+
- Engineered workflow efficiencies by orchestrating CI/CD pipelines, automating testing, and establishing deployment procedures, resulting in accelerated development cycles and higher reliability.
35+
- Increased Typescript coverage for better code quality and application robustness.
36+
- Updated README instructions within the provided Docker and Kubernetes examples for how to configure Prometheus and Grafana in a smooth and easy way.
37+
- Revised README instructions for the `@chronosmicro/tracker` NPM package for how to use this package to monitor their own applications.
38+
2539

40+
**Previously implemented updates:**
2641
- Added interactive charting to better visualize metrics and increase user engagement with their data
2742
- Followed best test-driven development practices and increased testing with React Testing and Jest for the front end
2843
- Overhauled user database security, mitigating database breaches and providing a safer experience
2944
- Bug fixes and UI tweaks, creating a more pleasant user experience
3045
- Updated outdated README instructions within the provided Docker, gRPC, Kubernetes, and microservices examples
3146
- Revised README instructions for the `@chronosmicro/tracker` NPM package
3247

33-
34-
**Previously implemented updates:**
35-
- Streamlined approach to access and dynamically display Grafana dashboards for deployed EKS clusters (utilizing Prometheus data scraping and generated Grafana dashboards) using the Grafana API.
36-
- 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.
37-
- 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.
38-
- Step-by-step instructions on setting up a new, functional EC2 instances, ECS clusters, and EKS clusters, ready to be monitored and tested by the app.
39-
4048
## Features
4149

4250
- Cloud-Based Instances:
@@ -45,15 +53,15 @@ Chronos is a comprehensive developer tool that monitors the health and web traff
4553
- Enables distributed tracing enabled across microservices applications
4654
- Displays real-time temperature, speed, latency, and memory statistics for local services
4755
- Displays and compares multiple microservice metrics in a single graph
48-
- Allow Kubernetes monitoring via Prometheus server
56+
- Allow Kubernetes and Docker monitoring via Prometheus server and Grafana visualization.
4957
- Compatible with <img src="assets/graphql-logo-color.png" alt="GraphQL" title="GraphQL" align="center" height="20" /></a>
5058
- Monitor an <a href="#"><img src="assets/pngwing.com.png" alt="Apache Kafka" title="Apache Kafka" align="center" height="20" /></a> cluster via the JMX Prometheus Exporter
5159
- Supports <a href="#"><img src="assets/postgres-logo-color.png" alt="PostgreSQL" title="PostgreSQL" align="center" height="20" /></a> and <img src="assets/mongo-logo-color.png" alt="MongoDB" title="MongoDB" align="center" height="20" /></a> databases
5260

5361

5462
# Installation
5563

56-
This is for the latest Chronos **version 11.0 release**.
64+
This is for the latest Chronos **version 12.0 release**.
5765

5866
## NPM Package
5967

@@ -68,6 +76,7 @@ For more details on the NPM package and instructions for how to use it, please v
6876
#
6977

7078
<!-- ### Node Version -->
79+
<!-- v12 notes: Our team also had no issues - we ran Node 18 and Electron 22-->
7180
<!-- v11 notes: Our team also had no issues - we ran Node 18.-->
7281
<!-- 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. -->
7382
<!-- Make sure you're running version 16.17.1 of <img src="assets/node-logo-color.png" alt="Node" title="Node" align="center" height="20" />, to align with the <img src="assets/node-logo-color.png" alt="Node" title="Node" align="center" height="20" /> version used by <img src="assets/electron-logo-color.png" alt="Electron" title="Electron" align="center" height="20" /> version 22. -->
@@ -164,7 +173,7 @@ Refer to the [gRPC README](./examples/gRPC/README.md) in the `gRPC` folder for m
164173

165174
#### _Kubernetes_
166175

167-
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.
176+
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, Prometheus server, and Grafana.
168177

169178
Refer to the [Kubernetes README](./examples/kubernetes/README.md) in the `kubernetes` folder for more details.
170179

@@ -179,7 +188,7 @@ Refer to the [microservices README](./examples/microservices/README.md) in the `
179188

180189
# Testing
181190

182-
We've created testing suites for Chronos with React Testing and Jest - instructions on running them can be found in the [testing README](./__tests__/README.md).
191+
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).
183192
#
184193
## Contributing
185194

@@ -189,12 +198,11 @@ Read our [contributing README](../../CONTRIBUTING.md) to learn how you can take
189198

190199
### **Last Iterating Team**
191200

192-
#### Chronos 11.0
193-
- [Lucie Seidler](https://github.com/LucieSeidler)
194-
- [Jeffrey Na](https://github.com/jeffreyNa)
195-
- [Brisa Zhu](https://github.com/beezoo10)
196-
- [Kelsi Webb](https://github.com/kelsicw)
197-
- [Justin Poirier](https://github.com/jcpoirier20)
201+
#### Chronos 12.0
202+
- [Tyler Coryell](https://github.com/Tcoryell)
203+
- [Edwin Leong](https://github.com/edwinlny)
204+
- [Eisha Kaushal](https://github.com/eishakaushal)
205+
- [Haoyu Liu](https://github.com/HaoyL666)
198206

199207

200208
#### Past [Contributors](contributors.md)
@@ -220,6 +228,11 @@ Read our [contributing README](../../CONTRIBUTING.md) to learn how you can take
220228
- <a href="#"><img src="assets/vis-logo-color.png" alt="Vis.js" title="Vis.js" align="center" height="30" /></a>
221229
- <a href="#"><img src="assets/plotly-logo-color.png" alt="Plotly.js" title="Plotly.js" align="center" height="30" /></a>
222230
- <a href="#"><img src="assets/pngwing.com.png" alt="Apache Kafka" title="Apache Kafka" align="center" height="30" /></a>
231+
- <a href="#"><img src="assets/grafana-logo.png" alt="Grafana" title="Grafana" align="center" height="40" /></a>
232+
- <a href="#"><img src="assets/selenium-logo.png" alt="Selenium" title="Selenium" align="center" height="30" /></a>
233+
- <a href="#"><img src="assets/prometheus-logo.png" alt="Prometheus" title="Prometheus" align="center" height="40" /></a>
234+
- <a href="#"><img src="assets/github-action-logo.png" alt="Github Action" title="Github Action" align="center" height="40" /></a>
235+
- <a href="#"><img src="assets/threeJS-logo.png" alt="Github Action" title="Github Action" align="center" height="40" /></a>
223236

224237

225238
## License

assets/demo.gif

23 MB
Loading

assets/github-action-logo.png

17.2 KB
Loading

assets/grafana-logo.png

48.3 KB
Loading

assets/prometheus-logo.png

29.1 KB
Loading

assets/selenium-logo.png

61.9 KB
Loading

assets/threeJS-logo.png

28.6 KB
Loading

chronos_npm_package/README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
- Bug Fixes
33
- Refactored code for additional modularity and customization
44
- Ability for developers to increase number of metrics monitored for microservices
5+
- Connected to Grafana interface.
56
#
67

78
## Features
@@ -10,7 +11,7 @@
1011
- Displays real-time temperature, speed, latency, and memory statistics
1112
- Display and compare multiple microservice metrics in a single graph
1213
- Monitor an Apache Kafka cluster via the JMX Prometheus Exporter
13-
- Monitor a Kubernetes cluster via a Prometheus monitoring server
14+
- Monitor Docker and Kubernetes cluster via a Prometheus monitoring server and display charts using Grafana
1415

1516
#
1617

@@ -215,6 +216,15 @@ module.exports = {
215216
promService: 'prometheus-service',
216217
promPort: 8080,
217218

219+
database: {
220+
connection: 'REST',
221+
type: process.env.CHRONOS_DB,
222+
URI: process.env.CHRONOS_URI,
223+
},
224+
225+
226+
grafanaAPIKey: process.env.CHRONOS_GRAFANA_API_KEY,
227+
218228
// ...
219229
}
220230

contributors.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,8 @@
3333
[Jeffrey Na](https://github.com/jeffreyNa),
3434
[Brisa Zhu](https://github.com/beezoo10),
3535
[Kelsi Webb](https://github.com/kelsicw),
36-
[Justin Poirier](https://github.com/jcpoirier20)
36+
[Justin Poirier](https://github.com/jcpoirier20)
37+
[Tyler Coryell](https://github.com/Tcoryell)
38+
[Edwin Leong](https://github.com/edwinlny)
39+
[Eisha Kaushal](https://github.com/eishakaushal)
40+
[Haoyu Liu](https://github.com/HaoyL666)

examples/kubernetes/README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ CHRONOS_GRAFANA_API_KEY = Bearer [the access token you created in step 3]
3939
```
4040
docker build -t frontend:1.0 .
4141
```
42-
**Mac Users:** Alternative to running the above command, `cd` into the scripts folder and run the `buildClient.sh` script
42+
**Mac Users:** Alternative to running the above command, `cd` into the scripts folder and run the `./buildClient.sh` script
4343

4444

4545
## Build the Server
@@ -66,6 +66,11 @@ CHRONOS_URI = The URI to the desired MongoDB or PostgreSQL database to save heal
6666
docker build -t backend:1.0 .
6767
```
6868

69+
## Start the npm Server
70+
1. `cd` into the `server` folder inside `chronos_npm_package`, then run `npm install` to install all dependencies.
71+
72+
2. run `npm start` to start npm server.
73+
6974

7075
## Deploy the Cluster
7176
1. `cd` into the launch folder and run the following commands to start the services and deployments described in the YAML files:
@@ -76,10 +81,7 @@ kubectl apply -f frontend.yml
7681

7782
**Mac Users:** Alternative to running the above commands, `cd` into the *scripts* folder and run the `startKuber.sh` script.
7883

79-
80-
2. `cd` into the `server` folder inside `chronos_npm_package`, then run `npm install` and `npm start`
81-
82-
3. Check in Docker desktop if your containers have been created. You should see something similar to the following:
84+
2. Check in Docker desktop if your containers have been created. You should see something similar to the following:
8385

8486
<p align="center">
8587
<img alt="Kubernetes containers created" src="../../assets/examples_kubernetes_created.png">
@@ -105,9 +107,9 @@ kubectl delete -f frontend.yml
105107

106108
To teardown grafana, run the following commands:
107109
```
108-
kubectl delete -f ../launch/grafana-datasource-config.yml
109-
kubectl delete -f ../launch/grafanaService.yml
110-
kubectl delete -f ../launch/grafana.yml
110+
kubectl delete -f launch/grafana-datasource-config.yml
111+
kubectl delete -f launch/grafanaService.yml
112+
kubectl delete -f launch/grafana.yml
111113
```
112114

113115

0 commit comments

Comments
 (0)