fix:query_range接口start end 时间改为unit timestemp

This commit is contained in:
wangwenrui
2020-05-15 14:54:51 +08:00
parent 97f50ff44f
commit b374f52050
14 changed files with 38 additions and 20 deletions

View File

@@ -820,7 +820,7 @@ export default {
const axiosArr = chartItem.elements.map((ele) => {
const filterItem = ele;
let query = encodeURIComponent(filterItem.expression);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+startTime+"&end="+endTime+'&step='+step);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step);
});
// 一个图表的所有element单独获取数据
axios.all(axiosArr).then((res) => {

View File

@@ -351,7 +351,7 @@
const axiosArr = chartItem.elements.map((ele) => {
const filterItem = ele;
let query = encodeURIComponent(filterItem.expression);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+startTime+"&end="+endTime+'&step='+step);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step);
});
// 一个图表的所有element单独获取数据
axios.all(axiosArr).then((res) => {
@@ -1070,7 +1070,7 @@
axiosArr = this.chart.elements.map((ele) => {
const filterItem = ele;
let query = encodeURIComponent(filterItem.expression);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+startTime+"&end="+endTime+'&step='+step);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step);
});
// 一个图表
axios.all(axiosArr).then((res) => {

View File

@@ -1295,16 +1295,16 @@
axiosArr = this.data.elements.map((ele) => {
const filterItem = ele;
let query = encodeURIComponent(filterItem.expression);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+startTime+"&end="+endTime+'&step='+step);
return this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step);
});
} else if (type === 'dashboard') { // 概览模式,指标概览中使用
// 概览模式,需要区分单独一个和多个
if (this.stableFilter.chartCount === 'multiple') {
let query = encodeURIComponent(this.data.title);
axiosArr = [this.$get('/prom/api/v1/query_range?query='+query+"&start="+startTime+"&end="+endTime+'&step='+step)];
axiosArr = [this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step)];
} else {
let query = encodeURIComponent(this.data.elements[0].expression);
axiosArr = [this.$get('/prom/api/v1/query_range?query='+query+"&start="+startTime+"&end="+endTime+'&step='+step)];
axiosArr = [this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step)];
}
}
// 一个图表

View File

