Uso del sottosistema Utilizzo per monitorare l'esecuzione lenta dei servizi
Quando viene attivato, il sottosistema Utilizzo consente di ottenere metriche dettagliate sulla durata dell'esecuzione dei servizi. Utilizzando i servizi di questo sottosistema, vengono recuperati i dettagli seguenti:
Tempo impiegato da un servizio per completare l'esecuzione (tempo minimo, massimo e medio)
Numero di esecuzioni di un servizio
Le statistiche vengono registrate in millisecondi dal momento dell'ultimo riavvio del server, ma possono essere rese persistenti attivando l'opzione Attiva persistenza statistiche. Utilizzare il servizio WriteStatisticsReport per creare un file CSV contenente queste statistiche. Il file CSV viene creato nella cartella ThingworxStorage.
Le metriche vengono raccolte solo dopo il completamento di un servizio. Se un servizio viene eseguito in un loop infinito che alla fine rende il server inattivo, il tempo impiegato per l'esecuzione non viene registrato.
Si consiglia di esportare e analizzare i dati del sottosistema Utilizzo per identificare i servizi a esecuzione prolungata. Se è stato identificato un servizio lento, aggiornare i servizi per stampare le righe di registrazione. Questi log possono recuperare la durata delle operazioni. Talvolta il comportamento lento può essere dovuto a un determinato insieme di parametri o a un'interrogazione specifica. La registrazione dei parametri nello script rappresenta un modo semplice e affidabile per acquisire i dati. È possibile espandere lo script seguente per stampare informazioni dettagliate sulle operazioni che richiedono più di 30 secondi. Lo script può essere ulteriormente aggiornato per stampare i parametri di servizio o altri dati in base alle esigenze:
var startTime= new Date();
// potentially slow operation
var endTime = new Date();
//calculate difference in seconds and print details only if operation takes over 30 seconds
var diff = (endTime.getTime() - startTime.getTime) / 1000 % 60;
if (diff > 30) logger.error("+++Slow operation: " + diff + "seconds "); // add any parameters or queries
È stato utile?