Free System Diagnostics Software

0 views
Skip to first unread message

Hilary Laite

unread,
Aug 5, 2024, 12:07:34 AM8/5/24
to gocorava
Animplementation of DistributedContextPropagator determines if and how distributed context information is encoded and decoded as it traverses the network.The encoding can be transported over any network protocol that supports string key-value pairs. For example, when using HTTP, each key-value pair is an HTTP header.DistributedContextPropagator injects values into and extracts values from carriers as string key-value pairs.

Represents the callback method that's used in propagators' inject methods. This callback is invoked to set the value of a named field.Propagators may invoke it multiple times in order to set multiple fields.


The EventLog component provides functionality to write to event logs, read event log entries, and create and delete event logs and event sources on the network. The EntryWrittenEventHandler provides a way to interact with event logs asynchronously. Supporting classes provide access to more detailed control, including: permission restrictions, the ability to specify event log types (which controls the type of default data that is written with an event log entry), and iterate through collections of event log entries. For more information about these tasks, see the EventLogPermission, EventLogEntryType, and EventLogEntryCollection classes.


The Process class provides functionality to monitor system processes across the network, and to start and stop local system processes. In addition to retrieving lists of running processes (by specifying either the computer, the process name, or the process id) or viewing information about the process that currently has access to the processor, you can get detailed knowledge of process threads and modules both through the Process class itself, and by interacting with the ProcessThread and ProcessModule classes. The ProcessStartInfo class enables you to specify a variety of elements with which to start a new process, such as input, output, and error streams, working directories, and command line verbs and arguments. These give you fine control over the behavior of your processes. Other related classes let you specify window styles, process and thread priorities, and interact with collections of threads and modules.


The PerformanceCounter class enables you to monitor system performance, while the PerformanceCounterCategory class provides a way to create new custom counters and categories. You can write to local custom counters and read from both local and remote counters (system as well as custom). You can sample counters using the PerformanceCounter class, and calculate results from successive performance counter samples using the CounterSample class. The CounterCreationData class enables you to create multiple counters in a category and specify their types. Other classes associated with the performance counter component provide access to collections of counters, counter permission, and counter types.


And since we all know that homepages starting with the Utah release are no longer supported, I wanted to convert this particular homepage into a dashboard and save it to an update set for further usage in my coming projects.


But I would not have thought that I would experience three surprises in this adventure and that the way to the finished update set could be so rocky. And in order to avoid that the reader of this article has to go through the same effort, I have attached the finished update set here. With it, the "System Diagnostics" homepage can continue to be used as a dashboard in new ServiceNow releases.


The first challenge was to find a way of displaying any homepages in my Tokyo PDI, as the respective module (Self-Service -> Homepage) have been removed. And just opening the URL /home.do is not helpful as in most of the cases any redirection is configured, for example via system property glide.login.home.


But in my Tokyo PDI that page doesn't exist anymore! Why the heck? The strange thing is that there is still a documentation for this homepage and at the bottom of that page my question is being answered:


Beginning in the San Diego release, the System Diagnostics homepage is deprecated. After upgrading to San Diego, you can't edit the System Diagnostics homepage. You can create a dashboard version of the System Diagnostics homepage. By default, new instances do not have a System Diagnostics homepage and you cannot create homepages.


When hovering over the building blocks you basically are offered with an info and a context menu item but not for the content widgets. So the impression that these are legacy components is thus reinforced.






And what you may also notice is that there are no blocks which represent the dashboard layout like the underlying grid structure. Therefore, the question is: Where are the records stored that make up a dashboard? To answer that question, we could start right at the top and open the dashboard record via clicking on "Edit" within the context menu, but that way the corresponding record would be opened in an additional layer which is somewhat unusual:


That opened record at table pa_dashboards (Wasn't there an unwritten law that technical table names are given in the singular form? ) looks really simple, and the most interesting part is the related list with all defined tabs (table pa_tabs)


But wait. The dashboard tab record has a "Homepage" field! And when clicking on this, you are redirected to the already known sys_portal_page record of the "System Diagnostics" homepage. That reference in the pa_tabs table is the reason why now a button "Open Dashboard Version" appears on the homepage view:


Apart from the name, the only field present there is a reference to another sys_portal_page record. It is not the original "System Diagnostics" homepage, but a copy, and it contains a related list with the misleading name "Portal" with records of table sys_portal. These records represent properties for the legacy widgets (but not the widgets itself, as we will see later) of a homepage:


Each sys_portal record in turn has a reference list with so-called "Portal Preferences" which store the widget properties like the title or the Sys ID for the UI Page that renders the content.


So that means at the end, ServiceNow did not convert the homepage and all of its components to a new technology, but just wrapped a homepage copy with a pa_dashboards and a pa_tabs record.


So far, so good. And where is the layout information of a dashboard stored? After a while of fruitless searching around, I took a closer look at the pa_tabs record and discovered a reference field "Canvas page" there, which OOTB was not shown in the form view and was therefore added by me to the form layout.


But wait! A homepage also has a layout with a defined grid. So where is that information stored? On instances where creating and modifying of homepages is not disabled yet via the system property com.glideapp.home.deprecate_homepages you have a "Change Layout" button in the upper right corner of a homepage:


For homepages it was only possible to select a predefined layout which was built by a referenced UI Macro. The text below the layout preview was pulled from the description field of that referenced UI Macro.


At first, you have to create a new empty update set and make it the current update set. Then open the dashboard record by selecting "Dashboard Properties" within the dashboard's context menu. In the form view of the dashboard record, you can find the option "Unload Dashboard" within the context menu:


What did I wrong? I started searching around and came across two documentation pages which describe how to unload a sys_portal_page record and a sys_grid_canvas record, but it didn't work.


Since the additional effort to manually add the missing artifacts to the update set was manageable, I decided to go this way for now. First, I opened the sys_portal_page record and added all records from the related list "Portal" with the list action "Add to Update Set":


With the help of the /sysid command from the SNUtils browser extension built by @Arnoud Kooi the missing record immediately could be identified: It is located within the table sys_widgets and is also used for rendering the widget contents in the "System Diagnostics" dashboard:


I recently came across thte article How can I see statistics (xmlstats.do & stats.do) for all my nodes? written by @Mwatkins which provides some background information on where the data of the "Cluster Node Status" widget comes from and how to enrich the output with other useful metrics.


Great information, Maik. It's always painful when software vendors decide to remove functionality that is absolutely essential to operations. I realize that all of this should "always just work" (which is, I'm certain, the thought process that led to removing it), but we all know that there are times when it doesn't work, and information like this is critical to problem resolution.


This is well timed in the work I am doing. One of the points I focused on is when Homepages are converted to Dashboards it is a wrapper around the homepage. I would make the determination to create new dashboards then convert existing ones. The client I am working for has numerous homepages and now added something else to consider. Thank you for your efforts.


Having recently experienced problems with the My Cloud device on our (mainly wired) network - specifically extremely slow responsiveness and transfer rates and a problem with the time machine backups for the one Mac on the network I have tried various remedies including turning off the media servers and cloud access, powering everything down, changing cables etc.


I am assuming this may have arisen as a result of the recent firmware upgrade as others have reported but before trying the downgrade (or the horrors of a full system restore) I thought I would run the full system diagnostics. This seemed to be progressing well but has remained stuck on 90% progress for about 12 hours. The drive is still active so it gives every impression that the test is still running but it seems unlikely.

3a8082e126
Reply all
Reply to author
Forward
0 new messages