I dug into this a l little deeper and it looks like some of the metrics reported from the Metrics API have changed between Solr 7 and 8. The main culprits seem to be os.totalPhysicalMemorySize not being calucated in Solr 8 and two missing metrics os.totalSwapSpaceSize and os.freeSwapSpaceSize which are all used in the Dashboard view page. Below is an extract of the javascrpit used on the Admin Dashboard, and a comparison between metrics reported in Solr 7 and 8. The function "parse_memory_value" is where the javascript error appears to be thrown with the missing metrics.
Thanks, Dwane Solr 8 "os.totalPhysicalMemorySize":0, (Not calculated) "os.freePhysicalMemorySize":792087998464, "os.totalSwapSpaceSize" (Metric not present) "os.freeSwapSpaceSize": (Metric not present) "memory.heap.committed":8589934592, "memory.heap.init":8589934592, "memory.heap.max":8589934592, "memory.heap.usage":0.006413557566702366, "memory.heap.used":55092040, "memory.non-heap.committed":97910784, "memory.non-heap.init":7667712, "memory.non-heap.max":-1, "memory.non-heap.usage":-9.2249552E7, "memory.non-heap.used":92249712, Solr 7 "os.totalPhysicalMemorySize":810586099712, "os.freePhysicalMemorySize":756665888768, "os.totalSwapSpaceSize":0, "os.freeSwapSpaceSize":0 "memory.heap.committed":12348030976, "memory.heap.init":12884901888, "memory.heap.max":12348030976, "memory.heap.usage":0.313836514301922, "memory.heap.used":3875263000, "memory.non-heap.committed":145039360, "memory.non-heap.init":7667712, "memory.non-heap.max":-1, "memory.non-heap.usage":-1.30145664E8, "memory.non-heap.used":130145824, main.js (Metrics Dashboard) // physical memory var memoryMax = parse_memory_value(data.system.totalPhysicalMemorySize); $scope.memoryTotal = parse_memory_value(data.system.totalPhysicalMemorySize - data.system.freePhysicalMemorySize); $scope.memoryPercentage = ($scope.memoryTotal / memoryMax * 100).toFixed(1)+ "%"; $scope.memoryMax = pretty_print_bytes(memoryMax); $scope.memoryTotalDisplay = pretty_print_bytes($scope.memoryTotal); // swap space var swapMax = parse_memory_value(data.system.totalSwapSpaceSize); $scope.swapTotal = parse_memory_value(data.system.totalSwapSpaceSize - data.system.freeSwapSpaceSize); $scope.swapPercentage = ($scope.swapTotal / swapMax * 100).toFixed(1)+ "%"; $scope.swapMax = pretty_print_bytes(swapMax); $scope.swapTotalDisplay = pretty_print_bytes($scope.swapTotal); // file handles $scope.fileDescriptorPercentage = (data.system.openFileDescriptorCount / data.system.maxFileDescriptorCount *100).toFixed(1) + "%"; // java memory var javaMemoryMax = parse_memory_value(data.jvm.memory.raw.max || data.jvm.memory.max); $scope.javaMemoryTotal = parse_memory_value(data.jvm.memory.raw.total || data.jvm.memory.total); $scope.javaMemoryUsed = parse_memory_value(data.jvm.memory.raw.used || data.jvm.memory.used); $scope.javaMemoryTotalPercentage = ($scope.javaMemoryTotal / javaMemoryMax *100).toFixed(1) + "%"; $scope.javaMemoryUsedPercentage = ($scope.javaMemoryUsed / $scope.javaMemoryTotal *100).toFixed(1) + "%"; $scope.javaMemoryPercentage = ($scope.javaMemoryUsed / javaMemoryMax * 100).toFixed(1) + "%"; $scope.javaMemoryTotalDisplay = pretty_print_bytes($scope.javaMemoryTotal); $scope.javaMemoryUsedDisplay = pretty_print_bytes($scope.javaMemoryUsed); // @todo These should really be an AngularJS Filter: {{ javaMemoryUsed | bytes }} $scope.javaMemoryMax = pretty_print_bytes(javaMemoryMax); var parse_memory_value = function( value ) { if( value !== Number( value ) ) { var units = 'BKMGTPEZY'; var match = value.match( /^(\d+([,\.]\d+)?) (\w).*$/ ); var value = parseFloat( match[1] ) * Math.pow( 1024, units.indexOf( match[3].toUpperCase() ) ); } return value; }; ________________________________ From: Dwane Hall <dwaneh...@hotmail.com> Sent: Thursday, 11 March 2021 7:40 PM To: users@solr.apache.org <users@solr.apache.org> Subject: Solr Admin Page Metrics Hey Solr community. I started playing around with the 8.8.1 docker image today and noticed issues with the JVM and host memory 'Bar' graphs from the dashboard page of the Solr Admin interface. It also appeares the "JVM" parameters were not listed here but definitely configured as expected as they were visible under the "Java Properties" tab. Form a quick inspection of the Javascript console it appears some objects were undefined (looks to be an early Angular application). Has anyone else noticed this behaviour as well this worked as expected on the 7.x branch of Solr? Thanks, Dwane DevTools failed to load SourceMap: Could not load content for https://myhost/solr/libs/angular-resource.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE DevTools failed to load SourceMap: Could not load content for https://myhost/solr/libs/angular.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE DevTools failed to load SourceMap: Could not load content for https://myhost/solr/libs/angular-route.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE DevTools failed to load SourceMap: Could not load content for https://myhost/solr/libs/angular-cookies.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE angular.min.js:146 TypeError: Cannot read property 'match' of undefined at parse_memory_value (index.js:80) at index.js:43 at I (angular-resource.min.js:31) at angular.min.js:159 at m.$digest (angular.min.js:170) at m.$apply (angular.min.js:174) at k (angular.min.js:125) at v (angular.min.js:130) at XMLHttpRequest.y.onload (angular.min.js:131) "Possibly unhandled rejection: {}"