时间序列

开源监控软件之争

吃可爱长大的小学妹 提交于 2019-11-29 00:36:26
开源监控软件 Zabbix 和 Nagios 究竟哪个更好?Zabbix 可视化更好?Nagios 更轻量?作为产品经理程默的一名默默无闻的小粉丝,觉得很有义务把他的回答编辑整理出来让大家看到。下面是程默在知乎上的回答,经本人同意转载。 首先,提醒一下大家。下面的内容,有可能会被认为是广告,因为我推荐的是我自己做的一款产品:Cloud Insight. 但是,在对比 Zabbix 和 Nagios 的时候,我觉得有些东西还是值得拿出来讨论一下的。第一个就是上文 Wenx 提到的:没有更好,只有更适合吧。是否需要使用 Zabbix 或者 Nagios 都是可以拿出来讨论讨论的。在人员不够、经验不足、时间很紧的情况下,有必要使用 Zabbix 或 Nagios 这样很重的解决方案吗?Zabbix 和 Nagios 相继出现在 1998 年和 1999 年,经过历史的发展和迭代,以及社区中很多程序员的贡献,已经发展得很强大了。我们 OneAPM 公司初期也是使用 Zabbix 来做所有云主机和物理主机的监控。但是后期遇到了很多大的麻烦: 用 Zabbix 和 Nagios 真的很依赖运维工程师的实际水平和 Docker Mesos 这些新技术的支持。 需要自己去找脚本来试验,真的很麻烦。 数据是只读的,运维工程师真的就只是看看,出啥问题了,最后还是重启

时间序列:时间序列理论、时间序列建模

