本文主要是介绍春松客服的压力测试(1)| 春松客服,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 1.采集春松客服性能数据
- 数据采集类型
- 操作系统的数据
- JVM的数据
- 2.监控及分析春松客服系统
- 展示、分析
- 3.延伸阅读
- 开源智能客服系统
1.采集春松客服性能数据
数据采集类型
- 操作系统的数据
- JVM的数据
- MySQL的数据
操作系统的数据
- 运行了一套春松客服
- 具备网络,CPU等资源
- 使用Linux和Docker
主要用到的工具
- node-exporter
node-exporter用于采集服务器层面的运行指标,包括机器的loadavg、filesystem、meminfo等基础监控,类似于传统主机监控维度的zabbix-agent。node-export由Prometheus官方提供、维护,不会捆绑安装,但基本上是必备的exporter。 - Prometheus
Prometheus是一个开源的系统监控工具。根据配置的任务(job)以http/s周期性的收刮(scrape/pull)指定目标(target)上的指标(metric)。目标(target)可以以静态方式或者自动发现方式指定。Prometheus将收刮(scrape)的指标(metric)保存在本地或者远程存储上。
Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。
- 解决方案:
操作系统上安装一个机器人node-exporter,运行系统命令,采集到相关数据,上报给数据采集服务Prometheus Server,数据采集服务去查询node-exporter输出的数据。
- Prometheus 可视化工具Graph。
Graph面板是最常用的一种可视化面板,其通过折线图或者柱状图的形式显示监控样本随时间而变化的趋势。Graph面板天生适用于Prometheus中Gauge和Counter类型监控指标的监控数据可视化。例如,当需要查看主机CPU、内存使用率的随时间变化的情况时,可以使用Graph面板。同时,Graph还可以非常方便的支持多个数据之间的对比。
JVM的数据
- Spring Boot中提供的数据监测API - Actuator。
使用Spring Boot Actuator需要引入jar包。
- Actuator的作用
Actuator 是 Spring Boot 提供的对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的 Spring beans 以及一些环境属性等。 - Actuator演示
- Actuator 的 REST 接口
Actuator 监控分成两类:原生端点和用户自定义端点;自定义端点主要是指扩展性,用户可以根据自己的实际应用,定义一些比较关心的指标,在运行期进行监控。
原生端点是在应用程序里提供众多 Web 接口,通过它们了解应用程序运行时的内部状况。原生端点又可以分成三类:
- 应用配置类:可以查看应用在运行期的静态信息:例如自动配置信息、加载的 springbean 信息、yml 文件配置信息、环境信息、请求映射信息;
- 度量指标类:主要是运行期的动态信息,例如堆栈、请求连、一些健康指标、metrics 信息等;
- 操作控制类:主要是指 shutdown,用户可以发送一个请求将应用的监控功能关闭。
注意:在Spring Boot 2.0 中对Actuator变动很大,默认只提供
/Actuator、/info、/health这三个接口,如果想提供所有接口需要配置application.yml,配置之后重新访问/actuator就会暴露出所有接口。
management:endpoints:web:exposure:include: "*"
Actuator 提供了 13 个接口,具体如下表所示。
HTTP 方法 | 路径 | 描述 |
---|---|---|
GET | /auditevents | 显示应用暴露的审计事件 (比如认证进入、订单失败) |
GET | /beans | 描述应用程序上下文里全部的 Bean,以及它们的关系 |
GET | /conditions | 就是 1.0 的 /autoconfig ,提供一份自动配置生效的条件情况,记录哪些自动配置条件通过了,哪些没通过 |
GET | /configprops | 描述配置属性(包含默认值)如何注入Bean |
GET | /env | 获取全部环境属性 |
GET | /env/{name} | 根据名称获取特定的环境属性值 |
GET | /flyway | 提供一份 Flyway 数据库迁移信息 |
GET | /liquidbase | 显示Liquibase 数据库迁移的纤细信息 |
GET | /health | 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供 |
GET | /heapdump dump | 一份应用的 JVM 堆信息 |
GET | /httptrace | 显示HTTP足迹,最近100个HTTP request/repsponse |
GET | /info | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
GET | /logfile | 返回log file中的内容(如果 logging.file 或者 logging.path 被设置) |
GET | /loggers | 显示和修改配置的loggers |
GET | /metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
GET | /metrics/{name} | 报告指定名称的应用程序度量值 |
GET | /scheduledtasks | 展示应用中的定时任务信息 |
GET | /sessions | 如果我们使用了 Spring Session 展示应用中的 HTTP sessions 信息 |
POST | /shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
GET | /mappings | 描述全部的 URI路径,以及它们和控制器(包含Actuator端点)的映射关系 |
GET | /threaddump | 获取线程活动的快照 |
/metrics:该端点用来返回当前应用的各类重要度量指标,比如:内存信息、线程信息、垃圾回收信息等。
/info:该端点用来返回一些应用自定义的信息。默认情况下,该端点只会返回一个空的json内容。我们可以在application.properties配置文件中通过info前缀来设置一些属性。
/health :用来获取应用的各类健康指标信息。
- 使用Actuator注意事项
- 谨慎的配置监控查询能力。
- 在负载均衡中屏蔽API。
- 将Actuator数据导入数据采集服务
- POM引入新依赖
- 增加配置 application.properties
- 配置Prometheus Server
- /actuator/prometheus API
2.监控及分析春松客服系统
展示、分析
- Grafana
Grafana是一个通用的可视化工具。‘通用’意味着Grafana不仅仅适用于展示Prometheus下的监控数据,也同样适用于一些其他的数据可视化需求。
Grafana是每个数据库的开源分析和监视解决方案。
- 运行
需要在 docker-compose.yml 文件中进行配置,配置完成后,使用Docker Compose运行,就可以看到数据。
3.延伸阅读
春松客服系统测试
春松客服访客端测试
春松客服RestAPI
开源智能客服系统
春松客服是 Chatopera 自主研发的,Apache2.0开源协议授权的智能客服系统,春松客服会不断增强客服系统的智能化,这包括利用自然语言处理、机器学习和语音识别等技术让客服工作更有效率、客服满意度更高、成本更低。
这篇关于春松客服的压力测试(1)| 春松客服的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!