提交 dde431b4 编写于 作者: 7 710leo

Merge branch 'master' of https://github.com/didi/nightingale

......@@ -253,14 +253,37 @@ func (pd *PromeDataSource) QueryData(inputs vos.DataQueryParam) []*vos.DataQuery
oneResp.Ident = ident
// TODO 去掉point num
pNum := len(m.Points)
for _, p := range m.Points {
interval := int64(resolution / time.Second)
pNumExpect := int((inputs.End - inputs.Start) / interval)
remotePIndex := 0
for i := 0; i <= pNumExpect; i++ {
// 先准备好null的point
tsLocal := inputs.Start + interval*int64(i)
tmpP := &vos.Point{
// 毫秒时间时间戳转 秒时间戳
Timestamp: p.T / 1e3,
Value: vos.JsonFloat(p.V),
Timestamp: tsLocal,
Value: vos.JsonFloat(math.NaN()),
}
//说明points数组还没越界
//去m.Points获取一个
if remotePIndex < pNum {
pointOne := m.Points[remotePIndex]
tsRemote := pointOne.T / 1e3
// 判断时间戳 ,前后相差1秒认为时间戳对齐了
if math.Abs(float64(tsRemote-tsLocal)) <= 1 {
tmpP.Timestamp = tsRemote
tmpP.Value = vos.JsonFloat(pointOne.V)
// 说明远端的这个索引的值已经被pop了,移动索引
remotePIndex++
}
}
oneResp.Values = append(oneResp.Values, tmpP)
}
for _, x := range m.Metric {
if x.Name == LABEL_NAME {
continue
......@@ -269,7 +292,7 @@ func (pd *PromeDataSource) QueryData(inputs vos.DataQueryParam) []*vos.DataQuery
}
tagStr = strings.TrimRight(tagStr, ",")
oneResp.Tags = tagStr
oneResp.Resolution = int64(resolution / time.Second)
oneResp.Resolution = interval
oneResp.PNum = pNum
respD = append(respD, oneResp)
......
......@@ -54,8 +54,8 @@ var (
"Tags filter(Func:%s)'s param invalid": "标签过滤条件(函数:%s)参数不合法(为空或包含空格都不合法)",
"Regexp: %s cannot be compiled": "正则表达式(%s)不合法,无法编译",
"AppendTags(%s) invalid": "附件标签(%s)格式不合法",
"Regexp[%s] matching failed": "正则表达式[%s]匹配失败",
"Regexp[%s] matched, but cannot get substring()": "主正则[%s]匹配成功,但无法匹配到子串",
"Regexp %s matching failed": "正则表达式 %s 匹配失败",
"Regexp %s matched, but cannot get substring()": "主正则 %s 匹配成功,但无法匹配到子串",
"TagKey or TagValue contains illegal characters[:,/=\r\n\t]": "标签KEY或者标签值包含非法字符串[:,/=\r\n\t]",
"Resource cannot delete in preset classpath": "预置分组不能删除资源",
}
......
......@@ -269,12 +269,12 @@ func includeIllegalChar(s string) bool {
// 生成返回错误信息
func genErrMsg(pattern string) string {
return _s("Regexp[%s] matching failed", pattern)
return _s("Regexp %s matching failed", pattern)
}
// 生成子串匹配错误信息
func genSubErrMsg(pattern string) string {
return _s("Regexp[%s] matched, but cannot get substring()", pattern)
return _s("Regexp %s matched, but cannot get substring()", pattern)
}
// 生成子串匹配错误信息
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册