# MindInsight相关命令
## 查看命令帮助信息
```bash
mindinsight --help
```
## 查看版本信息
```bash
mindinsight --version
```
## 启动服务
> MindInsight服务默认只支持本机访问,如需远程访问请修改配置文件`mindinsight\conf\constants.py`。
>将文件中的`HOST`修改为服务端IP,并确定启动端口已开放或关闭防火墙。
```text
mindinsight start [-h] [--workspace ] [--port ]
[--url-path-prefix ]
[--reload-interval ]
[--summary-base-dir ]
[--enable-debugger ]
[--debugger-port ]
[--offline-debugger-mem-limit ]
[--max-offline-debugger-session-num ]
```
参数含义如下:
|参数名|属性|功能描述|参数类型|默认值|取值范围|规则限制|
|---|---|---|---|---|---|---|
|`-h, --help`|可选|显示启动命令的帮助信息。|-|-|-|-|
|`--workspace `|可选|MindInsight日志存放路径。|String|$HOME/mindinsight|-|-|
|`--port `|可选|指定Web可视化服务端口。|Integer|8080|1~65535|-|
|`--url-path-prefix `|可选|指定Web服务URL地址前缀。|String|空|-|URL地址前缀由斜杠(/)分隔成多个部分,各部分支持由字母/数字/下划线/连字符/点号组成的字符串,但不能是单点号(.)或双点号(..)。|
|`--reload-interval `|可选|指定加载数据的时间间隔(单位:秒)。|Integer|3|0~300|设置为0时表示只加载一次数据。|
|`--summary-base-dir `|可选|指定加载训练日志数据的根目录路径。|String|./|-|MindInsight将遍历此路径下的直属子目录。若某个直属子目录包含日志文件,则该子目录被识别为日志文件目录,若根目录包含日志文件,则根目录被识别为日志文件目录。在ModelArts开发环境中,此参数可以指定为OBS路径,请参考[ModelArts文档](https://support.huaweicloud.com/develop-modelarts/develop-modelarts-0068.html)以了解更多信息。|
|`--enable-debugger `|可选|是否开启Debugger功能|Boolean|False|True/False/1/0|只有开启了调试器,才会在MindInsight页面显示调试器入口。|
|`--offline-debugger-mem-limit `|可选|指定单个离线调试器会话内存使用上限(单位MB),当出现内存不足导致MindInght离线调试器运行问题时,需要用户根据内存情况设置。|Integer|16*1024|6*1024~int32上限|-|
|`--max-offline-debugger-session-num `|可选|指定离线调试器会话数上限,会话数指的是能同时使用离线调试器调试的训练作业个数。|Integer|2|1~2|-|
`--workspace`日志目录说明:
| 模块名称 | 日志目录描述 | 日志格式 |
| ------------- | ------------------------------------------------------------ | ----------------------------------------- |
| datavisual | 训练看板模块,记录训练看板模块的所有日志 | `datavisual..log` |
| debugger | 调试器模块,记录调试器模块的所有日志 | `debugger..log` |
| explainer | 可解释AI模块,记录可解释AI模块解析数据的所有日志 | `explainer..log` |
| gunicorn | web服务模块,记录web服务模块的所有日志 | `access..log`
`error..log` |
| lineage | 溯源模块,记录溯源模块的所有日志 | `lineage..log` |
| notebook | 记录在ModelArts的notebook中使用MindInsight的所有日志 | `notebook..log` |
| optimizer | 优化器模块,记录优化器模块的所有日志 | `optimizer..log` |
| parse_summary | summary文件解析模块,记录summary文件解析模块的所有日志 | `parse_summary..log` |
| profiler | 性能分析模块,记录性能分析模块的所有日志 | `profiler..log` |
| restful_api | RESTFul API模块,记录RESTFul API交互日志 | `restful_api..log` |
| scripts | 启停MindInsight模块,记录MindInsight启动、停止的所有日志 | `start..log`
`stop..log` |
| utils | 公共模块,记录公共模块的所有日志 | `utils..log` |
注:每个模块一个日志文件,但单个日志文件超出50M时,文件会被重命名进行归档,被归档的文件格式为:`_.log.`。其中`module name`表示模块名,`PORT`表示端口号,`id`表示文件重命名归档次数。
> 服务启动时,命令行参数值将被保存为进程的环境变量,并以 `MINDINSIGHT_` 开头作为标识,如 `MINDINSIGHT_PORT`,`MINDINSIGHT_WORKSPACE` 等。
执行命令:
```bash
mindinsight start --port 8000 --workspace /path/to/workspace/dir --summary-base-dir /path/summary/base/dir
```
如果出现以下提示,说明启动成功:
```text
Web address: http://127.0.0.1:8000
service start state: success
```
## 查看服务进程信息
MindInsight向用户提供Web服务,可通过以下命令,查看当前运行的Web服务进程。
```bash
ps -ef | grep mindinsight
```
根据服务进程PID,可通过以下命令,查看当前服务进程对应的工作目录`WORKSPACE`。
```text
lsof -p | grep access
```
输出如下,可查看`WORKSPACE`。
```text
gunicorn /log/gunicorn/access.log
```
## 停止服务
```text
mindinsight stop [-h] [--port PORT]
```
参数含义如下:
|参数名|属性|功能描述|参数类型|默认值|取值范围|规则限制|
|---|---|---|---|---|---|---|
|`-h, --help`|可选|显示停止命令的帮助信息。|-|-|-|-|
|`--port `|可选|指定Web可视化服务端口。|Integer|8080|1~65535|-|
执行命令:
```bash
mindinsight stop --port 8000
```
如果出现以下提示,说明启动成功:
```text
Stop mindinsight service successfully
```
## Summary导出
MindInsight中提供解析Summary日志文件的工具,用户可以通过命令行将summary日志文件中的标量存入csv文件,图像存入png文件,从而便于查看和对数据进一步处理。
```text
mindinsight parse_summary [--summary-dir] [--output]
```
参数含义如下:
|参数名|属性|功能描述|参数类型|默认值|取值范围|规则限制|
|---|---|---|---|---|---|---|
|`--summary-dir `|可选|指定要解析的文件的目录。如果该目录中存在多个summary日志文件,则仅根据文件名解析最新的文件。|String|./|-|summary文件夹需要可读可执行权限,summary文件需要可读权限,检查权限失败会报错退出|
|`--output