1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
Lauri Nevala 2020-04-26 00:16:25 +03:00
parent 7476e169b9
commit be0275c3f5
2 changed files with 8 additions and 15 deletions

View File

@ -1,7 +1,6 @@
import { LensApiRequest } from "../router" import { LensApiRequest } from "../router"
import { LensApi } from "../lens-api" import { LensApi } from "../lens-api"
import * as requestPromise from "request-promise-native" import * as requestPromise from "request-promise-native"
import logger from "../logger"
import { PrometheusProviderFactory} from "../prometheus/provider" import { PrometheusProviderFactory} from "../prometheus/provider"
type MetricsQuery = string | string[] | { type MetricsQuery = string | string[] | {
@ -29,7 +28,6 @@ class MetricsRoute extends LensApi {
const attempts: { [query: string]: number } = {}; const attempts: { [query: string]: number } = {};
const maxAttempts = 5; const maxAttempts = 5;
const loadMetrics = (orgQuery: string): Promise<any> => { const loadMetrics = (orgQuery: string): Promise<any> => {
logger.info(orgQuery)
const query = orgQuery.trim() const query = orgQuery.trim()
const attempt = attempts[query] = (attempts[query] || 0) + 1; const attempt = attempts[query] = (attempts[query] || 0) + 1;
return requestPromise(metricsUrl, { return requestPromise(metricsUrl, {
@ -65,15 +63,13 @@ class MetricsRoute extends LensApi {
else { else {
data = {}; data = {};
const result = await Promise.all( const result = await Promise.all(
Object.entries(query).map((objectArr: any) => { Object.entries(query).map((queryEntry: any) => {
const queryName = objectArr[0] const queryName = queryEntry[0]
const queryOpts = objectArr[1] const queryOpts = queryEntry[1]
logger.info(prometheusInstallationSource)
const q = PrometheusProviderFactory.createProvider(prometheusInstallationSource).getQueries(queryOpts)[queryName] const q = PrometheusProviderFactory.createProvider(prometheusInstallationSource).getQueries(queryOpts)[queryName]
return loadMetrics(q) return loadMetrics(q)
}) })
); );
logger.info(JSON.stringify(result))
Object.keys(query).forEach((metricName, index) => { Object.keys(query).forEach((metricName, index) => {
data[metricName] = result[index]; data[metricName] = result[index];
}); });

View File

@ -36,10 +36,10 @@
description="What query format is used to fetch metrics from Prometheus" description="What query format is used to fetch metrics from Prometheus"
> >
<b-form-select <b-form-select
v-model="prometheusSource" v-model="prometheusSource"
:options="prometheusSources" :options="prometheusSources"
@change="onPrometheusSourceSave" @change="onPrometheusSourceSave"
/> />
</b-form-group> </b-form-group>
</div> </div>
</div> </div>
@ -67,7 +67,6 @@
<script> <script>
import { lstatSync } from "fs" import { lstatSync } from "fs"
import { logger } from 'handlebars';
export default { export default {
name: 'ClusterSettingsPreferences', name: 'ClusterSettingsPreferences',
props: { props: {
@ -103,9 +102,7 @@ export default {
} else { } else {
this.prometheusPath = "" this.prometheusPath = ""
} }
this.prometheusSource = this.cluster.preferences.prometheusSource || "lens"
this.prometheusSource = this.cluster.preferences.prometheusSource || "lens"
console.log(this.prometheusSource)
}, },
parsePrometheusPath: function(path) { parsePrometheusPath: function(path) {
let parsed = path.split(/\/|:/) let parsed = path.split(/\/|:/)