Quantcast
Channel: THWACK: All Content - Network Performance Monitor
Viewing all 21870 articles
Browse latest View live

Orion Reports - Something Other Than Excel 2003 Format

$
0
0

I don't see any option to save scheduled reports from Orion in any format other than Excel 2003 (XLS). I know CSV and PDF are options, but they are not feasible.

 

Is there a way to save in a not-so-antiquated Excel format (XLSX)? If not, might there be a feature request out there that I can add on to?


Microsoft System Center Service Manager tickets

$
0
0

Has anyone successfully integrated NPM alerts to auto generate a ticket in Service Manager when a node goes down then auto-close the same ticket when the same node comes back up?

 

This was working prior to migrating over to a new server, where tickets would auto-close, but now they are not.

 

The actions being triggered are sending an email to our ticketing system that a node went down, and the reset action when the node comes back up is to write to the Windows Event log, noting the time the node went down and came back up.

 

Is anoyone else using Service Manager (SCSM) for their NPM alerts?

 

Any help is appreciated. Thanks

How to check SNMP polling in bulk...?

$
0
0

I would like to know how can we check devices have an established connection to my solarwinds monitoring server via SNMP. I have around 300+ new network devices to be configured monitoring. I need to verify SNMP polling of each and every device. I tried the pollercheckertool.exe that comes with NPM by default. But I'm unable to add new devices in it's list. Is there a way I can utilize that tool to check polling or else is there any other recommended method to do the same....?

Google Maps in Orion NPM - How to Video

$
0
0

I've made some changes to the original Google Maps that I introduced about this time last year. This version provides a status icon on the map for each unique latitude and longitude value in the database. I'm leaving the old one up as it is better for environments where a large number of sites exist, and would simply be too cluttered with a status icon at each site.

 

Prerequisites:

1) Obtain Google API Key for Maps v3

2) Create and populate Custom Properties:

  • Country
  • City
  • Latitude
  • Longitude

 

Installation:

Copy files to the c:\inetpub\SolarWinds\Orion\GoogleMap\

Update your connection string and API key

Create a view in NPM using the Custom HTML resource, configure iFrame

 

See the movie (how to install the mod):

2013-07-25_10-43-25 - YouTube

 

Read the book (asp files, readme, notes on GitHub):

https://gist.github.com/BarefootAtomic/a396a12541ff97a2ce1f

 

map.png

 

 

Enjoy!

 

Andrew LaGrone, SCP#1368

What process shall I use to install a new certificate for SolarWinds NPM web access?

$
0
0

My company no longer accepts using the SolarWinds self-signed certificate to access web pages.

 

What process must be used to install a new certificate?

 

What style/type of certificate is required?  (e.g.:  X.509 certificates in .PEM format, or *.cer *.p7b or *.pfx). 

 

What method does one follow to create a CSR, from which our CA can sign it without knowing the private key?

 

I found a thread with some cumbersome instructions here:  Change SolarWinds Information Services SSL Certificate     Surely there's a more graceful and simple method, isn't there?

 

Yours, wishing the swiftest packets for you & your friends,

 

 

 

 

Rick Schroeder

Can i install Netpath Probe on a Cisco Router?

$
0
0

Hi,

 

Is it possible to install netpath probe on a cisco device ( router/switch) and use that a source of sending probes to specific destinations?

 

 

Regards

Raja

Alerting if Alert Fires Off X Times in X Days

$
0
0

Hello,

 

Is there a way to create an alert that will fire off if an alert (i.e. high transmit percent utilization) fires off more than a certain amount of times in a week span? We already get alerting on utilization, but I cannot figure a way to get an additional alert if the same node fires off the utilization alert more than say 10 times in a week? We would like to have this for visibility and to be more proactive on circuit upgrades.

 

Thanks,

 

Jonathan

Are your Orion server and SQL database server in the same Active Directory domain?


Worldwide Map scale- and flexibility

$
0
0

Both for our customers and our Support department it's very important to have a map, to be able to see the state of our network in one glance in a certain area. Say for example a sea-cable broke near Italy: one look at Italy on the map will show what sites are affected, regardless of whether they're grouped by supplier or whatever.

 

