Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/open-source-labs/Docketeer

A Docker & Kubernetes developer tool to manage containers & visualize both cluster and container metrics
https://github.com/open-source-labs/Docketeer

cadvisor docker docketeer express grafana helm javascript jest kubernetes nodejs open-source prometheus reactjs redux-toolkit sass typescript vite

Last synced: about 2 months ago
JSON representation

A Docker & Kubernetes developer tool to manage containers & visualize both cluster and container metrics

Awesome Lists containing this project

README

        

Techs


Prometheus


Collects and aggregates the data scraped from Node-exporter and cAdvisor then exposes it's port on 9090 for Grafana to display.

Check imageConfigs/prometheus/prometheus.yml to see all ports used for aggregation.

Node exporter


Scrapes the computer metrics and then has them aggregated by prometheus. Look at docker-compose service for node-exporter to see commands used to set up the container.

cAdvisor


cAdvisor will be deprecated on May 15, 2024 so this should be replaced with something else.

It scrapes all the container metrics and then has them aggregated to prometheus through host.docker.internal:8080 to be displayed on grafana dashboard.

Grafana


Displays the metric data aggregated by Prometheus, Node-exporter, cAdvisor

PostgreSQL


Stores user account information. Has functions in commands.tsx that go to the backend and tell it to store metric data but that data is never used anywhere and is just taking up space.

Unused/Unimplemented Files



security/email.js (unused, probably planned for prometheus email alert integration)
server/controllers/testingroute.ts
src/components/AccountDisplay
src/components/Notfound
src/components/ProcessLogsCard
src/components/Settings
src/components/Yml
src/helpers/settingsHelper.ts
.yarnclean
config.js (these env variables are not called anywhere that we could find)
postcss.config.cjs (same as below)
tailwind.config.cjs (currently is called in vite.config.js but never used. Tailwind is used in some of the unused components above but none that are currently in use)

Tests


Currently only passes about half the tests. There are files you have to alter the routes for when testing to see if they work such as grafanaApiController.ts. We did not focus on the testing so we're not sure what all needs to be changed with it.

Notes


Deployment


There is a makefile for easy deployment, just make sure to update the versions in it and the docker-compose then do 'make push-extension' and it will push everything to dockerhub for you.If you build from ARM64 architecture for multiplatform the windows version will not be able work properly. The core gets dumped on launch and can't run exec commands.

Other Known Issues/ToDo


File size: Extremely bloated file size due to the dockerfile just grabbing everything and adding it to the image. There's also still a ton of dependencies that are unused and forgotten. This all causes it take and extremely long time to compose and build to test any changes you make significantly slowing down development speed. The extension version has had major restructuring to its file structure but we ran out of time to restructure the browser version as well.

Grafana: Dashboard container metric tiles get super crammed when you have a lot of containers and are unreadable. The current stat style doesn't seem to have any options to set your own column sizing making it difficult to keep them readable.

Grafana: Dashboard does not remove containers that have been completely deleted and they still appear on the dashboard

Kubernetes: Current implementation is completely detached from the app itself. You have to have an entirely seperate session running to do the setup for it. Should find some way to have it all in the container but interacting with the kubernetes clusters from inside a container was pretty difficult and we couldn't find a good way to do it.

Typescript: Current coverage is quite messy. There are a lot of 'any' tags and things that use implicit any that we did not have time to fix.

Code cleanup: There's a lot of commented out code everywhere that was never fully implemented.

Operating systems: Only really seems to work on macs and no other operating systems consistently. Even macs are inconsistent with it working. One of the issues is how the current images being used are built without using commands for multi platform builds we updated that but another is that bind mounts are used in the docker-compose which regularly throws errors for windows users trying to compose and I couldn't figure out why.

Who worked on what


Docketeer XIV

Browser


  1. Updated deprecated dependencies and removed some unused dependencies

  2. Added documentation to .yml files and added dev readme

  3. Created a makefile for easier deployment and development




Extension


  1. Ported the browser version of docketeer into an extension for docker desktop.

  2. We managed to get all functionality excluding kubernetes monitoring to the extension.

  3. Opted to not include user functionality in the extension version.

  4. Restructured the file system and completely redid the dockerfile and docker-compose files to significantly reduce file size.

  5. Home and about pages information has been moved to the docker extension detailed description.

  6. Added documentation to .yml files and added dev readme

  7. Created a makefile for easier deployment and development