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:

Copy
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

  1. Login as admin and run analytics.

    Copy
    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
    Children
    ---------
    statisticOperations
    create
  2. To see the available properties for CPU analytics, select and list the default.cpu.

    Copy
    dlpx5120.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
  3. Specify setopt trace=true to see CpuUtilDatapointStream datapoints.

    Copy
    dlpx5120.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 ===
  4. Enter getData and commit to obtain the data gathered.

    Copy
    dlpx5120.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

  1. Log in as admin and then run analytics.

  2. Run create and list the properties.

    Copy
    dlpx5120.dcenter analytics > create

    dlpx5120.dcenter analytics create *> ls

    Properties:
        type:               StatisticSlice
        name:               (required)
        axisConstraints:    (unset)
        collectionAxes:     (required)
        collectionInterval: (unset)
        dataNode:          (unset)
        statisticType:      (required)
  3. Set the required Properties name, collectionAxes and statisticType (if you are unsure you can run help for options) for=""> for options)>

    Copy
    set 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
  4. Commit to being data collection.

    Copy
    dlpx5120.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
  5. Use ls to see the new test.cpu analytic.

    Copy
    dlpx5120.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
  6. Select test.cpu and use getData and commit to see the data gathered.

    Copy
    dlpx5120.dcenter analytics> select test.cpu
    dlpx5120.dcenter analytics 'test.cpu'> ls
    dlpx5120.dcenter analytics 'test.cpu'> getData
    dlpx5120.dcenter analytics 'test.cpu' getData *> commit
  7. Use delete to stop the collection and delete test.cpu.

    Copy
    dlpx5120.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>