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 [+] 

03/31/18 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

Comments

06/18/18 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

06/13/18 02:02 PM

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


#ApptioforAll

06/13/18 02:01 PM

Most def!! 


#ApptioforAll

06/13/18 12:08 PM

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


#ApptioforAll

06/13/18 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

05/10/18 08:20 AM

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


#ApptioforAll

05/10/18 05:19 AM

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


#ApptioforAll

04/30/18 07:36 PM

Way to go Goga


#ApptioforAll

04/30/18 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

04/24/18 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

04/24/18 11:54 AM

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


#ApptioforAll

04/24/18 10:36 AM

Yay, my first wedge :-)


#ApptioforAll

04/24/18 08:46 AM

They are all set!


#ApptioforAll

04/24/18 04:43 AM

Thanks Rhonda! 


#ApptioforAll

04/24/18 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

04/24/18 02:34 AM

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

Thank you @Rhonda Keller...


#ApptioforAll

04/23/18 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

04/23/18 08:58 AM

Yay! Looking forward to getting my first wedge!


#ApptioforAll

04/23/18 08:51 AM

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


#ApptioforAll

04/23/18 08:50 AM

Next time, Julie :-) 


#ApptioforAll

04/23/18 04:18 AM

Darn it I missed this one


#ApptioforAll

04/22/18 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
Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads