grep console颜色配置_通用流量录制回放工具 jvm-sandbox-repeater 尝鲜repeater-console

为了避免文章过长,此文章单独记录 repeater-console 部分的使用。对于 jvm-sandbox-repeater 普通用法的尝鲜记录,请参照 通用流量录制回放工具 jvm-sandbox-repeater 尝鲜记录repeater-console 简介官方的说明:jvm-sandbox-repeater 仅仅提供了录制回放的能力,如果需要完成业务回归、实时监控、压测等平台,后面须要有...
摘要由CSDN通过智能技术生成
为了避免文章过长,此文章单独记录 repeater-console 部分的使用。对于 jvm-sandbox-repeater 普通用法的尝鲜记录,请参照 通用流量录制回放工具 jvm-sandbox-repeater 尝鲜记录

repeater-console 简介

官方的说明:

jvm-sandbox-repeater 仅仅提供了录制回放的能力,如果需要完成 业务回归实时监控压测等平台,后面须要有一个 数据中心负责采集数据的加工、存储、搜索, repeater-console 提供了简单的demo示例;一个 模块管理平台负责管理JVM-Sandbox各模块生命周期;一个 配置管理平台负责维护和推送jvm-sandbox-repeater采集所须要的各种配置变更
在阿里集团淘系技术质量内部,已有一套完整的体系在持续运行,从17年开始支持了淘系技术质量部的CI、建站、系统重构等多方面质量保障任务,后续如有需要也会考虑把更多的东西开源回馈社区
注意:目前项目代码默认启动standalone模式,不需要依赖任何服务端和存储,能够简单快速的实现单机的录制回放,控制单机模式的开关在 ~/.sandbox-module/cfg/repeater.properties 文件中的 repeat.standalone.mode=true //开启或关闭单机工作模式,关闭单机模式后,配置拉取/消息投递等都依赖repeater.properties中配置的具体url;如不想通过http拉取和消息投递的也可以自己实现 BroadcasterConfigManager。稍后我们会公布一份录制回放所需的完整架构图以及jvm-sandbox-repeater在整个体系中的位置供大家工程使用做参考。

个人理解,要想在业务中使用,我们还得搞下 数据中心模块管理配置管理

【数据中心】:你存了那么多流量,总得有个存储和管理的地方吧,数据中心就是干这个活。要不光靠官方提供的那个透传 repeatId 的回放方法,只能回放单个流量,实际项目不够用。
【模块管理】:这个还不是太了解,个人理解是各个 plugin 的管理?
【配置管理】:就是之前试用时说过的只有一个 ~/.sandbox-module/cfg/repeater-config.json 配置文件,是不可能满足多个项目同时使用的需要的。所以需要有个配置管理,提供这方面配置的存储和修改能力。

源码熟悉

由于目前官方对于这个 console 只有一份非常简单的文档:

repeater-console工程集成录制/回放的配置管理;数据存储/数据对比等具备多种能力,因各系统架构差异较大,目前仅开源简单的demo工程,后续会提供统一的工程,也希望有能力和时间的同学来提PR
curl -s http://127.0.0.1:8001/regress/getAsync/repeater -H
'Repeat-TraceId:030010083212156034386424510101ed'
curl -s http://127.0.0.1:8001/facade/api/repeat/repeater/030010083212156034386424510101ed -H "RepeatId:030010083212156034386424510201ed" 
curl -s http://127.0.0.1:8001/facade/api/repeat/callback/030010083212156034386424510201ed

所以只能通过解读源码来反推用法咯。

个人的源码阅读三步骤:明确阅读目的、了解整体架构、细读目标功能

step 0 明确阅读目的

目的很简单,使用 repeater-console ,在目前的 demo 项目上完成批量流量录制回放的功能

step 1 了解整体架构

0c9ace4a6dc3a2fba683988b7f44043d.png

为了便于描述,还是用 tree 吧。