@@ -484,7 +484,7 @@
}
let axiosArr=[];
let queryParam = this.promQueryParamConvert(obj);
axiosArr.push(axios.get("/prom/api/v1/query_range?query="+queryParam+"&start="+start+"&end="+end+"&step="+step));
axiosArr.push(axios.get("/prom/api/v1/query_range?query="+queryParam+"&start="+this.$stringTimeParseToUnix(start)+"&end="+this.$stringTimeParseToUnix(end)+"&step="+step));
this.legend = [];
this.chartDatas = [];
axios.all(axiosArr).then(res =>{

View File

@@ -455,7 +455,7 @@
}
let axiosArr=[];
for(let endpoint of this.selectedEndpoints){
axiosArr.push(axios.get("/prom/api/v1/query_range?query="+endpoint.element+"&start="+start+"&end="+end+"&step="+step));
axiosArr.push(axios.get("/prom/api/v1/query_range?query="+endpoint.element+"&start="+this.$stringTimeParseToUnix(start)+"&end="+this.$stringTimeParseToUnix(end)+"&step="+step));
}
this.legend=[];
this.chartDatas = [];

View File

@@ -74,7 +74,8 @@ const en = {
reset:'Reset',
submit:'Submit',
noData:'No data',
tag: 'Tag'
tag: 'Tag',
placeHolder:'please enter'
},
pageSize: '/page',
webshell:{
@@ -756,7 +757,7 @@ const en = {
name: 'Name',//"名称"
receiver: 'Receiver',//"用户组"
expr: 'Expression',//"表达式"
for: "For (s)",//For (s)
for: "Duration (s)",//For (s)
link: 'Link',//'关联'
option: 'Operation',//"操作"
alertConfig: 'Alert rule',//"告警规则"

View File

@@ -477,7 +477,7 @@
}
let axiosArr=[];
let paramStr = JSON.stringify(this.promQueryParamConvert(obj));
axiosArr.push(axios.get("/prom/api/v1/query_range?query="+paramStr.substring(1, paramStr.length-1).replace(/\+/g, "%2B").replace(/ /g, "%20")+"&start="+start+"&end="+end+"&step="+step));
axiosArr.push(axios.get("/prom/api/v1/query_range?query="+paramStr.substring(1, paramStr.length-1).replace(/\+/g, "%2B").replace(/ /g, "%20")+"&start="+this.$stringTimeParseToUnix(start)+"&end="+this.$stringTimeParseToUnix(end)+"&step="+step));
this.legend = [];
this.chartDatas = [];
axios.all(axiosArr).then(res =>{

View File

@@ -43,9 +43,9 @@
<el-switch v-model.number="basic.asset_ping_switch" active-color="rgb(238, 157, 63)" active-value='on' inactive-value='off'>
</el-switch>
</el-form-item>
<el-form-item :label="$t('config.system.basic.assetPingInterval')" prop="asset_ping_interval">
<!--<el-form-item :label="$t('config.system.basic.assetPingInterval')" prop="asset_ping_interval">
<el-input v-model.number="basic.asset_ping_interval" :disabled="basic.asset_ping_switch == 'off'"></el-input><span class="nz-input-append">s</span>
</el-form-item>
</el-form-item>-->
<el-form-item :label="$t('config.system.basic.defaultCabinetUsize')" prop="default_cabinet_usize">
<el-input v-model.number="basic.default_cabinet_usize" ></el-input>
</el-form-item>

View File

@@ -39,6 +39,16 @@
@addExpression="addExpression"
@removeExpression="removeExpression"
></promql-input>
<!-- <promql-input-plus-->
<!-- v-for="index of promqlKeys.length"-->
<!-- :ref="'promql-plus'+(index-1)"-->
<!-- :id="promqlKeys[index-1]"-->
<!-- :key="promqlKeys[index-1]"-->
<!-- :index="index-1"-->
<!-- @change="expressionChange"-->
<!-- @addExpression="addExpression"-->
<!-- @removeExpression="removeExpression"-->
<!-- ></promql-input-plus>-->
</div>
<div class="chart-view right-margin" v-show="!showIntroduce"
:class="{'shrink-view':!chartVisible || !defaultChartVisible}">
@@ -198,6 +208,7 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
<script>
import bus from "../../../../libs/bus";
import promqlInput from "./promqlInput";
import promqlInputPlus from "./promqlInputPlus";
import chart from "../overview/chart";
import axios from 'axios';
import chartBox from "../../../page/dashboard/chartBox";
@@ -208,6 +219,7 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
name: "explore",
components: {
'promql-input': promqlInput,
'promql-input-plus':promqlInputPlus,
'chart': chart,
'chart-box': chartBox,
},
@@ -274,7 +286,7 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
let step=bus.getStep(this.filterTime[0],this.filterTime[1]);
promqlInputIndexs.push(index);
queryExpression.push(item)
requestArr.push(axios.get('/prom/api/v1/query_range?query=' + item + '&start=' + this.filterTime[0] + '&end=' + this.filterTime[1] + '&step='+step))
requestArr.push(axios.get('/prom/api/v1/query_range?query=' + item + '&start=' + this.$stringTimeParseToUnix(this.filterTime[0]) + '&end=' + this.$stringTimeParseToUnix(this.filterTime[1]) + '&step='+step))
}
})
if (requestArr.length > 0) {

View File

@@ -262,7 +262,7 @@ export default {
this.filter.end_time = endTime;
let step = bus.getStep(startTime,endTime);
let query = encodeURIComponent(params.elements[0].expression);
this.$get('/prom/api/v1/query_range?query='+query+"&start="+startTime+"&end="+endTime+'&step='+step).then(response => {
this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step).then(response => {
this.$refs.metricSet.loading = false;
if (response.status === 'success') {
if (response.data.result) {

View File

@@ -737,8 +737,8 @@
let before=this.dateFormat('yyyy-mm-dd HH:MM:SS',beforeDate);
let params={
query:'sum(nz_alert_nums)',
start:before,
end:cur,
start:this.$stringTimeParseToUnix(before),
end:this.$stringTimeParseToUnix(cur),
step:'15s'
}
this.$get('/prom/api/v1/query_range',params).then(response=>{

View File

@@ -672,8 +672,8 @@
metricString = metricString.substring(0, metricString.length-1);
metricString += "}";
let params = {
start: before,
end: end,
start: this.$stringTimeParseToUnix(before),
end: this.$stringTimeParseToUnix(end),
step: bus.getStep(before, end),
query: 'sum(irate(' + rule + metricString + '[' + (this.trendSearchParam.timeRange ? this.trendSearchParam.timeRange : "1h") + ']))'
};

View File

@@ -19,7 +19,7 @@ import plTable from 'pl-table'
import 'pl-table/themes/index.css'
import {post, get, put, del} from './http.js'
import {toTop, clickoutside, scrollBar, bottomBoxWindow} from './tools.js'
import {toTop, clickoutside, scrollBar, bottomBoxWindow,stringTimeParseToUnix} from './tools.js'
import Pagination from "./components/common/pagination"; //引入全局分页组件
@@ -79,6 +79,7 @@ Vue.prototype.$put = put;
Vue.prototype.$delete = del;
Vue.prototype.$toTop = toTop; //toTop置顶按钮方法
Vue.prototype.$bottomBoxWindow = bottomBoxWindow; //底部上滑框控制
Vue.prototype.$stringTimeParseToUnix = stringTimeParseToUnix;
Vue.prototype.$tableHeight = { //列表页表格的高度
normal: 'calc(100% - 100px)', //常规高度,特例在下方定义
openSubList: { //打开二级列表后的高度

View File

@@ -334,3 +334,7 @@ export const bottomBoxWindow = {
}
}
};
export function stringTimeParseToUnix(stringTime){
let time=new Date(stringTime).getTime();
return time/1000;
}