Configurazione di Cloud Trace per PHP

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Puoi attivare Cloud Trace per le applicazioni PHP utilizzando OpenCensus. OpenCensus è un set di librerie di strumentazione per la raccolta di dati di tracce e metriche che funzionano con più backend. Per i dettagli più recenti su OpenCensus per PHP, insieme a documentazione ed esempi aggiuntivi, vai a opencensus-php-exporter-stackdriver.

Installazione della raccolta

  1. Installa il pacchetto compositore dell'esportatore Stackdriver di OpenCensus:

    composer require opencensus/opencensus-exporter-stackdriver
    

    Il comando precedente installa anche i pacchetti di compositore OpenCensus e Trace.

  2. Per utilizzare le integrazioni di frame descritte in una sezione successiva di questa pagina, installa l'estensione OpenCensus:

    pecl install opencensus-alpha
    
  3. Aggiungi la seguente riga al tuo file php.ini:

    extension=opencensus.so
    
  4. Se utilizzi Windows, scarica il file DLL dalla pagina di download pecl nella directory di estensione dell'installazione di PHP e aggiungi la seguente riga al file php.ini:

    extension=opencensus.dll
    

Configurazione del client

Per abilitare la libreria OpenCensus per PHP, procedi nel seguente modo:

  1. Importa le classi richieste:

    use OpenCensus\Trace\Exporter\StackdriverExporter;
    use OpenCensus\Trace\Tracer;
    
  2. Inizializza l'oggetto StackdriverExporter:

    $exporter = new StackdriverExporter([
        'clientConfig' => [
            'projectId' => $projectId
        ]
    ]);

    Se esegui l'infrastruttura Google Cloud, non devi impostare projectId sul tuo ID progetto Google Cloud. Se non imposti questo campo, la libreria client per PHP raccoglie automaticamente questi dati da un server metadati Google Cloud.

    Se non utilizzi l'infrastruttura Google Cloud, devi fornire il tuo ID progetto Google Cloud alla tua applicazione.

    Indipendentemente dalla tua infrastruttura, per PHP, quando non imposti esplicitamente l'ID progetto Google Cloud, la libreria PHP google-cloud, richiamata da OpenCensus, determina automaticamente se è impostata la variabile di ambiente GOOGLE_CLOUD_PROJECT e, in questo caso, la libreria utilizza il valore GOOGLE_CLOUD_PROJECT come ID progetto Google Cloud. Per ulteriori informazioni, consulta Autenticazione. Per impostare la variabile di ambiente:

    Linux o macOS

    export GOOGLE_CLOUD_PROJECT=your-project-id

    Windows

    set GOOGLE_CLOUD_PROJECT=your-project-id

    PowerShell:

    $env:GOOGLE_CLOUD_PROJECT="your-project-id"
  3. Avvia l'utilità di monitoraggio:

    Tracer::start($exporter);

Crea l'esportatore e avvia l'utilità di traccia il prima possibile nell'applicazione.

Personalizzazioni

Puoi personalizzare il comportamento della libreria di Cloud Trace per PHP. Per un elenco delle opzioni di configurazione dell'esportatore, vai alla pagina opencensus-php-exporter-stackdriver o all'API PHP OpenCensus.

L'ambiente flessibile di App Engine consente di ridurre l'impatto delle prestazioni dei report sui dati di traccia, in quanto i dati vengono inviati da un processo in background. Per attivare i report in background:

  1. Modifica la sezione runtime_config del tuo file app.yaml per specificare il flag enable_stackdriver_integration:

    enable_stackdriver_integration: true

    Questo flag fa sì che il daemon di elaborazione batch PHP, BatchRunner, venga ignorato.

  2. Imposta la variabile di ambiente IS_BATCH_DAEMON_RUNNING su true.

  3. Includi l'opzione async con il valore impostato su true nelle opzioni clientConfig trasmesse all'OpenCensus StackdriverExporter. Per maggiori dettagli, vedi StackdriverExporter.

Aggiungi intervallo di traccia personalizzato

La libreria Cloud Trace per PHP crea automaticamente un record di traccia per ogni richiesta HTTP. Puoi anche aggiungere intervalli di traccia personalizzati all'interno della richiesta:

Tracer::inSpan(
    ['name' => 'slow_function'],
    function () {
        sleep(1);
    }
);

Integrazioni di framework

La libreria OpenCensus fornisce utili integrazioni per framework e funzioni web. Per maggiori dettagli, vedi Integrazioni disponibili ed Esempi per alcuni framework.

Configura la tua piattaforma

Puoi utilizzare Cloud Trace su Google Cloud e altre piattaforme.

Esecuzione in Google Cloud

Quando la tua applicazione è in esecuzione su Google Cloud, non devi fornire le credenziali di autenticazione sotto forma di account di servizio alla libreria client. Tuttavia, devi assicurarti che l'ambito di accesso all'API Cloud Trace sia abilitato nella tua piattaforma Google Cloud.

Per un elenco degli ambienti Google Cloud supportati, consulta la pagina Assistenza per l'ambiente.

Per le seguenti configurazioni, le impostazioni predefinite dell'ambito di accesso abilitano l'API Cloud Trace:

  • Ambiente flessibile di App Engine
  • Ambiente standard di App Engine

  • Google Kubernetes Engine (GKE)

  • Compute Engine

  • Cloud Run

Se utilizzi ambiti di accesso personalizzati, devi assicurarti che l'ambito di accesso all'API Cloud Trace sia abilitato:

  • Per informazioni su come configurare gli ambiti di accesso per il tuo ambiente utilizzando Google Cloud Console, consulta Configurazione del progetto Google Cloud.

  • Per gli utenti gcloud, specifica gli ambiti di accesso utilizzando il flag --scopes e includi l'ambito di accesso API Cloud Trace trace.append. Ad esempio, per creare un cluster GKE con solo l'API Cloud Trace abilitata, segui questi passaggi:

    gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append

Esecuzione locale e altrove

Se la tua applicazione viene eseguita al di fuori di Google Cloud, devi fornire le credenziali di autenticazione sotto forma di account di servizio alla libreria client. L'account di servizio deve contenere il ruolo di agente Cloud Trace. Per le istruzioni, vedi Creare un account di servizio.

Le librerie client di Google Cloud utilizzano le credenziali predefinite dell'applicazione per trovare le credenziali dell'applicazione.

Per fornire queste credenziali, puoi utilizzare uno dei tre metodi seguenti:

  • Esegui gcloud auth application-default login

  • Posiziona l'account di servizio in un percorso predefinito per il tuo sistema operativo. Di seguito sono elencati i percorsi predefiniti per Windows e Linux:

    • Windows: %APPDATA%/gcloud/application_default_credentials.json

    • Linux: $HOME/.config/gcloud/application_default_credentials.json

  • Imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS sul percorso del tuo account di servizio:

Linux/macOS

    export GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

Windows

    set GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="path-to-your-service-accounts-private-key"

Visualizzazione delle tracce

Dopo il deployment, puoi visualizzare le tracce in Visualizzatore Trace di Google Cloud Console.

Vai alla pagina Visualizzatore tracce

Risolvere i problemi

Per informazioni sulla risoluzione dei problemi con Cloud Trace, consulta la pagina per la risoluzione dei problemi.

Risorse