Recently I was asked to help a customer get up to speed with APM 10.5 and some of its new features and capabilities including dashboards. As you could imagine there is a bit of a learning curve for the customer coming from APM 9.x. One of the key requirements from the customer was to create dashboards quickly so they could give APM access to a number of their app and support teams as part of their on-boarding strategy. They primarily had three categories (or roles) of consumers for their dashboards, as described below, along with what the main concerns are for the users in each of the roles
- Executive: “How is my revenue impacting services doing and If End Users Experience is good”
- Support: “Are Systems, Apps and Data centers that am responsible for healthy and if not what’s the root cause and who to triage to ”
- App Dev: “Are any of my recent changes to servlets, EJB’s and DB’s causing any negative impact and if yes how and what’s the root cause”
Apart from role based dashboard another ask was the ability for a user to view his or her own data and nothing else. So in a nutshell the use case was something like “my organization has 50 users responsible for 10 different critical apps with roles ranging from Exec to Support to AppDev, who would need access to APM dashboards that only shows data that they are responsible for based on their role”. Now these are nothing unusual and many of our customers have similar requirements. In this case we were challenged with how quickly and easily we could fulfill this with APM 10
The Traditional Way
Now this would have been a daunting task creating dashboards the traditional way. One would be creating multiple dashboards for each app and for each role. So in this case it would be 10 different dashboards times 3 different roles – working on each one of them manually using various widgets etc. And then we have management module with metric grouping and alerting etc for those dashboards with its own set if regex’s etc that I am not even going to go into. This is not only laborious but is also very very error prone. Worst of all if a new app comes by or there is a change in existing app then we will have to repeat the entire steps. It’s an administrative nightmare to maintain all these.
APM 10 Way
Come APM 10 – it completely redefines the way dashboards are created and used. Among many features and functionalities - APM 10 introduced the concept of Perspective, Attributes and Universes that together make dashboard creation a piece of cake. Before we get into the details let’s quickly recap what Attributes, Perspectives and Universes are
- Attributes: Are meta data associated with the Team Center elements like vertices and edges that give more information about that element. Attributes show up on the right hand side of Team Center when you select a vertex or an edge. E.g. Location, Owner etc
- Perspectives: It’s the ability to set views by grouping attributes. E.g AWS perspective based on grouping of attributes like Region, Apps and EC2ImageID. Allows the user to create a Team Center view that reflect their mental map of the layout.
- Universes: Allows the user to define ACL based on user info and attribute data. For e.g. you can select all the Team Center elements based on certain application (Attribute here is application) and assign only the users who are responsible for those apps
Now that we understand some of these concepts let’s see how APM 10 makes dashboard creation easy, going back to our customer use case – We started off with 1 perspective for each of our roles i.e.Executive Perspective, Support Perspective and AppDev Perspective. Each of these perspectives were grouped by following attributes
- Executive Perspective: BT, Application
- Support Perspective: Location, Application, Hostname
- AppDev Perspective: Application, Type (component)
These perspectives definitions were determined by the customer based on what’s important to a particular role. Yours could be different. These perspectives formed our Templates. In APM 10 this is as simple as creating 3 new perspectives with relevant attributes from the perspective drop down. It took the customer less than a minute or two to create these templates (for the purposes of this blog we will be using template and perspective interchangeably).
Once the templates were done the next task was to populate them with relevant data and associate users to those templates. For that we leveraged APM 10’s Universes, customer created new Universes based on data access requirement. So in this case we defined Universes based on the application. Once the Universes were defined the customer associated the data to each template relevant to that Universe based on attributes and filters. For e.g. App A Universe will have only data from App A by setting the filter “Application equal to App A”. Once this was done the last thing to do was to associated appropriate users to those Universes so that a user who is responsible for say App A, when logged in, would only see data related to App A. This was done in the settings tab by associating users to the Universe. Once we had one template completely nailed customer went on to create couple of other Universes based on other apps. This automatically took care of populating relevant data based on the access control defined in those Universes. That’s pretty much it.
Once this was done we requested couple of our users with different roles to login to make sure things were working as expected. Once they confirmed we were pretty much done. All in all we were able to complete defining dashboards within an hour or two hours and we had dashboards that could be now used any number of users with all those roles. Also, now anytime a new app came in that required a dashboard, all we needed to do was define a Universe and associate team center data and relevant users and all our templates would get automatically populated. If a new view (template/perspective) was required it would take few minutes to come up with one and it would automatically show up with relevant data.
The old way of doing dashboards which pretty much every APM vendor follows is cumbersome, error prone and time consuming. Its hard to maintain and requires constant tweaks. With APM 10 and dynamic dashboards in just matter of minutes one could create templates and populate them with data that is relevant to the user, making it effortless, clean and easy to maintain.
With APM 10’s dynamic dashboard all the alerts are automatically propagated to the relevant dashboard tiles and details of each tiles are readily available on selecting the tile. The drill down capability allows for a quick root cause analysis right from the dashboard view itself without going to another place.