As far as I am aware, there are only two mapping tools for this purpose available in the NPM:

- Network Atlas

- Worldwide Map

 

Again as far as I'm aware, there is no way to automate the placement of nodes on the Network Atlas, since all documentation goes through the Network Atlas software tool. This makes this undesirable to use because our network is fairly large and new sites are added or cancelled on a daily basis, making it a real chore to keep this map up to date.

In the Worldwide Map this is, thankfully, possible and pretty easy. I have written a script that transfers(copies) nodes from our previous NMS to Solarwinds' and automatically pushes the node's geolocation (from custom properties) to the Worldwide Map. This was working wonderfully, until at some point the web interface just stopped working. The script kept running happily. It was just the web interface that become non-interactive. After some time I figured out that it was just the pages with a Worldwide map on it and that the Worldwide Map simply can't handle more than a 1000 nodes at one time (where is this even documented?).

 

Sidenode: 80% of our monitoring is ICMP only, so being able to sync custom properties with the Worldwide Map automatically would be grand.

 

Question 1:

Is there anything that I have overlooked that can provide such a worldwide map as we need it, for our 5000+ nodes and growing network, that doesn't require manual input? Our previous NMS (PRTG) had no issues with this whatsoever.

 

Once I found that out, I started investigating whether we could at least show a smaller scale map with just the nodes that are in a certain group on the Group Details page (which is better, but still not good enough). This is in fact possible, but only through a very ugly and cumbersome workaround. (As far as I know) you have to:

 

1) Create a new view for every group (every Worldwide Map instance seems to have a ResourceID that is linked to a viewID)

2) Edit the Worldwide Map for each view to only show the nodes in that group

3) Append the viewID to the default URL for that group and from now on use that to navigate to it.

 

Once more I have found no way to automate this process while there are currently ~500 groups to do this for and then we're not even talking about where to leave those ~500 new URLs that everone now has to use, while the intuitive way of navigating is by using the Group Summary.

 

Question 2:

Is there a way to flexibly change what is shown on the Worldwide map? Thinking beyond groups here, so using custom properties for this would would be nice: only show nodes for a certain supplier, end-customer, device-type, etc.

Scoreboard

$
0
0

I needed to display basic information in an easy to view/understand format for a NOC screen.  The best way that I found is by using a scoreboard.

 

1) Create custom property Count2_Up, Count3_Warning, Count4_Down.  We need this just to keep count.  A temp table can also be created.   The main purpose of this is to display the information in an Atlas Map.  There are other ways of doing this by creating the actual scoreboard and using a Custom Html to display the information.

 

2) Create an SQL job to update the CP.  This job will run every minute.  This can be done in multiple ways using the APIs.

update ncp

set  ncp.count2_up=ISNULL((select count(*) from nodes nn where status=1 ),0)

    ,ncp.Count3_Warning=ISNULL((select count(*) from nodes nn where status=3 ),0)

    ,ncp.Count4_Down=ISNULL((select count(*) from nodes nn where status=2 ),0)

from NodesCustomProperties ncp

where ncp.NodeID=1

 

Initially I did this using Alerts, since we can change CP using SQL in alert action.  But that generated too many notifications, and Orion was throttling.  This might be useful on other situations, but not this one.

3) Create Map using Atlas

4) Display the map on a NOC view

 

Works well and gives the NOC people at a glance view of nodes.   This can be expanded to other ideas, such sites, regions, SQL applications, etc (up/warn/down)

There can be other resources which spells out the down nodes with duration.  Such as this one:

SELECT

    NodeName AS [Node Name],

        '/Orion/images/StatusIcons/Small-' + StatusIcon AS [_IconFor_Node Name],

        DetailsUrl AS [_LinkFor_Node Name],

        concat(SUBSTRING(tostring(MAX(e.EVENTTIME)),1,4),SUBSTRING(tostring(MAX(e.EVENTTIME)),5,2),

        SUBSTRING(tostring(tolocal(MAX(e.EVENTTIME))),12,8)) as Downtime,

        CONCAT(HOURDIFF(max(e.eventtime),getdate())/24,' Day(s) ',

        HOURDIFF(tolocal(max(e.eventtime)),getdate())-(HOURDIFF(max(e.eventtime),getdate())/24)*24,'h ',

        MINUTEDIFF(tolocal(max(e.eventtime)),getdate())   -   (MINUTEDIFF(tolocal(max(e.eventtime)),getdate())/60)*60,'m') AS Duration,

        --MINUTEDIFF(tolocal(MAX(E.EventTime)),getdate()) as minutes_since

