本文目的
网上有很多关于BatteryHistorian环境搭建的指导,很多是基于完整环境搭建进行的,基本的流程如下:
- 安装Go编程语言;
- 配置环境变量;
- 安装Git;
- 安装Python;
- 安装JAVA环境;
- 继续配置环境变量;
- 下载Battery Historian源码(需要解决各种墙的问题);
- 运行Battery Historian(同样会遇到墙的问题);
关是安装各种环境就要耗费大量的时间和精力。
本文是基于windows10环境结合Docker容器快速搭建BatteryHistorian环境的过程,参考了网上相关的文章(见底部参考资料)。
因为是基于容器搭建,省去了前面1-7的步骤,对于希望能快速搭建环境专注分析与解决问题的朋友能起到一定的帮助。
友情提醒
虽然基于Docker我们很快就能把环境跑起来,但是踩坑,填坑的过程依然会有一点挑战的,欢迎有兴趣的小伙伴一起学习和交流。
前置知识及所需准备
前置知识
容器:Containers
用于运行镜像服务的Linux简化系统;
镜像:Images
打包安装好相应运行环境及业务应用的压缩包(包括GO,Python运行环境等),运行时会加载到Containers中运行;
端口映射:Port(s)
容器内运行的服务需要对宿主机提供访问时,需要先对端口进行映射,建立起两台服务器之间的虚拟通道。
前置准备
- 下载Docker Desktop Installer(链接见底部参考资料:Docker下载及安装)
001-Docker下载.png
- 下载wsl_update_x64(链接见底部参考资料:WSL2 Linux 内核更新包)
image.png
操作过程
一、安装Docker Desktop
- 两个选项都勾选上
image.png
- 首次启动Docker
image.png
- 根据提示下载WSL
如果上一章节的前置准备对应的包你已经下载好,可以直接执行安装,如果未下载,可以根据以下提示步骤引导进入下载安装
image.png
image.png
- 安装完成
安装完成后,如果提示窗没有关闭,可以点击"Restart"刷新界面
image.png
首次进入,此时你的Docker容器与镜像列表都是空的。
二、获取镜像
完成以上程序的安装后,接下来就要来获取BatteryHistorian镜像文件了。
- 调出命令行窗口
image.png
- 查找BatteryHistorian镜像
输入以下命令:
docker search battery
001-搜索镜像.png
- 拉取镜像文件
选择一个battery-historian
镜像,通过docker pull
命令拉取镜像,效果如下:
docker pull blystad/battery-historian
002-拉取镜像文件.png
整个镜像大约900M,下载的时长根据你家的网络情况而定。
当你看到:Downloaded newer image for XX时,就说明镜像文件已下载完成。
- 加载并启动镜像
切换到【Images】: image.png
image.png
image.png
这里的端口参数必须要填写,否则你会踩到第一个坑(详见下一章节)。
- 访问BatteryHistorian
004-端口映射配置后.png
在【Containers】下点击对应服务的更多菜单,选择”Open with browser“
image.png
至此,BatteryHistorian的环境搭建就已完成。
通过”Browse“按钮上传report文件,即可开始日志分析。
关于如果导日志,以及耗电分析的具体介绍,不在本文范围,有需要的朋友可以上网百度学习。
三、问题处理(踩坑、填坑)
问题一:启动服务后,没有"Open with browser",无法访问
003-端口映射未配置导致没有通过浏览器访问的选项.png
问题原因:
服务启动时,没有配置对外映射的端口,导致宿主机无法直接访问虚拟服务器上的服务 。
处理方法:
删除服务,重新参照【加载并启动镜像】章节完成端口配置即可。
005-镜像端口映射配置.png
问题二:浏览上传文件后,无法提交进行分析
006-问题-没有submit按钮.png
问题原因:
是JS相关依赖库无法加载导致。
处理方法:
翻墙后刷新即可(下次就不用翻墙了)。
问题三:上传日志文件提交后,报错:Could not parse aggregated battery stats
image.png
问题原因:
运行环境下的go代码存在兼容性问题导致当前系统下执行报错。
处理方法:
对容器服务中的代码进行修改。
1.启动状态下,进入命令行窗口
image.png
2.安装vim工具(文件编辑工具,容器默认没有安装)
获取更新包
安装vim
- 修改GO代码
注:此操作涉及一些Linux基本操作,相关知识点建议根据需要进行百度,现学现用。以下罗列的操作命令供参考。
编辑指定文件:
vim checkinparse/checkin_parse.go
编辑状态下根据关键字定位:
/关键字
不保存退出:按下esc键后:
:q!
保存退出:按下esc键后:
:wq
使用vim修改对应代码文件
附:需要修改的文件内容
- 重启服务
image.png
重启后,重新刷新页面,上传日志文件,提交,即可看到相应的日志分析图形:
008-重启后修复.png
网友评论