CLI cookbook: obtaining CPU performance information using CLI
There are times when it may be desirable to obtain analytics information about the Delphix Engine CPU, which is formatted differently than what is available from the Delphix User Interface (UI).
Troubleshooting
You can obtain running information by looking at the GUI > Resources > Performance Analytics. You will see the graph for CPU if the CPU is selected.
When logged into the Delphix Engine command-line interface (CLI) as delphix_admin, you can see the default analytics gathered:
dlpx5120.dcenter > analytics
dlpx5120.dcenter analytics > list
NAME STATISTICTYPE STATE COLLECTIONINTERVAL COLLECTIONAXES
----------------------------------------------------------------------------------------------
default.cpu CPU_UTIL RUNNING 1sec idle, kernel, user
default.disk DISK_OPS RUNNING 1sec op, avgLatency, latency, count, throughput
default.iscsi iSCSI_OPS RUNNING 1sec op, latency, count, throughput
default.network NETWORK_INTERFACE_UTIL RUNNING 1sec outBytes, networkInterface, inPackets, inBytes, outPackets
default.nfs NFS_OPS RUNNING 1sec op, latency, count, throughput
default.tcp TCP_STATS RUNNING 1sec congestionWindowSize, localPort, remotePort,
receiveWindowSize, inUnorderedBytes, sendWindowSize,
retransmittedBytes, outBytes, localAddress, roundTripTime,
inBytes, unacknowledgedBytes, remoteAddress
Resolution
You can also obtain some information from the CLI, using the Performance Analytics Tool API Reference.
In order to view this information, you must log in with a user that had Delphix Admin privileges.
Option 1: Running an Existing Analytic
-
Login as admin and run
analytics
.Copydlpx5120.dcenter > analytics
dlpx5120.dcenter analytics > list
NAME STATISTICTYPE STATE COLLECTIONINTERVAL COLLECTIONAXES
----------------------------------------------------------------------------------------------
default.cpu CPU_UTIL RUNNING 1sec idle, kernel, user
default.disk DISK_OPS RUNNING 1sec op, avgLatency, latency, count, throughput
default.iscsi iSCSI_OPS RUNNING 1sec op, latency, count, throughput
default.network NETWORK_INTERFACE_UTIL RUNNING 1sec outBytes, networkInterface, inPackets, inBytes, outPackets
default.nfs NFS_OPS RUNNING 1sec op, latency, count, throughput
default.tcp TCP_STATS RUNNING 1sec congestionWindowSize, localPort, remotePort,
receiveWindowSize, inUnorderedBytes, sendWindowSize,
retransmittedBytes, outBytes, localAddress, roundTripTime,
inBytes, unacknowledgedBytes, remoteAddress
Children
---------
statisticOperations
create -
To see the available properties for CPU analytics,
select
and list thedefault.cpu
.Copydlpx5120.dcenter analytics > select default.cpu
dlpx5120.dcenter analytics 'default.cpu' > ls
Properties
----------------------------
type: StatisticSlice
name: default.cpu
axisConstraints: (empty)
collectionAxes: idle, kernel, user
collectionInterval: 1sec
dataNode: DATA_NODE-1
reference: ANALYTICS_STATISTIC_SLICE-1
state: RUNNING
statisticType: CPU_UTIL
Operations
----------------------------
delete
getData
pause
rememberRange
resume
stopRememberingRange -
Specify
setopt trace=true
to seeCpuUtilDatapointStream
datapoints.Copydlpx5120.dcenter analytics 'default.cpu' > setopt trace=true
=== GET /resources/json/delphix/analytics/ANALYTICS_STATISTIC_SLICE-1 ===
====== RESPONSE ======
{
"type": "OKResult",
"status": "OK",
"result": {
"type": "StatisticSlice",
"reference": "ANALYTICS_STATISTIC_SLICE-1",
"namespace": null,
"name": "default.cpu",
"statisticType": "CPU_UTIL",
"collectionInterval": 1,
"state": "RUNNING",
"collectionAxes": [
"idle",
"kernel",
"user"
],
"axisConstraints": [],
"dataNode": "DATA_NODE-1"
},
"job": null,
"action": null
}
=== END === -
Enter
getData
andcommit
to obtain the data gathered.Copydlpx5120.dcenter analytics 'default.cpu' > getData
=== GET /resources/json/delphix/analytics/ANALYTICS_STATISTIC_SLICE-1 ===
====== RESPONSE ======
{
"type": "OKResult",
"status": "OK",
"result": {
"type": "StatisticSlice",
"reference": "ANALYTICS_STATISTIC_SLICE-1",
"namespace": null,
"name": "default.cpu",
"statisticType": "CPU_UTIL",
"collectionInterval": 1,
"state": "RUNNING",
"collectionAxes": [
"idle",
"kernel",
"user"
],
"axisConstraints": [],
"dataNode": "DATA_NODE-1"
},
"job": null,
"action": null
}
=== END ===
dlpx5120.dcenter analytics 'default.cpu' > getData *> commit
=== GET /resources/json/delphix/analytics/ANALYTICS_STATISTIC_SLICE-1/getData ===
====== RESPONSE ======
{
"type": "OKResult",
"status": "OK",
"result": {
"type": "DatapointSet",
"resolution": 1,
"datapointStreams": [
{
"type": "CpuUtilDatapointStream",
"datapoints": [
{
"type": "CpuUtilDatapoint",
"timestamp": "2016-12-06T13:53:30.000Z",
"idle": 1946,
"kernel": 33,
"user": 19,
"dtrace": null
},
{
"type": "CpuUtilDatapoint",
"timestamp": "2016-12-06T13:53:31.000Z",
"idle": 1966,
"kernel": 17,
"user": 14,
"dtrace": null
},
{
"type": "CpuUtilDatapoint",
"timestamp": "2016-12-06T13:53:32.000Z",
"idle": 1968,
"kernel": 17,
"user": 13,
"dtrace": null
},
{
"type": "CpuUtilDatapoint",
"timestamp": "2016-12-06T13:53:33.000Z",
"idle": 1963,
"kernel": 19,
"user": 17,
"dtrace": null
},
{
"type": "CpuUtilDatapoint",
"timestamp": "2016-12-06T13:53:34.000Z",
"idle": 1968,
"kernel": 16,
"user": 15,
"dtrace": null
},
...
{
"type": "CpuUtilDatapoint",
"timestamp": "2016-12-06T19:54:16.000Z",
"idle": 1922,
"kernel": 36,
"user": 41,
"dtrace": null
},
{
"type": "CpuUtilDatapoint",
"timestamp": "2016-12-06T19:54:17.000Z",
"idle": 1953,
"kernel": 26,
"user": 20,
"dtrace": null
}
],
"cpu": null
}
],
"overflow": false
},
"job": null,
"action": null
}
=== END ===
type: DatapointSet
datapointStreams:
0:
type: CpuUtilDatapointStream
datapoints: [ ... ]
overflow: false
resolution: 1 sec
Option 2: Creating a New Analytic
-
Log in as admin and then run
analytics
. -
Run
create
andlist
the properties.Copydlpx5120.dcenter analytics > create
dlpx5120.dcenter analytics create *> ls
Properties:
type: StatisticSlice
name: (required)
axisConstraints: (unset)
collectionAxes: (required)
collectionInterval: (unset)
dataNode: (unset)
statisticType: (required) -
Set the required Properties
name
,collectionAxes
andstatisticType
(if you are unsure you can run help for options) for=""> for options)>Copyset name=test.cpu
set collectionAxes=kernel
set statisticType=CPU_UTIL
dlpx5120.dcenter analytics create *> ls
Properties:
type: StatisticSlice
name: test.cpu
axisConstraints: (unset)
collectionAxes: kernel
collectionInterval: (unset)
dataNode: (unset)
statisticType: CPU_UTIL -
Commit
to being data collection.Copydlpx5120.dcenter analytics create *> commit
=== POST /resources/json/delphix/analytics ===
{
"type": "StatisticSlice",
"name": "test.cpu",
"collectionAxes": ["kernel"],
"statisticType": "CPU_UTIL"
}
=== RESPONSE ===
{
"type": "OKResult",
"status": "OK",
"result": "ANALYTICS_STATISTIC_SLICE-7",
"job": null,
"action": "ACTION-656"
}
=== END ===
ANALYTICS_STATISTIC_SLICE-7 -
Use
ls
to see the newtest.cpu
analytic.Copydlpx5120.dcenter analytics> ls
NAME STATISTICTYPE STATE COLLECTIONINTERVAL COLLECTIONAXES
---------------------------------------------------------------------------------------------------
default.cpu CPU_UTIL RUNNING 1sec idle,kernel,user
test.cpu CPU_UTIL RUNNING 1sec kernel
default.disk DISK_OPS RUNNING 1sec op,avgLatency,latency,count,throughput
default.iscsi iSCSI_OPS RUNNING 1sec op,latency,count,throughput
default.network NETWORK_INTERFACE_UTIL RUNNING 1sec outBytes,networkInterface,inPackets,inBytes,outPackets
default.nfs NFS_OPS RUNNING 1sec op,latency,count,throughput
default.tcp TCP_STATS RUNNING 1sec congestionWindowSize,localPort,remotePort,receiveWindowSize,
inUnorderedBytes,sendWindowSize,retransmittedBytes,outBytes,
localAddress,roundTripTime,inBytes,unacknowledgedBytes,remoteAddress -
Select
test.cpu
and usegetData
andcommit
to see the data gathered.Copydlpx5120.dcenter analytics> select test.cpu
dlpx5120.dcenter analytics 'test.cpu'> ls
dlpx5120.dcenter analytics 'test.cpu'> getData
dlpx5120.dcenter analytics 'test.cpu' getData *> commit -
Use
delete
to stop the collection and deletetest.cpu
.Copydlpx5120.dcenter analytics 'test.cpu'> delete
dlpx5120.dcenter analytics 'test.cpu' delete *> commit
=== POST /resources/json/delphix/analytics/ANALYTICS_STATISTIC_SLICE-7/delete ===
{}
=== RESPONSE ===
{
"type": "OKResult",
"status": "OK",
"result": "",
"job": null,
"action": "ACTION-657"
}
=== END ===
dlpx5120.dcenter analytics> ls
NAME STATISTICTYPE STATE COLLECTIONINTERVAL COLLECTIONAXES
--------------------------------------------------------------------------------
default.cpu CPU_UTIL RUNNING 1sec idle,kernel,user
default.disk DISK_OPS RUNNING 1sec op,avgLatency,latency,count,throughput
default.iscsi iSCSI_OPS RUNNING 1sec op,latency,count,throughput
default.network NETWORK_INTERFACE_UTIL RUNNING 1sec outBytes,networkInterface,inPackets,inBytes,outPackets
default.nfs NFS_OPS RUNNING 1sec op,latency,count,throughput
default.tcp TCP_STATS RUNNING 1sec congestionWindowSize,localPort,remotePort,receiveWindowSize,inUnorderedBytes,sendWindowSize,retransmittedBytes,outBytes,localAddress,roundTripTime,inBytes,unacknowledgedBytes,remoteAddress
Children
statistic
Operations
create
dlpx5120.dcenter analytics>