Monitorare gli endpoint online
Azure Machine Learning usa l'integrazione con Monitoraggio di Azure per tenere traccia e monitorare le metriche e i log per gli endpoint online. È possibile visualizzare le metriche nei grafici, confrontare le metriche tra endpoint e distribuzioni, aggiungere le metriche ai dashboard portale di Azure, configurare avvisi, eseguire query sulle tabelle dei log e eseguire il push dei log alle destinazioni supportate. È anche possibile usare Application Insights per analizzare gli eventi dai contenitori utente.
Metriche: per le metriche a livello di endpoint, ad esempio latenza delle richieste, richieste al minuto, nuove connessioni al secondo e byte di rete, è possibile eseguire il drill-down per visualizzare informazioni dettagliate a livello di distribuzione o di stato. È anche possibile eseguire il drill-down delle metriche a livello di distribuzione, ad esempio utilizzo cpu/GPU e utilizzo della memoria o del disco a livello di istanza. In Monitoraggio è possibile tenere traccia di queste metriche nei grafici ed è possibile configurare dashboard e avvisi per un'ulteriore analisi.
Log: è possibile inviare metriche a un'area di lavoro Log Analytics, in cui è possibile usare la sintassi di query Kusto per eseguire query sui log. È anche possibile inviare metriche agli account Archiviazione di Azure o Hub eventi di Azure per un'ulteriore elaborazione. Per il traffico, i log della console (contenitore) e gli eventi correlati agli endpoint online, è possibile usare tabelle di log dedicate. Le query Kusto supportano funzionalità di analisi complesse e l'unione di più tabelle.
Application Insights: gli ambienti curati includono l'integrazione con Application Insights. È possibile attivare o disattivare questa integrazione quando si crea una distribuzione online. Quando si attiva, le metriche e i log predefiniti vengono inviati ad Application Insights. È quindi possibile usare le funzionalità predefinite di Application Insights per un'ulteriore analisi. Tra gli esempi di queste funzionalità sono incluse le metriche attive, la ricerca delle transazioni, la visualizzazione errori e la visualizzazione delle prestazioni.
In questo articolo viene illustrato come:
- Scegliere il metodo corretto per visualizzare e tenere traccia delle metriche e dei log.
- Visualizzare le metriche per l'endpoint online.
- Creare un dashboard per le metriche.
- Creare un avviso per la metrica.
- Visualizzare i log per l'endpoint online.
- Usare Application Insights per tenere traccia delle metriche e dei log.
Prerequisiti
- Un endpoint online di Azure Machine Learning
- Almeno l'accesso con autorizzazioni di lettura sull'endpoint
Usare le metriche
Nella portale di Azure è possibile visualizzare le pagine delle metriche per endpoint e distribuzioni online.
Accedere alle metriche da studio di Azure Machine Learning
Un modo semplice per accedere alle pagine delle metriche consiste nell'usare i collegamenti disponibili nell'interfaccia utente di studio di Azure Machine Learning. È possibile trovare questi collegamenti nella scheda Dettagli della pagina di un endpoint. Questi collegamenti portano alla pagina delle metriche nel portale di Azure per l'endpoint o la distribuzione.
Per accedere alle pagine delle metriche tramite collegamenti disponibili in Studio, seguire questa procedura:
In studio di Azure Machine Learning passare all'area di lavoro.
In Asset selezionare Endpoint.
Selezionare il nome di un endpoint.
In Attributi endpoint selezionare Visualizza metriche.
La pagina delle metriche dell'endpoint viene aperta nel portale di Azure.
In studio di Azure Machine Learning, in una pagina endpoint passare alla sezione relativa a una distribuzione e quindi selezionare Visualizza metriche.
La pagina delle metriche della distribuzione viene aperta nel portale di Azure.
Accedere alle metriche dal portale di Azure
Un altro modo per visualizzare la pagina delle metriche per un endpoint o una distribuzione consiste nel passare direttamente al portale di Azure:
Vai al portale di Azure.
Passare all'endpoint online o alla risorsa di distribuzione.
Gli endpoint e le distribuzioni online sono risorse di Azure Resource Manager. È possibile trovarli passando al proprio gruppo di risorse e quindi cercando i tipi di risorse Endpoint online di Machine Learning e distribuzione online di Machine Learning.
Nella pagina della risorsa, in Monitoraggio selezionare Metriche.
Metriche disponibili
Le metriche visualizzate dipendono dalla risorsa selezionata. Le metriche per gli endpoint online e le distribuzioni online hanno un ambito diverso.
Metriche nell'ambito dell'endpoint
Per informazioni sulle metriche disponibili nell'ambito dell'endpoint online, vedere Metriche supportate per Microsoft.MachineLearningServices/workspaces/onlineEndpoints.
Limitazione della larghezza di banda
La larghezza di banda viene limitata se i limiti di quota vengono superati per gli endpoint online gestiti . Per altre informazioni sui limiti per gli endpoint online, vedere Endpoint online e endpoint batch di Azure Machine Learning nell'articolo sulle quote e sui limiti in Azure Machine Learning. Per determinare se le richieste sono limitate:
- Monitorare la metrica Byte di rete.
- Controllare i campi seguenti nei trailer della risposta:
ms-azureml-bandwidth-request-delay-ms
ems-azureml-bandwidth-response-delay-ms
. I valori dei campi sono i ritardi, in millisecondi, della limitazione della larghezza di banda.
Per altre informazioni, vedere Problemi relativi al limite di larghezza di banda.
Metriche nell'ambito della distribuzione
Per informazioni sulle metriche disponibili nell'ambito di distribuzione, vedere Metriche supportate per Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments.
Creare dashboard e avvisi
In Monitoraggio è possibile creare dashboard e avvisi basati sulle metriche.
Creare dashboard e visualizzare query
È possibile creare dashboard personalizzati in modo da poter visualizzare le metriche da più origini nella portale di Azure, incluse le metriche per l'endpoint online. Per altre informazioni sulla creazione di dashboard e sulla visualizzazione delle query, vedere Creare e condividere dashboard di dati di Log Analytics e Creare dashboard KPI personalizzati con Application Insights.
Creare avvisi
È anche possibile creare avvisi personalizzati in modo da ricevere notifiche sugli aggiornamenti importanti dello stato all'endpoint online:
Nella portale di Azure passare a una pagina delle metriche e quindi selezionare Nuova regola di avviso.
Nella finestra Seleziona un segnale selezionare il segnale per cui si vuole creare un avviso e quindi selezionare Applica.
Nella pagina Crea una regola di avviso immettere una soglia e modificare eventuali altre impostazioni che si desidera modificare. Per altre informazioni sulle impostazioni delle regole di avviso, vedere Configurare le condizioni delle regole di avviso. Selezionare quindi Avanti: Azioni.
Nella finestra Seleziona gruppi di azioni creare o selezionare un gruppo di azioni per specificare cosa accade quando viene attivato l'avviso. Per altre informazioni, vedere Configurare i dettagli della regola di avviso.
Selezionare Rivedi e crea per completare la creazione dell'avviso.
Ridimensionare automaticamente in base alle metriche
È possibile configurare le distribuzioni per la scalabilità automatica in base alle metriche. Per attivare la funzionalità di scalabilità automatica, è possibile usare l'interfaccia utente o il codice.
Le opzioni per il codice sono l'interfaccia della riga di comando di Azure Machine Learning e Azure Machine Learning SDK per Python. Quando si usa il codice, si configurano le condizioni per attivare il ridimensionamento automatico specificando il nome dell'API REST delle metriche.
- Per i nomi delle metriche degli endpoint da usare nel codice, vedere i valori nella colonna Name in REST API (Nome nell'API REST) nella tabella in Supported metrics for Microsoft.MachineLearningServices/workspaces/onlineEndpoints (Metriche supportate per Microsoft.MachineLearningServices/workspaces/onlineEndpoints).
- Per i nomi delle metriche di distribuzione da usare nel codice, vedere i valori nella colonna Name in REST API (Nome nell'API REST) nelle tabelle in Supported metrics for Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments(Metriche supportate per Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments).
Per altre informazioni, vedere Ridimensionare automaticamente gli endpoint online in Azure Machine Learning.
Usare i log
Sono disponibili tre log che è possibile attivare per gli endpoint online:
AmlOnlineEndpointTrafficLog: questo log del traffico consente di controllare le informazioni delle richieste all'endpoint. Questo log è utile nei casi seguenti:
- Una risposta alla richiesta non è 200 e si vogliono altre informazioni. La
ResponseCodeReason
colonna nel log elenca il motivo. Per le descrizioni dei codici di stato e dei motivi, vedere Codici di stato HTTPS nell'articolo sulla risoluzione dei problemi degli endpoint online. - Si vuole cercare il codice di risposta e il motivo della risposta del modello per una richiesta. Le
ModelStatusCode
colonne eModelStatusReason
forniscono queste informazioni. - Si vuole conoscere la durata di una richiesta. I log forniscono una suddivisione della latenza. Tale suddivisione mostra la durata totale, la durata della richiesta, la durata della risposta e il ritardo causato dalla limitazione della rete.
- Si vuole controllare il numero di richieste recenti riuscite e non riuscite. I log forniscono queste informazioni.
- Una risposta alla richiesta non è 200 e si vogliono altre informazioni. La
AmlOnlineEndpointConsoleLog: questo log contiene istruzioni che i contenitori scrivono come output nella console. Questo log è utile nei casi seguenti:
- L'avvio di un contenitore non riesce. Il log della console può essere utile per il debug.
- Si vuole monitorare il comportamento del contenitore e assicurarsi che tutte le richieste siano gestite correttamente.
- Si vuole tracciare una richiesta dal punto di ingresso di rete di un endpoint online al contenitore. È possibile usare una query di Log Analytics che unisce l'ID richiesta con informazioni dai log AmlOnlineEndpointConsoleLog e AmlOnlineEndpointTrafficLog.
- Si vuole eseguire un'analisi delle prestazioni, ad esempio, per determinare il tempo impiegato dal modello per elaborare ogni richiesta.
AmlOnlineEndpointEventLog: questo log contiene informazioni sugli eventi sul ciclo di vita del contenitore. Attualmente, il log fornisce informazioni sui tipi di eventi seguenti:
Nome Message Backoff Il riavvio del backoff non è riuscito nel contenitore Pull completato Immagine del contenitore "<IMAGE_NAME>" già presente nel computer Terminazione Probe di attività del server di inferenza del contenitore non riuscito, verrà riavviato Data di creazione Creazione del fetcher immagine del contenitore Data di creazione Creazione del server di inferenza del contenitore Data di creazione Creazione del montaggio del modello del contenitore LivenessProbeFailed Probe di attività non riuscito: <FAILURE_CONTENT> ReadinessProbeFailed Probe di idoneità non riuscito: <FAILURE_CONTENT> Avviato Avvio del fetcher immagine del contenitore Avviato Avvio del server di inferenza del contenitore Avviato Avvio del montaggio del modello del contenitore Terminazione Arresto del server di inferenza del contenitore Terminazione Arresto del montaggio del modello di contenitore
Attivare i log
Importante
La registrazione usa la funzionalità Log Analytics di Monitoraggio. Se attualmente non si ha un'area di lavoro Log Analytics, è possibile crearne una seguendo la procedura descritta in Creare un'area di lavoro.
Nella portale di Azure passare al gruppo di risorse che contiene l'endpoint e quindi selezionare l'endpoint.
In Monitoraggio selezionare Impostazioni di diagnostica e quindi selezionare Aggiungi impostazione di diagnostica.
Nella finestra Impostazione di diagnostica immettere le informazioni seguenti:
- Accanto a Nome impostazione diagnostica immettere un nome per l'impostazione.
- In Log selezionare le categorie di log da attivare.
- In Dettagli destinazione selezionare Invia all'area di lavoro Log Analytics e quindi selezionare la sottoscrizione e l'area di lavoro Log Analytics da usare.
Seleziona Salva.
Importante
La connessione all'area di lavoro Log Analytics può richiedere fino a un'ora. Attendere un'ora prima di continuare con i passaggi nella sezione successiva.
Log di query
Inviare richieste di assegnazione dei punteggi all'endpoint per creare voci nei log.
Vai al portale di Azure. Per aprire i log, usare una delle opzioni seguenti:
- Passare alla pagina delle proprietà per l'endpoint online. In Monitoraggio, selezionare Log.
- Andare all'area di lavoro Log Analytics. A sinistra selezionare Log.
Chiudere la finestra dell'hub Query visualizzata per impostazione predefinita.
In Altro fare doppio clic su AmlOnlineEndpointConsoleLog. Se non viene visualizzato AmlOnlineEndpointConsoleLog, immettere tale valore nel campo di ricerca.
Selezionare Esegui.
Query di esempio
Le query di esempio sono disponibili per l'uso. Per visualizzare le query, seguire questa procedura:
Dettagli di righe e colonne
Le tabelle seguenti forniscono informazioni dettagliate sui dati archiviati in ogni log:
AmlOnlineEndpointTrafficLog
Proprietà | Descrizione |
---|---|
metodo | Metodo richiesto dal client. |
Percorso | Percorso richiesto dal client. |
SubscriptionId | ID sottoscrizione di Machine Learning dell'endpoint online. |
AzureMLWorkspaceId | ID dell'area di lavoro di Machine Learning dell'endpoint online. |
AzureMLWorkspaceName | Nome dell'area di lavoro di Machine Learning dell'endpoint online. |
EndpointName | Nome dell'endpoint online. |
DeploymentName | Nome della distribuzione online. |
Protocollo | Protocollo della richiesta. |
ResponseCode | Codice di risposta finale restituito al client. |
ResponseCodeReason | Motivo del codice di risposta finale restituito al client. |
ModelStatusCode | Codice di stato della risposta del modello. |
ModelStatusReason | Motivo dello stato della risposta dal modello. |
RequestPayloadSize | Byte totali ricevuti dal client. |
ResponsePayloadSize | Byte totali inviati al client. |
UserAgent | Intestazione user-agent della richiesta, inclusi i commenti ma troncati a un massimo di 70 caratteri. |
XRequestId | ID richiesta generato da Azure Machine Learning per la traccia interna. |
XMSClientRequestId | ID di rilevamento generato dal client. |
TotalDurationMs | Durata in millisecondi dall'ora di inizio della richiesta all'ora di invio dell'ultimo byte di risposta al client. Se il client si disconnette, la durata viene presa dall'ora di inizio all'ora di disconnessione del client. |
RequestDurationMs | Durata in millisecondi dall'ora di inizio della richiesta all'ora di ricezione dell'ultimo byte della richiesta dal client. |
ResponseDurationMs | Durata in millisecondi dall'ora di inizio della richiesta all'ora di lettura del primo byte della risposta dal modello. |
RequestThrottlingDelayMs | Ritardo in millisecondi nel trasferimento dei dati della richiesta a causa della limitazione di rete. |
ResponseThrottlingDelayMs | Ritardo in millisecondi nel trasferimento dei dati di risposta a causa della limitazione della rete. |
AmlOnlineEndpointConsoleLog
Proprietà | Descrizione |
---|---|
TimeGenerated | Timestamp UTC dell'ora in cui viene generato il log |
OperationName | Operazione associata al record di log |
InstanceId | ID dell'istanza che genera il record di log |
DeploymentName | Nome della distribuzione associata al record di log |
ContainerName | Nome del contenitore in cui viene generato il log |
Message | Contenuto del log |
AmlOnlineEndpointEventLog
Proprietà | Descrizione |
---|---|
TimeGenerated | Timestamp UTC dell'ora in cui viene generato il log |
OperationName | Operazione associata al record di log |
InstanceId | ID dell'istanza che genera il record di log |
DeploymentName | Nome della distribuzione associata al record di log |
Nome | Il nome dell'evento |
Message | Contenuto dell'evento |
Usare Application Insights
Gli ambienti curati includono l'integrazione con Application Insights. Grazie a questa integrazione, le metriche e i log predefiniti vengono inviati ad Application Insights. Di conseguenza, è possibile usare le funzionalità predefinite di Application Insights per un'ulteriore analisi. Tra gli esempi di queste funzionalità sono incluse le metriche attive, la ricerca delle transazioni, la visualizzazione errori e la visualizzazione delle prestazioni.
Per maggiori informazioni, consultare la sezione Panoramica di Application Insights.
È possibile attivare l'integrazione con Application Insights quando si crea una distribuzione online in Studio. Nella pagina Distribuzione, in Diagnostica di Application Insights selezionare Abilitato.
Quando si attiva Application Insights, è possibile visualizzare grafici di monitoraggio attività di alto livello per un endpoint online gestito. In Studio passare alla pagina dell'endpoint e quindi selezionare la scheda Monitoraggio .