当前位置: 首页 > news >正文

做网站的电销话术建设网站需要哪个语言编译器

做网站的电销话术,建设网站需要哪个语言编译器,查icp备案是什么网站,在线生成固定悬浮导航的工具网站prometheus 出现NaN场景以及如何去除干扰(Not a Number) 1、在prometheus中使用NaN来表示无效数值或者结果 场景: 一些监控系统使用 NaN 作为空值或缺失值,但在 Prometheus 中 NaN 只是另一个浮点值。Prometheus 表示缺失数据的方式是让数据缺失。Prom…

prometheus 出现NaN场景以及如何去除干扰(Not a Number)

1、在prometheus中使用NaN来表示无效数值或者结果

场景:

一些监控系统使用 NaN 作为空值或缺失值,但在 Prometheus 中 NaN 只是另一个浮点值。Prometheus 表示缺失数据的方式是让数据缺失。Prometheus 支持所有 64 位浮点值,包括正无穷大、负无穷大和 NaN。

出现NaN的情况示例:

  • 除以分母0

  • 用作过时处理一部分的标记。

    然而,这是一个实现细节。在过时实现中使用的特定位模式恰好是 NaN,这对 PromQL 用户来说永远是不可见的,尽管远程存储实现如果自己做任何数学运算,可能必须关心这一点。

NaN参数运算时:

因为任何涉及 NaN 的数学都会返回 NaN。根据标准浮点语义,您可以利用 NaN 的独特属性 NaN != NaN。然而,这种情况的用例通常是平均值或分位数的平均值,这两者在统计上都不是有效的。

PromQL 中有些地方对 NaN 值进行了特殊处理,以便行为符合预期。min并max会分别认为 NaN 值大于/小于所有其他数字。sort并且sort_desc实际上并不对称,NaN 总是排在底部。类似地,bottomk和topk将分别认为 NaN 值大于/小于所有其他数字。换句话说,只要你至少有k非 NaN 值,bottomk就topk不会返回 NaN。在某一时刻changes还需要修复错误才能NaN正确处理。

2、如何处理NaN

2-1、即先求和再除。一般来说,总是最后进行除法

不要用:

avg by (job)(rate(my_sum[5m])/ rate(my_count[5m])
)

要用:

  sum by (job)(rate(my_sum[5m]))
/sum by (job)(rate(my_count[5m]))

2-2、如果 NaN 设法进入对值进行数学运算的函数或运算符的输入,则结果将为 NaN。在这种情况下,消除 NaN 的来源,而不是尝试解决下游的不良数据。

注意:这也是为什么部分开源dashboard中,要对源数据取>0就是要过滤掉NaN,以避免由于个别NaN数值,导致整个Sql的结果为NaN

example:

sum (irate (memcached_commands_total{instance=“memcached-instance”}[5m])) by (command)

结果:

{command="delete"}  0
{command="flush"}   0
{command="get"} 62.733333333333334
{command="incr"}    0
{command="set"} 93.43333333333334
{command="touch"}   NaN
{command="cas"} 0
{command="decr"}    0

sum (irate (memcached_commands_total{instance=“memcached-instance”}[5m]))

{}  NaN

原因: command="touch"是NaN,因此整个计算是NaN

解决办法: 从计算源中去除NaN

sum (irate (memcached_commands_total{instance="memcached-instance"}[5m]) > 0)

3、为什么不设置成 0 , 而设置成 NaN

某些情况下0是正常值,代表某种特殊情况,这样就会混淆

4、Prometheus的函数对NaN处理逻辑:

如果 Metrics 的值里面混有 NaN 的值, 那么会直接污染整个结果, 导致输出的结果就像上面那样, 全部都是 NaN. rate 和 stddev 函数同理

// sum
func funcSumOverTime(vals []parser.Value, args parser.Expressions, enh *EvalNodeHelper) Vector {return aggrOverTime(vals, enh, func(values []Point) float64 {var sum float64for _, v := range values {sum += v.V                   // 这里可以看到, 直接累加全部的收集到的 Metrics 的值, }return sum})
}// avg
func funcAvgOverTime(vals []parser.Value, args parser.Expressions, enh *EvalNodeHelper) Vector {return aggrOverTime(vals, enh, func(values []Point) float64 {var mean, count float64for _, v := range values {count++mean += (v.V - mean) / count  // 这里也是类似, 把和现在差值直接加上去}return mean})
}

max 和 min 函数不受影响:

// Max
func funcMaxOverTime(vals []parser.Value, args parser.Expressions, enh *EvalNodeHelper) Vector {return aggrOverTime(vals, enh, func(values []Point) float64 {max := values[0].Vfor _, v := range values {if v.V > max || math.IsNaN(max) {  // 过滤 NaNmax = v.V}}return max})
}// Min
func funcMinOverTime(vals []parser.Value, args parser.Expressions, enh *EvalNodeHelper) Vector {return aggrOverTime(vals, enh, func(values []Point) float64 {min := values[0].Vfor _, v := range values {if v.V < min || math.IsNaN(min) {  // 过滤 NaNmin = v.V}}return min})
}
http://www.yayakq.cn/news/986441/

相关文章:

  • 类似链家网站建设方案网络游戏中心
  • 织梦系统如何做网站地图旅游网站建设开发
  • 网站域名解析查询专业网站设计 网络服务
  • 泾川县门户网站留言成都网站建设及推广
  • 广州网站优化实战电商网站建设最好的公司
  • 小游戏大全网站邯郸做企业网站改版
  • 棋牌类网站设计建设做一个小程序需要多少钱?
  • wordpress 插件翻译丹东抖音seo精英
  • 做亚马逊产品测评的网站平面设计基础知识
  • 北京网站制作收费标准4核8g云服务器
  • 购物网站大全分类已有网站怎么做后台
  • phpcms v9做网站未备案网站处理系统
  • 网站的设计分析临沂专业网站建设公司
  • 购物型网站模板食品网站建设 网站定制开发
  • 平泉网站建设客户关系管理系统软件
  • 用墨刀做网站后台原型c2c的典型代表有哪些
  • 中国摄影网站有哪些wordpress建站好吗
  • 网站开发收费标准文档工程网站建设
  • 网站开发公司能不能去儿童摄影设计
  • 任丘网站制作有没有什么好的网站
  • 网站seo快速排名优化的软件培训班线上优化
  • 什么秀网站做效果图满山红网站建设公司
  • 响应式网站检测工具系统管理的主要内容
  • 临沂网站建网站分析软件
  • 淘宝客导购网站商务网页设计与制作答案
  • 物流行业网站源码保定做网站公司
  • 广西柳州网站制作公司在哪个网站做流动补胎的广告好
  • 国内建设地铁的公司网站怎么建网页
  • 广东建设项目备案公示网站网络推广标题技巧
  • 制作图网 专业图片在线制作网站godaddy wordpress 备