编译goreplay v1.1.0 minio 集成支持
goreplay 默认对于minio s3 的支持不是很好,所以修改了关于s3 的部分代码,可以方便的集成minio
需要修改的代码
注意pro 特性也是需要修改的
- s3_reader.go
修改的不好,实际应该走环境变量
func awsConfig() *aws.Config {
region := os.Getenv("AWS_DEFAULT_REGION")
if region == "" {
region = os.Getenv("AWS_REGION")
if region == "" {
region = "us-east-1"
}
}
config := &aws.Config{Region: aws.String(region)}
if endpoint := os.Getenv("AWS_ENDPOINT_URL"); endpoint != "" {
config.Endpoint = aws.String(endpoint)
log.Println("Custom endpoint:", endpoint)
}
log.Println("Connecting to S3. Region: " + region)
config.CredentialsChainVerboseErrors = aws.Bool(true)
// 使用url 模式,同时禁用ssl
+ config.S3ForcePathStyle = aws.Bool(true)
+ config.DisableSSL = aws.Bool(true)
if os.Getenv("AWS_DEBUG") != "" {
config.LogLevel = aws.LogLevel(aws.LogDebugWithHTTPBody)
}
return config
}
- pro.go
var PRO = true
试用
- docker-compose 文件
version: "3"
services:
minio:
image: minio/minio
command: server /data
volumes:
- "./data:/data"
ports:
- "9000:9000"
environment:
- "MINIO_DOMAIN=minios3.com"
- "MINIO_REGION_NAME=demo"
- "MINIO_ACCESS_KEY=minio"
- "MINIO_SECRET_KEY=minio123"
pg:
image: postgres:9.6.11
environment:
- "POSTGRES_PASSWORD=dalong"
ports:
- "5432:5432"
- 启动
docker-compose up -d
- 添加bucket
登录 http://localhost:9000 添加logs bucket - 环境变量配置
export AWS_ACCESS_KEY_ID=minio
export AWS_REGION=demo
export AWS_BUCKET=demo
export AWS_SECRET_ACCESS_KEY=minio123
export AWS_ENDPOINT_URL=http://minios3.com:9000
export AWS_DEBUG=true
- 运行命令
gor --input-raw :5432 --input-raw-protocol binary --output-file=requests.gor --output-file s3://logs/%Y-%m-%d.gz
- 效果
说明
以上只是一个简单的修改,为了测试s3 的特性,还可以使用s3 的回放功能,当然支持的协议有限,但是对于web的请求,我们基于s3 还是一个很不错的选择的
参考资料
https://github.com/buger/goreplay/wiki/%5BPRO%5D-Replaying-Binary-protocols
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-07-19 openjdk k8s port-forward 连接容器jmx服务
2018-07-19 Cockpit 容器&&kubernetes 管理可视化工具
2017-07-19 maven-assembly-plugin 打包简单案例
2015-07-19 jQuery全屏滚动插件fullPage.js