Apptio for All

Apptio for All

A place for Apptio product users to learn, connect, share and grow together.

 View Only

Challenge 2: Detect most recent server location and status [+] 

Sat March 31, 2018 03:59 PM

 

Challenges are designed to help sharpen your TBM and Apptio skills. See title for rating: [+] Easy   [++] Moderate   [+++] Challenging

 

Chris is back with another TBM Pursuit question for you. You can start playing now and get a piece of the pie, or if you passed the first round, earn your second piece. 30pts and a TBM Pursuit piece for anyone with the correct answer. Give it a shot  

Question closes April 20.

 

 

@Chris Davidson says...

 

Each month, I use Datalink to pull server status logs directly from my configuration management database (CMDB) into my cost transparency project in Apptio (R12).

 

These data pulls are fully automated, and I cannot reroute them to my own computer. Thus, any changes needed have to be made within Apptio, not in an external application (such as Excel).

 

The server logs are hundreds of thousands of lines long. Here's a sample from my Apptio table called Server Logs:

 

No timestamp column is available, but my CMDB team told me that the logs are already in chronological order (from earliest to most recent). Notice that server IP addresses repeat in the logs, reflecting their change in status (offline vs. online) and change in location (UNK = unknown).

 

In Apptio, my Servers object is already backed by a list of all valid servers and their respective IP addresses.

The list has a few thousand entries, and no Server ID values are duplicated. Quick sample:

 

See those Latest Status and Latest Location columns above?

That's where I need your help.

Given the sample server logs seen earlier, I want my Servers object table results to look exactly like this mockup:

...because for instance 96.49.8.6 has two entries in the logs, but its last found entry is online / Las Vegas.

 

 

Is this possible within Apptio? If so, what should the Latest Status and Latest Location column formulas be?





#ApptioforAll

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Comments

Mon June 18, 2018 05:34 PM

And I would have used the Row() function to add a row count and use unique row filter to pick the larges.  Good information!


#ApptioforAll

Wed June 13, 2018 02:02 PM

That's what I thought as well - ugh - maybe we'll get this one!


#ApptioforAll

Wed June 13, 2018 02:01 PM

Most def!! 


#ApptioforAll

Wed June 13, 2018 12:08 PM

I absolutely love this @Chris Davidson and @Rhonda Keller!! <3 <3


#ApptioforAll

Wed June 13, 2018 12:06 PM

@Jenny Franklinand @Julie Batty, challenge #3 is still open...click here. Let's see if we can all go for a win! Good luck! hi5


#ApptioforAll

Thu May 10, 2018 08:20 AM

I'll be watching for you @Andres SANTIN. Next challenge is in June :-) 


#ApptioforAll

Thu May 10, 2018 05:19 AM

Late Apptio addition, have not been able to participate but hopefully will join for Challenge 3!


#ApptioforAll

Mon April 30, 2018 07:36 PM

Way to go Goga


#ApptioforAll

Mon April 30, 2018 01:09 PM

Agreed. Not seeing my name on the winners list here was.....sigh.

In my brain  - "How did I NOT KNOW THIS?!? Must. Learn. Everything."


#ApptioforAll

Tue April 24, 2018 11:56 AM

These are so awesome, @Chris Davidson, thank you for doing these - a most excellent learning experience!!  Bookmarking this one and look forward to the next one!! 


#ApptioforAll

Tue April 24, 2018 11:54 AM

You and me both, girl!   But on the bright side, we learned something!


#ApptioforAll

Tue April 24, 2018 10:36 AM

Yay, my first wedge :-)


#ApptioforAll

Tue April 24, 2018 08:46 AM

They are all set!


#ApptioforAll

Tue April 24, 2018 04:43 AM

Thanks Rhonda! 


#ApptioforAll

Tue April 24, 2018 02:38 AM

Thank you @Chris Davidson .. it was so inspiring to think , understand and attempt the challenge.. eager to attempt the next one.


#ApptioforAll

Tue April 24, 2018 02:34 AM

Yayyyyy... I got the piece of pie...   .. i need some more of it..

Thank you @Rhonda Keller...


#ApptioforAll

Mon April 23, 2018 06:33 PM

OK @Oliver Smith, @Goga Moore, @Jill Ferguson, @Kalyani Patra first wedges awarded. Nice work

 

We have two people @Steven Young and @Suresh Sawlani who are actually on their second wedge. @Lauren Pagan can you help me create a badge for 2 wedges? I'll send you the graphic. 


#ApptioforAll

Mon April 23, 2018 08:58 AM

Yay! Looking forward to getting my first wedge!


#ApptioforAll

Mon April 23, 2018 08:51 AM

Congrats to the winners, I'll get your badge loaded today!


#ApptioforAll

Mon April 23, 2018 08:50 AM

Next time, Julie :-) 


#ApptioforAll

Mon April 23, 2018 04:18 AM

Darn it I missed this one


#ApptioforAll

Sun April 22, 2018 11:25 AM

Congratulations to 6 of you who submitted a correct answer:

Oliver Smith
Gordana Moore
Jillian Ferguson
Steven Young
Suresh Sawlani
Kalyani Kumari Patra

 

Most formula functions pay no attention to table row order: The order of rows in a table (i.e., the order matching the original raw data upload) has no effect on these functions.

 

But two functions do care about row order: TableMatch() and IPLookup().

 

A TableMatch() rules table executes its rows in order. It's a way of highly condensing a collection of If() commands with AND and OR logic into an easier-to-read format. In certain circumstances (rows with at least one non-blank matching criterion), TableMatch() will stop its search and return the first valid match detected, instead of continuing through the rules table and returning the last valid match.

 

IPLookup() is similar, but it returns the last valid match it finds, which works well for scanning server logs in search of "most recent" attributes such as status and location. Keep in mind that the original raw data upload row order matters. In this case, my CMDB team assured me the server logs are already in chronological order (from earliest to most recent).

 

Solution:

Latest Status =IPLookup(IP Address, Server Logs, IP Address, Status, "Unknown")

Latest Location =IPLookup(IP Address, Server Logs, IP Address, Location, "Unknown")

 

If needed, IPLookup() can also search using IP address subnet masks (such as 99.1.0.0 to find 99.1.*.*) or IP address ranges (such as 99.1-99.6).


#ApptioforAll