FROM ORION.NODES NODES

INNER JOIN ORION.EVENTS e ON NODES.NODEID = e.NETWORKNODE

WHERE STATUS = 2 and e.eventtype = 1

GROUP BY NodeName, StatusIcon, DetailsUrl

--ORDER BY minutes_since asc

 

Have Fun!!

Dynamic IP address & Network discovery many devices

$
0
0

Hi,

 

The idea is to discover thousands devices that are configured with a dynamic IP address

 

Those devices are "ICMP only"

 

The option "dynamic ip address" is not available when selecting multiple nodes and editing the node properties

 

Any idea on :

 

to turn on this option after the import of those devices in NPM ?

 

If if it is liked to the DNS hostname field that should be filled, how to do a bulk import based on a file (and the node name) ?

 

Best regards,

Pierre

API network discovery stopped working

$
0
0

Hello everyone,

 

We are suddenly experiencing a problem with network discovery via API which stopped working (returns nothing instead of discovery id).It worked fine for the past year or so and we used it a lot. Code sequence is exactly like in the example on github, but I'm posting it just in case. Nothing changed in the code. The only recent change was upgrading Solarwinds to a more recent version.

Does anyone know how to diagnose this strange issue?

 

Thanks a lot!!!

 

class Client():

    requests.packages.urllib3.disable_warnings()

    def __init__(self,host,user,password):

        self.swis = SwisClient(host, user, password)

        self.host = host

 

    def discover_host(self,target_node_ip,credentials_id):

        """ Automatically discovers and add a host provided

            its ip address and the id that identifies

            snmp community to use from the Orion.Credentials table (197 for linux hosts)

        """

 

        corePluginContext = {

        'BulkList': [{'Address': target_node_ip}],

        'Credentials': [

            {

                'CredentialID': credentials_id,

                'Order': 1

            }

        ],

        'WmiRetriesCount': 0,

        'WmiRetryIntervalMiliseconds': 1000

        }

        corePluginConfig = self.swis.invoke('Orion.Discovery', 'CreateCorePluginConfiguration', corePluginContext)

 

        discoveryProfile = {

            'Name': 'discovery_host',

            'EngineID': 5,

            'JobTimeoutSeconds': 3600,

            'SearchTimeoutMiliseconds': 5000,

            'SnmpTimeoutMiliseconds': 5000,

            'SnmpRetries': 2,

            'RepeatIntervalMiliseconds': 1800,

            'SnmpPort': 161,

            'HopCount': 0,

            'PreferredSnmpVersion': 'SNMP2c',

            'DisableIcmp': False,

            'AllowDuplicateNodes': False,

            'IsAutoImport': True,

            'IsHidden': True,

            'PluginConfigurations': [{'PluginConfigurationItem': corePluginConfig}]

        }

 

        discoveryid = self.swis.invoke('Orion.Discovery', 'StartDiscovery', discoveryProfile)

        return discoveryid

 

 

[..]

 

 

 

class Client():    requests.packages.urllib3.disable_warnings()    def __init__(self,host,user,password):        self.swis = SwisClient(host, user, password)        self.host = host
    def discover_host(self,target_node_ip,credentials_id):        """ Automatically discovers and add a host provided            its ip address and the id that identifies            snmp community to use from the Orion.Credentials table (197 for linux hosts)        """
        corePluginContext = {        'BulkList': [{'Address': target_node_ip}],        'Credentials': [            {                'CredentialID': credentials_id,                'Order': 1            }        ],        'WmiRetriesCount': 0,        'WmiRetryIntervalMiliseconds': 1000        }        corePluginConfig = self.swis.invoke('Orion.Discovery', 'CreateCorePluginConfiguration', corePluginContext)
        discoveryProfile = {            'Name': 'discovery_host',            'EngineID': 5,            'JobTimeoutSeconds': 3600,            'SearchTimeoutMiliseconds': 5000,            'SnmpTimeoutMiliseconds': 5000,            'SnmpRetries': 2,            'RepeatIntervalMiliseconds': 1800,            'SnmpPort': 161,            'HopCount': 0,            'PreferredSnmpVersion': 'SNMP2c',            'DisableIcmp': False,            'AllowDuplicateNodes': False,            'IsAutoImport': True,            'IsHidden': True,            'PluginConfigurations': [{'PluginConfigurationItem': corePluginConfig}]        }
        discoveryid = self.swis.invoke('Orion.Discovery', 'StartDiscovery', discoveryProfile)        return discoveryid

