利用Splunk做应用程序的性能分析

Kubernetes监控数据集成Splunk Metrics Store:Heapster TCP方案实践 在云原生和容器化技术普及的背景下,基础设施监控与可观测性成为保障系统稳定运行的关键。时间序列指标作为监控数据的核心,记录了系统资源使用、应用性能等动态变化信息,其高效收集、存储与分析直接影响运维效率。StatsD作为一种轻量级指标收集协议,因其简单、低开销的特性,成为跨平台指标传输的常用桥梁。通过将StatsD协议与TCP可靠传输结合,可以构建高完整性的监控数据管道,有效避免UDP协议可能的数据丢失问题。这一技术方案特别适用于需要将异构监控数据统一汇聚到企业级分析平台的场景,能够实现基础设施监控与日志、事件 阅读详情

在我们的开发过程中,经常会需要对我们开发的程序做性能分析,有很多性能分析的工具,很多语言都提供了不同的profiling工具,这些工具很有用,提供了程序运行的原始记录数据,通过对这些数据的分析,可以得到程序运行的性能状况,找到问题所在。然而,这样的工具手机的数据比较原始,往往还需要一些更进一步的分析,才能定位问题。

Splunk是一个可以运行在不同平台上的机器数据的实时运维平台,所谓机器数据,就是指机器产生的数据,其中一个常见的场景就是日志。对于广大程序员来说,分析日志是一个非常常见,而且繁琐的工作,而且很多时候,必须通过日志来对程序进行调试,例如多线程的情况。记得以前为了几百兆或者几G的日志进行分析,不得不写了logViewer来分析。现在有了Splunk,真的极大的简化了对日志分析的工作。(注Splunk免费版支持每天500M的日志数据,超过这个额度需要收费)

通过日志进行性能测试是非常常见的,传统的也是在要分析的代码处,注入性能日志,然后在程序运行后,对写入的性能数据进行分析。使用Splunk,方法是一样的,但是有以下明显的改进

  1. Splunk提供大量友好的分析命令和图表,无需另行开发分析日志的程序

  2. Splunk可以实时的对应用程序作分析,可以在程序的运行过程中,一边运行,一边分析

我下面举一个我碰到的例子。

我要分析的程序是一个从AWS CloudWatch收集数据的Python程序。收集数据使用的是AWS提供的Restful API (Boto),为了更高效的收集数据,程序使用多个线程来调用Restful API 的Query接口。我希望通过性能日志了解每一个请求大概的耗时,以决定使用多少个线程数和对应的采集间隔。

首先,需要写日志:

