Performance analytics tool API reference
This topic describes basic commands and command syntax for using the Performance Analytics tool.
Statistic types
More detailed information can be found about each statistic type through the command-line interface (CLI) and webservices API, but the following table provides more information about how similar I/O stack statistic types relate to each other.
Statistic type | Description | Axis name | Axis description | Axis value type |
---|---|---|---|---|
NFS_OPS | Provides information about Network File System operations. This is the entry point to the Delphix Engine for all Oracle database file accesses. | op | I/O operation type | STRING |
path | Path of the affected file | STRING | ||
size | I/O sizes in bytes | HISTOGRAM | ||
avgLatency | Average I/O latency in nanoseconds | INTEGER | ||
cached | Whether reads were cached | BOOLEAN | ||
latency | I/O latencies in nanoseconds | HISTOGRAM | ||
count | Number of I/O operations | INTEGER | ||
client | Address of the client | STRING | ||
throughput | I/O throughput in bytes | INTEGER | ||
sync | Whether writes were synchronous | BOOLEAN | ||
iSCSI_OPS | Provides information about iSCSI operations. This is the entry point to the Delphix Engine for all SQL Server file accesses. | Same axes as NFS_OPS, except for path, cached, and sync. | ||
VFS_OPS | This layer sits immediately below NFS_OPS and iSCSI_OPS. It should give almost exactly the same latencies, assuming no unexpected behavior is occurring. | Same axes as NFS_OPS, except for client. | ||
DxFS_OPS | This layer sits immediately below VFS_OPS, and the two of them should give almost exactly the same latencies. | Same axes as VFS_OPS. | ||
DxFS_IO_QUEUE_OPS | This layer sits below DxFS_OPS, but the latencies will differ from that layer because this layer batches together operations to increase throughput. | op | I/O operation type | STRING |
count | Number of I/O operations | INTEGER | ||
size | I/O sizes in bytes | HISTOGRAM | ||
avgLatency | Average I/O latency in nanoseconds | INTEGER | ||
latency | I/O latencies in nanoseconds | HISTOGRAM | ||
throughput | I/O throughput in bytes | INTEGER | ||
priority | Priority of the I/O | STRING | ||
DISK_OPS | This layer sits below DxFS_IO_QUEUE_OPS at the bottom of the I/O stack and measures interactions between the Delphix Engine and disks. | op | I/O operation type | STRING |
count | Number of I/O operations | INTEGER | ||
size | I/O sizes in bytes | HISTOGRAM | ||
avgLatency | Average I/O latency in nanoseconds | INTEGER | ||
latency | I/O latencies in nanoseconds | HISTOGRAM | ||
throughput | I/O throughput in bytes | INTEGER | ||
error | Whether the I/O resulted in an error | BOOLEAN | ||
device | Device the I/O was issued to | STRING | ||
CPU_UTIL | This is unrelated to the layers of the I/O stack. It measures CPU utilization on the Delphix Engine. | idle | Idle time in milliseconds (showAxes command may incorrectly state nanoseconds) | INTEGER |
user | User time in milliseconds (showAxes command may incorrectly state nanoseconds) | INTEGER | ||
kernel | Kernel time in milliseconds (showAxes command may incorrectly state nanoseconds) | INTEGER | ||
dtrace | DTrace time in milliseconds (showAxes command may incorrectly state nanoseconds) Subset of time in kernel | INTEGER | ||
cpu | Which CPU was utilized | INTEGER | ||
NETWORK_INTERFACE_UTIL | Network interface utilization on the Delphix Engine. | inBytes | Number of bytes received | INTEGER |
inPackets | Number of packets received | INTEGER | ||
outBytes | Number of bytes transmitted | INTEGER | ||
outPackets | Number of packets transmitted | INTEGER | ||
networkInterface | Which network interface was utilized | STRING | ||
TCP_STATS | Statistics for all established TCP connections on the Delphix Engine. | localAddress | Local address for the TCP connection | STRING |
localPort | Local port for the TCP connection | INTEGER | ||
remoteAddress | Remote address for the TCP connection | STRING | ||
remotePort | Remote port for the TCP connection | INTEGER | ||
inBytes | Data bytes received | INTEGER | ||
outBytes | Data bytes transmitted | INTEGER | ||
receiveWindowSize | The size of the local receive window | INTEGER | ||
sendWindowSize | The size of the peer's receive window | INTEGER | ||
congestionWindowSize | The size of the local congestion window | INTEGER | ||
retransmittedBytes | Bytes retransmitted | INTEGER | ||
inUnorderedBytes | Number of bytes received out of order. This is a subset of the "inBytes" value | INTEGER | ||
unacknowledgedBytes | Number of bytes sent but unacknowledged | INTEGER | ||
roundTripTime | Smoothed average round-trip time in microseconds | INTEGER |
Statistic axis value types
Values are returned when a slice's data is queried. Each axis has a value type, which specifies how the data will be returned.
Value type | Description |
---|---|
INTEGER | The value is returned as an integer. For information about what units the integer is measured in, read the documentation for the related datapoint or datapoint stream type. |
BOOLEAN | The value is returned as a boolean. |
STRING | The value is returned as a string. This is used for enum values as well, although the set of strings that can be returned is limited. |
HISTOGRAM | The value is returned as a log-scale histogram. The histogram has size buckets whose minimum and maximum value get doubled. Histograms are returned as JSON maps, where the keys are the minimum value in a bucket and the values are the height of each bucket. Here is an example histogram. Notice that buckets with a height of zero are not included in the JSON object and that keys and values are represented as strings.
|
Axis constraints are used to limit the data which a slice can collect. Each axis specifies a constraint type which can be used to limit that axis' values.
Constraint type | Description |
---|---|
| A superclass in which constraints on boolean values must extend. Currently, the only subclass is |
| A superclass in which constraints on enum values must extend. Currently, the only subclass is |
| A superclass in which constraints on integer values must extend. Subclasses include |
| This class signifies that an axis cannot be constrained. This makes the most sense for axes that provide an average value - placing a constraint on an average doesn't make sense because you are not able to include or discard a particular operation based on what its effects would be on the average of all operations. |
| A superclass in which constraints on file path values must extend. Currently, the only subclass is |
| A superclass in which constraints on string values must extend. Currently, the only subclass is |
Statistic slice commands
Command | Description and Usage Examples |
---|---|
| This is used to fetch data from a statistic slice which has been collecting data for a while. It returns a datapoint set, which is composed of datapoint streams, which contain datapoints. For a full description, see the Performance Analytics Tool Overview. |
| This is used to ensure that data collected during an ongoing investigation doesn't get deleted unexpectedly. If this is not used, data is only guaranteed to be persisted for 24 hours. If it is used, data will be remembered until a corresponding call to |
| This is used to allow previously-remembered data to be forgotten. The data will be forgotten on the same schedule as brand new data, so you will have at least 24 hours before data which you have stopped remembering is deleted. This undoes the |
| This command pauses the collection of a statistic slice, causing no data to be collected until |
| This command resumes the collection of a statistic slice, undoing a |