春松客服的压力测试(1)| 春松客服

1.采集春松客服性能数据

数据采集类型

  • 操作系统的数据
  • JVM的数据
  • MySQL的数据

操作系统的数据

  • 运行了一套春松客服
  • 具备网络,CPU等资源
  • 使用Linux和Docker

主要用到的工具

  1. node-exporter
    node-exporter用于采集服务器层面的运行指标,包括机器的loadavg、filesystem、meminfo等基础监控,类似于传统主机监控维度的zabbix-agent。node-export由Prometheus官方提供、维护,不会捆绑安装,但基本上是必备的exporter。
  2. 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 接口,通过它们了解应用程序运行时的内部状况。原生端点又可以分成三类:
  1. 应用配置类:可以查看应用在运行期的静态信息:例如自动配置信息、加载的 springbean 信息、yml 文件配置信息、环境信息、请求映射信息;
  2. 度量指标类:主要是运行期的动态信息,例如堆栈、请求连、一些健康指标、metrics 信息等;
  3. 操作控制类:主要是指 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注意事项
  1. 谨慎的配置监控查询能力。
  2. 在负载均衡中屏蔽API。
  • 将Actuator数据导入数据采集服务
  1. POM引入新依赖
  2. 增加配置 application.properties
  3. 配置Prometheus Server
  • /actuator/prometheus API

2.监控及分析春松客服系统

展示、分析

  • Grafana
    Grafana是一个通用的可视化工具。‘通用’意味着Grafana不仅仅适用于展示Prometheus下的监控数据,也同样适用于一些其他的数据可视化需求。
    Grafana是每个数据库的开源分析和监视解决方案。
  • 运行
    需要在 docker-compose.yml 文件中进行配置,配置完成后,使用Docker Compose运行,就可以看到数据。

3.延伸阅读

春松客服系统测试
春松客服访客端测试
春松客服RestAPI

开源智能客服系统

春松客服是 Chatopera 自主研发的,Apache2.0开源协议授权的智能客服系统,春松客服会不断增强客服系统的智能化,这包括利用自然语言处理、机器学习和语音识别等技术让客服工作更有效率、客服满意度更高、成本更低。

开源力量 社区共建

猜你喜欢

转载自blog.csdn.net/watson243671/article/details/105725876