├── .DS_Store
├── .babelrc
├── .eslintrc.json
├── .gitignore
├── README.md
├── __tests__
├── client
│ └── Home.test.js
└── server
│ └── Controllers.js
├── client
├── .DS_Store
├── Components
│ ├── App.jsx
│ ├── Dashboard
│ │ ├── ClusterView
│ │ │ ├── CPUChart.jsx
│ │ │ ├── ClusterDashboard.jsx
│ │ │ ├── ClusterFilteringOptions.jsx
│ │ │ ├── MemoryChart.jsx
│ │ │ └── NetworkTransmitted.jsx
│ │ ├── Dashboard.jsx
│ │ ├── DashboardHeader.jsx
│ │ ├── Home.jsx
│ │ ├── NavBarItems
│ │ │ ├── ClusterView.jsx
│ │ │ ├── Navbar.jsx
│ │ │ ├── NodeView.jsx
│ │ │ ├── PodView.jsx
│ │ │ └── Settings.jsx
│ │ ├── NodeView
│ │ │ ├── CPUusage.jsx
│ │ │ ├── DiskSpace.jsx
│ │ │ ├── NodeDashboard.jsx
│ │ │ ├── NodesTable.jsx
│ │ │ └── Speedometer.jsx
│ │ └── PodView
│ │ │ ├── BarChart.jsx
│ │ │ ├── Doughnut.jsx
│ │ │ ├── PodDashboard.jsx
│ │ │ └── PodsTable.jsx
│ ├── GetStarted
│ │ ├── GetStartedBody.jsx
│ │ └── GetStartedPage.jsx
│ ├── LandingPage
│ │ ├── Body.jsx
│ │ ├── Footer.jsx
│ │ ├── GithubLink.jsx
│ │ ├── Header.jsx
│ │ ├── LandingPageContainer.jsx
│ │ └── Logo.jsx
│ ├── LogIn
│ │ └── LogInPage.jsx
│ ├── NotFound.jsx
│ └── componetMap.md
├── assets
│ ├── ShipShapeBlackLogo.png
│ ├── ShipShapeDashboard.png
│ ├── ShipShapeLogo.png
│ ├── ShipShapeWhiteLogo.png
│ ├── StopProblemsBefore.png
│ ├── TrackWhatMatters.png
│ ├── brian.jpg
│ ├── ozi.jpeg
│ ├── rebeccaschell.jpg
│ └── whit.png
├── helpers.js
├── index.html
├── index.js
└── styles
│ └── styles.scss
├── package.json
├── server
├── graphQL
│ ├── datasources
│ │ ├── dataSources.js
│ │ ├── nodeConstructor.js
│ │ ├── podConstructor.js
│ │ └── prometheusAPI.js
│ ├── demoData
│ │ ├── CpuUsage.json
│ │ ├── FreeMemory.json
│ │ ├── NetworkTransmitted.json
│ │ ├── demoData.js
│ │ ├── nodeData.json
│ │ └── podData.json
│ ├── directives
│ │ └── directives.js
│ ├── resolvers
│ │ └── resolvers.js
│ ├── schema.js
│ └── typeDef
│ │ └── typeDef.js
├── k8sApi.js
├── restAPI
│ ├── controller
│ │ ├── nodeController.js
│ │ ├── podController.js
│ │ └── prometheusController.js
│ └── router
│ │ ├── metricsServerRouter.js
│ │ └── prometheusRouter.js
└── server.js
└── webpack.config.js
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/ShipShape/59c3d685c0a1f175f91fc9daad1dc4a020341569/.DS_Store
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["@babel/preset-env", "@babel/preset-react"],
3 | "plugins": ["@babel/plugin-transform-runtime"]
4 | }
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "env": {
4 | "browser": true,
5 | "es2021": true,
6 | "node": true,
7 | "jest": true
8 | },
9 | "extends": [
10 | "airbnb",
11 | "plugin:react/recommended"
12 | ],
13 | "parserOptions": {
14 | "ecmaFeatures": {
15 | "jsx": true
16 | },
17 | "ecmaVersion": 12,
18 | "sourceType": "module"
19 | },
20 | "plugins": [
21 | "react"
22 | ],
23 | "rules": {
24 | "arrow-parens": "off",
25 | "consistent-return": "off",
26 | "func-names": "off",
27 | "no-console": "off",
28 | "radix": "off",
29 | "react/button-has-type": "off",
30 | "react/destructuring-assignment": "warn",
31 | "react/prop-types": "off",
32 | "no-param-reassign": ["warn", { "props": false }],
33 | "prefer-object-spread": "off",
34 | "linebreak-style": "off",
35 | "arrow-body-style": "off",
36 | "import/extensions": "off",
37 | "no-plusplus": ["warn", { "allowForLoopAfterthoughts": true }]
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | package-lock.json
3 | .env
4 | build
5 | sample-service.yaml
6 | .vscode
7 | workspace.code-workspace
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 | Kubernetes Cluster Monitoring Made Easy
12 |
13 | getinshipshape.io
14 |
15 |
16 |
17 |
m
41 |mB
37 |39 | Real Time monitoring the metrics that matter the most in your 40 | Kubernetes Cluster 41 | {' '} 42 |
43 |47 | Continuously send and store the data related to CPU, Disk, and 48 | Memory usage 49 |
50 |54 | View your cluster like never before with our clear and concise 55 | dashborad 56 |
57 |Track What Matters Most
64 |To Catch Problems Before They Happen
75 |
83 | ShipShape is a Kubernetes monitoring tool designed to help you
84 | visualize the most important metrics of your Cluster at various levels
85 | of granularity. ShipShape can also track long-term performance, help
86 | debug errors, and offer potential configuration optimization
87 | suggestions.
88 |
89 | ShipShape will connect to and monitor the real time metrics of a
90 | Kubernetes Cluster using a variety of graphs and the clusters
91 | components to assess overall and pod/node-specific health. We do this by
92 | connecting to the Metrics Server of a Kubernetes cluster and
93 | continuously send and store the data related to CPU, Disk, and Memory
94 | usage to get a look at the metrics over time. We then present these
95 | metrics in an easy to understand, actionable graphic display on your
96 | personal ShipShape dashboard.
97 |
98 |