I've always felt like the Universal Device Poller Status widget needed some help so I finally got around to rebuilding it for my environment.
One of my main annoyances was that any tabular data just tells you the number of rows and the time polled, but to see the values you had to add in a tabular poller widget.

Another gap is that you get no visibility into the threshold status of the pollers, which is a serious enough UI issue that many users never even realize you can set thresholds on pollers.
So I set out to try to improve the situation a bit in my environment with a custom widget. This one has all the same as the old widget, but it will actually show tabular data, has icons to reflect the current status of each poller when there is a threshold issue.
You can see some examples of how it looks from my environment here:


It can still get a bit messy if you have tabular pollers with a really high number of values, so eventually I might change it to only display the top x from each tabular poller but I haven't gotten that far with it yet.
You can grab the latest version from here,
https://github.com/Mesverrum/MyPublicWork/blob/master/ViewsToShare/SingleWidgets/Universal%20Poller%20Status_7559.xml
and use my widget import tool to add it as a Custom Table to your node details view
https://thwack.solarwinds.com/t5/NPM-Documents/ResourceImporter-ps1/ta-p/510757
Or you can copy the swql here and roll your own report.
select distinct
cp.GroupName as [c1]
, concat('<img src="/orion/images/OidPicker/Group.gif"> UNDP Group ',cp.Groupname) as Name
, '' as [Status]
, NULL as LastPolled
from orion.npm.custompollers cp
join orion.npm.CustomPollerAssignment cpa on cpa.CustomPollerID=cp.CustomPollerID and cpa.NodeID = ${nodeid}
union all
(
select
concat(cp.GroupName, ' - ',cpa.CustomPollerName) as [c1]
, concat('<img src="/Orion/images/device_poller.png"> ', cpa.CustomPollerName) as Name
, case
when cpa.status = 0 then 'Polling Error'
when cp.SNMPGetType = 'GetSubTree' then 'Table values below'
else concat('<img src="/Orion/images/StatusIcons/Small-',si.StatusName,'.gif"> ', cps.Status)
end as [Status]
, last.LastPolled
from orion.npm.custompollers cp
join orion.npm.CustomPollerAssignment cpa on cpa.CustomPollerID=cp.CustomPollerID and cpa.NodeID = ${nodeid}
join orion.StatusInfo si on si.StatusId= cpa.Status
left join
(SELECT
max(DateTime) as Lastpolled
, CustomPollerAssignmentID, min(RowID) as minrow
FROM Orion.NPM.CustomPollerStatistics cps
where cps.CustomPollerAssignment.NodeID = ${nodeid}
group by CustomPollerAssignmentID) last on cpa.CustomPollerAssignmentID=last.custompollerassignmentid
left join orion.npm.CustomPollerStatistics cps on cps.CustomPollerAssignmentID = cpa.CustomPollerAssignmentID and last.minrow=cps.RowID and last.lastpolled=cps.DateTime
)
union all (
select
concat(cp.GroupName, ' - ',cpa.CustomPollerName, ' - ', cpst.RowID) as [c1]
, concat(' - <img src="/Orion/images/TopologyItems/RArrow2.png"> - ',cpst.RowLabel) as Name
, concat('<img src="/Orion/images/StatusIcons/Small-',si.statusname,'.gif"> ', cpst.status) as [Status]
, NULL as LastPolled
from orion.npm.custompollers cp
join orion.npm.CustomPollerAssignment cpa on cpa.CustomPollerID=cp.CustomPollerID and cpa.NodeID = ${nodeid}
join orion.npm.CustomPollerStatusOnNodeTabular cpst on cpst.CustomPollerAssignmentID = cpa.CustomPollerAssignmentID
join orion.StatusInfo si on si.StatusId=cpst.RowStatus
)