prometheus range_query 时间戳和分辨率 (#738)
* 1. notify.py 支持安装channel反射发送 2. 支持钉钉群发送 3. 生成告警模板信息 * 1. notify.py 支持安装channel反射发送 2. 支持钉钉群发送 3. 增加二开说明 * 1. notify.py 用户创建一个虚拟的用户保存上述im群 的机器人token信息 user的contacts map中 * 1. notify.py alerts目录改为原来的 * 1. notify.py dingtalk send continue匹配 * 1. push型告警支持多条件 任意一个触发就触发 * 1. prometheus查询接口 tag-keys tag-values支持 params为空的情况 * 1. prometheus查询接口 ident匹配全部改为精确匹配 2. tagKey 提示改为tag_key * 1. prometheus查询接口 支持instance_query 对外暴露 * 1. prometheus instance_query改名为instant-query 2. page group中去掉数据查询相关path * 1. prometheus range_query 时间戳改为秒级 2. 查询支持传入分辨率参数
This commit is contained in:
parent
de840af331
commit
0d8e5ec77c
|
@ -207,13 +207,15 @@ func (pd *PromeDataSource) QueryData(inputs vos.DataQueryParam) []*vos.DataQuery
|
|||
startT := tsToUtcTs(inputs.Start)
|
||||
endT := tsToUtcTs(inputs.End)
|
||||
|
||||
// TODO 前端传入分辨率还是后端计算,grafana和prometheus ui都是前端传入
|
||||
delta := (inputs.End - inputs.Start) / 3600
|
||||
if delta <= 0 {
|
||||
delta = 1
|
||||
resolution := time.Second * time.Duration(inputs.Step)
|
||||
if inputs.Step == 0 {
|
||||
// step==0 说明要自己算 grafana和prometheus ui都是前端传入
|
||||
delta := (inputs.End - inputs.Start) / 3600
|
||||
if delta <= 0 {
|
||||
delta = 1
|
||||
}
|
||||
resolution = time.Second * time.Duration(delta*DEFAULT_STEP)
|
||||
}
|
||||
resolution := time.Second * time.Duration(delta*DEFAULT_STEP)
|
||||
|
||||
q, err := pd.QueryEngine.NewRangeQuery(pd.Queryable, qlStrFinal, startT, endT, resolution)
|
||||
if err != nil {
|
||||
logger.Errorf("[prome_query_error][QueryData_error_may_be_parse_ql_error][args:%+v][err:%+v]", input, err)
|
||||
|
@ -253,7 +255,8 @@ func (pd *PromeDataSource) QueryData(inputs vos.DataQueryParam) []*vos.DataQuery
|
|||
pNum := len(m.Points)
|
||||
for _, p := range m.Points {
|
||||
tmpP := &vos.Point{
|
||||
Timestamp: p.T,
|
||||
// 毫秒时间时间戳转 秒时间戳
|
||||
Timestamp: p.T / 1e3,
|
||||
Value: vos.JsonFloat(p.V),
|
||||
}
|
||||
oneResp.Values = append(oneResp.Values, tmpP)
|
||||
|
@ -266,7 +269,7 @@ func (pd *PromeDataSource) QueryData(inputs vos.DataQueryParam) []*vos.DataQuery
|
|||
}
|
||||
tagStr = strings.TrimRight(tagStr, ",")
|
||||
oneResp.Tags = tagStr
|
||||
oneResp.Resolution = delta * DEFAULT_STEP
|
||||
oneResp.Resolution = int64(resolution / time.Second)
|
||||
oneResp.PNum = pNum
|
||||
respD = append(respD, oneResp)
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ type DataQueryParam struct {
|
|||
Limit int `json:"limit"`
|
||||
Start int64 `json:"start"`
|
||||
End int64 `json:"end"`
|
||||
Step int64 `json:"step"`
|
||||
}
|
||||
|
||||
type DataQueryInstantParam struct {
|
||||
|
|
Loading…
Reference in New Issue