[..]

Issue with alert raising

$
0
0

Hello

 

I've created a map of my site. Each building is represented and if I click one of them I can focus on a list of servers hosted in the relative IT room.

When a server is down, the red status is raised and on my map, the "red" status is appearing.

But when a component of the server is faulted, the red status is not propagated to the main map.

 

How to raise a visual alarm on the hisghest level when a component  of a server is faulted, not only when the whole server is down?

 

Thank you for helping

Cisco Firepower

$
0
0

Is there a way to integrate Cisco Firepower into SolarWinds Orion

Interfaces+by+Site.xml


Nodes Down During Time Range Report

SQL AlwaysOn High availability " Not Synchronization/Critical" state monitoring

$
0
0

Hi All,

 

I wondering to create an alert for SQL AlwaysOn High availability " Not Synchronization" state monitoring. Can you please help me out complete the same?

SQL block, lock, deadlock - System Down

$
0
0

Community,

 

I have been experiencing a large number of system down incidents (29 as of yesterday) over the past couple months. These are caused by SQL deadlocks. I need assistance determining root cause. Before you ask, Orion is completely updated, SQL server 2016, 12 cpu cores per VM, and minimum 128MB RAM. These servers are fully updated and overpowered. The queries are the same every time, pulling from the events table. Any assistance or guidance would be appreciated. Please do not ask me to put in a support ticket, I already have two with no progress made, including one for system down right now (been on hold too long).

 

 

 

Blocking Session (From Primary Server):

  Application name: SolarWinds.Collector.Service@domain-SWCollectorService-0

 

    First 2KB of SQL: (@engineId int,@eventType int,@eventDate int)SELECT MAX(e.EventTime), e.NetObjectID FROM Events e

                                               INNER JOIN Nodes n ON n.NodeID = e.NetObjectID

                                               WHERE n.EngineID = @engineId AND e.EventType = @eventType AND e.EventTime >= DATEADD(D, -@eventDate, GETDATE()) GROUP BY e.NetObjectID

 

 

 

 

Blocked session (From additional poller):

  Application name: SolarWinds.Collector.Service@domain-SWCollectorService-0

 

    First 2KB of SQL:

CREATE PROCEDURE [dbo].[apm_AddEvent]

@NetworkNode int,

@NetObjectID int,

@NetObjectType char(10),

@EventType int,

@Message ntext,

@EventTimeUtc datetime = NULL

               AS

BEGIN

               IF ((@EventType IS NOT NULL) AND ((@Message IS NOT NULL) AND (DATALENGTH(@Message) > 0)) AND ((Select Record From EventTypes where EventType = @EventType) = 1))

                              BEGIN

                                             SET NOCOUNT ON;

 

                                             DECLARE @EventTimeLocal datetime

 

                                             IF @EventTimeUtc IS NULL

                                                            SET @EventTimeLocal = GETDATE()

                                             ELSE

                                                            SET @EventTimeLocal = DATEADD(MINUTE, DATEDIFF(MINUTE, GETUTCDATE(), GETDATE()), @EventTimeUtc)

 

                                             INSERT INTO Events (EventTime, NetworkNode, NetObjectID, NetObjectType, EventType, Message, Acknowledged)

                                             VALUES (@EventTimeLocal, @NetworkNode, @NetObjectID, @NetObjectType, @EventType, @Message, 0)

                              END

END

Advanced Alert Manager Page Resets to Draft

$
0
0

