Skip to content

Commit b923b89

Browse files
authored
Merge pull request #309 from oslabs-beta/dev
Chronos V12
2 parents fb4d8a1 + 33dc97f commit b923b89

File tree

112 files changed

+15775
-4767
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+15775
-4767
lines changed

.github/workflows/integrate.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Frontend and Backend testing
2+
3+
on:
4+
pull_request:
5+
branches: [master]
6+
##Branch name may need to be changed depending on name of your dev branch
7+
jobs:
8+
frontend_testing:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
- uses: actions/setup-node@v1
13+
with:
14+
node-version: 18
15+
- run: npm install --package-lock-only
16+
- run: npm ci
17+
- run: npm run build
18+
- run: npm run test
19+
20+
backend_testing:
21+
runs-on: ubuntu-latest
22+
timeout-minutes: 7
23+
steps:
24+
- uses: actions/checkout@v2
25+
- uses: actions/setup-node@v1
26+
with:
27+
node-version: 18
28+
- run: npm install --package-lock-only
29+
- run: npm ci
30+
- run: npm run build
31+
- run: npx jest --config __backend-tests__/jest.config.js --verbose

.github/workflows/publish.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Publish Package to npmjs
2+
on:
3+
release:
4+
types: [published]
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v3
10+
# Setup .npmrc file to publish to npm
11+
- uses: actions/setup-node@v3
12+
with:
13+
node-version: '18.17.1'
14+
registry-url: 'https://registry.npmjs.org'
15+
- run: npm ci
16+
- run: npm publish ./chronos_npm_package --access=public
17+
env:
18+
# need to add NPM token to github secret if not available
19+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.prettierrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
"endOfLine": "auto",
55
"arrowParens": "avoid",
66
"printWidth": 100
7-
}
7+
}

README.md

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
<img src="assets/animated_logo.gif" alt="Chronos" title="Chronos" align="center" height="500" />
33
</a>
44

5-
<br>
6-
75
![Build Passing](https://img.shields.io/badge/build-awesome-brightgreen)
86
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/open-source-labs/Chronos)
97
![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)
10-
![Release: 11.0](https://img.shields.io/badge/Release-11.0-brightgreen)
8+
![Release: 12.0](https://img.shields.io/badge/Release-12.0-brightgreen)
119

1210

1311
# Chronos
@@ -16,27 +14,36 @@
1614
### ⭐️ Star us on GitHub! ⭐️
1715
**Visit our website at [chronoslany.com](https://chronoslany.com/).**
1816

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.
17+
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.
2018

2119

2220
## What's New?
2321

24-
### With Chronos 11.0:
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.
32+
33+
<a href="https://chronoslany.com/">
34+
<img src="assets/demo.gif" alt="Chronos" title="Chronos" align="center" height="500" width="auto" />
35+
</a>
36+
37+
<br>
2538

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

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-
4047
## Features
4148

4249
- Cloud-Based Instances:
@@ -45,15 +52,15 @@ Chronos is a comprehensive developer tool that monitors the health and web traff
4552
- Enables distributed tracing enabled across microservices applications
4653
- Displays real-time temperature, speed, latency, and memory statistics for local services
4754
- Displays and compares multiple microservice metrics in a single graph
48-
- Allow Kubernetes monitoring via Prometheus server
55+
- Allow Kubernetes and Docker monitoring via Prometheus server and Grafana visualization.
4956
- Compatible with <img src="assets/graphql-logo-color.png" alt="GraphQL" title="GraphQL" align="center" height="20" /></a>
5057
- 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
5158
- 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
5259

5360

5461
# Installation
5562

56-
This is for the latest Chronos **version 11.0 release**.
63+
This is for the latest Chronos **version 12.0 release**.
5764

5865
## NPM Package
5966

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

7077
<!-- ### Node Version -->
78+
<!-- v12 notes: Our team also had no issues - we ran Node 18 and Electron 22-->
7179
<!-- v11 notes: Our team also had no issues - we ran Node 18.-->
7280
<!-- 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. -->
7381
<!-- 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. -->
@@ -106,6 +114,7 @@ export DISPLAY="`sed -n 's/nameserver //p' /etc/resolv.conf`:0"
106114
2. Run `npm run build`
107115
3. Open a new terminal and run `npm run dev:app` to start the Webpack development server
108116
4. Open a new terminal and run `npm run dev:electron` to start the Electron UI in development mode
117+
.
109118
#
110119
### Packing the Chronos desktop app into an executable
111120

@@ -163,7 +172,7 @@ Refer to the [gRPC README](./examples/gRPC/README.md) in the `gRPC` folder for m
163172

164173
#### _Kubernetes_
165174

166-
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.
175+
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.
167176

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

@@ -178,7 +187,7 @@ Refer to the [microservices README](./examples/microservices/README.md) in the `
178187

179188
# Testing
180189

181-
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).
190+
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).
182191
#
183192
## Contributing
184193

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

189198
### **Last Iterating Team**
190199

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

198206

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

223239

224240
## License

0 commit comments

Comments
 (0)