Disk used size, log sizes, filegroup, and filestream information is missing for some databases in a SQL Server instance.
An Error message "Row Overflow in collection [DBSS_Logical_Disks] maxRows 200" is printing in the database agent log.
WORKAROUND
RESOLUTION 1
For example, to only change the collection limit for a single collection (such as the Agent Job List collection), add the collection name to the CollectionName variable in the script.
For example:
collectionName = "DBSS_Agent_Job_List";
The script can be applied from "Administration | Tool | Script Console", click on the "Add" icon and copy and paste the script in the text block. Then click "Run".
//############ Global Params #################//
/*
namespace and agent type
*/
agentNameSpace = "DB_SQL_Server";
agentType = "DB_SQL_Server";
/*
Max rows per collection
*/
limit = "1000";
/*
Specify collection name to change specific collection ; if empty change all collections limit
*/
collectionName = "";
//############################################//
out = new StringBuilder();
configService = server.ConfigService;
modifyASP(agentType);
return out.toString();
def modifyASP(agentTypeName) {
def cloneNames = configService.getKnownNamesForSharingName(agentNameSpace, agentTypeName, "CollectionDetails");
for (cloneName in cloneNames) {
def collectionDetails = configService.getSecondaryAsp(agentNameSpace, agentTypeName, "CollectionDetails", cloneName);
if (collectionDetails != null) {
def rows = collectionDetails.getRows();
for (def row : rows) {
def colName = row.getString("colName");
if (collectionName.isEmpty() || colName.equals(collectionName)) {
def oldValue = row.getString("colMaxRows");
row.setValueByString("colMaxRows", limit);
out.append(String.format("Modify %s ASP for agent type %s. %s MaxRows column changed from %s to %s \n", cloneName, agentTypeName, colName, oldValue, row.getString("colMaxRows")));
}
}
configService.saveConfig(collectionDetails);
}else{
out.append("Unable to find collection details names: ").append(cloneName).append("\n");
}
}
}
RESOLUTION 2
If you need to change the limit only for specific agents and/or specific collections please use the script below named "change limit secondary asp on specific agents collections". Here you can add agent names, collection names and different limits.
The script below includes the recommended collection changes for missing data in the Job and Database dashboards.
agentNames = ["YourAgent1","YourAgent2","YourAgent3"];
For a single database, the line would look like this
agentNames = ["YourAgent1"];
// Global Variables //
namespace = "DB_SQL_Server";
agentType = "DB_SQL_Server";
sharingName = "CollectionDetails"; // template shared by all agents
agentNames = ["YourAgent1","YourAgent2","YourAgent3"];
collectionNamesToChange = [DBSS_Agent_Job_List:3000,DBSS_File:3000,DBSS_Logical_Disks:3000,DBSS_Access_Methods:3000,DBSS_Database_Info:3000,DBSS_Database:3000,DBSS_File_Group:3000,DBSS_Database_Properties:3000,DBSS_Database_Summary:3000,DBSS_Availability_Groups:3000,DBSS_Missing_Indexes:3000];
// Main Script //
def configService = server["ConfigService"];
StringBuilder output = new StringBuilder();
for(def agentName : agentNames){
def knownName = sharingName + "-" + agentName;
def collectionDetails = configService.getSecondaryAsp(namespace, agentType, sharingName, knownName);
if(collectionDetails != null){
def rows = collectionDetails.getRows();
for(def row : rows){
def colName = row.getString("colName");
if(collectionNamesToChange.containsKey(colName)){
def colMaxRowsNewValue = collectionNamesToChange.get(colName);
output.append("AgentName=")append(agentName).append(" :\t").append("Collection Name=").append(row.getString("colName")).append("\t old value=").append(Integer.toString(row.getInt("colMaxRows")));
row.setValueByString("colMaxRows", Integer.toString(colMaxRowsNewValue));
output.append("\t new value=").append(row.getInt("colMaxRows")).append("\n");
}
}
configService.saveConfig(collectionDetails);
}else{
output.append("Unable to find collection details names: " + knownName).append("\n");
}
}
return output.toString();
DISCLAIMER:
Quest Support and Development recommend always making a backup of the current Foglight installation and database prior to execution of any scripts that may modify it.
Please note that increasing the maxrows beyond the 1000 row level is possible however it can have a detrimental effect on the performance of monitored host, FglAM, and FMS due to the increased amount of data collected. Increasing the amount of data collected (by default) may necessitate additional hardware resource requirements.
STATUS
FOGGENERAL-I-274 was logged to add the hidden maxrows values to the Agent Status Properties to be more easily adjusted by end users.
© 2024 Quest Software Inc. ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center