I have been having this issue for weeks now. Almost every time I try to edit or create an alert, the page resets back to the alert list with a note at the top, "A draft alert was saved at", with the links to return to editing or delete. If I try to edit the draft, it comes up with a blank form. I have been on NPM 12.2, with most of the modules installed, for at least 6 months. This problem recently started to occur, first noticed June 8.

 

I have 1 windows 2016 APE, 1 2012R2 Primery, 3 2012 R2 APEs, 1 2016 NTA database, 1 2012 R2 AWS, 1 2016 SQL Server with 2016 MSSQL installed. Total of 8 servers.

 

My list of troubleshooting steps is extensive.

 

Rebooted the entire environment (three times AND prayed)

I have upgraded all .NET framework version to 4.7.02558, across all servers.

Deleted subscriptions notifications etc.

Checked server event logs, nothing correlates to the times of occurrence

Copied all IIS settings from test environments that worked correctly

There does NOT appear to be any database connection issues, SQL server is on the same subnet as the primary

Error occurs on both primary and additional web server, even when accesses web page by IP

Servers are not load balanced

I did have the webpage error caused by windows updates, I had to remove an update from one of the servers to edit nodes on the 2016 APE

I have added and removed HTTPS functionality from the website

Adjusting Pages To Display More Stuff

$
0
0

When it comes to working on projects, I always feel I NEED to use all the desktop real estate I have available. As much as I love SolarWinds, we have always been at odds here. While I want to use every last pixel of my screens to view, and work with, my data, SolarWinds products tend to want to keep me boxed up, working in tiny little windows. Someday, however, we will all be on the same page, and we will be using every pixel possible on that page. Until then, this is how you can easily, and fairly safely, adjust how much scrolling and paging you are required to do. This simple walkthrough will show you a few places you can make tiny adjustments, and see giant results.

 

ESTIMATED TIME TO INSTALL/PERFORM MODIFICATION:<10 Minutes

DIFFICULTY LEVEL:1-Youngling

  1. Youngling(Easiest/Most Basic; no coding experience required, no config wizard required, no system restart required, no system downtime.)
  2. Padawan (Easy/Basic; no coding experience required, possible config wizard required, possible system/services restart required, limited/no downtime.)
  3. Jedi Knight (Moderately Difficult/Advanced; some coding experience required/recommended, config wizard required, possible system/services restart required, limited/short duration downtime.)
  4. Jedi Master (Most Difficult/Advanced; advanced coding experience required, config wizard required, system/services restarts required, 30+ minutes downtime/maintenance window recommended, and other things that I do not even know I would need to know, required...)

 

 

 

Before we begin,

 

 

PLEASE don't edit files without backing them up first.

If you see a friend or co-worker making changes without backing up first, please alert the authorities.

Friends don't let friends mod without backups.

 

 

 

Also, please keep in mind, changes made to system files will revert back to default when running the config wizard.

 

 

 

This walkthrough will use the "Manage Accounts" page as the running example.

 

Let's start by seeing what things look like before we make any changes.

 

In the screenshot above, you can see we can only work with 9 lines, AND we will need to be scrolling over as well. Being the lazy admin I am, this is totally unacceptable. I cannot spend my days clicking and scrolling through unnecessary adventures. I need to see all my datas on all my pixels.

 

 

So, what kind of potential are we looking at/for? Well, that giant void looks like a good place to start. Additionally, look at the alignment of those column heading and table data. Those big gaps make it somewhat confusing to view the data when we are trying to put more on the screen at once. And, one final thing, I notice there are a few columns that simply do not apply to my needs, and are taking up my valuable screen real estate. (This surely does not apply to everyone, but it does to me, so it is here...)

 

 

 

 

If it's not broke, then fix it until it is?

 

Let's make our first adjustments. Open the following file in notepad++, or whatever letter changing tool you enjoy using.

\inetpub\SolarWinds\Orion\Admin\Accounts\js\Accounts.js

 

//

//Adjusting the settings in the "\inetpub\SolarWinds\Orion\Admin\Accounts\js\Accounts.js" file should allow you to easily, and fairly safely, change the look and feel of the corresponding GUI/page.

