Suche senden
Hochladen
Skyline 简介
•
Als PPT, PDF herunterladen
•
0 gefällt mir
•
1,663 views
琛
琛琳 饶
Folgen
skyline是Etsy的Kale系统的一部分,负责异常探测过滤,和rrdtool/graphite的预测式警报属于另一个方向。
Weniger lesen
Mehr lesen
Reisen
Melden
Teilen
Melden
Teilen
1 von 21
Jetzt herunterladen
Empfohlen
The Content is The Conversation
The Content is The Conversation
Oliver Ding
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?
Mu Chun Wang
Binary exploitation - AIS3
Binary exploitation - AIS3
Angel Boy
调试技术的应用
调试技术的应用
延胜 黄
Vldb Statistics Gathering Strategy
Vldb Statistics Gathering Strategy
Leyi (Kamus) Zhang
网站前端代码静态检查工具综述
网站前端代码静态检查工具综述
pop2008
基于Gpu的高性能计算
基于Gpu的高性能计算
sun peiyuan
网站前端代码静态检查工具研究
网站前端代码静态检查工具研究
pop2008
Empfohlen
The Content is The Conversation
The Content is The Conversation
Oliver Ding
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?
Mu Chun Wang
Binary exploitation - AIS3
Binary exploitation - AIS3
Angel Boy
调试技术的应用
调试技术的应用
延胜 黄
Vldb Statistics Gathering Strategy
Vldb Statistics Gathering Strategy
Leyi (Kamus) Zhang
网站前端代码静态检查工具综述
网站前端代码静态检查工具综述
pop2008
基于Gpu的高性能计算
基于Gpu的高性能计算
sun peiyuan
网站前端代码静态检查工具研究
网站前端代码静态检查工具研究
pop2008
{{more}} Kibana4
{{more}} Kibana4
琛琳 饶
ELK stack at weibo.com
ELK stack at weibo.com
琛琳 饶
More kibana
More kibana
琛琳 饶
Monitor is all for ops
Monitor is all for ops
琛琳 饶
Perl调用微博API实现自动查询应答
Perl调用微博API实现自动查询应答
琛琳 饶
Add mailinglist command to gitolite
Add mailinglist command to gitolite
琛琳 饶
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
琛琳 饶
Logstash
Logstash
琛琳 饶
DNS协议与应用简介
DNS协议与应用简介
琛琳 饶
Mysql测试报告
Mysql测试报告
琛琳 饶
Perl在nginx里的应用
Perl在nginx里的应用
琛琳 饶
Weitere ähnliche Inhalte
Mehr von 琛琳 饶
{{more}} Kibana4
{{more}} Kibana4
琛琳 饶
ELK stack at weibo.com
ELK stack at weibo.com
琛琳 饶
More kibana
More kibana
琛琳 饶
Monitor is all for ops
Monitor is all for ops
琛琳 饶
Perl调用微博API实现自动查询应答
Perl调用微博API实现自动查询应答
琛琳 饶
Add mailinglist command to gitolite
Add mailinglist command to gitolite
琛琳 饶
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
琛琳 饶
Logstash
Logstash
琛琳 饶
DNS协议与应用简介
DNS协议与应用简介
琛琳 饶
Mysql测试报告
Mysql测试报告
琛琳 饶
Perl在nginx里的应用
Perl在nginx里的应用
琛琳 饶
Mehr von 琛琳 饶
(11)
{{more}} Kibana4
{{more}} Kibana4
ELK stack at weibo.com
ELK stack at weibo.com
More kibana
More kibana
Monitor is all for ops
Monitor is all for ops
Perl调用微博API实现自动查询应答
Perl调用微博API实现自动查询应答
Add mailinglist command to gitolite
Add mailinglist command to gitolite
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
Logstash
Logstash
DNS协议与应用简介
DNS协议与应用简介
Mysql测试报告
Mysql测试报告
Perl在nginx里的应用
Perl在nginx里的应用
Skyline 简介
1.
Skyline Etsy 的 控
机制监 过滤
2.
• Etsy 技
博客:术团队 • http://codeascraft.com/2013/06/11/introd ucing-kale/ • Qcon London2013 演 稿:讲 • https://speakerdeck.com/astanway/bring- the-noise-continuously-deploying-under-a- hailstorm-of-metrics 介简
3.
Kale 架构图 • 常探
的异 测 skyline( 左边 ) • 相似 找的查 oculus( 右边 )
4.
skyline 部署 • apt-get
install git numpy scipy python-pip python-msgpack python-pandas python-statsmodels • git clone https://github.com/etsy/skyline • cd skyline • pip install -r requirement.txt • cp src/settings.py.example src/settings.py • mkdir /var/log/skyline • mkdir /var/run/skyline • mkdir /var/log/redis • # 必 用须 2.6 版以上的 redis-server 才能正常存储 • wget http://redis.googlecode.com/files/redis-2.6.13.tar.gz • tar zxvf redis-2.6.13.tar.gz • cd redis-2.6.13 • make
5.
skyline 启动 • ./src/redis-server
../bin/redis.conf • cd bin • # 分析器 • sudo ./analyzer.d start • # 数据接收 • sudo ./horizon.d start • # flask 界面 • sudo ./webapp.d start
6.
horizon 支持 • 2024
端口支持转发 graphite 数据 • 2025 端口支持 pickle 和 msgpack 两种 网 数据格式络 • 数据存 在储 redis 中, key 的命名格式类 似 graphite 的的 group.item.time 这样
7.
analyzer 原理 • analyzer
根据周期内 有数据判断最新数现 据是否 常异 • rrdtool/graphite 是根据 有数据推 下现 测 一个数据 是多少应该
8.
analyzer 原理 • first_hour_average •
是最 的。先求本周期内最前面的第这 简单 一个小 的平均 和 准差,然后和最新时 值 标 的三个 的平均值 值 (tail_avg() , 是后面这 多数算法都通用的做法 ) 做比 。如果较 tail_avg 和 第一小 平均 的差距大于时 值 3 倍的 准差,那么 定 常。标 认 为异
9.
analyzer 原理 • simple_stddev_from_moving_averag e •
把上面算法的范 大化,求的是整个周围扩 期内全部数据的平均 和 准差。值 标
10.
analyzer 原理 • stddev_from_moving_average •
在上面算法的基 上,采用指数加权移础 动 平均 。 周期内采点数量 少的情况更值 对 较 好一些。
11.
analyzer 原理 • mean_subtraction_cumulation •
做法是 的:这样 • 排除最后一个 ;值 • 求剩余序列的平均 ;值 • 全序列 去上面 个平均 ;减 这 值 • 求剩余序列的 准差;标 • 判断全序列最后一个 是否大于值 3 倍的 准差标 • 在代 中本来 算了一次序列的指数加权移码 还计 动 平均 ,但是算完了却没用,感 怪怪的。值 觉
12.
analyzer 原理 • least_squares •
采用最小二乘法 近 序列,然后用拟 时间 实 去 近 得到新序列。然后判断新际值减 拟 值 序列的最后三个 的平均 是否大于值 值 3 倍 的新序列 准差。标 • 所 最小二乘法, 就是 一个谓 简单说 对 [x, y] 序列,会有一 常数对 [m, c] ,让 Y = mx + c 等式中的 Y 和 y 在全序列上最 接近。
13.
analyzer 原理 • histogram_bins •
将整个周期序列的数据按照直方 法图统计 入归 15 个直方中,然后看最后三个 的值 平均 属于值 这 15 个直方的具体 个。如哪 果 个直方中包含的数据小于这 20 个,判 断 常。为异 • 从算法中可以知道,如果周期内数据量不 ,很容易被判断 常的。够 为异
14.
analyzer 原理 • grubbs •
将整个周期序列的数据按照格拉布斯法求 常 。异 值 • 准的格拉布斯法是 的:标 这样 • 从小到大排序; • 求序列的平均 和 准差;值 标 • 算最小 和最大 与平均 的差距,更大的那个 可疑 ;计 值 值 值 为 值 • 可疑 去平均 ,再除以 准差,如果大于格拉布斯 界 ,那么值减 值 标 临 值 就是 常 ;异 值 • 排除 常 , 剩余序列循 做异 值 对 环 1-5 步 。骤 • 里只用判断 序列的最后是否 常,所以直接将最后三个 的平这 时间 异 值 均 作 可疑 判断是否 常即可。值 为 值 异
15.
analyzer 原理 • median_absolute_deviation •
具体 是:序列的最后一个 ,比 序列的 中 大实现 值 该 绝对 值 6 倍以上 ,即判断 常。为异 • 注意 里是中 ,不是平均 。这 值 值
16.
analyzer 原理 • Kolmogorov-Smirnov_test •
具体 是: 算序列内最近十分 的数 的实现 计 钟 值 ks 分布,然后测试 计 算序列中最近一个小 前到十分 前时 钟 这 50 分 的数 的钟 值 ks 分测试 布;如果 个分布相差 大,即判断 常。两 较 为异
17.
webapp 原理 • 一个
flask 面,通页 过 ajax 求请 json 画 。图 • 个这 anomalies.json 是 analyzer 程进 实 生成到时 src/webapp/static/dump 目录 下的。在没有 常的 候的基 式如下异 时 础样 : • handle_data([])
18.
示例 • use Data::MessagePack; •
use AnyEvent::Handle::UDP; • my $mp = Data::MessagePack->new->utf8->prefer_integer; • my $sock = AnyEvent::Handle::UDP->new( • connect => [ '127.0.1.1', '2025' ], • on_recv => sub { }, • autoflush => 1, • ); • my $timer = AnyEvent->timer( • after => 0, • interval => 1, • cb => sub {$sock->push_send($mp->pack(['localhost.loadavg', [time, rand*2]]))} • ); • my $atimer = AnyEvent->timer( • after => 200, • interval => 1, • cb => sub { • $timer = undef; • $sock->push_send($mp->pack(['localhost.loadavg', [time, rand*2000]])); • }, • ); • AnyEvent->condvar->recv;
19.
analyzer.log 常异 记录
20.
webapp 效果
Jetzt herunterladen