fspringveldt / silverstripe-module-metrics
一个实验性模块,提供正在使用的SilverStripe模块的指标
dev-master
2017-11-10 02:44 UTC
Requires
- maciejczyzewski/bottomline: dev-master
- silverstripe/framework: ^3
This package is auto-updated.
Last update: 2024-09-13 10:25:37 UTC
README
此模块旨在为开发运维团队提供有关多个网站中SilverStripe模块使用的相关信息。它通过分析模块的DataObjects和数据扩展类来实现。
- DataObjects:如果其中至少有一个具有行,则假定模块正在使用
- 数据扩展:如果引入了具有非空值的任何新列,则假定模块正在使用。
注意:`DataExtension::augmentDataBase()` 也会修改数据库(参见Versioned或Translatable),但没有结构化的方式来确定这些修改是什么。对于这些模块,需要在模块级别进行一些分析,以确定哪些表的存在的可靠程度可以确定模块的使用情况。
要求
- SilverStripe ^3.1
安装和设置
- 将仓库克隆到您的
/tmp/ss-module-metrics
目录下
git clone https://github.com/fspringveldt/silverstripe-module-metrics /tmp/ss-module-metrics
- 在您克隆此项目到的同一目录中创建一个简单的文本文件(例如,/tmp/ss-module-metrics),将您要包含在扫描中的所有SilverStripe目录的路径放入该文件中。以下是一个名为
input.txt
的文件示例,其中包含以下内容
$HOME/www/ss-site-1 $HOME/www/ss-site-2
- 从您的bash命令提示符运行以下命令以输出其结果
cd /tmp/ss-module-metrics/ && >output.txt && awk '{printf "php cli-module-metrics.php %s >> output.txt\n", $0}' input.txt | sh
注意。通过在您的脚本中包含类似清单的SilverStripe文件(Core.php),您引入了重新生成缓存文件的可能性,这可能会对前端用户造成问题。因此,必须确保脚本以Web服务器的用户身份运行。
- 此命令将在
中指定的所有网站上运行模块使用检查器,将输出以JSON格式发送到名为 的文件中。以下字段按网站和模块输出。此文件可以导入MySQL进行进一步分析。
[ { "Site": "http:\/\/dev.ss3.local", "ModuleName": "userforms", "InUse": 1, "UsageType": "DataObject", "RecordsFound": 2, "FieldInUse": null, "TableInUse": "EditableCheckbox", "LastEdited": "2017-08-01 23:24:32" } ]
字段描述
- 站点:Director::baseURL()的输出
- 模块名称:实际模块
- 使用:可以是0、1或2。值为2表示模块没有数据库交互
- 使用类型:可以是以下之一
- 扩展 - 此模块引入的扩展列具有有效数据(即非空且不等于0)
- 数据对象 - 此模块引入的数据对象有数据
- 增强数据库 - 在DataExtension::augmentDatabase()中引入的表中找到行
- 无数据库交互 - 在此模块中未找到数据库交互
- 找到的记录数:数据对象情况下找到的记录数
- 正在使用的字段:第一个具有非空值的DataExtension字段。
- 正在使用的表:第一个具有行的数据库表
- 最后修改:表中的LastEdited列
按表格格式化示例结果
许可证
见许可证
我们包括了一个3条款BSD许可证,您可以使用它作为默认值。我们提倡BSD许可证,因为它是最自由和最开放的许可证之一。
如果您想使用其他许可证,请随意更改license.md。您可以使用choosealicense.com来帮助选择适合您项目的许可证。
维护者
- Franco Springveldt fspringveldt@gmail.com
错误跟踪器
问题将在本存储库的问题部分进行跟踪。在提交问题之前,请阅读现有问题以确保您的独一无二。
如果问题看起来像是一个新bug
- 创建一个新问题
- 描述重现您问题的步骤以及预期的结果。单元测试、截图和屏幕录制在这里可能会有帮助。
- 尽可能详细地描述您的环境:SilverStripe版本、浏览器、PHP版本、操作系统、任何安装的SilverStripe模块。
请直接向模块维护者报告安全问题。请不要在bug跟踪器中提交安全问题。
开发和贡献
如果您想为模块做出贡献,请确保您发起了一个拉取请求,并与模块维护者进行讨论。