/* this presupposes that you have modified ASUMCACH from version*/ /* 15.04 or greater to include the raid volume (RAIDVOL), raid */ /* raid group (RANK), and device name (RAIDBOX) based on the */ /* knowledge you have of the configuration of your particular */ /* EMC installation. I used a format. */ proc format; value iorate 0='NO IO ' 1-5='1-5 ' 6-10= '6-10 ' 11-15= '11-15 ' 16-20= '16-20 ' 21-50= '21-50 ' 51-high='GT 50 '; value response 0 ='NO IO ' 1-10='LE 10 ' 11-20='11-20' 21-30='21-30' 31-40='31-40' 41-50='41-50' 51-100='51-100' 101-high='GT 100'; value cachehit 0='NO IO ' 1-30='LT 30%' 31-40='LT 40%' 41-50='LT 50%' 51-60='LT 60%' 61-70='LT 70%' 71-80='LT 80%' 81-90='LT 90%' 91-high='GT 90%'; options nobyline; DATA GRIDRVOL (KEEP=RAIDVOL SEGMENT X Y); x=0;y=900; DO RAIDVOL=0 TO 95 BY 1; IF MOD(RAIDVOL,8) = 0 THEN X=0; Y=900-(FLOOR((RAIDVOL)/8)*75-75); output; y=Y-75;output; x=x+200;output; y=y+75;output; end; proc sort out=label;by RAIDVOL x y; data label; set label; by RAIDVOL; if first.RAIDVOL; length raidbox $ 10; length function style color $ 8 position $ 1 text $ 14; retain function 'label' xsys ysys '2' hsys '3' when 'A' size 1.5; x=x+10; y=y+90; color='yellow'; style='swissb'; position='9'; RAIDBOX='EMC 1';output; RAIDBOX='EMC 2';output; RAIDBOX='EMC 3';output; proc sort;by RAIDBOX RAIDVOL; PROC SORT DATA=PDB.emcmap out=raidboxs;by RAIDBOX raidvol; data labels; merge RAIDBOXs label; BY RAIDBOX RAIDVOL; length string $ 14; if volser=:'PARITY' then STRING=volser!!'-'!!left(put(rank,z2.0)); else STRING=volser!!'-'!!left(put(rank,z2.0))!!'-'!!put(address,hex4.); TEXT=left(string); *f not first.raidvol AND NOT FIRST.RAIDBOX THen y=y-15; *IF IORATE LE 0 THEN COLOR='BLACK'; color='GRAY'; if text=:'EM' then color='ORANGE'; if text=:'PARITY' then color='violet'; proc sort;by raidbox startime raidvol rank; data labels; set labels; by raidbox startime raidvol; retain holdy; if first.raidvol then holdy=y; if not first.raidvol and not first.startime THen holdy=holdy-15; y=holdy; proC SORT;BY RAIDBOX startime RAIDVOL; options nobyline; data raidio; SET PDB.RAIDVOL (KEEP=RAIDBOX STARTIME RAIDVOL AVGRSPMS IORATE FWRATIO READHR); if iorate le 0 then delete; if avgrspms=. then avgrspms=0; if fwratio=. then fwratio=0; if readhr=. then readhr=0; if readhr lt 1 then readhr=100*readhr; else readhr=100; if fwratio lt 1 then fwratio=100*fwratio; else fwratio=100; if iorate=0 then delete; PROC SORT;BY RAIDBOX STARTIME RAIDVOL; proc datasets ddname=work mt=cat;delete gseg; proc gmap map=gridrvol data=raidio all; by RAIDBOX startime; *where raidbox=:'EMC 2'; ID RAIDVOL; choro iorate/cempty=gray coutline=gray missing midpoints=5 10 15 20 25 50 annotate=labels; *HORO AVGRSPMS/CEMPTY=GRAY COUTLINE=GRAY MISSING MIDPOINTS=10 20 30 40 50 100 ANNOTATE=LABELS; *HORO READHR/CEMPTY=GRAY COUTLINE=GRAY MISSING MIDPOINTS=90 80 70 60 50 40 ANNOTATE=LABELS; *HORO FWRATIO/CEMPTY=GRAY COUTLINE=GRAY MISSING MIDPOINTS=90 80 70 60 50 40 ANNOTATE=LABELS; pattern1 v=msolid c=green; pattern2 v=msolid c=lime; pattern3 v=msolid c=cyan ; pattern4 v=msolid c=lipk; pattern5 v=msolid c=orange; pattern6 v=msolid c=red; title1 'Your Company Name Here'; TITLE2 'CONTROL UNIT #BYVAL1 IO STATISTICS FOR #BYVAL2 BY RAID VOLUME'; label iorate='IO/Second' readhr='% Read Hit' fwratio='% Write Hit' avgrspms='Response'; format iorate avgrspms readhr fwratio 4.; run;