【splunk】按时间统计并找到异常值
场景:
有长时间对多个端口访问的日志数据,每天对端口的访问量是稳定的。如果某一天对某个端口的访问量突然增加表示可能出现了问题。现在要通过splunk找到异常值。
思路:
统计每个端口每天的访问量。统计其最大值,平均值,中位数。最大值和平均值比值大的,以及最大值和中位数比值大的就是可能异常的地方。通过一个交互折线图来展示选定端口每天的访问量。
1.统计每个端口每天的访问量。
source="port.csv" |fillnull value=NULL|search port!=NULL port != | convert timeformat="%Y-%m-%d" ctime(_time) AS date | stats count as date_count by date,port
关键点:
convert timeformat="%Y-%m-%d" ctime(_time) AS date:数据中时间戳字段为_time,举例:2017-06-26T00:00:00.000+08:00 用convert将时间转换为2017-06-26的日期格式。这样同一天的数据都会有相同的date。
2.统计每个端口每天访问量的最大值,平均值,中位数,以及比值。
source="port.csv" |fillnull value=NULL|search port!=NULL| convert timeformat="%Y-%m-%d" ctime(_time) AS date | stats count as date_count by date,port|stats median(date_count) as median_count max(date_count) as max_count avg(date_count) as avg_count by dport|eval avg_deviation=max_count/avg_count|eval median_deviation=max_count/median_count|sort -avg_deviation
3.获取指定端口的每天访问量
步骤2做表后,点击编辑来源,打开仪表盘xml,在对应的<search></search>标签下添加
<drilldown>
<set token="select_port">$click.value$</set>
</drilldown>
这样,在点击port后,就可以通过$select_port$来获取到对应的port值了。
做折线图:
source="port.csv" port="$select_port$"|convert timeformat="%Y-%m-%d" ctime(_time) AS date|stats count by date
标题设为:$select_port$端口每日访问量
这样当通过表格选择端口后,就可以在折线图上直观看到访问量变化。
效果:

【splunk】按时间统计并找到异常值的更多相关文章
- C++高精度计时器——微秒级时间统计
在C++中,经常需要通过计时来统计性能信息,通过统计的耗时信息,来分析性能瓶颈,通常情况下,可能毫秒级别的时间统计就足够用了,但是在毫厘必争的性能热点的地方,毫秒级别的统计还是不够的,这种情况下,就需 ...
- H5性能测试,首屏时间统计(Argus)
Argus 腾讯质量开发平台,官网链接:https://wetest.qq.com/product/argus 主要针对性:H5的游戏性能测试 主要介绍: 独家首屏时间统计: 告别人工掐秒 自动统计首 ...
- MySQL按时间统计每个小时记录数
MySQL按时间统计每个小时记录数 方案1: ? 1 2 3 4 5 6 7 SELECT @rownum := @rownum + 1 AS ID, CONCAT((CASE WH ...
- c++程序时间统计
如下所示,引入<time.h>我们就可以统计时间了: #include<iostream> #include<time.h> #include<windows ...
- mysql时间统计,查询月份,周数据
在mysql数据库中,常常会遇到统计当天的内容.例如,在user表中,日期字段为:log_time 统计当天 sql语句为: select * from user where date(log_tim ...
- Golang 1.3 发布时间。最终找到地方下载。
golang 1.3 已发布 但golang.org官方网站被封锁不能下载. 最终找到一个镜像站点. http://golang.so/ http://tip.golang.so/ golang中国的 ...
- 笔试算法题(18):常数时间删除节点 & 找到仅出现一次的两个数字
出题:给定链表的头指针和一个节点指针,要求在O(1)的时间复杂度下删除该节点 分析: 如果需要删除的节点为A,其前序节点为A-,其后续节点为A+,所以删除A之后,需要使得A-的下一个节点就是A+,常规 ...
- shell 时间统计脚本
#!/bin/sh #Today=`date +%Y%m%d` YEAR=`echo $|cut -c -` MONTH=`echo $|cut -c -` DAY=`echo $|cut -c -` ...
- rdtsc获取时间统计程序的运行效率
__u64 rdtsc() { __u32 lo,hi; __asm__ __volatile__ ( "rdtsc&q ...
随机推荐
- Centos7使用man查找命令时,报错No manual entry for xxxx
man ascii时报错 解决报错的方法: yum install man-pages
- VS 中NuGet 尝试还原程序包时出错"*"已拥有为"**"定义的依赖项
之前从Git检出项目以后,项目编译不能通过,发现是缺少依赖的外部插件,于是通过NuGet去获取项目依赖的插件,如何通过NuGet恢复使用的插件请使用NuGet还原项目插件. 但是就是在使用NuGet还 ...
- BigDecimal实现末尾去掉无用0
BigDecimal 原生提供了 stripTrailingZeros 方法可以实现去掉末尾的 0,然后使用 toPlainString 可以输出数值,注意这里如果使用 toString() 会变成 ...
- Centos 03 基础命令
切换目录 cd ~ 切换到当前用户的家目录 cd - 切换到上一次的目录 上传与下载 支持包在Dial-up Networking Support选项里,没有装可以通过 1.yum install l ...
- 算法-链的操作(一)-合并两个排序的链接(no.25)
合并两个排序的链接(no.25) 把下面连个排好序的链,从小到大排序链接. list1 : 1 -> 6 -> 8 list2 : 2-> 5 -> 9 def merge(h ...
- c/C++编译的程序占用的内存分为以下几个部分
首先要搞清楚编译程序占用的内存的分区形式:一.预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1.栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等 ...
- java ArrayList、Vector、LinkedList区别
- 方法join()使用详解
在线程的常见方法一节中,已经接触过join()方法的使用. 在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程将早于子线程结束.这时,如果主线程想等子线程执行完成才结束,比 ...
- sqoop导数据
1.添加oracle jdbc驱动 https://blog.csdn.net/eason_oracle/article/details/76836758 2.
- C# 如何进行图像的压缩
从网上找的非常有效.图片3M到500k private static ImageCodecInfo GetEncoderInfo(String mimeType) { int j; ImageCode ...