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 axiosArr = chartItem.elements.map((ele) => {
const filterItem = ele; const filterItem = ele;
let query = encodeURIComponent(filterItem.expression); 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单独获取数据 // 一个图表的所有element单独获取数据
axios.all(axiosArr).then((res) => { axios.all(axiosArr).then((res) => {

View File

@@ -351,7 +351,7 @@
const axiosArr = chartItem.elements.map((ele) => { const axiosArr = chartItem.elements.map((ele) => {
const filterItem = ele; const filterItem = ele;
let query = encodeURIComponent(filterItem.expression); 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单独获取数据 // 一个图表的所有element单独获取数据
axios.all(axiosArr).then((res) => { axios.all(axiosArr).then((res) => {
@@ -1070,7 +1070,7 @@
axiosArr = this.chart.elements.map((ele) => { axiosArr = this.chart.elements.map((ele) => {
const filterItem = ele; const filterItem = ele;
let query = encodeURIComponent(filterItem.expression); 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) => { axios.all(axiosArr).then((res) => {

View File

@@ -1295,16 +1295,16 @@
axiosArr = this.data.elements.map((ele) => { axiosArr = this.data.elements.map((ele) => {
const filterItem = ele; const filterItem = ele;
let query = encodeURIComponent(filterItem.expression); 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') { // 概览模式,指标概览中使用 } else if (type === 'dashboard') { // 概览模式,指标概览中使用
// 概览模式,需要区分单独一个和多个 // 概览模式,需要区分单独一个和多个
if (this.stableFilter.chartCount === 'multiple') { if (this.stableFilter.chartCount === 'multiple') {
let query = encodeURIComponent(this.data.title); 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 { } else {
let query = encodeURIComponent(this.data.elements[0].expression); 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 axiosArr=[];
let queryParam = this.promQueryParamConvert(obj); 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.legend = [];
this.chartDatas = []; this.chartDatas = [];
axios.all(axiosArr).then(res =>{ axios.all(axiosArr).then(res =>{

View File

@@ -455,7 +455,7 @@
} }
let axiosArr=[]; let axiosArr=[];
for(let endpoint of this.selectedEndpoints){ 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.legend=[];
this.chartDatas = []; this.chartDatas = [];

View File

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

View File

@@ -477,7 +477,7 @@
} }
let axiosArr=[]; let axiosArr=[];
let paramStr = JSON.stringify(this.promQueryParamConvert(obj)); 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.legend = [];
this.chartDatas = []; this.chartDatas = [];
axios.all(axiosArr).then(res =>{ 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 v-model.number="basic.asset_ping_switch" active-color="rgb(238, 157, 63)" active-value='on' inactive-value='off'>
</el-switch> </el-switch>
</el-form-item> </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-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-form-item :label="$t('config.system.basic.defaultCabinetUsize')" prop="default_cabinet_usize">
<el-input v-model.number="basic.default_cabinet_usize" ></el-input> <el-input v-model.number="basic.default_cabinet_usize" ></el-input>
</el-form-item> </el-form-item>

View File

@@ -39,6 +39,16 @@
@addExpression="addExpression" @addExpression="addExpression"
@removeExpression="removeExpression" @removeExpression="removeExpression"
></promql-input> ></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>
<div class="chart-view right-margin" v-show="!showIntroduce" <div class="chart-view right-margin" v-show="!showIntroduce"
:class="{'shrink-view':!chartVisible || !defaultChartVisible}"> :class="{'shrink-view':!chartVisible || !defaultChartVisible}">
@@ -198,6 +208,7 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
<script> <script>
import bus from "../../../../libs/bus"; import bus from "../../../../libs/bus";
import promqlInput from "./promqlInput"; import promqlInput from "./promqlInput";
import promqlInputPlus from "./promqlInputPlus";
import chart from "../overview/chart"; import chart from "../overview/chart";
import axios from 'axios'; import axios from 'axios';
import chartBox from "../../../page/dashboard/chartBox"; 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", name: "explore",
components: { components: {
'promql-input': promqlInput, 'promql-input': promqlInput,
'promql-input-plus':promqlInputPlus,
'chart': chart, 'chart': chart,
'chart-box': chartBox, '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]); let step=bus.getStep(this.filterTime[0],this.filterTime[1]);
promqlInputIndexs.push(index); promqlInputIndexs.push(index);
queryExpression.push(item) 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) { if (requestArr.length > 0) {

View File

@@ -262,7 +262,7 @@ export default {
this.filter.end_time = endTime; this.filter.end_time = endTime;
let step = bus.getStep(startTime,endTime); let step = bus.getStep(startTime,endTime);
let query = encodeURIComponent(params.elements[0].expression); 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; this.$refs.metricSet.loading = false;
if (response.status === 'success') { if (response.status === 'success') {
if (response.data.result) { if (response.data.result) {

View File

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

View File

@@ -672,8 +672,8 @@
metricString = metricString.substring(0, metricString.length-1); metricString = metricString.substring(0, metricString.length-1);
metricString += "}"; metricString += "}";
let params = { let params = {
start: before, start: this.$stringTimeParseToUnix(before),
end: end, end: this.$stringTimeParseToUnix(end),
step: bus.getStep(before, end), step: bus.getStep(before, end),
query: 'sum(irate(' + rule + metricString + '[' + (this.trendSearchParam.timeRange ? this.trendSearchParam.timeRange : "1h") + ']))' 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 'pl-table/themes/index.css'
import {post, get, put, del} from './http.js' 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"; //引入全局分页组件 import Pagination from "./components/common/pagination"; //引入全局分页组件
@@ -79,6 +79,7 @@ Vue.prototype.$put = put;
Vue.prototype.$delete = del; Vue.prototype.$delete = del;
Vue.prototype.$toTop = toTop; //toTop置顶按钮方法 Vue.prototype.$toTop = toTop; //toTop置顶按钮方法
Vue.prototype.$bottomBoxWindow = bottomBoxWindow; //底部上滑框控制 Vue.prototype.$bottomBoxWindow = bottomBoxWindow; //底部上滑框控制
Vue.prototype.$stringTimeParseToUnix = stringTimeParseToUnix;
Vue.prototype.$tableHeight = { //列表页表格的高度 Vue.prototype.$tableHeight = { //列表页表格的高度
normal: 'calc(100% - 100px)', //常规高度,特例在下方定义 normal: 'calc(100% - 100px)', //常规高度,特例在下方定义
openSubList: { //打开二级列表后的高度 openSubList: { //打开二级列表后的高度

View File

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