Skip to content

Latest commit

 

History

History
70 lines (59 loc) · 6.35 KB

File metadata and controls

70 lines (59 loc) · 6.35 KB

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 There is currently an issue where clicking on a graph will cause everything to refresh and show no data forcing you to click off and back on the tab

PostgreSQL (Unused)

This was originally for storing user info but having moved Docketeer to an extension on Docker Desktop we felt it was uneccessary as it did not add functionality. Though we've left it in the files in case future iterations want to reimplement users.
There were also some functions in commands.tsx that are commented out to write metrics to the database but whichever iteration did that didn't get to fully implement them so they are unused and commented out.

Unused/Unimplemented Files

All unused files will either be in the top level of the directory or in UNUSED-FILES
Many files are currently unused as we did not have time to do full implementation of them or were just dangling and unused when we began working on Docketeer as of Docketeer 14.
The package.json and package-lock.json of the top level directory and not used in the containers. They are currently just for reference but in future could be used for npm modules required by the Jest tests.
All user account creation or login/logout functionality has been either commented out or moved into UNUSED-FILES
Postgres that was primarily used for user data has been completely removed and related functions in commands.tsx are commented out and files are moved to UNUSED-FILES

Tests

Tests are not correctly implemented for the extension version of Docketeer. Extremely unlikely any pass and will need to be redone.

Other Known Issues/ToDo

Docker: During development would often get this error when installing the extension:
installation could not be completed due to: forwarding VM socket "/run/guest-services/docketeer/backend.sock" to "\\\\.\\pipe\\dockerExtensions-docketeer-backend": open \\.\pipe\dockerExtensions-docketeer-backend: Access is denied.
Would just have to restart docker desktop to get rid of it but it's annoying.
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
Grafana: Takes a moment to load metrics page when clicking off the tab and back to it because it does a fetch to check the connection then creates the element to show metrics that has to connect again.
Kubernetes: Is currently not implemented in the extension version. The way it works on the browser version requires it have access outside of containers which is difficult to do with an extension. We got a slightly working version by using the 'host' metadata.json block to download kubectl and helm binaries that could interact with the host's kubernetes cluster but accessing the metrics after that point was extremely difficult. There is also the issue of bloated image size due to needing a specific binary version for each operating system. It may be possible to fix this bloating by making use of the buildx tooling that is used in the makefile for multi-platform images.
Networks page: The network lines get fatter the more network connections you have. Should probably make the size of them consistent.
D3 sankey patch: We aren't sure if this is being installed or not on the extension and haven't tested if it runs without this existing. Should see if it's stil necessary
Typescript: Current coverage is quite messy. There are a lot of 'any' tags to things that used implicit any in the browser version that we did not have time to fix.
Code cleanup: There's a lot of commented out code everywhere that either was never fully implemented or part of login functionality.
UX: There's nothing to show users that something is still loading on any of the pages.

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.

Last commit where Docketeer was browser based instead of an extension

c927ee7835480fcfb815641b10f1ce98111af22a

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