通过从缓存中检测许多设备、操作系统、机器人和浏览器,使跟踪更快。
通过为许多常用的用户代理缓存条目,使Matomo中的设备检测更快。
默认情况下,Matomo为每个跟踪请求运行数千个正则表达式,以检测浏览器,设备,操作系统,…正在使用,并用于检测用户代理是否是bot。
这个插件改变了这一点,它首先查看特定用户代理是否存在缓存结果,如果存在,则直接从文件系统加载结果。
我们只推荐这个插件,如果你有一个非常高的流量网站(> 200M请求一个月)。根据您的服务器不同,每个跟踪请求可以节省几毫秒(比如5毫秒,这可能是跟踪请求总时间的10%)。
如果您没有那么多流量,那么开销可能就不值得了。
配置这些值配置/ config.ini.php
[DeviceDetectorCache] access_log_path = "/var/log/httpd/access_log" #访问日志文件的路径此命令需要对该文件具有读权限access_log_regex = "/^(\S+) (\S+) (\S+)\ [[^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (\S+)\" (\S+) (\S+)\"([^\"]*)\" \"([^\"]*)\"$/" #用于提取用户代理的正则表达式regex_match_entry = 14 #定义上述正则表达式的哪个子模式与用户代理匹配num_cache_entries = 200000 #应该缓存多少个用户代理。这个值基本上取决于您的内存和磁盘空间。很可能没有必要改变这一点
运行这个命令,看看它是否有效:
PHP /path/to/matomo/console device-detect -cache:warm-cache -vvv
它应该显示检测到多少用户代理,如果配置正确,还应该打印最常见的前10个用户代理。
缓存的文件将存储在/ tmp / devicecache /
.确保该文件夹具有写访问权。每次运行此命令时,以前创建的缓存项都将被删除。
如果上述测试进展顺利,您需要设置一个定期运行的cronjob(例如每隔几小时或几天)来根据访问日志更新缓存条目。
例如,cronjob需要看起来像这样:
0 8 * * * PHP /path/to/matomo/console device-detect -cache:warm-cache
如果有多个服务器,则需要在处理跟踪请求的每个服务器上设置该命令。
查看并下载特定Matomo版本的插件:
查看并下载特定Matomo版本的插件: