Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Generated by Jive on 2019-05-31-07:001
Everything is Connected: Making ComplexExpansions Simple
There is a tab in ViPR SRM that strikes fear in the hearts of the hearts of ITpeople. They’ve learned to build tables and graphs that show what they want. Maybe they’ve even gotten fancy and build some nested interactive reports. But when building an expansion, they avoid even looking at the ‘Complex’ tab. Itemits a low rumble, and their dreams are salted with dark images of what mightlie within.
If that’s you, it’s time to face your fears. It may turn out that dire wolf is reallyjust a corgi in a funny hat.
But What IS an Expansion, Really?
To help explain, let’s consult this accurate scale drawing of your ViPR SRMdatabase.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:002
What are those dots? They’re time series metrics, of course. Let’s look at onemore closely.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:003
What if we were to build a report to select some of these? Suppose we build a filter like this:
devtype==’Datastore’
After applying that filter to the database, you might get something like this.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:004
If you followed along when we talked about Simple Expansions, you know that ifI just dump these into a table with columns like property==’device’, property==’name’,value=’*’, I’ll end up with one metric per table row which is (usually) not what Iwant.
More often I might want (for instance) one datastore per row. If that were thecase, I’d build a child node and add a simple expansion for device.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:005
As you can see, all the metrics for a given Datastore (aka device) are now groupedtogether, and can be placed properly per row. The column definitions might look likeproperty==’device’, value==’IOPS’, value==’Capacity’.
At this point we’ve essentially got a color-blindness test that describes SimpleExpansions. What about that Complex Expansion tab?
Suppose I want to columns to the table which have the array LUN associated with thedatastore along with some vital stats about that LUN.
The rough steps involved are:
• Build a child to the existing node with the simple expansion• Set a Filter on that child for parttype==’LUN’• Set the node to use the filter for Selection Only• Build a complex expansion which
• Matches the key common to both LUNs and Datastores (the WWN, which is stored in a propertycalled partsn)
• Removes previous filters which would prevent us from seeing those LUNs
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:006
What does that mean in our colorblindness test / time-series metric petri dish?
Because the properties we want to display from the LUN are two levels downfrom the table, we’ll need to use a Nop to pass the property up. Remember, thescope of any piece of data is always the node where the data comes from andthe parent of that node.
Enough with the optometry charts – let’s build one of these!
First, let’s build a basic table of Datstores to make sure things are working. Faithful readers already know about Simple Expansions, Auto-Scaling of Units,and Time Management, so let’s build it in one crazy graphic. I recommendhumming Yakety Sax to yourself while going through these steps.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:007
Which ends up looking like:
Now, we’re going to build a second child node for connecting the Datastore tothe LUN. On this node we’ll set the Filter to look only for LUNs and set it to applyto Selection Only (rather than Expansion Only).
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:008
From there, we’ll add an expansion to the node and choose the DreadedComplex Tab. This is actually quite straightforward. We’re going to use the ‘Joinproperties having a different name’, which would more properly be called ‘Joinproperties by name’ because we’re going to join using properties of the samename.
The common property we’ll use is partsn, which is the WWN of the volume. InStep 2 this is the name of the property on the earlier expansion. In Step 3, thisis the property on the selection, to which you’ll recall we’ve applied a filter forparttype==’LUN’.
The other thing we’re going to do here is perform a Level Up. This removes theconstraints of previous filters. Since our previous filter for devtype==’Datastore’would have excluded any LUNs, this is required to get the selection we desire.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:009
That should connect our Datasets properly, but now of course we have anotherproblem: we want to display the second dataset on a table two nodes up, whichis out of variable scope. That means we’ll need to use Formulas to pass the dataup the chain. We’ll explore how to pass up and display three different types ofdata:
• Properties• Metrics• Formula Results
For the first two of these we’ll use the Nop function. In the Formulas tab, createa Nop formula. To pass a property, we need to attach it to an Empty Parameter. Let’s do this for the device and part properties.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:0010
On the next node up, you’ll also need to create Nops for each property. Theseone will pass up the prior Formula results, rather than Empty Parameters.
Once the data has been passed up to the parent node with the table, you candisplay it. You’ll display a Property like you normally would, but will point to aproperty on the Formula Result.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:0011
After doing this for both properties, you should have a report that looks something like this:
Wouldn’t it be great if we could also show a metric from the VMAX LUN? Let’sadd in UsedCapacity. This will also come from a Nop on the child which selectedthe LUNs. However, the Nop will Filter on this Node to attach a particular metric. Again, you’ll need to create a Nop of the Formula Result on the middle node aswell.
When you create the column, this will be a Value which points to a Formula Result.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:0012
Now your report will include the Used Capacity as collected at the Array.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:0013
Finally, wouldn’t it be nice to include some information about the average IOPSseen on this datastore by the Array? If you use your Search Ninja skills to look atwhat metrics available, you’ll see there’s not a metric for IOPS, meaning you’llneed to add up ReadRequests and WriteRequests.
Rather than using a Nop on the second child node, this time we’ll use aSum.Spatial.
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:0014
We’ll sum a set of Combined Parameters and place it into a result called IOPS. Onthe middle node, we’ll still need to add IOPS into a Nop to make it available tothe top level table. Once that’s done, you can add it directly as a value column.
Look at the awesome results – we’ve now got a report that connects two distinctdata sets in a meaningful way and shows static properties, time-series metrics,and formula results from those data sets. Ain’t that cool?
Everything is Connected: Making Complex Expansions Simple
Generated by Jive on 2019-05-31-07:0015
This content originally appeared on Eastside Geek.