Nota

Monitorare le applicazioni utilizzando OCI Application Performance Monitoring e OpenTelemetry

Introduzione

Il monitoraggio delle applicazioni che variano nei componenti dello stack può spesso essere impegnativo. Un approccio unificato per monitorare questi componenti consente visibilità end-to-end e insight sui problemi che possono sorgere. OpenTelemetry è uno standard di settore per la raccolta di dati di trace, metriche e log per la maggior parte dei linguaggi di programmazione. Può fornire insight potenti se combinato con i servizi di osservabilità e gestione di Oracle Cloud Infrastructure (OCI), come OCI Application Performance Monitoring e OCI Logging Analytics.

Diagramma che mostra il flusso dati OpenTelemetry.

OCI Application Performance Monitoring offre visibilità approfondita sulle prestazioni delle applicazioni e consente di diagnosticare rapidamente i problemi per offrire un livello di servizio coerente. Ciò include il monitoraggio dei molteplici componenti e della logica dell'applicazione distribuiti tra client, servizi di terze parti e livelli di elaborazione back-end, on-premise o nel cloud.

Diagramma che mostra la panoramica del servizio Application Performance Monitoring OCI.

OCI Logging Analytics è una soluzione cloud in OCI che indicizza, arricchisce, aggrega, esplora, cerca, analizza, correla, visualizza e monitora tutti i dati di log dalle applicazioni e dall'infrastruttura di sistema. Ottieni insight potenti dai dati di log utilizzando modelli AI/ML curati creati all'interno di OCI Logging Analytics.

Diagramma che mostra la panoramica del servizio OCI Logging Analytics.

OpenTelemetry dispone di varie implementazioni per diversi linguaggi di programmazione e viene costantemente aggiornato o sviluppato. Lo scopo di utilizzare questo framework è quello di avere un modo unificato e standardizzato per raccogliere e inviare dati di monitoraggio.

In questa esercitazione verrà descritto come creare uno strumento per un'applicazione con OpenTelemetry ed esportare i dati raccolti in servizi OCI quali OCI Application Performance Monitoring e OCI Logging Analytics.

Obiettivi

Prerequisiti

GitHub Esempio

Se si desidera implementare il monitoraggio per le applicazioni MERN/MEAN/MEVN, utilizzare il repository GitHub oci-observability-and-management. Questo repository include file per:

Task 1: configurare OCI Application Performance Monitoring

  1. Creare un dominio APM (Application Performance Monitoring) OCI

    Nota: per i task dei prerequisiti, consultare la documentazione di OCI Application Performance Monitoring.

    1. Eseguire il login a OCI Console e passare a Osservabilità e gestione, Gestione prestazioni applicazione e Amministrazione per aprire la pagina di amministrazione di OCI Application Performance Monitoring.

    2. Fare clic su Crea dominio APM e immettere un nome di dominio. Tenere presenti le informazioni riportate di seguito nella pagina del dominio Application Performance Monitoring OCI.

      • Endpoint di caricamento dati: URL per l'invio dei dati a Application Performance Monitoring OCI.

      • Chiave dati pubblica: utilizzata con l'agente del browser Application Performance Monitoring OCI.

      • Chiave dati privata: per connettersi con i raccoglitori di dati, ad esempio OpenTelemetry.

      Immagine che mostra i dettagli del dominio Application Performance Monitoring OCI.

  2. Strumentare un'applicazione

    Per monitorare il frontend di un'applicazione, creare uno strumento per l'agente del browser Application Performance Monitoring OCI. Per ulteriori informazioni, vedere Fasi della strumentazione del browser/client.

    Strumentazione server

    • Per ottenere trace end-to-end, è necessaria la propagazione del contesto dalle tracce frontend di un browser/client al server. Una cosa da tenere a mente quando si fa così è garantire che ci sono intestazioni HTTP per fornire il contesto. Per impostazione predefinita, OpenTelemetry utilizza W3C (traceparent) per propagare automaticamente il contesto. Esistono altri tipi di intestazione che possono essere utilizzati ma che devono essere contabilizzati nel codice dell'applicazione.

      Diagramma dei dati di intestazione HTTP per la propagazione del contesto.

    • Assicurarsi di aggiungere il seguente codice con lo snippet di JavaScript che esegue la strumentazione browser/client.

      window.apmrum.traceSupportingEndpoints = [ { headers: [ 'W3C'], hostPattern: '.*' } ];
      
    • Strumentare la strumentazione automatica o il backend manuale in base alle informazioni disponibili. Vedere passi per il linguaggio di programmazione.

    Esempi in GitHub

