Analyse des logs grâce à GlideAggregate

Besoin
L'instance a un volume de logs trop important. Cela impact les performances lorsqu'on affiche la liste des logs, et a donc un impact négatif sur la productivité lorsqu'on a besoin de consulter cette table.

Il est nécessaire de savoir d'ou viennent ces logs et de les remédier.

Solution
Une des solutions (parmis d'autres) est de compter le nombre de logs groupés par source.
Pour cela, faire tourner en background script le code suivant, qui utilise les méthodes GlideAggregate:

var count = new GlideAggregate('syslog');
count.addEncodedQuery('sys_created_onONToday@javascript:gs.daysAgoStart(0)@javascript:gs.daysAgoEnd(0)');
count.addAggregate('COUNT','source');
count.orderByAggregate('count','source');
count.query();
 
while(count.next()){
  var category = count.source;
  var categoryCount = count.getAggregate('COUNT','source');
  gs.print(categoryCount +" : "+ category);
}


Résultat
*** Script: 652516 : *** Script
*** Script: 143409 : *** Script [SLACalculatorNG]
*** Script: 82557 : *** Script [TaskSLAController]
*** Script: 44367 : ImportSetTransformer (Server_Server_tran
*** Script: 39690 : *** Script [TaskSLA]
*** Script: 35772 : ImportSetTransformer (Workstation_Person
*** Script: 35352 : *** Script [SLAConditionBase]
*** Script: 7123 : ENGINE
*** Script: 6448 : com.glide.ui.ServletErrorListener
*** Script: 5925 : *** Script [TaskSLAworkflow]
*** Script: 4866 : MailMessage
*** Script: 3762 : ImportSetTransformer (NetworkCard_Networ
*** Script: 3566 : HTMLSanitizer
*** Script: 2962 : ImportSetTransformer (BL_PL_Business_Lin
*** Script: 2718 : Evaluator
*** Script: 2675 : ImportSetTransformer (RDBMS_Instance_Dat
*** Script: 1635 : TableCleaner
*** Script: 1510 : ImportSetTransformer (Subnet_IP_Network_
*** Script: 1250 : EMAIL
*** Script: 990 : ImportSetTransformer (Monitor_Display_Ha
*** Script: 978 : ImportSetTransformer (Enclosure_Rack_Tra
*** Script: 794 : ImportSetTransformer (Model_Product_Mode
*** Script: 794 : ImportSetTransformer (RDBMS_Database_Dat
*** Script: 672 : EventRecord
*** Script: 639 : Transaction
*** Script: 616 : ImportSetTransformer (Person_user_Import
*** Script: 347 : Memory
*** Script: 320 : *** Script [ChangeRequestStateHandler]
*** Script: 282 : ImportSetTransformer (DoITWise Transform
*** Script: 154 : ImportSetTransformer (Network_Network_Ge
*** Script: 138 : FMI
*** Script: 86 : Cleanup
*** Script: 86 : ImportSetTransformer (TM Task endpoint)
*** Script: 69 : EmailDigest
*** Script: 59 : SysForm
*** Script: 46 : ImportSetTransformer (Cluster_Cluster_Tr
*** Script: 40 : ImportSetTransformer (Alias_Alias_Transf
*** Script: 36 : UADownloader-ua_blocking
*** Script: 34 : EMAIL.004e4219db0e7b887d2e70a5ae961911
*** Script: 34 : EMAIL.0070a31137c67708c39fd0d543990ebd
*** Script: 34 : EMAIL.00787e91dbc6fb887d2e70a5ae9619b9
*** Script: 34 : EMAIL.008453dd37027708c39fd0d543990ead
*** Script: 34 : EMAIL.0084d3dd37027708c39fd0d543990e5a
*** Script: 34 : EMAIL.013992113742f308c39fd0d543990e27
*** Script: 34 : EMAIL.0159c11937027308c39fd0d543990e40
*** Script: 34 : EMAIL.0165bedd37023708c39fd0d543990e26


Dans cet exemple, le résultat permet de faire ressortir que la plupart des logs viennent des scripts. L'idée est  maintenant de filtrer les logs dont  la source est "***script" puis analyser plus en détails quels sont les script en question et faire les corrections nécessaires.



Written with ❤️ by CloudSpirit