一、本文目的
網(wǎng)上有很多關(guān)于BatteryHistorian環(huán)境搭建的指導(dǎo),很多是基于完整環(huán)境搭建進(jìn)行的,基本的流程如下:
- 安裝Go編程語(yǔ)言;
- 配置環(huán)境變量;
- 安裝Git;
- 安裝Python;
- 安裝JAVA環(huán)境;
- 繼續(xù)配置環(huán)境變量;
- 下載Battery Historian源碼(需要解決各種墻的問(wèn)題);
- 運(yùn)行Battery Historian(同樣會(huì)遇到墻的問(wèn)題);
關(guān)是安裝各種環(huán)境就要耗費(fèi)大量的時(shí)間和精力。
本文是基于windows10環(huán)境結(jié)合Docker容器快速搭建BatteryHistorian環(huán)境的過(guò)程,參考了網(wǎng)上相關(guān)的文章(見(jiàn)底部參考資料)。
因?yàn)槭腔谌萜鞔罱?,省去了前?-7的步驟,對(duì)于希望能快速搭建環(huán)境專(zhuān)注分析與解決問(wèn)題的朋友能起到一定的幫助。
友情提醒
雖然基于Docker我們很快就能把環(huán)境跑起來(lái),但是踩坑,填坑的過(guò)程依然會(huì)有一點(diǎn)點(diǎn)挑戰(zhàn),歡迎有興趣的小伙伴一起學(xué)習(xí)和交流。
二、前置知識(shí)及所需準(zhǔn)備
2.1.前置知識(shí)
容器:Containers
用于運(yùn)行鏡像服務(wù)的Linux簡(jiǎn)化系統(tǒng);
鏡像:Images
打包安裝好相應(yīng)運(yùn)行環(huán)境及業(yè)務(wù)應(yīng)用的壓縮包(包括GO,Python運(yùn)行環(huán)境等),運(yùn)行時(shí)會(huì)加載到Containers中運(yùn)行;
端口映射:Port(s)
容器內(nèi)運(yùn)行的服務(wù)需要對(duì)宿主機(jī)提供訪(fǎng)問(wèn)時(shí),需要先對(duì)端口進(jìn)行映射,建立起兩臺(tái)服務(wù)器之間的虛擬通道。
2.2.前置準(zhǔn)備
- 下載Docker Desktop Installer(鏈接見(jiàn)底部參考資料:Docker下載及安裝)
001-Docker下載.png
- 下載wsl_update_x64(鏈接見(jiàn)底部參考資料:WSL2 Linux 內(nèi)核更新包)
image.png
三、操作過(guò)程
3.1安裝Docker Desktop
- 兩個(gè)選項(xiàng)都勾選上
image.png
- 首次啟動(dòng)Docker
image.png
- 根據(jù)提示下載WSL
如果上一章節(jié)的前置準(zhǔn)備對(duì)應(yīng)的包你已經(jīng)下載好,可以直接執(zhí)行安裝,如果未下載,可以根據(jù)以下提示步驟引導(dǎo)進(jìn)入下載安裝
image.png
image.png
- 安裝完成
安裝完成后,如果提示窗沒(méi)有關(guān)閉,可以點(diǎn)擊"Restart"刷新界面
image.png
首次進(jìn)入,此時(shí)你的Docker容器與鏡像列表都是空的。
3.2獲取鏡像
完成以上程序的安裝后,接下來(lái)就要來(lái)獲取BatteryHistorian鏡像文件了。
- 調(diào)出命令行窗口
image.png
- 查找BatteryHistorian鏡像
輸入以下命令:
docker search battery
001-搜索鏡像.png
- 拉取鏡像文件
選擇一個(gè)battery-historian鏡像,通過(guò)docker pull命令拉取鏡像,效果如下:
docker pull blystad/battery-historian
002-拉取鏡像文件.png
整個(gè)鏡像大約900M,下載的時(shí)長(zhǎng)根據(jù)你家的網(wǎng)絡(luò)情況而定。
當(dāng)你看到:Downloaded newer image for XX時(shí),就說(shuō)明鏡像文件已下載完成。
- 加載并啟動(dòng)鏡像
切換到【Images】:image.png
image.png
image.png
這里的端口參數(shù)必須要填寫(xiě),否則你會(huì)踩到第一個(gè)坑(詳見(jiàn)下一章節(jié))。
- 訪(fǎng)問(wèn)BatteryHistorian
004-端口映射配置后.png
在【Containers】下點(diǎn)擊對(duì)應(yīng)服務(wù)的更多菜單,選擇”O(jiān)pen with browser“
image.png
至此,BatteryHistorian的環(huán)境搭建就已完成。
通過(guò)”Browse“按鈕上傳report文件,即可開(kāi)始日志分析。
關(guān)于如果導(dǎo)日志,以及耗電分析的具體介紹,不在本文范圍,有需要的朋友可以上網(wǎng)百度學(xué)習(xí)。
四、問(wèn)題處理(踩坑、填坑)
問(wèn)題一:啟動(dòng)服務(wù)后,沒(méi)有"Open with browser",無(wú)法訪(fǎng)問(wèn)
003-端口映射未配置導(dǎo)致沒(méi)有通過(guò)瀏覽器訪(fǎng)問(wèn)的選項(xiàng).png
問(wèn)題原因:
服務(wù)啟動(dòng)時(shí),沒(méi)有配置對(duì)外映射的端口,導(dǎo)致宿主機(jī)無(wú)法直接訪(fǎng)問(wèn)虛擬服務(wù)器上的服務(wù) 。
處理方法:
刪除服務(wù),重新參照【加載并啟動(dòng)鏡像】章節(jié)完成端口配置即可。
005-鏡像端口映射配置.png
問(wèn)題二:瀏覽上傳文件后,無(wú)法提交進(jìn)行分析
006-問(wèn)題-沒(méi)有submit按鈕.png
問(wèn)題原因:
是JS相關(guān)依賴(lài)庫(kù)無(wú)法加載導(dǎo)致。
處理方法:
翻墻后刷新即可(下次就不用翻墻了)。
問(wèn)題三:上傳日志文件提交后,報(bào)錯(cuò):Could not parse aggregated battery stats
image.png
問(wèn)題原因:
運(yùn)行環(huán)境下的go代碼存在兼容性問(wèn)題導(dǎo)致當(dāng)前系統(tǒng)下執(zhí)行報(bào)錯(cuò)。
處理方法:
對(duì)容器服務(wù)中的代碼進(jìn)行修改。
1.啟動(dòng)狀態(tài)下,進(jìn)入命令行窗口
image.png
2.安裝vim工具(文件編輯工具,容器默認(rèn)沒(méi)有安裝)
獲取更新包
安裝vim
- 修改GO代碼
注:此操作涉及一些Linux基本操作,相關(guān)知識(shí)點(diǎn)建議根據(jù)需要進(jìn)行百度,現(xiàn)學(xué)現(xiàn)用。以下羅列的操作命令供參考。
編輯指定文件:
vim checkinparse/checkin_parse.go
編輯狀態(tài)下根據(jù)關(guān)鍵字定位:
/關(guān)鍵字
不保存退出:按下esc鍵后:
:q!
保存退出:按下esc鍵后:
:wq
使用vim修改對(duì)應(yīng)代碼文件
附:需要修改的文件內(nèi)容
- 重啟服務(wù)
image.png
重啟后,重新刷新頁(yè)面,上傳日志文件,提交,即可看到相應(yīng)的日志分析圖形:
008-重啟后修復(fù).png
問(wèn)題四:Docker無(wú)法啟動(dòng)
image.png
問(wèn)題原因:
Docker與VMware沖突導(dǎo)致。
微軟的hyper-V(虛擬化軟件),使用docker就必須要啟動(dòng)hyper-V服務(wù),當(dāng)開(kāi)始hyper-V啟動(dòng)后,VMware的Windows10會(huì)由于啟動(dòng)了hyper-V導(dǎo)致VMware的Windows10無(wú)法啟動(dòng),產(chǎn)生沖突。
處理方法:
- 打開(kāi)控制面板,點(diǎn)擊卸載程序進(jìn)入到程序和功能
image.png
- 點(diǎn)擊啟用或關(guān)閉Windows功能,進(jìn)入Windows功能
image.png
- 勾選(Docker正常使用)取消勾選(Vmware正常使用)
image.png
- 命令行下啟用Hyper-V(管理員身份運(yùn)行)
bcdedit /set hypervisorlaunchtype auto(啟用hyper-V)
- 重啟電腦讓以上設(shè)置生效。
注意:
因兩者沖突,以上操作將會(huì)導(dǎo)致VMware不可用,如果想恢復(fù)讓VMware正產(chǎn)使用,可逆向操作,同時(shí),命令行關(guān)閉hyper-V服務(wù):
bcdedit /set hypervisorlaunchtype off(關(guān)閉hyper-V)




