特别说明:以下均为个人分析,并不保证正确哈。

tree -L 10 | grep -v iml | grep -v target
.
├── Readme.md
├── pom.xml
├── repeater-console-common      // 存放公共方法的模块
│   ├── pom.xml
│   └── src
│       └── main
│           └── java
│               └── com
│                   └── alibaba
│                       └── repeater
│                           └── console
│                               └── common
│                                   ├── PackageInfo.java // 一个空的类,应该是预留用的
│                                   └── domain           // 目前只有一个名为 Regress 的 java bean ,代表单条回放记录
├── repeater-console-dal         // 和数据库打交道的存储模块,model 层
│   ├── pom.xml
│   └── src
│       └── main
│           ├── java
│           │   └── com
│           │       └── alibaba
│           │           └── repeater
│           │               └── console
│           │                   └── dal
│           │                       ├── mapper  // mybatis 的 mapper 映射类,存放数据库操作犯法
│           │                       └── model   // mybatis 的 model 类,和数据库表结构对应
│           └── resources
│               └── database.sql                // 数据库初始化语句
├── repeater-console-service   // 主要逻辑实现的模块,service 层
│   ├── pom.xml
│   └── src
│       └── main
│           └── java
│               └── com
│                   └── alibaba
│                       └── repeater
│                           └── console
│                               └── service
│                                   ├── RecordService.java  // 存储服务,提供存储录制、存储回放、获取记录、执行回放、查看回放结果接口的定义
│                                   ├── RegressService.java // 回归服务,提供获取单个回放、多个回放、找到你的小伙伴、slogan喊口号4个接口的定义(最后两个接口不知道是什么鬼。。。)
│                                   ├── impl
│                                   │   ├── AbstractRecordService.java // 存储服务一个抽象实现,提供了 repeat 方法和 jvm-sandbox-repeater 进行交互,触发回放
│                                   │   ├── RecordServiceLocalImpl.java // 存储服务的本地存储实现。使用一个 ConcurrentHashMap 把所有数据存到内存中。
│                                   │   ├── RecordServiceMysqlImpl.java // 存储服务 mysql 存储的实现。使用前面存储模块和 mysql 数据库交互,进行存储。
│                                   │   ├── RecordServiceProxyImpl.java // 存储服务的代理类,根据配置文件值来决定用哪个实现类进行存储服务的实现
│                                   │   └── RegressServiceImpl.java // 回归服务的实现类。包含了官方提供的 slogan 服务的实现。
│                                   └── util
│                                       └── ConvertUtil.java // 给原始录制记录加上一些元数据(如 appName,environment 等),并转换成一个完整的录制记录的工具类。转换方法目前各个存储服务用的都是 hessian 序列化。
├── repeater-console-start   // 最外部的层,controller 层。直接暴露接口和提供 main 入口。我们最前面 slogan 示例看到的 repeater-bootstrap.jar 包,实际就是用这里源码打出来的包。
│   ├── pom.xml
│   └── src
│       ├── main
│       │   ├── java
│       │   │   └── com
│       │   │       └── alibaba
│       │   │           └── repeater
│       │   │               └── console
│       │   │                   └── start
│       │   │                       ├── Application.java   // 标准的 spring boot 启动类
│       │   │                       ├── ConfigurationBean.java // java 回放用的感知 spring context 的 hook 
│       │   │                       └── controller
│       │   │                           ├── ConfigFacadeApi.java  // 配置管理服务 api 设计的示例。仅提供了获取配置的方法,而且直接 hard code 了一份配置。
│       │   │                           ├── RecordFacadeApi.java  // 存储服务 api 设计的示例,提供了存储录制、存储回放、获取记录、执行回放、查看回放结果五个 api 接口
│       │   │                           └── RegressController.java // 回归服务,相当于一个示例的被测服务。官方的 slogan 例子用的就是这里的接口。
│       │   └── resources
│       │       └── application.properties // 配置文件。需要留意的是,里面有个 `repeat.repeat.url` 配置项,需要和 sandbox 的监听 port 保持一致。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: grep控制台颜色配置可以通过设置环境变量来实现。具体步骤如下: 1. 打开终端,输入以下命令: export GREP_OPTIONS='--color=auto' 2. 将上述命令添加到bashrc文件中,使其永久生效: echo "export GREP_OPTIONS='--color=auto'" >> ~/.bashrc 3. 重新打开终端,即可看到grep命令的输出结果带有颜色。 注意:以上命令只适用于Linux和Mac系统。如果你使用的是Windows系统,可以使用Cygwin或Git Bash等工具来实现类似的效果。 ### 回答2: grep是一个强大的文本搜索工具,经常被用来在文件中搜索特定的字符串或者模式,以及对文件进行替换操作。在Linux系统中,grep命令支持对搜索结果进行颜色配置,方便用户快速找到需要的信息。下面就详细介绍一下grepconsole颜色配置grep在默认情况下不会对搜索结果进行颜色配置,如果想要启动颜色配置,我们需要在grep命令中添加--color选项,例如: ```bash grep --color "searchPattern" filename ``` 这样,当我们在filename文件中搜索searchPattern时,grep会将匹配的结果以颜色高亮的形式呈现出来。 如果想要修改颜色配置,我们可以通过设置环境变量来实现。grep支持4种颜色,分别为黑色(0)、红色(1)、绿色(2)和黄色(3),我们可以使用以下环境变量来自定义颜色配置: ```bash GREP_COLORS="ms=black:mc=red:sl=:cx=:fn=:ln=:bn=:se=:" ``` 其中,ms表示匹配的字符串,mc表示匹配的上下文,sl表示搜索结果之前的字符,cx表示搜索结果之后的字符,fn表示文件名,ln表示行号,bn表示匹配结果所在行之前的字符,se表示搜索结果之后的分隔符。 在设置环境变量时,需要注意每个字段之间的冒号不能省略,如果想要将某个字段的颜色配置为空,则需要将其设置为冒号。而如果想要使用默认的颜色配置,可以将GREP_COLORS环境变量设置为空,例如: ```bash export GREP_COLORS="" ``` 总之,在使用grep进行文件搜索时,使用颜色配置可以帮助我们更快捷地定位文件中的内容,提高搜索效率。但在进行颜色配置时,需谨慎,避免影响搜索结果的准确性。 ### 回答3: grep 是一款强大的命令行搜索工具,用于在文件中搜索指定的字符串。在使用 grep 命令时,可以通过设置不同的选项,实现不同的功能。其中一种功能就是根据不同的匹配结果显示不同的颜色,提高命令行的可读性。 要设置 grep 命令的颜色配置,可以使用 grep 的 --color 选项。这个选项会让 grep 在输出结果时,将匹配的字符串以不同的颜色进行高亮显示。具体的颜色配置是由一个环境变量 GREP_COLORS 来控制的。这个环境变量中包含了不同的属性和对应的颜色值,可以自定义设置。 下面是一些常用的 GREP_COLORS 属性和对应的默认颜色值: match - 匹配的字符串,默认颜色为红色 selected - 选定的字符串,默认颜色为绿色 context - 上下文字符串,默认颜色为黄色 filename - 文件名,默认颜色为蓝色 line - 匹配的整行,默认颜色为黑色 通过修改 GREP_COLORS 环境变量可以实现颜色的自定义配置。例如,将匹配字符串的颜色改为黄色,可以将环境变量设置为: export GREP_COLORS='ms=1;33' 其中,ms 表示匹配字符串的属性,1 表示加粗,33 表示黄色。可以根据需要设置不同的属性和颜色值来实现自定义配置。 以上就是关于 grep 命令的颜色配置的介绍。通过自定义颜色配置可以让命令行中的输出结果更加清晰易读,提高命令行操作的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值