Add metrics Feature (#7507)

Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
This commit is contained in:
Juho Heikka authored and GitHub committed 2023-04-12 14:40:00 +03:00
1 parent 01cc0186e5
commit 53cb3a5d38
40 files changed
+779 -222

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
module.exports = {
extends: "@k8slens/eslint-config/eslint",
parserOptions: {
project: "./tsconfig.json",
},
};
+1
View File
@@ -0,0 +1 @@
"@k8slens/eslint-config/prettier"
+81
View File
@@ -0,0 +1,81 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type React from "react";
import { getInjectionToken } from "@ogre-tools/injectable";
export type ClusterOverviewUIBlock = {
id: string;
Component: React.ElementType;
orderNumber: number;
};
// this should be moved to cluster-overview package when there is one
export const clusterOverviewUIBlockInjectionToken = getInjectionToken<ClusterOverviewUIBlock>({
id: "cluster-overview-ui-block-injection-token",
});
export type KubeObjectDetailMetricsComponentProps = {
object: any;
};
export type KubeObjectDetailMetrics = {
id: string;
Component: React.ComponentType<KubeObjectDetailMetricsComponentProps>;
};
export const podDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "pod-details-metrics-injection-token",
});
export const deploymentDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "deployment-details-metrics-injection-token",
});
export const nodeDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "node-details-metrics-injection-token",
});
export const replicaSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "replica-set-details-metrics-injection-token",
});
export const persistentVolumeClaimDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "persistent-volume-claim-details-metrics-injection-token",
});
export const statefulSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "stateful-set-details-metrics-injection-token",
});
export const namespaceDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "namespace-details-metrics-injection-token",
});
export const jobDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "job-details-metrics-injection-token",
});
export const daemonSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "daemon-set-details-metrics-injection-token",
});
export const ingressDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "ingress-details-metrics-injection-token",
});
export interface PodDetailsContainerMetricsComponentProps {
container: any;
pod: any;
}
export interface PodDetailsContainerMetricsComponent {
id: string;
Component: React.ComponentType<PodDetailsContainerMetricsComponentProps>;
}
export const podDetailsContainerMetricsInjectionToken = getInjectionToken<PodDetailsContainerMetricsComponent>({
id: "pod-details-container-metrics-injection-token",
});
+1
View File
@@ -0,0 +1 @@
module.exports = require("@k8slens/jest").monorepoPackageConfig(__dirname).configForReact;
+43
View File
@@ -0,0 +1,43 @@
{
"name": "@k8slens/metrics",
"private": false,
"version": "6.5.0-alpha.1",
"description": "Injection tokens for implementing metrics for Lens",
"type": "commonjs",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
},
"files": [
"dist"
],
"repository": {
"type": "git",
"url": "git+https://github.com/lensapp/lens.git"
},
"main": "dist/index.js",
"types": "dist/index.d.ts",
"author": {
"name": "OpenLens Authors",
"email": "info@k8slens.dev"
},
"license": "MIT",
"homepage": "https://github.com/lensapp/lens",
"scripts": {
"build": "webpack",
"clean": "rimraf dist/",
"dev": "webpack --mode=development --watch",
"test": "jest --coverage --runInBand",
"lint": "lens-lint",
"lint:fix": "lens-lint --fix"
},
"peerDependencies": {
"@ogre-tools/injectable": "^15.1.2",
"react": "^17.0.2"
},
"devDependencies": {
"@k8slens/eslint-config": "6.5.0-alpha.1",
"@k8slens/typescript": "6.5.0-alpha.1",
"@k8slens/jest": "6.5.0-alpha.1"
}
}
+4
View File
@@ -0,0 +1,4 @@
{
"extends": "@k8slens/typescript/config/base.json",
"include": ["**/*.ts"]
}
+1
View File
@@ -0,0 +1 @@
module.exports = require("@k8slens/webpack").configForReact;