Task 2: configurare OCI Logging Analytics

  1. Invia log applicazione

    Invia i log dell'applicazione a OCI Logging Analytics che consente di correlare trace, metriche e log per ottenere una visibilità completa dell'applicazione. I log possono essere abilitati utilizzando librerie di log standard e appender di log personalizzato. L'appender di log deve essere creato per inviare i log utilizzando l'SDK fornito da OCI o gli endpoint REST come mostrato.

    Diagramma che mostra il flusso dati di log.

  2. Crea una chiave di firma API

    1. Andare a OCI Console e andare a Utente, Impostazioni utente.

    2. Selezionare Chiavi API in Risorse.

    3. Fare clic su Aggiungi chiave API, Genera coppia di chiavi API, Scarica chiave privata e Aggiungi.

    4. Copiare il contenuto da Anteprima file di configurazione e fare clic su Chiudi.

      Immagine di un'anteprima del file di configurazione in OCI.

  3. Creazione di un file di configurazione

    Creare una directory (.oci) e un file di configurazione con contenuto dall'anteprima del file di configurazione e percorso al file di chiavi private. Di seguito è riportato un esempio del file di configurazione.

    [DEFAULT]
    user= [User OCID]
    fingerprint= [API Key Fingerprint]
    tenancy= [Tenancy OCID]
    region= [Region]
    key_file= [Path to Private Key File]
    
  4. Creare un parser di log

    1. Andare a OCI Console e andare a Osservabilità e gestione, Logging Analytics, Amministrazione.

    2. Fare clic su Parser, Crea parser e selezionare Tipo come JSON.

    3. Immettere il contenuto del log JSON di esempio, analizzerà ed estrarrà i campi e lo mapperà a nomi di campo specifici, quindi fare clic su Salva modifiche.

      Immagine di una configurazione del parser di log in OCI.

  5. Creare un'origine log

    1. Andare a OCI Console e andare a Logging Analytics, Amministrazione, Origini, Crea origine.

    2. Immettere Tipo di origine come File e Tipi di entità come Host (Linux).

    3. In Parser specifico selezionare il parser creato nel task 2.4 e fare clic su Crea origine.

      Immagine dei dettagli di un'origine log in OCI.

  6. Crea un gruppo di log

    1. Andare a OCI Console e andare a Logging Analytics, Amministrazione, Gruppi di log, Crea gruppo di log.

    2. Immettere Nome, Descrizione del gruppo di log e fare clic su Crea.

      Nota: tenere presente l'OCID (Oracle Cloud Identity) del gruppo di log che verrà utilizzato in un secondo momento.

      Immagine dei dettagli di un gruppo di log in OCI.

      Immagine che evidenzia un OCID gruppo di log in OCI.

      Immagine che evidenzia un OCID compartimento in OCI.

  7. Recupera i dettagli dello spazio di nomi

    1. Andare alla console OCI e andare a Identità, Compartimenti, quindi fare clic sul compartimento in cui viene creata l'origine log e copiare l'OCID del compartimento.

    2. Aprire Cloud Shell ed eseguire il comando seguente per ottenere lo spazio di nomi.

      oci os ns get -c compartmentID
      

    Immagine che mostra come ottenere i dettagli dello spazio di nomi in una console OCI.

  8. Creazione di un appender di log

    È possibile creare un appender di log personalizzato utilizzando gli SDK di OCI Logging Analytics forniti per diversi linguaggi di programmazione come Java, Python, .Net, TypeScript/JavaScript, Go e Ruby o utilizzare gli endpoint OCI API Rest. Per ulteriori informazioni, vedere Software Development Kits (SDK) e API Reference and Endpoints.

    Esempio in GitHub: Appender di log - JavaScript (stack MERN).

Prendere nota dei parametri riportati di seguito necessari per inizializzare e inviare i log a OCI Logging Analytics dai passi precedenti.

Una volta creati i record di log per diversi livelli di log (debug, informazioni, avvertenza ed errore) tramite appender di log, verranno inviati a OCI Logging Analytics ed è possibile visualizzare i record di log in Explorer log come mostrato di seguito.

Vista Log Explorer in OCI Logging Analytics.

Task 3: Correlare tracce e log

OpenTelemetry include TraceId e SpanId nei record di log e consente di correlare direttamente log e trace corrispondenti allo stesso contesto di esecuzione. L'applicazione esegue i trace e gli intervalli dei flussi in Application Performance Monitoring OCI ed esegue il login al servizio OCI Logging Analytics. OCI Application Performance Monitoring offre un modo semplice per spostarsi dai trace e dagli intervalli ai log in OCI Logging Analytics con un solo clic utilizzando una configurazione di drill-down.

I drill-down sono collegamenti ad altri servizi in OCI o altri servizi personalizzati utilizzando URL personalizzabili, inclusi gli attributi degli intervalli (ad esempio: loganalytics/explorer?search=<OciInstanceId> dove ociInstanceId è un attributo di intervallo). Seguire i passi riportati di seguito per configurare i drill-down in Application Performance Monitoring OCI.

GIF che mostra un esempio di drill-down da Application Performance Monitoring OCI ad OCI Logging Analytics.

Task 4: creare un dashboard personalizzato

Una volta eseguito il trace di dati e metriche nell'infrastruttura OCI, utilizzarli per rappresentarli visivamente. Creare un dashboard personalizzato è semplice, basta trascinare e rilasciare i widget necessari e modificare i dati di origine (dati metrica, traccia o log).

Per ulteriori informazioni sui dashboard personalizzati, vedere:

Dashboard di esempio creato per un'applicazione MERN.

Immagine che mostra un dashboard personalizzato in Application Performance Monitoring OCI.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione del prodotto, visitare Oracle Help Center.