跟我學 “Linux” 小程式 Web 版開發(四):引入統計及 Crash 收集
在完成了產品的基礎開發以後,接下來需要進行一些周邊的工作,這些周邊工具將會幫助下一步最佳化產品。
為什麼要加應用統計和 Crash 收集
不少開發者在開發的時候,很少會意識到需要新增應用統計和 Crash 收集。但對於一個合格的應用來說,這些是必須的。
- 應用統計:應用統計會在後續進行產品迭代的時候給予資料的支援,讓能夠明確為什麼要更新、要更新什麼以及為什麼這麼做。
- Crash 收集:人無完人,很難開發出一個完美的應用,就隨時有可能會出現應用報錯的情況。出現報錯以後由於使用者的水平不同,有效的反饋其實很少。Crash 收集則可以幫助收集必要的 Crash 資訊,從而在後續開發的過程中,有針對性的修復 Bug。
應該使用哪些工具?
在應用統計領域,可選項非常多,大部分人使用的是 Google Analytics ,不過由於這個產品的面向使用者主要是國內的使用者,因此我更傾向選擇載入速度更快的產品,最終我選擇的是來自騰訊的移動應用分析(MTA),騰訊的移動應用分析中,提供了 HTML5 產品的接入,因此可以完成 TLDR 的統計。
在 Crash 收集方面,大家用的比較普遍的是 Sentry.io ,不過因為 Linux 中國並沒有足夠多的產品業務需要使用 Sentry 來收集 Crash ,因此,一直使用的是官網的免費使用版本。同樣因為網路載入速度的原因,選擇使用了國內的競品 —— FunDebug。
接入工具
騰訊移動應用分析
騰訊移動應用分析的接入並不複雜,首先,你需要登陸其官網,建立一個 HTML5 應用。
並在建立完成後,根據你自己的需要配置相應的能力,這裡我開啟了所有的資料統計,用以支援後續的產品迭代決策。
配置完成後,你會獲得具體的統計的程式碼,接下來就可以進行接入。
一個比較簡單的方法是直接將程式碼複製,並貼上到 public/index.html
中,從而實現統計。不過,這樣嵌入會導致如果需要自定義統計時,會無法透過 ESLint 的規則,因此我選擇了第二種方式,使用 Vue 外掛的方式接入。
使用 Vue 外掛接入時,需要使用 mars-mta 這個包。
先使用 npm 安裝依賴,然後在 main.js
中加入相應的統計程式碼,就可以實現自動的統計。
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import vuetify from './plugins/vuetify';
// 以下為新增程式碼
import Mars from 'mars-mta'
Vue.use(Mars, {
open: true, // 開關,若為false,則不會發出上報
config: {
sid: '500710182', // 必填,統計用的appid
cid: '500710183', // 如果開啟自定義事件,此專案為必填,否則不填
autoReport: 1, // 是否開啟自動上報(1:init完成則上報一次,0:使用pgv方法才上報)
senseHash: 1, // hash錨點是否進入url統計
senseQuery: 1, // url引數是否進入url統計
performanceMonitor: 1, // 是否開啟效能監控
}
})
// 以上為新增程式碼
new Vue({
router,
vuetify,
render: h => h(App),
beforeCreate: async function(){
const auth = this.$tcb.auth({ persistence: 'local' });
await auth.signInAnonymously();
}
}).$mount('#app')
在我的程式碼中,配置了 sid
和 cid
,這些資訊你都需要在騰訊 MTA 的應用管理後臺獲取。
而下方的配置,則根據你自己的實際需求選擇開啟即可。
對應的提交:https://github.com/LCTT/tldr.linux.cn/commit/61821aff4bf75fda3e81d96c6cd34a51efd00773
FunDebug
Fundebug 是我之前在開發小程式的時候用過的 Crash 收集應用。這次剛好也用上了。
因為預算的問題,這裡我使用的是免費版本,有幾個 tab 是看不到的,但是基本的 Debug 也是夠用了。
Fundebug 的安裝也很簡單, 訪問 https://www.fundebug.com/ ,註冊賬號, 並建立一個專案,你會獲得一個 API Key,後續你可以使用這個 API Key 來初始化你的專案。
執行如下命令來安裝依賴:
npm install fundebug-javascript fundebug-vue --save
並在 main.js
中新增如下程式碼(將 API-KEY
替換為你自己的 API KEY)並儲存,就可以引入 Fundebug 來進行 Crash 收集了。
import * as fundebug from "fundebug-javascript";
import fundebugVue from "fundebug-vue";
fundebug.init({
apikey: "API-KEY"
})
fundebugVue(fundebug, Vue);
對應的提交:https://github.com/LCTT/tldr.linux.cn/commit/225ca9d38e80eb55defac6383f5b9c228bdab6fe
最佳化
在開發的過程中經常會出現 Error,這個是難以避免的。在開啟了 Crash 收集以後,這些 ERROR 也會被收集到 Fundebug 上,這樣會浪費每個月 3000 條的免費額度,因此,需要一個方法在開發環境不啟用這些擴充。類似的,也不希望 MTA 統計本地開發的 Page View ,會影響到後續的資料分析。因此,我使用了一些方法來避開這個問題。
if (process.env.NODE_ENV === 'production') {
Vue.use(Mars, {
open: true, // 開關,若為false,則不會發出上報
config: {
sid: 'xxx', // 必填,統計用的appid
}
})
fundebug.apikey = "xxx"
fundebugVue(fundebug, Vue);
}
透過將引用統計的程式碼包裹在環境的判斷程式碼中,可以實現在渲染的時候,只有生產環境才會渲染出相應的統計程式碼,從而實現了在開發環境不呼叫 fundebug 和 mta 統計,避免了開發環境的資料干擾。
對應的提交:https://github.com/LCTT/tldr.linux.cn/commit/62f87b51fabd7c25cd905560157a546fd62babf2
總結
在這篇文章中,介紹了兩個服務,分別是用於統計的騰訊移動分析 MTA 和用於做 Crash 收集的 fundebug,介紹了應該如何在 Vue 應用中接入這兩種服務。此外,還根據實際的需求,最佳化了兩個統計的位置,確保產品在開發環境不會工作,從而避免了影響到我們統計資料的準確性。
這篇文章涉及到的程式碼你都可以在 https://github.com/LCTT/tldr.linux.cn/blob/master/src/main.js 看到。
相關文章
- 跟我學 “Linux” 小程式 Web 版開發(二):UI 開發LinuxWebUI
- 跟我學 “Linux” 小程式 Web 版開發(一):初始化LinuxWeb
- 跟我學 “Linux” 小程式 Web 版開發(五):遇到的一些坑LinuxWeb
- iOS開發之Crash分析,以及收集iOS
- 微信小程式開發系列 (四) :微信小程式的頁面跳轉路由設計微信小程式路由
- 小程式web開發框架-weweb介紹Web框架
- Android Native Crash 收集Android
- 數學戰神app(小學生四則運算app)開發需求及進度APP
- 計算機作業系統(湯小丹第四版)程式同步計算機作業系統
- 微信小程式開發常見問題(四)微信小程式
- 【跟我學Python】第四章. Python多執行緒程式設計Python執行緒程式設計
- 結對程式設計 小學四則運算程式設計
- 結對程式設計——小學四則運算練習題小程式程式設計
- 小程式開發總結一:mpvue框架及與小程式原生的混搭開發Vue框架
- 微信小程式學習:雲開發微信小程式
- 快速學會開發微信小程式微信小程式
- 跟我一起學習和開發動態表單系統-資料庫設計(1)資料庫
- WEB程式設計開發常用的程式碼Web程式設計
- 陪診系統小程式開發
- 益古云商小程式商城系統開發技術程式設計程式設計
- 小程式構成、開發人員配置及開發週期
- 美美優選小程式開發(開發小程式)
- iOS開發之避免crashiOS
- Greenplum自動統計資訊收集-暨統計資訊不準引入的broadcastmotion一例AST
- 微信小程式「學科排名」開發心得微信小程式
- 跑腿小程式系統開發的功能
- 貨拉拉小程式開發(系統部署)
- Web開發:我希望得到的程式設計學習路線圖Web程式設計
- iOS 開發:『Crash 防護系統』(一)Unrecognized SelectoriOSZed
- 微信小程式入門開發及問題整理微信小程式
- Web開發學習Web
- 小程式開發
- 【一步步開發AI運動小程式】二、引入外掛AI
- 《小蘋果》版程式猿基情四射蘋果
- linux系統程式設計CP小測試Linux程式設計
- 關閉及開啟oracle10g統計資訊自動收集功能Oracle
- 微信小程式開發系列(一) :開發環境搭建和微信小程式的檢視設計與開發微信小程式開發環境
- 微信小程式開發學習筆記[4]微信小程式筆記