不想你离开。 提交于 2019-11-28 10:55:00
时间序列的理论 u 平稳时间序列 时间序列平稳性定义: 平稳时间序列分为:自回归模型,滑动平均模型,自回归滑动平均模型 自回归模型:当前值由前p期值决定 滑动平均模型: 自回归滑动平均模型: 根据模型的自相关图,AR(p)模型的自相关系数随着延迟阶数的增加逐渐递减,呈现拖尾状态,而偏自相关系数随着延迟阶数的增加迅速减到0,呈现截尾状态。MA(q)模型与AR(p)模型相反。ARMA模型自相关和偏自相关图均是拖尾的。 模型的拖尾性和截尾性: u 非平稳时间序列: k阶差分 一阶差分:相距一期的两个序列之间的减法运算称为一阶差分运算 二阶差分:对一阶差分后序列再进行一次一阶差分运算称为二阶差分 k步差分: 相距k期的两个序列值之间的减法运算称为k步差分运算 差分方式的选择: 实践中,我们会根据序列的不同特点选择合适的差分方式,常见情况有如下三种: (1)具有显著线性趋势的序列,通常一阶差分可以实现差分后平稳。 (2)具有曲线趋势的序列,通常低阶(二阶或者三阶)差分可以实现差分后平稳。 (3)具有固定周期的序列,通常进行步长为周期长度的差分运算,可以实现差分后平稳。 平稳时间序列的建模 u 平稳序列建模步骤 假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列进行建模。建模的基本步骤如下: (1)求出该观察值序列的样本自相关系数(ACF

Python Statsmodels的时间序列Ljung_Box检验

梦想的初衷 提交于 2019-11-28 07:52:53
Ljung-Box检验即LB检验,是时间序列分析中检验序列自相关性的方法。LB检验的Q统计量为: 用来检验m阶滞后范围内序列的自相关性是否显著,或序列是否为白噪声,Q统计量服从自由度为m的卡方检验。 LB检验可同时用于时间序列以及时序模型的残差是否存在自相关性(是否为白噪声)。Python的statsmodels包提供了该检验的函数: from statsmodels.stats.diagnostic import acorr_ljungbox as lb_test 函数输入lb_test(x,lags=None,boxpierce=False): x:检验的时间序列 lags:检验的延迟数,若为None则输出 boxpierce:若为True,则同时输出boxpierce统计量的检验结果 (Box-Pierce检验为白噪声检验的另一个版本,是LB检验的前身) 输出: LB统计量值(array) LB-p值(array) 若boxpierce=True,则继续输出BP统计量的值和相应p值 来源: https://www.cnblogs.com/travelcat/p/11400307.html

PromQL操作符

牧云@^-^@ 提交于 2019-11-27 16:30:49
PromQL操作符 使用PromQL除了能够方便的按照查询和过滤时间序列以外,PromQL还支持丰富的操作符,用户可以使用这些操作符对进一步的对事件序列进行二次加工。这些操作符包括:数学运算符,逻辑运算符,布尔运算符等等。 数学运算 例如,我们可以通过指标node_memory_free_bytes_total获取当前主机可用的内存空间大小,其样本单位为Bytes。这是如果客户端要求使用MB作为单位响应数据,那只需要将查询到的时间序列的样本值进行单位换算即可: node_memory_free_bytes_total / (1024 * 1024) node_memory_free_bytes_total表达式会查询出所有满足表达式条件的时间序列,在上一小节中我们称该表达式为瞬时向量表达式,而返回的结果成为瞬时向量。 当瞬时向量与标量之间进行数学运算时,数学运算符会依次作用域瞬时向量中的每一个样本值,从而得到一组新的时间序列。 而如果是瞬时向量与瞬时向量之间进行数学运算时,过程会相对复杂一点。 例如,如果我们想根据node_disk_bytes_written和node_disk_bytes_read获取主机磁盘IO的总量,可以使用如下表达式: node_disk_bytes_written + node_disk_bytes_read 那这个表达式是如何工作的呢

1. 什么是Prometheus

时光总嘲笑我的痴心妄想 提交于 2019-11-27 10:14:16
什么是Prometheus Prometheus 是一个最初在 SoundCloud上 构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有一个非常活跃的开发人员和用户 社区 。它现在是一个独立的开源项目,可以独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus 于2016年加入 云计算本地计算基金会 ,作为继 Kubernetes 之后的第二个托管项目。 有关Prometheus的更详细概述,请参阅 媒体 部分链接的资源 。 特征 普罗米修斯的主要特点是: 具有由度量名称和键/值对标识的时间序列数据的多维 数据模型 PromQL,一种 灵活的查询语言, 可以利用这一维度 不依赖分布式存储; 单个服务器节点是自治的 时间序列集合通过HTTP上的拉模型发生 推送时间序列 通过中间网关支持 通过服务发现或静态配置发现目标 多种图形和仪表板支持模式 组件 Prometheus生态系统由多个组件组成,其中许多组件是可选的: 主要的 Prometheus服务器 ,用于存储时间序列数据 用于检测应用程序代码的 客户端库 用于支持短期工作的 推送网关 针对HAProxy,StatsD,Graphite等服务的专用 出口商 一个 alertmanager 处理警报 各种支持工具

交通量预测——极端情况下的预测算法

青春壹個敷衍的年華 提交于 2019-11-27 07:15:39
1.背景介绍 在高方差时段(如节假日和体育赛事等等)准确的预测交通量,对于异常检测、资源分配、预算规划和其他相关的任务都是至关重要,这些任务有助于网约车大规模优化用户体验,然而,预测这些变量极具挑战性,因为这种极端事件预测取决于天气、城市人口增长和其他导致预测不确定性的外部因素。 近几年来,长短期记忆网络技术以其端到端建模,易于映入外生变量和自动特征抽取的特点,成为了一种流行的时间序列建模框架。LSTM方法利用多个维度的大量数据,可以对复杂的非线性特征相互作用进行建模,这对于预测极端事件是至关重要的。 在Lingxue Zhu和Nikolay Laptev发表在IEEE的一篇论文 Deep and Confident Prediction for Time Series at Uber 中,介绍一种新的端到端贝叶斯神经网络(BNN)结构,它能在大规模的情况下更精准地预测时间序列结果和不确定性预测。 2.概述 2.1不确定性预测 首先,我们用函数 来表示一个神经网络,其中f表示是网络的结构,用** W **来表示模型参数的集合。在BNN模型中,引入了权重参数的先验,并且模型的目标是去拟合最优的后验分布。比如,高斯先验通常假设: 。 然后,我们进一步数据生成分布定为 。在回归问题中,我们通常假设: (其中具有一定的噪声 )。 接着,给定N个观测值 和

Prometheus学习系列(三)之Prometheus 概念:数据模型、metric类型、任务、实例

社会主义新天地 提交于 2019-11-27 06:20:43
前言 本文来自 Prometheus官网手册1 、 Prometheus官网手册2 和 Prometheus简介 说明 Prometheus从根本上存储的所有数据都是 时间序列 : 具有时间戳的数据流只属于单个度量指标和该度量指标下的多个标签维度。除了存储时间序列数据外,Prometheus还可以生成临时派生的时间序列作为查询的结果。 metrics和labels(度量指标名称和标签) 每一个 时间序列数据由metric度量指标名称和它的标签labels键值对集合唯一确定。 这个metric度量指标名称指定监控目标系统的测量特征(如: http_requests_total - 接收http请求的总计数)。 注意: 冒号保留用于用户定义的录制规则。 它们不应被exporter或直接仪表使用。 labbels开启了Prometheus的多维数据模型:对于相同的度量名称,通过不同标签列表的结合, 会形成特定的度量维度实例。 (例如:所有包含度量名称为 /api/tracks 的http请求,打上 method=POST 的标签,则形成了具体的http请求)。这个查询语言在这些度量和标签列表的基础上进行过滤和聚合。改变任何度量上的任何标签值,则会形成新的时间序列图。 metric度量指标可能包含ASCII字母、数字、下划线和冒号,他必须配正则表达式 [a-zA-Z_:][a-zA-Z0

Prometheus 系统监控方案 一

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-26 23:39:04
最近一直在折腾时序类型的数据库,经过一段时间项目应用,觉得十分不错。而Prometheus又是刚刚推出不久的开源方案,中文资料较少,所以打算写一系列应用的实践过程分享一下。 Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由 SoundCloud 公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。 Prometheus 的优点 非常少的外部依赖,安装使用超简单 已经有非常多的系统集成 例如:docker HAProxy Nginx JMX等等 服务自动化发现 直接集成到代码 设计思想是按照分布式、微服务架构来实现的 Prometheus 的特性 自定义多维度的数据模型 非常高效的存储 平均一个采样数据占 ~3.5 bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。 强大的查询语句 轻松实现数据可视化 等等 相对于Graphite这种产品,还是有不少优点的。最让我觉得不错的是非常优秀的写性能和读取性能

Prometheus监控学习笔记之初识PromQL

只愿长相守 提交于 2019-11-26 21:24:44
0x00 概述 Prometheus 提供了一种功能表达式语言 PromQL ,允许用户实时选择和汇聚时间序列数据。表达式的结果可以在浏览器中显示为图形,也可以显示为表格数据,或者由外部系统通过 HTTP API 调用。 0x01 表达式语言数据类型 在 Prometheus 的表达式语言中,表达式或子表达式包括以下四种类型之一: 瞬时向量(Instant vector) - 一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样本值。而相应的这样的表达式称之为 瞬时向量表达式 。 区间向量(Range vector) - 一组时间序列,每个时间序列包含一段时间范围内的样本数据。 标量(Scalar) - 一个浮点型的数据值。 字符串(String) - 一个简单的字符串值。 根用户输入的表达式返回的数据类型是否合法取决于用例的不同,例如:瞬时向量表达式返回的数据类型是唯一可以直接绘制成图表的数据类型。 0x02 字面量 字符串 字符串可以用单引号、双引号或反引号指定为文字常量。 PromQL 遵循 与 Go 相同的转义规则 。在单引号或双引号中,用反斜杠来表示转义序列,后面可以跟 a , b , f , n , r , t , v 或 \ 。特殊字符可以使用八进制( \nnn )或者十六进制( \xnn ,