Stackdriver Trace instellen voor PHP

Stackdriver Trace kan worden ingeschakeld voor PHP-apps met behulp van de Stackdriver Trace-bibliotheek voor PHP en de OpenCensus-bibliotheek voor PHP.

De bibliotheek installeren

Installeer het OpenCensus Stackdriver Exporter Composer-pakket met de volgende opdracht (hiermee worden ook OpenCensus- en Stackdriver Trace Composer-pakketten geïnstalleerd):

composer require opencensus/opencensus-exporter-stackdriver

We raden u aan ook de OpenCensus-extensie te installeren met de volgende opdracht:

pecl install opencensus-alpha

U moet ook de volgende regel toevoegen aan uw php.ini:

extension=opencensus.so

Als u Windows gebruikt, downloadt u het DLL-bestand van de pecl-downloadpagina naar de extensiemap van uw PHP-installatie en voegt u de volgende regel toe aan uw php.ini:

extension=opencensus.dll

De opencensus-extensie is vereist als u de hieronder beschreven framework-integraties wilt gebruiken.

De bibliotheek inschakelen

Voer de volgende stappen uit om de Stackdriver Trace-bibliotheek voor PHP in te schakelen:

  1. Importeer de klassen

    use OpenCensus\Trace\Exporter\StackdriverExporter;
    use OpenCensus\Trace\Tracer;
    

  2. Initialiseer de exporter

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

  3. Start de tracer

    Tracer::start($exporter);

Plaats de code boven aan het script om het beste resultaat te krijgen.

De client configureren

U kunt het gedrag van de Stackdriver Trace-bibliotheek aanpassen voor PHP. Raadpleeg de configuratie van de exporter en de configuratie van de tracer voor een lijst met mogelijke configuratie-opties.

Een custom traceringsbereik toevoegen

De Stackdriver Trace-bibliotheek voor PHP maakt automatisch een tracering voor elk HTTP-verzoek. U kunt ook custom traceringsbereiken toevoegen binnen het verzoek:

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

Frameworkintegraties

De OpenCensus-bibliotheek biedt nuttige integraties voor webframeworks en -functies. Zie beschikbare integraties en voorbeelden voor sommige frameworks voor meer informatie.

Uitgevoerd op Google Cloud Platform

U hoeft geen verificatiegegevens in te voeren voor instanties die op Google Cloud Platform worden uitgevoerd, zolang het API-toegangsbereik van Stackdriver Trace voor die instantie is ingeschakeld.

Flexibele App Engine-omgeving

Op Google App Engine is het toegangsbereik van de Stackdriver Trace API standaard ingeschakeld, en de Stackdriver Trace-bibliotheek voor PHP kan worden gebruikt zonder inloggegevens of een project-ID te verstrekken.

De flexibele omgeving van App Engine biedt een prestatie-optimalisatie voor het rapporteren van de traceringsgegevens in een achtergrondproces. Gebruik de optie async bij het initialiseren van de StackdriverExporter en gebruik enable_stackdriver_integration in de sectie runtime_config in uw app.yaml-bestand. Doe dit als volgt:

enable_stackdriver_integration: true

Zie ook de configuratie van de exporter.

Kubernetes Engine

Op Google Kubernetes Engine moet u het OAuth-bereik trace.append expliciet toevoegen bij het maken van het cluster:

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

Compute Engine

Voor VM-instanties van Google Compute Engine moet u het Stackdriver Trace API-toegangsbereik trace.append expliciet inschakelen voor elke instantie. Wanneer u een nieuwe instantie maakt via de Google Cloud Platform Console, selecteert u de volgende waarden in het gedeelte Identiteit en API-toegang van het venster Een instantie maken:

  1. Selecteer Standaard Compute Engine-serviceaccount bij Serviceaccount
  2. Selecteer Volledige toegang tot alle Cloud API's toestaan bij Toegangsbereik

Als u iets anders dan het standaardserviceaccount van Compute Engine wilt gebruiken, raadpleegt u de documentatie voor het maken en inschakelen van serviceaccounts voor instanties en het gedeelte Lokaal en elders uitvoeren hieronder. Het belangrijkste is dat het serviceaccount dat u gebruikt de rol Cloud Trace Agent heeft.

Lokaal en elders uitvoeren

Als u de Stackdriver Trace buiten Google Cloud Platform wilt uitvoeren, moet u uw GCP-project-ID en toepasselijke serviceaccountgegevens rechtstreeks aan Stackdriver Trace leveren. Dit geldt voor het uitvoeren van de bibliotheek op uw eigen werkstation, op de computers van uw datacenter of op de VM-instanties van een andere cloudprovider. Dit zijn de stappen:

  1. Maak een nieuw serviceaccount in uw GCP-project. Het moet ten minste de rol Cloud Trace Agent bevatten. Zie Een serviceaccount maken voor instructies.

  2. Download het bestand met de belangrijkste inloggegevens van het serviceaccount naar uw computer. Zie Serviceaccountsleutels maken en beheren voor instructies.

  3. Verstrek uw GCP project-ID en de locatie van het gegevensbestand aan Stackdriver Trace met behulp van een van de parameters (project_id en keyfile) of omgevingsvariabelen (GOOGLE_CLOUD_PROJECT en GOOGLE_APPLICATION_CREDENTIALS). Deze methoden worden hieronder getoond:

Definieer de omgevingsvariabelen waar ze zichtbaar zijn voor de Stackdriver Trace. Als ze op grotere schaal zichtbaar zijn, kunnen ze de bestaande rechten voor andere apps verstoren.

Linux of macOS

export GOOGLE_CLOUD_PROJECT=your-project-id
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

Windows

Opdrachtvenster:

set GOOGLE_CLOUD_PROJECT=your-project-id
set GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

Powershell:

$env:GOOGLE_CLOUD_PROJECT="your-project-id"
$env:GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"

De traceringen bekijken

Na de implementatie kunt u de traceringen in de Trace Viewer van de GCP-console bekijken.

Ga naar de pagina Trace Viewer.