CellCLI Utilities

Those familiar with Exadata’s CellCLI command line interface often find themselves wondering what sorts of cell metrics are available, and if there’s an easy-to-use interface to gather this data without having to look in the manual every time.  I’m one of those guys, so I took some time and put some little shell scripts that might be able to help.
The Utilities
celldig.sh:   Provides a menu-driven interface for cellcli
cellstats.sh: Provides a command-line interface for cellcli
cellstats.txt: A list of all cell metrics available (see Version compatibility)
In short, all these utilities do it provide another way to get to cell server metrics.  There’s quite a bit of metric-related hard-coding in the scripts, and honestly I did this for a couple of reasons.  First, it gave me a chance to review them all again and see what was available.  But more honestly, it was out of laziness and lack of creativity.
You may be asking “Why an interface for an interface?”  It *does* sound a bit ridiculous, but give it a shot.
Requirements
– Needs to run on a server with access to dcli and the storage servers
– dcli trusted keys need to be configured.  See “dcli -k”
– cellscr.zip needs to be unzipped somewhere
– In celldig.sh and cellstats.sh, change the CDH variable at the top of the script to match where it was unzipped
– Edit cell_group and make all the cells relevant with respect to your Exadata environment
Version compatibility
These utilities were written using an Exadata platform with BP14, storage server version 11.2.2.4.2.111221.  The available metrics in the scripts are based on the metrics available in this version.
celldig.sh
Here’s what it looks like:
[[email protected] cellscr]$ ./celldig.sh
==> Current (C) or History (H)
C
==> Generate output files (Y|N)?
N
1. Cell metrics
2. Cell disk metrics
3. Flash cache metrics
4. Flash log metrics
5. Grid disk metrics
6. Host interconnect metrics
7. IORM category metrics
8. IORM consumer group metrics
9. IORM database metrics
10. Exit
Enter selection: 2
2
1. Number of megabytes read in large blocks from a cell disk
2. Number of megabytes read in large blocks per second from a cell disk
3. Number of megabytes read in small blocks from a cell disk
4. Number of megabytes read in small blocks per second from a cell disk
5. Number of megabytes written in large blocks to a cell disk
6. Number of megabytes written in large blocks per second to a cell disk
7. Number of megabytes written in small blocks to a cell disk
8. Number of megabytes written in small blocks per second to a cell disk
9. Number of IO errors on a cell disk
10. Number of IO errors on a cell disk per minute
11. Average I/O load for the cell disk
12. Number of requests to read large blocks from a cell disk
13. Number of requests to read large blocks per second from a cell disk
14. Number of requests to read small blocks from a cell disk
15. Number of requests to read small blocks per second from a cell disk
16. Number of requests to write large blocks to a cell disk
17. Number of requests to write large blocks per second to a cell disk
18. Number of requests to write small blocks to a cell disk
19. Number of requests to write small blocks per second to a cell disk
20. Average service time per request for small IO requests to a cell disk
21. Cumulative latency of reading large blocks from a cell disk
22. Average latency of reading large blocks per request to a cell disk
23. Cumulative latency of reading small blocks from a cell disk
24. Average latency of reading small blocks per request from a cell disk
25. Cumulative latency of writing large blocks to a cell disk
26. Average latency of writing large blocks per request to a cell disk
27. Cumulative latency of writing small blocks to a cell disk
28. Average latency of writing small blocks per request to a cell disk
29. Exit|Back|Main (e|b|m)
11
dcli -g ./cell_group cellcli -e list metriccurrent where name=CD_IO_LOAD
cm01cel01: CD_IO_LOAD CD_00_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_01_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_02_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_03_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_04_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_05_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_06_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_07_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_08_cm01cel01 1
<< output truncated >>
cellstats.sh
The cellstats.sh accepts either 0, 2, 3, 4, 5, or 7 arguments and provides an error if any of them are incorrect.  In this context, “incorrect” means:
– cellstats.sh was called with an inappropriate flag
– cellstats.sh was provided an invalid cell server name
– cellstats.sh was provided an invalid metric name
– cellstats.sh was provided invalid interval or number of iterations.  Read on …
cellstats.sh can be invoked as follows:
cellstats.sh [-c <cell>] [-m <Cell Metric>] [-i <time between intervals> <intervals>]
-c: Use this if you want to provide a single storage cell.  If omitted, it’ll run the cellcli command via dcli for all cells listed in “cell_group”.  Can be used alone or with any valid “-m” or “-i” combination, in any order
-m: Use this to query cell metrics based on a specific metric name. If the “-m” argument is omitted, cellstats.sh will enter into the menu similar to celldig.sh but will honor the “-c” and “-i” arguments, if supplied
-i: Use to repeatedly query current metrics for a specified interval and number of iterations. If not provided as a command line argument, cellstats.sh will run a single cellcli query
Examples:
$ cellstats.sh -c cm01cel01 -m CD_IO_LOAD -i 2 10
$ cellstats.sh -c cm01cel01
$ cellstats.sh -m CD_IO_LOAD
$ cellstats.sh -m CD_IO_LOAD -i 3 4
$ cellstats.sh -i 2 5
Here’s what it looks like in real life:
[[email protected] cellscr]$ ./cellstats.sh -c cm01cel01 -m CD_IO_LOAD -i 2 10
cm01cel01: CD_IO_LOAD CD_00_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_01_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_02_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_03_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_04_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_05_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_06_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_07_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_08_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_09_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_10_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_11_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_00_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_01_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_02_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_03_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_04_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_05_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_06_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_07_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_08_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_09_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_10_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_11_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_12_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_13_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_14_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_15_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_00_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_01_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_02_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_03_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_04_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_05_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_06_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_07_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_08_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_09_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_10_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_11_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_00_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_01_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_02_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_03_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_04_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_05_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_06_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_07_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_08_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_09_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_10_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_11_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_12_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_13_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_14_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_15_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_00_cm01cel01 9
cm01cel01: CD_IO_LOAD CD_01_cm01cel01 21
cm01cel01: CD_IO_LOAD CD_02_cm01cel01 13
cm01cel01: CD_IO_LOAD CD_03_cm01cel01 17
cm01cel01: CD_IO_LOAD CD_04_cm01cel01 13
cm01cel01: CD_IO_LOAD CD_05_cm01cel01 9
cm01cel01: CD_IO_LOAD CD_06_cm01cel01 30
cm01cel01: CD_IO_LOAD CD_07_cm01cel01 14
cm01cel01: CD_IO_LOAD CD_08_cm01cel01 10
cm01cel01: CD_IO_LOAD CD_09_cm01cel01 19
cm01cel01: CD_IO_LOAD CD_10_cm01cel01 9
cm01cel01: CD_IO_LOAD CD_11_cm01cel01 10
cm01cel01: CD_IO_LOAD FD_00_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_01_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_02_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_03_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_04_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_05_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_06_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_07_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_08_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_09_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_10_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_11_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_12_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_13_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_14_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_15_cm01cel01 1
cm01cel01: CD_IO_LOAD CD_00_cm01cel01 9
cm01cel01: CD_IO_LOAD CD_01_cm01cel01 21
cm01cel01: CD_IO_LOAD CD_02_cm01cel01 13
cm01cel01: CD_IO_LOAD CD_03_cm01cel01 17
cm01cel01: CD_IO_LOAD CD_04_cm01cel01 13
cm01cel01: CD_IO_LOAD CD_05_cm01cel01 9
cm01cel01: CD_IO_LOAD CD_06_cm01cel01 30
cm01cel01: CD_IO_LOAD CD_07_cm01cel01 14
cm01cel01: CD_IO_LOAD CD_08_cm01cel01 10
cm01cel01: CD_IO_LOAD CD_09_cm01cel01 19
cm01cel01: CD_IO_LOAD CD_10_cm01cel01 9
cm01cel01: CD_IO_LOAD CD_11_cm01cel01 10
cm01cel01: CD_IO_LOAD FD_00_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_01_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_02_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_03_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_04_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_05_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_06_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_07_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_08_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_09_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_10_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_11_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_12_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_13_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_14_cm01cel01 1
cm01cel01: CD_IO_LOAD FD_15_cm01cel01 1
Download