当前位置:网站首页>Odoo integrated plausible embedded code monitoring platform
Odoo integrated plausible embedded code monitoring platform
2022-07-07 16:11:00 【Digital China cloud base】
Preface
Plausible It is a lightweight and open source network analysis platform , It can be used to analyze user behavior and high access pages in the system , At this stage, various systems have begun to integrate gradually Plausible, So let's see what happens here Odoo How to use it in the framework !
One 、Plausible Burying code
1、 newly build plausible.js
! function() {
"use strict";
var a = window.location,
r = window.document,
o = r.currentScript,
l = o.getAttribute("data-api") || ' Server address ' + "/api/event";
function s(t) {
console.warn("Ignoring Event: " + t)
}
function t(t, e) {
if (/^localhost$|^127(\.[0-9]+){
0,2}\.[0-9]+$|^\[::1?\]$/.test(a.hostname) || "file:" === a.protocol)
return s("localhost");
if (a.hostname != ' Official environment address domain name ')
return s("nonproduction");
if (!(window._phantom || window.__nightmare || window.navigator.webdriver || window.Cypress)) {
try {
if ("true" == window.localStorage.plausible_ignore) return s("localStorage flag")
} catch (t) {
}
var i = {
};
i.n = t,
i.u = a.href,
i.d = ' Official environment address domain name ',
i.r = r.referrer || null,
i.w = window.innerWidth,
e && e.meta && (i.m = JSON.stringify(e.meta)),
e && e.props && (i.p = JSON.stringify(e.props)),
i.h = 1;
var n = new XMLHttpRequest;
n.open("POST", l, !0),
n.setRequestHeader("Content-Type", "text/plain"),
n.send(JSON.stringify(i)), n.onreadystatechange = function() {
4 == n.readyState && e && e.callback && e.callback()
}
}
}
var e = window.plausible && window.plausible.q || [];
window.plausible = t;
for (var i, n = 0; n < e.length; n++) t.apply(this, e[n]);
function w() {
i = a.pathname, t("pageview")
}
window.addEventListener("hashchange", w), "prerender" === r.visibilityState ? r.addEventListener("visibilitychange", function() {
i || "visible" !== r.visibilityState || w()
}) : w()
}();
2、 Domain name modification
The above js Modify the domain name as shown in the figure below

3、 Introduce the above js file
Public in the system html The above js file , Here too data-domain Replace the domain name in ,src The paths of are introduced according to their respective file paths
<script data-domain=" Formal environment domain name " src="/web/static/src/js/plausible.js"></script>
4、 The actual effect
js There are judgments about the environment , The local and test environment will not have any impact on the embedded data , We can try switching menus in a formal environment , It will trigger plausible.js Inside /api/event Interface , as follows ,Payload There are relevant page parameters 
5、 Data kanban
After finishing the above operation , We can log in Plausible The platform has checked our Kanban data !
Two 、 User behavior monitoring
If you need to know which users generally enter which pages , Then how to obtain user information to distinguish ? Let's keep looking down
1、 Select the module to set
Let's first select a module and set it as follows , Here I have added a new one called PageView Event monitoring of name( The name is optional ):

2、 Add kanban
We enter the Kanban page of the corresponding module , A Kanban will be added at the bottom , as follows :

3、 Register global events
We introduced before plausible.js After the document , Register global events :
<script data-domain=" Formal environment domain name " src="/web/static/src/js/plausible.js"></script>
<script>window.plausible = window.plausible || function() {
(window.plausible.q = window.plausible.q || []).push(arguments) }</script>
4、 Add files and monitor
newly added self_menu.js file , newly added hashchange Event monitoring of , And introduce the file into the corresponding module template in :
odoo.define('order_menu', function (require) {
const session = require('web.session')
window.addEventListener("hashchange", function (){
let userName = session.username
let url = window.location.href
plausible('PageView', {
props: {
method: 'HTTP', Region: 'China', userName, url}});
})
})
5、 View the collected information
After restart , Switching pages will call /api/event Interface , View interface parameters , You can see that the information we collected above has also passed ( notes : When testing locally , Note required plausible.js Environment verification part of the code ):
6、 Return to Kanban to view data
go back to Plausible On the platform monitoring board , You can see the user's information data , Filtering conditions are also supported here :


7、 Directional view
Click in a userName, You can see the page access data of the specified user 

Conclusion
Plausible Platform self managed deployment :https://plausible.io/docs/self-hosting
Come here ,Plausible The platform page embedding point and user data monitoring are completed ! You can use a few more accounts to try the effect , If you have better ideas or questions, please leave a message in the comment area below !
Copyright notice : This article is organized and written by the team of Digital China cloud base , If reproduced, please indicate the source .
Official account search for digital cloud base in China , The background to reply Odoo, Join in Odoo Technology exchange group !
边栏推荐
- asyncio 概念和用法
- Please supervise the 2022 plan
- AE learning 01: AE complete project summary
- Numpy -- data cleaning
- AE learning 02: timeline
- Description of vs common shortcut keys
- TS as a general cache method
- Unity drawing plug-in = = [support the update of the original atlas]
- [wechat applet] Chapter (5): basic API interface of wechat applet
- 分步式监控平台zabbix
猜你喜欢

Three. JS introductory learning notes 07: external model import -c4d to JSON file for web pages -fbx import

Rongyun won the 2022 China Xinchuang digital office portal excellence product award!

神经网络c语言中的指针是怎么回事

持续创作,还得靠它!

2022第四届中国(济南)国际智慧养老产业展览会,山东老博会

融云斩获 2022 中国信创数字化办公门户卓越产品奖!

谈谈 SAP iRPA Studio 创建的本地项目的云端部署问题

Logback日志框架第三方jar包 免费获取

Three. JS introductory learning notes 11:three JS group composite object

Use of SVN
随机推荐
JS array foreach source code parsing
After UE4 is packaged, mesh has no material problem
hellogolang
【花雕体验】15 尝试搭建Beetle ESP32 C3之Arduino开发环境
分步式监控平台zabbix
深度之眼(七)——矩阵的初等变换(附:数模一些模型的解释)
TiDB For PostgreSQL和YugabyteDB在Sysbench上的性能对比
Mysql database basic operation DQL basic query
U3D_ Infinite Bessel curve
招标公告:2022年云南联通gbase数据库维保公开比选项目(第二次)比选公告
航运船公司人工智能AI产品成熟化标准化规模应用,全球港航人工智能/集装箱人工智能领军者CIMC中集飞瞳,打造国际航运智能化标杆
How does geojson data merge the boundaries of regions?
47_Opencv中的轮廓查找 cv::findContours()
MySQL数据库基本操作-DQL-基本查询
How to implement backspace in shell
Shader basic UV operations, translation, rotation, scaling
强化实时数据管理,英方软件助力医保平台安全建设
121. 买卖股票的最佳时机
LeetCode1_ Sum of two numbers
深度之眼(六)——矩阵的逆(附:logistic模型一些想法)