This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
storperf:api [2015/11/30 21:12] Mark Beierl [ReST API] |
storperf:api [2015/12/02 18:22] (current) Mark Beierl [Common Options] |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== ReST API ===== | ===== ReST API ===== | ||
- | Start Job: http://hostname/api/v1.0/start&workload=[]&target=[] | + | Start Job: ''http://hostname/api/v1.0/start&workload=[workload]&target=[target]'' |
* See Common Options below for a full list | * See Common Options below for a full list | ||
+ | |||
Returns a JSON string as follows: | Returns a JSON string as follows: | ||
{ | { | ||
Line 11: | Line 13: | ||
} | } | ||
| | ||
- | Query Job Results: http://hostname/api/v1.0/results/[job_id] | + | Query Job Results: ''http://hostname/api/v1.0/report/[job_id]&workload=[workload pattern match]'' |
- | Returns a JSON string with the job status (''running'' or ''completed''). If still running: | + | * See Common Responses below for the response format for queries |
- | { | + | |
- | "version": 1.0 | + | |
- | "status": running | + | |
- | "start": 1448905682 | + | |
- | } | + | |
- | + | ||
- | If completed: | + | |
- | + | ||
- | { | + | |
- | "version": 1.0, | + | |
- | "status": completed, | + | |
- | "start": 1448905682, | + | |
- | "end": 1448905914, | + | |
- | "stats": { | + | |
- | "read": { | + | |
- | "iops": 12191, | + | |
- | "throughput": 48764, | + | |
- | "bytes": 146148, | + | |
- | "latency": { | + | |
- | "min": 23, | + | |
- | "mean": 413.87, | + | |
- | "max": 1638 | + | |
- | }, | + | |
- | "write": { | + | |
- | "iops": 5234, | + | |
- | "throughput": ,20936 | + | |
- | "bytes": 62748, | + | |
- | "latency": { | + | |
- | "min": 51, | + | |
- | "mean": 39.98, | + | |
- | "max": 434 | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | | + | |
===== CLI ===== | ===== CLI ===== | ||
Line 66: | Line 32: | ||
If specified from command line, the option is in the format ''--option=''. For ReST, it is embedded in the URL as ''&option='' | If specified from command line, the option is in the format ''--option=''. For ReST, it is embedded in the URL as ''&option='' | ||
- | * target=[device or path] //Optional// The path to either an attached storage device (/dev/vdb, etc) or a directory path (/opt/storperf) that will be used to execute the performance test. In the case of a device, the entire device will be used. If not specified, the current directory will be used. | + | * ''target=''[device or path] //Optional// The path to either an attached storage device (/dev/vdb, etc) or a directory path (/opt/storperf) that will be used to execute the performance test. In the case of a device, the entire device will be used. If not specified, the current directory will be used. |
- | * workload=[workload module] //Optional// If not specified, the default is to run all workloads. The workload types are: | + | * ''workload=''[workload module] //Optional// If not specified, the default is to run all workloads. The workload types are: |
- | * rs: 100% Read, sequential data | + | * ''rs'': 100% Read, sequential data |
- | * ws: 100% Write, sequential data | + | * ''ws'': 100% Write, sequential data |
- | * rr: 100% Read, random access | + | * ''rr'': 100% Read, random access |
- | * wr: 100% Write, random access | + | * ''wr'': 100% Write, random access |
- | * rw: 70% Read / 30% write, random access | + | * ''rw'': 70% Read / 30% write, random access |
- | * nossd //optional// Do not perform SSD style preconditioning. | + | * ''nossd'' //optional// Do not perform SSD style preconditioning. |
- | * nowarm //optional// Do not perform a warmup prior to measurements. | + | * ''nowarm'' //optional// Do not perform a warmup prior to measurements. |
- | | + | * ''report='' [job_id] //optional// Query the status of the supplied job_id and report on metrics. If a workload is supplied, will report on only that subset. |
+ | |||
+ | ====== Common Responses ====== | ||
+ | |||
+ | === Report Responses === | ||
+ | |||
+ | The report command returns a JSON string with the job status (''running'' or ''completed''). If still running: | ||
+ | |||
+ | { | ||
+ | "version": 1.0 | ||
+ | "status": running | ||
+ | "start": 1448905682 | ||
+ | } | ||
+ | |||
+ | If completed: | ||
+ | |||
+ | { | ||
+ | "version": 1.0, | ||
+ | "status": completed, | ||
+ | "start": 1448905682, | ||
+ | "end": 1448905914, | ||
+ | "workload": [ | ||
+ | { | ||
+ | "name": "rw", | ||
+ | "stats": { | ||
+ | "queue-depth": { | ||
+ | "1": { | ||
+ | "block-size": { | ||
+ | "4096": { | ||
+ | "read": { | ||
+ | "iops": 12191, | ||
+ | "latency": { | ||
+ | "min": 23, | ||
+ | "mean": 413.87, | ||
+ | "max": 1638 | ||
+ | } | ||
+ | }, | ||
+ | "write": { | ||
+ | "iops": 5234, | ||
+ | "latency": { | ||
+ | "min": 51, | ||
+ | "mean": 39.98, | ||
+ | "max": 434 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||