cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post
Level 9

Dynamic Orion Maps

Jump to solution

Hello all,

I have a question that I'm having difficulty in coming up with a solution. I'm hoping others might have experienced the same situation and can share their experiences or ideas.

First a little background. I use SAM as an MSP. Meaning, I offer my customers a monitoring service that is provided from my SAM instance. The portion I'm having a little difficulty on is creating a dashboard for each of my customers. They are segmented by custom properties and account limitations. I really like the idea of providing them with their own Orion Map of their environment. This can be either based on total environment or focused on per application.

I started trying out ADM for the dynamically generated maps, but I had to quickly disable it as it was causing significant performance issues. The guidelines on that (as far as I'm aware) is that ADM really should be limited to 500 node to node dependencies and 200 app to app or app to node dependencies. I quickly surpassed that so I had to disable ADM globally.

I then started to create each customer their own view with their own specific Orion map on the main view. I quickly found out that this idea is very time consuming and a challenge to manage as the SAM environment grows over time.

I've now circled back to trying to create a single "customer" view and have all the widgets and data displayed be dynamic based on their account limitation. This is somewhat successful, but as you can imagine, it's pretty limiting on what I can display. I can't use custom queries because those are all static and I can't pass them variables. I can use the custom table widget as that does allow this.

I've seen some improvements in the latest 4.2019 RC regarding maps, but I still don't think it would help my situation, hence this post and question.

Is there anyway (or any plans in the roadmap for Orion) to be able to create a single Orion Map that contains dynamic objects? Ideally, I would like to create a single map on my single customer view, that will update dynamically based on what objects have a certain custom property (customername).

Can anyone think of a way to achieve this?

Thanks for taking a look and giving this some thought. I greatly appreciate it.

0 Kudos
1 Solution

This was pretty much the main topic of my SWUG presentation in NYC a few months ago, so I uploaded some sample code to github for that

The first script takes a set of node and SAM application custom properties called applications and applicationsrole and builds a tree of groups for every application that currently exists and their child roles.

MyPublicWork/AppAndAppRoleGroupBuilder.ps1 at master · Mesverrum/MyPublicWork · GitHub

The second script rolls through those same properties and groups and makes sure there is a dashboard built for each application then creates and applies view limitations for them all.

MyPublicWork/CloneApplicationViews.ps1 at master · Mesverrum/MyPublicWork · GitHub

My personal variations on these include a bunch of additional things like error logging when it runs on a schedule and automatically deleting groups where the property they keyed into has changed so they don't need to exist anymore and other housekeeping stuff as well.  Really it's just a lot of "get me a list of these things, loop through them and create the matching stuff."

I'm rewriting the whole deal to make it more flexible with functions and such but that's still a work in progress.  If you want to get deep into the API stuff, we have several people on our team who are strong in them.

-Marc Netterfield

    Loop1 Systems: SolarWinds Training and Professional Services

- Marc Netterfield, Github

View solution in original post

4 Replies
Product Manager
Product Manager

This is certainly an interesting topic to discuss.  I am curious, if you were to leverage Groups, a dynamic map is created for you in the tab's/ sub-views and kept up to date based on that group membership. Does this work for you? I am curious why or why not... 

0 Kudos

In an MSP situation id be seriously looking at the SDK as a way to turn repetitive and time consuming tasks into scripts that run automatically.   With most of my clients I set them up so that they build a base dashboard template, then the script iterates through all the unique values of custom property and creates a clone of that template view and automatically filters it for each copy.   That gives you a simple easy to deliver baseline dashboard view but also maintains the ability to manually edit views per clients request without it breaking everyone else's experience.

The mapping tool is not "there" yet for your use case and I suspect that it would never really be perfect for what you want.

- Marc Netterfield, Github

Thanks mesverrum​ for the reply. I was thinking that was the route I was eventually going to have to take. Do you have any examples that you would be willing to share to get me started? It would save me time from having to re-invent the wheel if you're willing.

0 Kudos

This was pretty much the main topic of my SWUG presentation in NYC a few months ago, so I uploaded some sample code to github for that

The first script takes a set of node and SAM application custom properties called applications and applicationsrole and builds a tree of groups for every application that currently exists and their child roles.

MyPublicWork/AppAndAppRoleGroupBuilder.ps1 at master · Mesverrum/MyPublicWork · GitHub

The second script rolls through those same properties and groups and makes sure there is a dashboard built for each application then creates and applies view limitations for them all.

MyPublicWork/CloneApplicationViews.ps1 at master · Mesverrum/MyPublicWork · GitHub

My personal variations on these include a bunch of additional things like error logging when it runs on a schedule and automatically deleting groups where the property they keyed into has changed so they don't need to exist anymore and other housekeeping stuff as well.  Really it's just a lot of "get me a list of these things, loop through them and create the matching stuff."

I'm rewriting the whole deal to make it more flexible with functions and such but that's still a work in progress.  If you want to get deep into the API stuff, we have several people on our team who are strong in them.

-Marc Netterfield

    Loop1 Systems: SolarWinds Training and Professional Services

- Marc Netterfield, Github

View solution in original post