//This block of code is located between lines 314 and 344. Depending on previous versions, as well as future updates, these line numbers may change.

//

            grid = new Ext.grid.GridPanel({                store: dataStore,                columns: [                        selectorModel,                        { header: '@{R=Core.Strings;K=WEBJS_AK0_9;E=js}', width: 200,align: 'center', sortable: true, dataIndex: 'Accounts.AccountID', renderer: renderAccountName },                        //{ header: '@{R=Core.Strings;K=WEBJS_AK0_81;E=js}', width: 150, sortable: true, dataIndex: 'Accounts.AccountType', renderer: renderAccountType },                        { header: '@{R=Core.Strings;K=WEBJS_VB0_23;E=js}', width: 105,align: 'center', sortable: true, dataIndex: 'Accounts.AccountEnabled', renderer: renderYesNo },                        //{ header: '@{R=Core.Strings;K=WEBJS_AK0_82;E=js}', width: 175, sortable: true, dataIndex: 'Accounts.Expires', renderer: renderAccountField },                        { header: '@{R=Core.Strings;K=WEBJS_AK0_83;E=js}', width: 175,align: 'center', sortable: true, dataIndex: 'Accounts.LastLogin', renderer: renderAccountField },                        { header: '@{R=Core.Strings;K=WEBJS_AK0_84;E=js}', width: 205,align: 'center', sortable: true, dataIndex: 'Accounts.LimitationID', renderer: renderAccountField },                        { header: '@{R=Core.Strings;K=WEBJS_AK0_85;E=js}', width: 150,align: 'center', sortable: true, dataIndex: 'Accounts.AllowAdmin', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=WEBJS_AK0_86;E=js}', width: 130,align: 'center', sortable: true, dataIndex: 'Accounts.AllowNodeManagement', renderer: renderYesNo },                        { header: '@{R=Core.Strings.2;K=WEBJS_MG0_1;E=js}', width: 130,align: 'center', sortable: true, dataIndex: 'Accounts.AllowMapManagement', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=WEBJS_TM0_120;E=js}', width: 130,align: 'center', sortable: true, dataIndex: 'Accounts.AllowReportManagement', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=WEBJS_SO0_99;E=js}', width: 130,align: 'center', sortable: true, dataIndex: 'Accounts.AllowAlertManagement', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=XMLDATA_ED0_2;E=js}', width: 130,align: 'center', sortable: true, dataIndex: 'Accounts.AllowUnmanage', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=XMLDATA_JV0_1;E=js}', width: 155,align: 'center', sortable: true, dataIndex: 'Accounts.AllowDisableAction', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=XMLDATA_JV0_2;E=js}', width: 155,align: 'center', sortable: true, dataIndex: 'Accounts.AllowDisableAlert', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=XMLDATA_JV0_3;E=js}', width: 155,align: 'center', sortable: true, dataIndex: 'Accounts.AllowDisableAllActions', renderer: renderYesNo },                        { header: '@{R=Core.Strings;K=WEBJS_AK0_87;E=js}', width: 210,align: 'center', sortable: true, dataIndex: 'Accounts.AllowCustomize', renderer: renderYesNo }                ],                sm: selectorModel,                viewConfig: {                    //set to true if you want to resize each column with the window resize.  False maintains existing column sizes.                    forceFit: true,                    emptyText: '@{R=Core.Strings;K=WEBJS_AK0_88;E=js}'                },                //width: 700,                height: 750,                stripeRows: true,                trackMouseOver: false,

//

//

//

 

 

Finding our center:

 

 

 

//To "center" align the grid column(s), simply add the following to each line. (This will allow you to center some columns, while leaving other columns as they are.)

//

//,align: 'center'

//

//Here is the original line, BEFORE centering the column:

                        { header: '@{R=Core.Strings;K=WEBJS_AK0_9;E=js}', width: 200, sortable: true, dataIndex: 'Accounts.AccountID', renderer: renderAccountName },

//

 

//And here is the line, AFTER centering the column:

                        { header: '@{R=Core.Strings;K=WEBJS_AK0_9;E=js}', width: 200,align: 'center', sortable: true, dataIndex: 'Accounts.AccountID', renderer: renderAccountName },

//

Notice the subtle difference between the two "Admin Rights" columns above. While this may seem like too small of a change to notice, the results will all add up in the end.

 

 

 

Now that we have found our center, let's do something about all that unnecessary scrolling. (Both horizontally and vertically)

 

What are we supposed to do with this? Well, you're supposed to let the system work for you, not you for it.

The following adjustments will assist us in "fixing" these column widths. (I mean, just look at all that wasted space a simple Yes/No takes up.)

 

 

//These next few are very easy, as they are simply true/false, and numerical values.

//Somewhere around line 338, you should find an option to automatically adjust the column width. This will shrink down the default size of each column, automatically making each column fit on the page. No more having to manually adjust the width of each column, only to come back and do it again next time.

//

//BEFORE:

                    forceFit: false,

//

//AFTER:

                    forceFit: true,

//

 

Scrollbar, we don't need no stinking scrollbar!!

 

 

Now let's do something to remedy that vertical waste of space!

 

//Somewhere around line 342, you should find the value for the height of the grid.

//My default grid height was 350, so I changed the value to 750, and it fits my page perfectly.

//

//BEFORE:

                height: 350,

//

//AFTER:

                height: 750,

//

 

WHAT?!?! You mean we just went from 9 work lines to 24. After doing several maths, I have concluded that, at the very least, may have possibly, more than doubled our vertical space usage... (Still waiting on the official response from the maths station)

 

Well, I reckon the story ends here... Or... now that we have saved so many seconds of work, we could go out and spend them all on another improvement...

 

 

 

//

//The last thing I changed was a nice little option that automatically highlights the entire row your cursor hovers over.

//Nothing really special here, but I think it's nice to see the entire row I am working with, visibly different/standing out, from all the other rows.

//Once again, nothing fancy here, just a simple true/false toggle.

//

//BEFORE:

                trackMouseOver: false,

//

//AFTER:

                trackMouseOver: true,

//

Note the line above, where the cursor is hovering over... Do you see how that line stands out just a bit more distinct than the others? This is what you get when you enable the "trackMouseOver" option.

 

 

//

//While this is nothing ground breaking, and is probably as far from the future as it could be, it allows me to adjust the little things I see on a daily basis, which makes my broken brain happy.

//Additionally, I commented out a couple of columns too, as they don't really show me anything I need to see, and just take up more space.

//

Now, when it's all said and done, I can see EVERYTHING I need to see, all on a single page. No more viewing column data all scrunched up together. No more scrolling left and right to see every column for a user. No more viewing unnecessary columns. No more manually adjusting each column, every time I land on this page. And, most importantly, NO MORE TINY BOX!!

 

 

 

Bonus/Fun Tid-Bit:

I like how they actually have the universal "shift-multi-select" option on and working here... I just wish, as many others on Thwack, they would implement this functionality EVERYWHERE, across all modules, pages, products, settings, etc...

Anything that can be selected should have this functionality.

 

 

 

 

 

And this is where our journey ends...

On a single page, able to view all columns, and easily follow along, knowing exactly which account(s) we are going to manage.

 

Your 4k monitor can now use all the high tech space it has available.

(Because 4k was invented to better read spreadsheets and other text based webpages, right?)

 

 

//Remember, if you adjust anything in this default/system file, it WILL be reset when you run the config wizard to rebuild the website.

 

 

 

Go out and explore the files of your SolarWinds. And remember, if you break something, you always have 2 outs... You can blame it on the network, as well as the server... Let those two argue about it while you fix what you broke.

 

Try your skills on the manage custom properties page

\inetpub\SolarWinds\Orion\Admin\js\ManageCPGrid.js

 

//This is where you adjust the settings to allow the grid to expand to full screen. (or whatever size you need)

//Roughly around line ~800

            var mainGridPanel = new Ext.Panel({                region: 'center',                split: true,                width: 1800,                height: 800,                layout: 'border',                collapsible: false,                items: [navPanel, grid],                cls: 'no-border'            });

 

 

 

For more ways to customize your SolarWinds environment, make sure to check out this link, by CourtesyIT

How to do various customizations with your Solarwinds

 

 

 

Thank you,

 

-Will

Viewing all 21870 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>