性能平台
文章平均质量分 86
性能平台
sysu_lluozh
这个作者很懒,什么都没留下…
展开
-
【Furion】Loki查询之LogQL语句
Loki有LogQL查询语句,它就像一个分布式的grep日志聚合查看器和PromeQL一样,LogQL使用标签和运算符进行过滤,它主要分为两个部分:log stream selector(日志流选择器)filter expression(过滤器表达式)这两部分可以在Loki中组合出想要的功能,通常情况下有如下功能:根据日志流选择器查看日志内容通过过滤规则在日志流中计算相关的度量指标一、log stream selector日志流选择器这部分和PromQL的语法一样,主要也是通过采集上来原创 2022-01-21 08:48:10 · 2302 阅读 · 0 评论 -
【Furion】Loki查询实现请求信息和日志的获取
Furion平台中fagent上报日志和请求sample信息到Loki中【Furion】Loki日志系统现在需要不使用Grafana展示数据,直接获取Loki的数据进行展示一、Loki APILoki提供了一系列开放的API支持数据的查询HTTP API,接下来看看符合使用的query_range接口的使用GET /loki/api/v1/query_range/loki/api/v1/query_range is used to do a query over a range of time原创 2022-01-22 12:29:10 · 3488 阅读 · 5 评论 -
【Furion】性能平台的性能问题
一、问题背景在压测时发现QPS4.5w时无法继续提升,尝试以下操作:扩容服务节点数扩容中间件配置增加单个肉鸡的并发线程数增加肉鸡数以上方式一通操作后,QPS仍然是4.5w左右将服务端的逻辑简化甚至将对mysql和redis依赖逻辑注释操作qps仍然不变,此时服务链路中如SLB、Nginx等均无异常且资源使用较低,那么现在看起来很有可能客户端制约了发起的压力在【Furion】平台架构演进 中有说明客户端的架构,因为单个客户端肉鸡的cpu等资源<30%,那么influxdb的嫌疑就比较原创 2021-06-17 00:44:59 · 1550 阅读 · 0 评论 -
【Furion】InfluxDB数据获取
前面帖子中实现了【Furion】JMeter+Influxdb+Grafana压测监控 的功能,但是这些数据存储在influxdb中,而influxdb的详细数据可能会被定期清理,所以需要将报告的概要数据拉取并永久保存在mysql数据库中,方便后续查看一、导入依赖<dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java</artifactId> <v原创 2021-04-08 00:11:10 · 852 阅读 · 0 评论 -
【Furion】log4j2区分不同客户端的日志
一、应用场景性能平台需要区分并查看各个客户端的日志信息,方便用户在调试或者运行时查看日志,定位分析执行问题或服务问题二、解决方案通常有两种方法来解决这个问题:不同客户端日志写入不同文件不同客户端日志写入同一文件,给日志添加客户端前缀标识在此次解决中两种方式结合使用,不同客户端的文件名根据增加特定id区分,在日志文件中给日志增加前缀标识原因:grafana+loki支持搜索文件的方法直接搜索特定文件名的文件grafana+loki支持全局某个字段的搜索三、设计思路设计背景:l原创 2021-03-29 08:55:34 · 2223 阅读 · 0 评论 -
【Furion】JMeter+Influxdb+Grafana压测监控
一、概述在使用JMeter做性能测试时,需要查看压测过程中请求的响应情况,如需要实时显示20w qps的压测数据监控,接下来使用JMeter+Influxdb+Grafana方案打造压测可视化实时监控数据流程JMeter引入Backend Listener,用于在压测过程中实时发送统计指标数据给时序数据库Influxdb,通过配置Grafana数据源连接到Influxdb,就可以创建炫酷的可视化看板,并实时获取到测试指标数据流程图...原创 2021-03-09 08:31:54 · 3182 阅读 · 0 评论 -
【Furion】动态修改jmx的ConcurrencyThreadGroup元件
前面针对jmx添加Backend Listener元件,现需要实现将Thread Group替换成Concurrency Thread Group,解决流量梯度发起的问题一、jmx核心结构1.1 Thread Group<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="普通线程组" enabled="true"> <stringProp name="ThreadGroup.on_s原创 2021-03-03 20:26:22 · 2972 阅读 · 8 评论 -
【Furion】jmx添加Backend Listener元件
需要在jmx中自动添加Backend Listener元件,实现将jmeter中的请求数据写入influxDB,并在grafana中配置面板查看聚合报告一、代码实现1.1 Jmeter运行环境配置// 设置Jmeter运行环境相关的配置String jmeterHome = System.getProperty("user.dir") + "/jmxs";String jmeterHomeBin = jmeterHome + "/bin";JMeterUtils.loadJMeterPrope原创 2021-02-26 09:59:34 · 3286 阅读 · 4 评论 -
【Furion】平台架构演进
Furion平台是一个提供并发压力、性能结果分析、容量测试及基准测试的性能平台接下来mark以下Furion平台的架构演进一、单机模式优势:操作简便、无需环境部署直接使用jmeter编辑jmx文件,然后发起流量压测,不足:能提供发起的压力有限比如2c的机器在提供qps600的压力时CPU已经基本跑满垂直扩容压力非线性垂直扩容为4c甚至8c、16c,由于端口、带宽等方面的影响,能提供的压力并不是线性比例关系垂直扩容成本高分布式模式服务端架构分布式设计支撑大并发业原创 2021-02-04 08:27:49 · 6297 阅读 · 4 评论 -
【Furion】Elasticsearch的数据读写
背景性能平台Furion在做请求数据报告聚合时,初步聚合后的数据大概每条数据1M每秒100条数据,将数据写入mysql数据库时瞬间将数据库打爆ElasticsearchElasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎它能很方便的使大量数据具有搜索、分析和探索的能力Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根原创 2021-01-28 08:33:13 · 484 阅读 · 0 评论 -
【Furion】Loki日志系统
Furion平台中agent(多pod)需要上报日志信息,其中包括:agent java程序运行的信息(方便用户定时执行失败等问题)agent执行的请求样本sample(方便用户查看具体的请求数据)如何解决日志信息的诉求,使用到一个最新开源的项目LokiLoki介绍Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。项目受 Prometheus原创 2020-12-11 08:51:48 · 2367 阅读 · 2 评论 -
【Furion】执行的csv文件未找到
在furion平台启动性能测试任务时,20台肉鸡,每台肉鸡1000个并发线程,但是实际日志收集到到信息仅仅1000个线程,查看肉鸡的日志:问题定位查看对应路径的文件很明显该文件存在,打开文件,文件内容正常还是看看具体的报错信息吧,定位到具体的代码段信息/** * Creates an association between a filename and a File inputOutputObject, * and stores it for later use -原创 2020-09-23 10:14:46 · 430 阅读 · 0 评论 -
【Furion】远程运行jmx失败问题
在使用平台使用远程slave执行.jmx脚本时出现错误java.rmi.ConnectIOException: Exception creating connection to: 172.18.152.125; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks (No such file or direc...原创 2020-04-30 13:26:47 · 683 阅读 · 0 评论