locust结合Prometheus和grafana(一)

本文涉及的产品
性能测试 PTS,5000VUM额度
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: locust结合Prometheus和grafana

一、Locust介绍

一个开源性能测试工具,使用 Python 代码来定义用户行为。用它可以模拟百万计的并发用户访问你的系统,方便、高效、可分布式等

二、工具安装

环境python3
pip install locust
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn locust

三、locust类库介绍

Locust官方文档

Httpuser类:就是用户行为的操作
Client方法:发送请求
Task类:任务控制的类,权重,跳过等
Taskset类:测试集类
On_start方法:类似于自动化中的setup,每个虚拟用户执行前都会执行这个方法
On_stop方法:类似于自动化中的teardown,每个虚拟用户执行结束后执行这个方法
@task装饰器,如果task后面带有数字,则代表的是测试集中的权重。参数越大每次被虚拟用户执行的概率越高。如果不设置默认为1
Between方法中的是休眠时间:会取between数值中间的随机数
Locust中还有其他很多类,我暂时没用到,有兴趣可以下去了解下,非常不错的一款性能工具

四、locust使用

Windows

我这里使用的是云服务器2c4g, 带宽:8Mbps

代码:以登录vsite网站来压吧 100并发

# coding=utf-8
"""
    @Project :pachong-master 
    @File    :test001.py
    @Author  :gaojs
    @Date    :2022/5/19 21:47
    @Blogs   : https://www.gaojs.com.cn
"""
from locust import HttpUser, between, task, TaskSet, tag
import os
# 强制去掉控制台InsecureRequestWarning
import urllib3
# 随机产生UA类库
from faker import Factory
urllib3.disable_warnings()
class TaskTest(TaskSet):
    def on_start(self):
        """
        description:每个用户执行压测之前都会获取随机数和数字签名
        :return:
        """
        # 每个用户执行压测之前都会获取随机数和数字签名
        # print('====================清理log结束,压测开始, 获取随机数和数字签名!!!========================')
        pass
    # 压测任务,也可以是@task(10)啥的,这个数字是代表权重,数值越大,执行的频率就越高
    @task
    def stress_get(self):
        """
        登录虚拟站点
        :return:
        """
        url = '/prx/000/http/localh/login'
        data = {
            "Content-Type": "application/x-www-form-urlencoded, charset=UTF-8",
            'Connection': 'close',
            "method": "method1",
            "uname": "t",
            "pwd1": None,
            "pwd2": None,
            "pwd": "t",
            "submitbutton": "Sign In"
        }
        randon_ua = Factory.create()
        ua = randon_ua.user_agent()
        headers = {
            'User-Agent': ua
        }
        rsp = self.client.post(url=url, headers=headers, data=data, verify=False, allow_redirects=False, name='loginVsite压测')
        # print(rsp.status_code)
        print(rsp.text)
        assert rsp.status_code == 302
    # 执行并发测试后执行的动作,比如保存log等操作,查看报告http://localhost:8089/
    def on_stop(self):
        pass
class UserBehavior(HttpUser):
    host = '192.168.120.209'
    # 每次请求停顿时间
    wait_time = between(3, 10)
    tasks = [TaskTest]
if __name__ == "__main__":
    os.system("locust -f test004.py --host=https://192.168.120.209 --web-host=127.0.0.1")

执行

十秒起100个虚拟用户

image.png

报告

image.png

charts

image.png

image.png

RPS

image.png

分析结果:

平均相应时间:
吞吐量:1000以内
最小相应时间:
最大响应时间:
网络是否有波动:
带宽是否影响:


相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
2月前
|
Prometheus 监控 Cloud Native
自定义grafana_table(数据源Prometheus)
综上所述,自定义 Grafana 表格并将 Prometheus 作为数据源的关键是理解 PromQL 的查询机制、熟悉 Grafana 面板的配置选项,并利用 Grafana 强大的转换和自定义功能使数据展示更为直观和有洞见性。随着对这些工具更深入的了解,您将可以创建出更高级的监控仪表盘,以支持复杂的业务监控需求。
83 1
|
2月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置
|
2月前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
145 1
|
2月前
|
Prometheus 监控 Cloud Native
Spring Boot 性能护航!Prometheus、Grafana、ELK 组合拳,点燃数字化时代应用稳定之火
【8月更文挑战第29天】在现代软件开发中,保证应用性能与稳定至关重要。Spring Boot 作为流行的 Java 框架,结合 Prometheus、Grafana 和 ELK 可显著提升监控与分析能力。Prometheus 负责收集时间序列数据,Grafana 将数据可视化,而 ELK (Elasticsearch、Logstash、Kibana)则管理并分析应用日志。通过具体实例演示了如何在 Spring Boot 应用中集成这些工具:配置 Prometheus 获取度量信息、Grafana 显示结果及 ELK 分析日志,从而帮助开发者快速定位问题,确保应用稳定高效运行。
48 1
|
2月前
|
Prometheus 监控 Cloud Native
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
|
2月前
|
Prometheus 监控 Cloud Native
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
|
4月前
|
Prometheus 监控 Cloud Native
基于Prometheus和Grafana的监控平台 - 环境搭建
基于Prometheus和Grafana的监控平台 - 环境搭建
|
12天前
|
Prometheus 监控 Cloud Native
介绍如何使用Prometheus进行监控
介绍如何使用Prometheus进行监控
49 3
|
17天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
2月前
|
Prometheus 监控 Cloud Native
使用Prometheus搞定微服务监控
使用Prometheus搞定微服务监控
使用Prometheus搞定微服务监控
下一篇
无影云桌面