Skip to main content
Skip table of contents

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.

{
 "32768": "10",
 "65536": "102",
 "262144": "15",
 "524288": "2"
}

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

BooleanConstraint

A superclass in which constraints on boolean values must extend. Currently, the only subclass is BooleanEqualConstraint, which requires that a boolean axis equal either true or false (depending on user input).

EnumConstraint

A superclass in which constraints on enum values must extend. Currently, the only subclass is EnumEqualConstraint, which requires that an enum axis be equal to a user-specified value.

IntegerConstraint

A superclass in which constraints on integer values must extend. Subclasses include IntegerLessThanConstraintIntegerGreaterThanConstraint, and IntegerEqualConstraint, which map to the obvious comparators for integers.

NullConstraint

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.

PathConstraint

A superclass in which constraints on file path values must extend. Currently, the only subclass is PathDescendantConstraint, which requires that a path value must be a descendant of the specified path (it must be contained within it). This only applies to paths on the Delphix Engine itself, and all paths used must be canonical Unix paths starting from the root of the filesystem.

StringConstraint

A superclass in which constraints on string values must extend. Currently, the only subclass is StringEqualsConstraint, which requires that a string value must equal a user-specified string.

Statistic slice commands

Command

Description and Usage Examples

getData

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.

rememberRange

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 stopRememberingRange is made.

stopRememberingRange

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 rememberRange operation.

pause

This command pauses the collection of a statistic slice, causing no data to be collected until resume is called.

resume

This command resumes the collection of a statistic slice, undoing a pause operation.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.