mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Export requestMetrics to extension api (#7167)
* Export requestMetrics to extension api Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fixup typing Signed-off-by: Sebastian Malton <sebastian@malton.name> * Revert change Signed-off-by: Sebastian Malton <sebastian@malton.name> * Make diff smaller Signed-off-by: Sebastian Malton <sebastian@malton.name> --------- Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
2959e01d1e
commit
dafdabc24b
@ -37,18 +37,17 @@ export interface RequestMetricsParams {
|
|||||||
namespace?: string;
|
namespace?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface RequestMetrics {
|
export type RequestMetrics = ReturnType<typeof requestMetricsInjectable["instantiate"]>;
|
||||||
(query: string, params?: RequestMetricsParams): Promise<MetricData>;
|
|
||||||
(query: string[], params?: RequestMetricsParams): Promise<MetricData[]>;
|
|
||||||
<Keys extends string>(query: Record<Keys, Partial<Record<string, string>>>, params?: RequestMetricsParams): Promise<Record<Keys, MetricData>>;
|
|
||||||
}
|
|
||||||
|
|
||||||
const requestMetricsInjectable = getInjectable({
|
const requestMetricsInjectable = getInjectable({
|
||||||
id: "request-metrics",
|
id: "request-metrics",
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const apiBase = di.inject(apiBaseInjectable);
|
const apiBase = di.inject(apiBaseInjectable);
|
||||||
|
|
||||||
return (async (query: object, params: RequestMetricsParams = {}) => {
|
function requestMetrics(query: string, params?: RequestMetricsParams): Promise<MetricData>;
|
||||||
|
function requestMetrics(query: string[], params?: RequestMetricsParams): Promise<MetricData[]>;
|
||||||
|
function requestMetrics<Keys extends string>(query: Record<Keys, Partial<Record<string, string>>>, params?: RequestMetricsParams): Promise<Record<Keys, MetricData>>;
|
||||||
|
async function requestMetrics(query: string | string[] | Partial<Record<string, Partial<Record<string, string>>>>, params: RequestMetricsParams = {}): Promise<MetricData | MetricData[] | Partial<Record<string, MetricData>>> {
|
||||||
const { range = 3600, step = 60, namespace } = params;
|
const { range = 3600, step = 60, namespace } = params;
|
||||||
let { start, end } = params;
|
let { start, end } = params;
|
||||||
|
|
||||||
@ -66,7 +65,9 @@ const requestMetricsInjectable = getInjectable({
|
|||||||
"kubernetes_namespace": namespace,
|
"kubernetes_namespace": namespace,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}) as RequestMetrics;
|
}
|
||||||
|
|
||||||
|
return requestMetrics;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -38,6 +38,8 @@ import kubeEventApiInjectable from "../../common/k8s-api/endpoints/events.api.in
|
|||||||
import roleBindingApiInjectable from "../../common/k8s-api/endpoints/role-binding.api.injectable";
|
import roleBindingApiInjectable from "../../common/k8s-api/endpoints/role-binding.api.injectable";
|
||||||
import customResourceDefinitionApiInjectable from "../../common/k8s-api/endpoints/custom-resource-definition.api.injectable";
|
import customResourceDefinitionApiInjectable from "../../common/k8s-api/endpoints/custom-resource-definition.api.injectable";
|
||||||
import { shouldShowResourceInjectionToken } from "../../common/cluster-store/allowed-resources-injection-token";
|
import { shouldShowResourceInjectionToken } from "../../common/cluster-store/allowed-resources-injection-token";
|
||||||
|
import { asLegacyGlobalFunctionForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api";
|
||||||
|
import requestMetricsInjectable from "../../common/k8s-api/endpoints/metrics.api/request-metrics.injectable";
|
||||||
|
|
||||||
export function isAllowedResource(resources: KubeResource | KubeResource[]) {
|
export function isAllowedResource(resources: KubeResource | KubeResource[]) {
|
||||||
const di = getLegacyGlobalDiForExtensionApi();
|
const di = getLegacyGlobalDiForExtensionApi();
|
||||||
@ -93,6 +95,17 @@ export const crdApi = asLegacyGlobalForExtensionApi(customResourceDefinitionApiI
|
|||||||
|
|
||||||
export * from "../common-api/k8s-api";
|
export * from "../common-api/k8s-api";
|
||||||
|
|
||||||
|
export const requestMetrics = asLegacyGlobalFunctionForExtensionApi(requestMetricsInjectable);
|
||||||
|
|
||||||
|
export type {
|
||||||
|
RequestMetrics,
|
||||||
|
RequestMetricsParams,
|
||||||
|
} from "../../common/k8s-api/endpoints/metrics.api/request-metrics.injectable";
|
||||||
|
export type {
|
||||||
|
MetricData,
|
||||||
|
MetricResult,
|
||||||
|
} from "../../common/k8s-api/endpoints/metrics.api";
|
||||||
|
|
||||||
export {
|
export {
|
||||||
KubeObjectStatusLevel,
|
KubeObjectStatusLevel,
|
||||||
type KubeObjectStatus,
|
type KubeObjectStatus,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user