# monitor-usage **Repository Path**: manong99898/monitor-usage ## Basic Information - **Project Name**: monitor-usage - **Description**: 一款基于 Javascript 的代码监控工具,用于实时监控和追踪目标代码使用情况,收集代码运行日志报告等。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://github.com/niu-grandpa/monitor-usage - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 14 - **Created**: 2023-12-06 - **Last Updated**: 2023-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Monitor Usage 一款基于 Javascript 的代码监控工具,用于实时监控和追踪目标代码使用情况,收集代码运行日志报告等。 ## 特性 - 实时监控目标代码,自动响应报告信息。 - 追踪目标代码所在源文件位置。 - 统计目标代码平均使用率、访问时间等。 - 汇合所有报告信息,导出为日志文件。 - 记录目标被操作类型、使用频率、次数以及操作的时间等,详见下方API。 ## 安装 ### 使用 npm 或 yarn 安装 ```shell npm install monitor-usage --save ``` ```shell yarn add monitor-usage ``` ### 浏览器引入 在浏览器中使用 script 标签直接引入文件,并使用全局对象 MonitorUsage。 ```html ``` ## 示例 > 注意:不支持目标为基本数据类型 ### 监控 Object ```js import MonitorUsage from 'monitor-usage'; const obj = { name: 'ayin' friends: { name: 'zs', age: 18 } }; const monitor = MonitorUsage.stares(obj, (repo) => { console.log('监控报告:', repo); // do something... 例如上传或者保存监控报告等等 }); // 以下操作会自动触发监控回调执行 monitor.name; monitor.friends.name; monitor.name = 'AYIN'; monitor.age = 88; // 新增属性 ``` ### 监控 Function > 强烈推荐使用`命名函数`作为监控目标,而不是匿名函数或直接写入函数 ```js function namedFn() { return 'hello world!' } const fn = MonitorUsage.stares(namedFn, (repo) => { console.log('监控报告:', repo); // do something... 例如上传或者保存监控报告等等 }); fn(); ``` 还有其他的类型,这里不再不一一列举。 ### TypeScript `monitor-usage` 使用 TypeScript 进行书写并提供了完整的类型定义。 ## API | 属性 | 说明 | 类型 | | ------ | ---------------------------- | ------------------------------------------------------------ | | stares | 对目标进行监控 | (target: object, callback: (repo: `ReportInfo[]`) => void, options?:`Options`) => void | | export | 导出所有监控日志为`json`文件 | (name?: string, path?: string) => promise | ### Options 选项字段说明 | 属性 | 说明 | 类型 | | -------------------- | ----------------------------------------------------- | ------------------- | | key | 唯一标识符。添加该key后,导出的报告文件才会包含该日志 | string \| undefined | | isModifyValue | 允许修改属性值 | boolean | | allowAdditionalProps | 允许添加新属性 | boolean | | showErrorView | 捕获错误时在页面展示提示框 | boolean | ### ReportInfo 日志信息字段说明 | 熟悉 | 说明 | 类型 | 默认值 | | -------------- | -------------------------------- | ------- | ---------- | | status | 监控目标使用状态 | string | OK | | source | 源目标 | any | - | | useageName | 监控目标被访问的属性名 | string | - | | usageCount | 监控目标的使用次数 | number | 0 | | usageType | 监控目标的访问类型 | string | Unkown | | usageTime | 监控目标当前使用时间 | string | new Date() | | dailyUsageRate | 监控目标的日平均使用率 | string | 0% | | info | 日志信息 | string | no problem | | oldValue | 监控目标属性值修改前的旧值 | any | - | | newValue | 监控目标属性值修改后的新值 | any | - | | isNewlyAdded | 是否为新添加的属性 | boolean | false | | whenToAdd | 何时添加的属性 | string | - | | lastModify | 最后修改时间,属性值被修改时更新 | string | - | | position | 监控目标所在源文件内的行列数 | string | - | | filepath | 监控目标的文件路径 | string | - |