mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Throw an error on invalid prometheus provider
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
parent
2fc8daaff6
commit
40dcbdbf67
@ -16,12 +16,14 @@ export interface PrometheusProvider {
|
||||
|
||||
export class PrometheusProviderFactory {
|
||||
static createProvider(type: string): PrometheusProvider {
|
||||
if (type == "helm") {
|
||||
if (type == "lens") {
|
||||
return new PrometheusLens()
|
||||
} else if (type == "helm") {
|
||||
return new PrometheusHelm()
|
||||
} else if (type == "operator") {
|
||||
return new PrometheusOperator()
|
||||
} else {
|
||||
return new PrometheusLens()
|
||||
throw "Unknown Prometheus provider";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
import { LensApiRequest } from "../router"
|
||||
import { LensApi } from "../lens-api"
|
||||
import * as requestPromise from "request-promise-native"
|
||||
import { PrometheusProviderFactory} from "../prometheus/provider"
|
||||
import { PrometheusProviderFactory, PrometheusProvider} from "../prometheus/provider"
|
||||
|
||||
type MetricsQuery = string | string[] | {
|
||||
[metricName: string]: string;
|
||||
@ -24,6 +24,12 @@ class MetricsRoute extends LensApi {
|
||||
})
|
||||
|
||||
const prometheusInstallationSource = cluster.preferences.prometheusSource || "lens"
|
||||
let prometheusProvider: PrometheusProvider
|
||||
try {
|
||||
prometheusProvider = PrometheusProviderFactory.createProvider(prometheusInstallationSource)
|
||||
} catch {
|
||||
this.respondJson(response, {})
|
||||
}
|
||||
// prometheus metrics loader
|
||||
const attempts: { [query: string]: number } = {};
|
||||
const maxAttempts = 5;
|
||||
@ -66,7 +72,7 @@ class MetricsRoute extends LensApi {
|
||||
Object.entries(query).map((queryEntry: any) => {
|
||||
const queryName = queryEntry[0]
|
||||
const queryOpts = queryEntry[1]
|
||||
const q = PrometheusProviderFactory.createProvider(prometheusInstallationSource).getQueries(queryOpts)[queryName]
|
||||
const q = prometheusProvider.getQueries(queryOpts)[queryName]
|
||||
return loadMetrics(q)
|
||||
})
|
||||
);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user