-
Notifications
You must be signed in to change notification settings - Fork 32
Add creport cmd #684
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
1daidai1
wants to merge
38
commits into
master
Choose a base branch
from
dev/mongodbtest
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Add creport cmd #684
Changes from all commits
Commits
Show all changes
38 commits
Select commit
Hold shift + click to select a range
bf7994b
test
1daidai1 0271348
change cplugin
1daidai1 5d4cd94
fix cgroup date
1daidai1 24e4f61
fix log
1daidai1 5ad06c8
bulk opt
1daidai1 3c1fb3c
use P/C thread
1daidai1 d5ed4f5
change stream out
1daidai1 fd3c72b
change stream size
1daidai1 841e435
opt code
1daidai1 72e1e68
use thread pool
1daidai1 9f1e9cb
add cpu_alloc_level
1daidai1 099df6e
opt code
1daidai1 4c2c8e3
add hour timer
1daidai1 d011006
add wckeyprocess
1daidai1 b10d326
add jobsize cmd
1daidai1 67ace70
change code style
1daidai1 25a130e
use one table
1daidai1 ac03985
use mongodb func
1daidai1 dcb3d04
opt code
1daidai1 08c4f8d
opt code
1daidai1 9161aec
opt query
1daidai1 7d4ec14
add time
1daidai1 c7e8813
add nodenamelist
1daidai1 654589b
opt code
1daidai1 c501a79
change query
1daidai1 249d8e5
opt code
1daidai1 f7fe0b9
rebase
1daidai1 ba42d14
opt code
1daidai1 efbf03a
opt rolltype
1daidai1 9312c12
fix name
1daidai1 727e0b5
opt code
1daidai1 2fd48bf
style: auto format with clang-format.
github-actions[bot] 2e8dd79
fix comments
1daidai1 cc79aa5
add creport cmd help
1daidai1 caf1ce1
opt active agg
1daidai1 85add56
fix comments
1daidai1 e54ed84
style: auto format with clang-format.
github-actions[bot] 58b6136
fix comments
1daidai1 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,361 @@ | ||
| # creport - Query Job-Related Statistics | ||
|
|
||
| **creport is mainly used to query job statistics related to users and accounts within a specified time range in the cluster.** | ||
|
|
||
| ```bash | ||
| creport [<OPTION>] [<COMMAND>] | ||
| ``` | ||
|
|
||
| ## Display User Resource Consumption Ranking | ||
| ```bash | ||
| creport user topusage [--start-time=...] [--end-time=...] [--account=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 将图片的文字内容用代码块格式展示,不再上传原始图片 |
||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **LOGIN**: Username | ||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - **PROPER NAME**: Full Linux system name | ||
| - **ACCOUNT**: Account name | ||
| - **USED**: The sum of total CPUs * runtime for each job under the user | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-A, --account string**: Specify accounts to query, use commas to separate multiple accounts | ||
| - **-u, --user string**: Specify users to query, use commas to separate multiple users | ||
| - **--group bool**: Group all accounts of each user together (default is separate entries for each user-account reference) | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
| - **--topcount uint32**: Specify the number of output entries (default is 10) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display Account-User Resource Utilization | ||
| ```bash | ||
| creport cluster accountutilizationbyuser [--start-time=...] [--end-time=...] [--account=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **ACCOUNT**: Account name | ||
| - **LOGIN**: Username | ||
| - **PROPER NAME**: Full Linux system name | ||
| - **USED**: The sum of total CPUs * runtime for each job under the user | ||
| - **ENERGY**: Energy consumed by jobs | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-A, --account string**: Specify accounts to query, use commas to separate multiple accounts | ||
| - **-u, --user string**: Specify users to query, use commas to separate multiple users | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display User-Account Resource Utilization | ||
| ```bash | ||
| creport cluster userutilizationbyaccount [--start-time=...] [--end-time=...] [--user=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **LOGIN**: Username | ||
| - **PROPER NAME**: Full Linux system name | ||
| - **ACCOUNT**: Account name | ||
| - **USED**: The sum of total CPUs * runtime for each job under the user | ||
| - **ENERGY**: Energy consumed by jobs | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-A, --account string**: Specify accounts to query, use commas to separate multiple accounts | ||
| - **-u, --user string**: Specify users to query, use commas to separate multiple users | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display User-WCKEY Resource Utilization | ||
| ```bash | ||
| creport cluster userutilizationbywckey [--start-time=...] [--end-time=...] [--user=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **LOGIN**: Username | ||
| - **PROPER NAME**: Full Linux system name | ||
| - **WCKEY**: wckey name | ||
| - **USED**: The sum of total CPUs * runtime for each job under the user | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-u, --user string**: Specify users to query, use commas to separate multiple users | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display WCKEY-User Resource Utilization | ||
| ```bash | ||
| creport cluster wckeyutilizationbyuser [--start-time=...] [--end-time=...] [--wckeys=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **WCKEY**:wckey name | ||
| - **LOGIN**: Username | ||
| - **PROPER NAME**: Full Linux system name | ||
| - **USED**: The sum of total CPUs * runtime for each job under the user | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-w, --wckeys string**: Specify WCKEYs to query, use commas to separate multiple WCKEYs | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display Account-QOS Resource Utilization | ||
| ```bash | ||
| creport cluster accountutilizationbyqos [--start-time=...] [--end-time=...] [--account=...] [--qos=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **ACCOUNT**: Account name | ||
| - **QOS**: Qos name | ||
| - **USED**: The sum of total CPUs * runtime for each job under the user | ||
| - **ENERGY**: Energy consumed by jobs | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-A, --account string**: Specify accounts to query, use commas to separate multiple accounts | ||
| - **-q, --qos string**: Specify QOS to query, use commas to separate multiple QOS | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display Overall Cluster Utilization | ||
| ```bash | ||
| creport cluster utilization [--start-time=...] [--end-time=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **ALLOCATE**: Total resources actually allocated by all jobs during the statistics interval (CPU minutes), i.e., sum of allocated cores × runtime minutes | ||
| - **QOWN**: Total downtime caused by node failures, maintenance, etc. during the statistics interval (CPU minutes), i.e., sum of down cores × downtime minutes | ||
| - **PLANEED**: Time when jobs are queued but resources are not allocated (CPU minutes), usually indicates resource shortage or queue overflow | ||
| - **REPORTED**: Theoretical maximum available time for all resources during the statistics interval (CPU minutes), i.e., total cluster cores × time span | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display Job Size Distribution Grouped by Account | ||
| ```bash | ||
| creport job sizesbyaccount [--start-time=...] [--end-time=...] [--account=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **ACCOUNT**: Account name | ||
| - **0-49 CPUs**: CPU minutes in the 0-49 CPUs range | ||
| - **50-249 CPUs**: CPU minutes in the 50-249 CPUs range | ||
| - **250-499 CPUs**:CPU minutes in the 250-499 CPUs range | ||
| - **500-999 CPUs**: CPU minutes in the 500-999 CPUs range | ||
| - **>= 1000 CPUs**: CPU minutes in the ≥1000 CPUs range | ||
| - **TOTAL CPU TIME**: Total CPU minutes for all jobs under the specific account | ||
| - **% OF CLUSTER**: Percentage of total cluster job CPU minutes occupied | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-A, --account string**: Specify accounts to query, use commas to separate multiple accounts | ||
| - **--gid string**: Specify the gid to query, use commas to separate multiple gids | ||
| - **--grouping string**: Comma-separated list of size groupings (default: 50,100,250,500,1000) | ||
| - **--printjobcount bool**: Report will print the number of jobs in the range instead of the used time | ||
| - **-j, --jobs string**: Specify job IDs to query, use commas to separate multiple IDs (e.g., -j=2,3,4) | ||
| - **-n, --nodes string**: Specify node names to query, use commas to separate multiple nodes | ||
| - **-p, --partition string**: Specify partitions to query, use commas to separate multiple partitions | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display Job Size Distribution Grouped by WCKEY | ||
| ```bash | ||
| creport job sizesbywckey [--start-time=...] [--end-time=...] [--wckeys=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **ACCOUNT**: Account name | ||
| - **0-49 CPUs**: CPU minutes in the 0-49 CPUs range | ||
| - **50-249 CPUs**: CPU minutes in the 50-249 CPUs range | ||
| - **250-499 CPUs**:CPU minutes in the 250-499 CPUs range | ||
| - **500-999 CPUs**: CPU minutes in the 500-999 CPUs range | ||
| - **>= 1000 CPUs**: CPU minutes in the ≥1000 CPUs range | ||
| - **TOTAL CPU TIME**: Total CPU minutes for all jobs under the specific account | ||
| - **% OF CLUSTER**: Percentage of total cluster job CPU minutes occupied | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-w --wckeys string**: Specify WCKEYs to query, use commas to separate multiple WCKEYs | ||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - **--gid string**: Specify the gid to query, use commas to separate multiple gids | ||
| - **--grouping string**: Comma-separated list of size groupings (default: 50,100,250,500,1000) | ||
| - **--printjobcount bool**: Report will print the number of jobs in the range instead of the used time | ||
| - **-j, --jobs string**: Specify job IDs to query, use commas to separate multiple IDs (e.g., -j=2,3,4) | ||
| - **-n, --nodes string**: Specify node names to query, use commas to separate multiple nodes | ||
| - **-p, --partition string**: Specify partitions to query, use commas to separate multiple partitions | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Display Job Size Distribution Grouped by WCKEY and Account | ||
| ```bash | ||
| creport job sizesbyaccountandwckey [--start-time=...] [--end-time=...] [--wckeys=...] ... | ||
| ``` | ||
| ### Sample Output | ||
|
|
||
|  | ||
|
|
||
| ### Output Fields | ||
|
|
||
| - **CLUSTER**: Cluster name | ||
| - **ACCOUNT**: Account name | ||
| - **0-49 CPUs**: CPU minutes in the 0-49 CPUs range | ||
| - **50-249 CPUs**: CPU minutes in the 50-249 CPUs range | ||
| - **250-499 CPUs**:CPU minutes in the 250-499 CPUs range | ||
| - **500-999 CPUs**: CPU minutes in the 500-999 CPUs range | ||
| - **>= 1000 CPUs**: CPU minutes in the ≥1000 CPUs range | ||
| - **TOTAL CPU TIME**: Total CPU minutes for all jobs under the specific account | ||
| - **% OF CLUSTER**: Percentage of total cluster job CPU minutes occupied | ||
|
|
||
| ### Command Line Options | ||
|
|
||
| #### Filtering Options | ||
| - **-A, --account string**: Specify accounts to query, use commas to separate multiple accounts | ||
| - **-w, --wckeys string**: Specify WCKEYs to query, use commas to separate multiple WCKEYs | ||
| - **--gid string**: Specify the gid to query, use commas to separate multiple gids | ||
| - **--grouping string**: Comma-separated list of size groupings (default: 50,100,250,500,1000) | ||
| - **--printjobcount bool**: Report will print the number of jobs in the range instead of the used time | ||
| - **-j, --jobs string**: Specify job IDs to query, use commas to separate multiple IDs (e.g., -j=2,3,4) | ||
| - **-n, --nodes string**: Specify node names to query, use commas to separate multiple nodes | ||
| - **-p, --partition string**: Specify partitions to query, use commas to separate multiple partitions | ||
| - **-t, --time string**: Specify the time unit for output job data (default is minutes) | ||
|
|
||
| #### Time Range Filtering | ||
| - **-S, --start-time string**: Specify the query start time (default is 00:00:00 of the previous day), format: `2023-03-14T10:00:00` | ||
| - **-E, --end-time string**: Specify the query end time (default is 23:59:59 of the previous day), format: `2023-03-14T10:00:00` | ||
|
|
||
| #### Other Options | ||
| - **-C, --config string**: Path to configuration file (default: `/etc/crane/config.yaml`) | ||
| - **-h, --help**: Show help information | ||
|
|
||
| ## Manually Trigger Data Aggregation | ||
|
|
||
| **Used to manually trigger data aggregation. Only the root user is allowed to perform this operation.** | ||
|
|
||
| ```bash | ||
| creport active | ||
| ``` | ||
|
|
||
| ## Related Commands | ||
|
|
||
| - [cqueue](cqueue.md) - View job queue (current/pending jobs) | ||
| - [cbatch](cbatch.md) - Submit batch jobs | ||
| - [ccancel](ccancel.md) - Cancel jobs | ||
| - [ceff](ceff.md) - View job efficiency statistics | ||
| - [cacct](cacct.md) - Query completed jobs | ||
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
学习下ccontorl的文档结构吧