logger.log(logging.DEBUG, "PerfLog=QueryStart" )
## Query Code Goes Here
do_query_aws()
## Query Complete
logger.log(logging.DEBUG, "PerfLog=QueryEnd, Query Result)


注意使用Name=Value的形式可以帮助Splunk在搜索时,提取要分析的字段。

然后运行程序,程序运行以后会生成日志文件,把该日志文件导入到Splunk,开始分析。

点击Add Data按钮,然后跟随Splunk的指导,选择A file or directory of files. 导入你的日志文件,导入过程中,Splunk会要求给你的日志文件命名一个sourcetype,我用的是“cloud_watch_debug”

导入好以后就可以开始搜索了。

在搜索框中输入

sourcetype="cloud_watch_debug”


Splunk会实时的返回所有的日志文件,并按时间解析为一个个的事件。

Splunk的SPL(Splunk Search Language)是一个类似SQL和UNIX Command的综合体,可以对数据进行搜索,分析,统计,生成图表,支持管道,使用起来非常方便,建议大家通过官方文档来了解。

我么今天要做的是性能分析,那么我就是要统计一下,发了多少个query,每一个query用了多少时间。

每一条日志的内容大致如下

2014-08-11 10:52:40,587 DEBUG pid=3742 tid=QueryWorkerThread-1 file=aws_cloudwatch.py:_main_work_loop:469 | PerfLog = QueryStart


Splunk能够提取出大量的信息和字段(field),包括事件,pid,tid,file等等,还有我们在日志中加入的字段PerfLog。

想要知道每一个查询所花费的时间,可以通过Splunk提供的transaction命令。

sourcetype=cloud_watch_debug | transaction tid startswith="QueryStart" endswith="QueryEnd"


  • tid表示每一个transaction需要有相同的tid,也就是说同一个线程

  • startwith和endwith表示transaction的其实和结束标志

该命令返回所有的query的transaction

然后我们就可以统计每一个transaction所用的时间

sourcetype=cloud_watch_debug | 
transaction tid startswith="QueryStart" endswith="QueryEnd" | 
stats sum(duration),count, avg(duration),max(duration),min(duration)


  • stats命令用于对数据进行统计

  • duration是Splunk对transaction生成的事件跨度

  • sum,count,avg,max,min是统计命令

运行结果如下:

程序一共发送了111075个cloudwatch的请求,最慢的需要2.5秒,最快的0.06秒,平均大概0.11秒。

我还想知道query的耗时随时间的变化,我可以生成一个timechart

sourcetype=cloud_watch_debug | 
transaction tid startswith="QueryStart" endswith="QueryEnd" | 
timechart avg(duration)


结果如下(最近1小时):

通过该分析在过去的一个小时里10:30和11:00之后的十分钟时间段,耗时略有上升,大概峰值0.2秒。


总结:

Splunk的日志分析功能非常强大,而且500M的免费版基本能够满足大部分程序员对程序日志的分析要求。有效地使用Splunk来进行日志分析,可以做到事半功倍,小伙伴们快来试用吧!

30、Splunk性能优化与分析全解析 本文深入解析了Splunk的性能优化与分析,涵盖了大海捞针式搜索、分布式搜索、索引性能、磁盘速度对搜索性能的影响,以及搜索头性能分析。通过详细的性能测试和配置建议,帮助用户全面优化Splunk环境,提升搜索和索引效率。 阅读详情

相关推荐

DevOps 2.如何利用监控工具优化应用性能?

作者:禅与计算机程序设计艺术 1.简介 1.1 问题背景 在软件开发生命周期中,我们经历了从需求分析、设计到编码测试、发布上线,最后用户反馈。但随着互联网产品业务的快速发展,日活跃用户越来越多,同时系统访问量也越来越高,系统的响应时间变慢,最终导致用户体验下降

AI天才研究院 2184

Splunk Transaction

1.Transaction概念 Transaction是一个事件组,其中内容是在一定时间范围内一组概念关联的事件。比如: 一组session ID相同的web访问事件 一组具有相同message ID的消息队列事件 一组具有相同订单号的购物车事件 …… 2.transaction命令 我们...

chuiku1691的博客 1052

Python新手必看:5分钟搞定睿尔曼机械臂基础控制(附代码示例)

本文为Python新手提供了快速上手睿尔曼机械臂基础控制的实战指南。通过详细的步骤讲解和代码示例,介绍了从环境搭建、网络配置、SDK安装到建立连接、执行关节运动(movej)、直线运动(movel)等核心控制指令的全过程,帮助零基础开发者快速实现机械臂的基础操控。

hp777的博客 330

spark系列一:transaction操作实战

1、算子实战: package cn.spark.study.core; import java.util.Arrays; import java.util.Iterator; import...

cjx42518041的博客 339

手把手教你学Simulink--基于火电发电系统的场景实例:燃煤发电机组的锅炉-汽轮机协调控制仿真

本文介绍了使用Simulink构建燃煤发电机组锅炉-汽轮机协调控制系统的仿真方法。系统包含锅炉子系统、汽轮机子系统和协调控制器三大模块,通过传递函数建模和PID控制策略实现协调控制。详细说明了从模型创建、子系统设置到控制器设计的完整流程,包括燃料供给、汽轮机模型和数据处理等关键环节。最后通过性能评估验证系统响应速度、参数稳定性和效率等指标。该仿真方法为火电系统控制策略设计和优化提供了有效工具。

MHD0815的博客 1153

S32K3xx系列DMA驱动实战:EB配置与Mcal接口应用全解析(含Adc硬件触发示例)

本文深入解析S32K3xx系列MCU的DMA驱动开发,涵盖EB工具配置与Mcal接口应用,特别包含ADC硬件触发示例。通过详细架构分析、实战配置步骤和工业级应用案例,帮助开发者掌握AUTOSAR环境下DMA高效数据传输技术,提升汽车电子和工业控制系统的性能。

weixin_29162439的博客 466

splunk java SDK使用注意事项

当在jre8上使用splunk javaSDK 需要把 jre中的/lib/security/java.security 中的jdk.tls.disabledAlgorithms=SSLv3这行注释掉,写成 # jdk.tls.disabledAlgorithms=SSLv3,方能解决https连接报错问题 另外,使用free许可证时,如果用官方的java sdk从其他主机连接的话,会报错,

豆之助 2068

从零构建SOEM主站:基于STM32的EtherCAT伺服控制实战指南

本文详细介绍了如何从零构建基于STM32的SOEM主站系统,实现EtherCAT伺服电机的高精度控制。通过硬件选型、SOEM协议栈移植、PDO/SDO配置优化等实战步骤,帮助开发者掌握工业自动化中的关键运动控制技术,特别适用于23位编码器伺服电机的应用场景。

weixin_29186249的博客 667

Splunk-SDK-Python学习

Splunk 最近在公司实习用到了splunk,需要调用splunk sdk进行一些简单的开发,目前把我这个星期的一些体会记录下。 什么是splunk 简单来说,Splunk是一个托管的日志文件管理工具,它的主要功能包括: · 日志聚合功能 · 搜索功能 · 提取意义 · 对结果进行分组,联合,拆分和格式化 · 可视化功能 · 电子邮件提醒功能 而目前我通过splunk s

韦人人韦 5967

VulnHub系列之BadStore_123渗透测试

BADSTORE: 1.2.3 早期网商系统漏洞鉴赏(2004)

Flynn的博客 1630

深入解析Incapsula reese84的生成机制与绕过策略

本文深入解析了Incapsula reese84的生成机制与绕过策略。reese84是一种基于客户端JavaScript挑战的Web安全防护,通过动态算法收集浏览器指纹并生成令牌Cookie。文章详细拆解了其两步验证流程,并提供了使用无头浏览器、逆向JS模拟请求以及Token维护等实战绕过方法,帮助开发者和安全研究人员应对自动化访问拦截。

weixin_29256771的博客 443

Summarize日志聚合终极指南:ELK Stack与Splunk集成实践

在当今数据驱动的时代,**日志聚合**已成为监控和分析应用性能的关键技术。对于使用Summarize进行内容摘要处理的团队来说,有效的日志管理不仅能帮助调试问题,还能提供宝贵的业务洞察。本文将为你详细介绍如何将Summarize的日志系统与业界领先的**ELK Stack**和**Splunk**平台进行集成,构建完整的日志聚合解决方案。 ## 📊 Summarize日志系统概览 Summa

gitblog_00625的博客 1029

骑砍Ⅱ霸主MOD开发(16)-FaceKey&BannerKey

摘要:本文介绍了FaceKey人物模型和BannerKey旗帜模型的生成流程。FaceKey通过序列化参数生成人物模型,包括头部(脸部、嘴、睫毛、眼睛)、眉毛、头发、身体和躯干等组件,每个部分通过特定标签和骨骼绑定实现。BannerKey则通过解析参数生成旗帜模型,包括模型、贴图和颜色等元素。两种模型都采用参数化设计和XML配置文件实现模型生成与定制。

骑砍战团&霸主MOD开发 2289

SIEM 工具选型:Splunk vs ELK Stack 的性能对比

在选择安全信息与事件管理(SIEM)工具时,性能是关键因素,它直接影响数据摄入速度、查询响应时间和系统可扩展性。Splunk 和 ELK Stack(Elasticsearch、Logstash、Kibana 的组合)都是主流工具,但性能表现差异显著。以下我将逐步分析两者的性能对比,基于真实测试数据和行业实践,帮助您做出明智决策。分析聚焦于核心性能指标:数据摄入速率、查询延迟、资源消耗和可扩展性。在比较前,先量化关键性能指标:Splunk 是商业解决方案,以高效和易用性著称,性能优化较好。ELK Stack

asfdsfgas的博客 1085

基于STM32的智能血氧、心率、体温、血压监测系统

摘要:本文设计了一款基于STM32F103C8T6的多功能健康监测系统,可实时检测血氧、心率、体温和血压四项生理参数。系统集成MAX30102、DS18B20等传感器模块,采用OLED显示和蓝牙无线传输技术,实现一键血压测量、阈值报警及手机APP数据管理功能。硬件设计包含传感器采集、电源管理、显示报警等模块;软件采用模块化架构,实现数据采集处理、蓝牙通讯等功能。测试表明系统测量准确可靠,为家庭健康监测提供了便携解决方案。未来可扩展更多监测参数和智能分析功能。

3254968421的博客 772

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

用Splunk给Apache日志做体检:从状态码分析到异常请求追踪

本文详细介绍了如何利用Splunk对Apache日志进行深度分析,从状态码监控到异常请求追踪。通过实战案例展示如何快速定位5xx错误、分析慢请求模式以及检测异常IP行为,帮助运维团队提升网站性能与安全性。文章还提供了Splunk查询示例和自动化监控配置建议。

weixin_29279153的博客 341

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Splunk在2021年Gartner发布的IT和安全市场份额报告中均排名第一

2021 年报告发布后,Splunk 分别连续第三年和第四年在 IT 运营和 SIEM 市场份额排名中领先北京 —— 2022 年 6 月 1 日——安全和可观察性数据平台的领导者 Splunk 公司(纳斯达克股票代码:SPLK)今天宣布,根据 Gartner 发布的《市场份额:2021 年全球所有软件市场》报告,Splunk 在 IT 运营的健康和性能分析(Health and Performance Analysis,HPA)细分领域以及安全信息和事件管理(Security Information an

cover_se的博客

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Undici请求日志分析:Splunk集成实践指南

在现代Web开发中,**Undici请求日志分析**已成为监控和调试HTTP通信的重要环节。作为Node.js生态中性能卓越的HTTP/1.1客户端,Undici提供了强大的日志记录功能,结合Splunk企业级日志分析平台,能够为你的应用程序提供完整的可观测性解决方案。💡 ## 为什么需要Undici请求日志分析? **Undici日志记录**不仅仅是简单的请求和响应信息输出,它包含了从连接

gitblog_07328的博客 476

3大日志分析工具深度测评:ELK/Splunk/Loki如何赋能Bytebot容器化监控

在Bytebot的容器化架构中,日志分散在多个服务组件中,包括[bytebot-agent](https://link.gitcode.com/i/5428456c4772a27774c7a16ea5cbaead)、[bytebot-desktop](https://link.gitcode.com/i/756b1fa2e2aa2b2c7a720787117a517e)和数据库等。根据[快速启动文...

gitblog_01186的博客 430

IDC和Gartner报告称Splunk的增速显著

持续产品创新助力客户在IT和安全市场取得成功 北京--(美国商业资讯)--率先从机器数据带来惊喜时刻的Splunk公司(NASDAQ: SPLK)今天宣布,据全球著名的分析机构IDC和Gartner的2017年市场份额报告显示,Splunk在IT运维分析(ITOA)、IT运营管理(ITOM)以及安全与漏洞管理方面呈持续增长态势。 Splunk公司总裁兼首席执行官Doug Merritt表示:“...

美国商业资讯的博客 839

Java日志收集方案深度对比(ELK vs Loki vs Splunk):选型不再纠结

解决Java日志管理难题,本文深度对比ELK、Loki与Splunk三大Java日志收集方案,涵盖适用场景、架构特点与性能优势,助你高效选型。方案覆盖云端与企业级部署,选型不再纠结,值得收藏。

Algorhythm的博客 992

SigLens:比Splunk高效100倍的日志管理平台,90%成本节省全指南

# SigLens:比Splunk高效100倍的日志管理平台,90%成本节省全指南 SigLens是一款高效的开源日志管理平台,相比传统解决方案Splunk提供100倍的性能提升,同时能帮助企业减少高达90%的可观测性成本。作为一款专为现代云原生环境设计的日志管理工具,SigLens通过创新的存储和查询优化技术,让日志处理变得更快速、更经济、更简单。 ## 为什么选择SigLens?核心优势解

gitblog_00306的博客 733

Kubernetes日志收集实战:基于Splunk Connect的端到端可观测性方案

在云原生架构中,日志收集是保障系统可观测性的基础环节。其核心原理在于通过统一的采集代理,实时捕获并传输分布式环境下的应用日志、事件与指标数据。这项技术的价值在于将运维重心从繁琐的日志查找转向高效的数据分析,显著提升故障排查与性能监控的效率。在Kubernetes动态容器化场景下,日志收集面临容器漂移、数据源分散等独特挑战,需要原生集成方案。本文聚焦于Splunk Connect for Kubernetes(SCK)这一端到端解决方案,它通过DaemonSet部署采集器,利用Fluent Bit等工具实现标

weixin_42545292的博客 244

Sigma规则性能基准测试:不同SIEM平台的规则执行效率对比

Sigma规则是SIEM系统中通用的签名格式,它为安全团队提供了跨平台检测能力。本文将深入分析Sigma规则在不同SIEM平台上的性能表现,帮助您选择最适合的部署方案。 [![Sigma规则架构](https://raw.gitcode.com/gh_mirrors/sig/sigma/raw/96f5ae8cffe39e29d118b0710a49c7ffd0dfde1b/images/Sig

gitblog_01141的博客 1068
上一篇: 用HTML5构建一个流程图绘制工具
下一篇: 在ipython notebook中调用ggplot的三种不同的方法
刚是程序员
博客等级 码龄9年 47粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值