Cloud Trace für Python einrichten

Sie können Cloud Trace für Python-Anwendungen mit OpenCensus aktivieren. OpenCensus bietet eine Reihe von Instrumentierungsbibliotheken zum Erfassen von Trace- und Messwertdaten, die mit mehreren Back-Ends funktionieren. Aktuelle Informationen zu OpenCensus für Python sowie zusätzliche Dokumentation und Beispiele finden Sie unter census-Instrumentation/opencensus-python.

Installation und Konfiguration

Sie müssen den Stackdriver-Exporter und die OpenCensus-Tracer-Pakete importieren, um Traces zu erfassen. Ihre Anwendung muss außerdem die Objekte StackdriverExporter und Tracer instanziieren:

from opencensus.ext.stackdriver import trace_exporter as stackdriver_exporter
import opencensus.trace.tracer

def initialize_tracer(project_id):
    exporter = stackdriver_exporter.StackdriverExporter(
        project_id=project_id
    )
    tracer = opencensus.trace.tracer.Tracer(
        exporter=exporter,
        sampler=opencensus.trace.tracer.samplers.AlwaysOnSampler()
    )

    return tracer

Weitere Informationen zum Exporter finden Sie unter OpenCensus Tracing.

Wenn Sie die Google Cloud-Infrastruktur ausführen, müssen Sie project_id nicht auf Ihre Google Cloud-Projekt-ID festlegen. Wenn Sie dieses Feld nicht festlegen, erfasst die Clientbibliothek für Python diese Daten automatisch von einem Google Cloud-Metadatenserver.

Wenn Sie nicht die Google Cloud-Infrastruktur ausführen, müssen Sie Ihre Google Cloud-Projekt-ID für Ihre Anwendung angeben.

Unabhängig von Ihrer Infrastruktur bestimmt die Python-Bibliothek google-cloud, die von OpenCensus aufgerufen wird, automatisch, ob die Umgebungsvariable GOOGLE_CLOUD_PROJECT festgelegt ist. Falls dies der Fall ist, verwendet die Bibliothek den Wert von GOOGLE_CLOUD_PROJECT als Ihre Google Cloud-Projekt-ID. Weitere Informationen zur Authentifizierung bei Verwendung von Clientbibliotheken finden Sie unter Authentifizierung. Allgemeine Informationen finden Sie unter Erste Schritte bei der Authentifizierung.

So legen Sie die Umgebungsvariable fest:

Linux oder macOS

export GOOGLE_CLOUD_PROJECT=your-project-id

Windows

set GOOGLE_CLOUD_PROJECT=your-project-id

PowerShell:

$env:GOOGLE_CLOUD_PROJECT="your-project-id"

Leistungsoptimierung

Um die Auswirkungen auf die Leistung bei der Berichterstellung von Trace-Daten zu reduzieren, lassen Sie diese Daten von einem Hintergrundprozess senden. Um die Hintergrundberichte von Trace-Daten zu konfigurieren, schließen Sie transport=AsyncTransport bei der Initialisierung von StackdriverExporter ein.

Ihre Plattform konfigurieren

Sie können Cloud Trace in Google Cloud und anderen Plattformen verwenden.

In Google Cloud ausführen

Wenn Ihre Anwendung in Google Cloud ausgeführt wird, müssen Sie der Clientbibliothek keine Anmeldedaten in Form eines Dienstkontos bereitstellen. Sie müssen jedoch gewährleisten, dass auf Ihrer Google Cloud Platform der Zugriffsbereich der Cloud Trace API aktiviert ist.

Für die folgenden Konfigurationen wird die Cloud Trace API über die Standardeinstellungen für den Zugriffsbereich aktiviert:

  • Flexible App Engine-Umgebung
  • App Engine-Standardumgebung

  • Google Kubernetes Engine (GKE)

  • Compute Engine

Wenn Sie benutzerdefinierte Zugriffsbereiche verwenden, müssen Sie gewährleisten, dass der Zugriffsbereich der Cloud Trace API aktiviert ist. Geben Sie für gcloud-Nutzer Zugriffsbereiche mit dem Flag --scopes an und fügen Sie den Cloud Trace API-Zugriffsbereich trace.append hinzu. So erstellen Sie beispielsweise einen GKE-Cluster, für den nur die Cloud Trace API aktiviert ist:

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

Lokal und extern ausführen

Wenn Ihre Anwendung außerhalb von Google Cloud ausgeführt wird, müssen Sie Authentifizierungsdaten in Form eines Dienstkontos für die Clientbibliothek angeben. Das Dienstkonto muss die Cloud Trace-Agent-Rolle enthalten. Informationen dazu finden Sie unter Dienstkonto erstellen.

Google Cloud-Clientbibliotheken verwenden Standardanmeldedaten für Anwendungen, um die Anmeldedaten Ihrer Anwendung zu finden. Sie geben diese Anmeldedaten an, indem Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festlegen:

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"

Beispiel-Flask-Anwendung

@app.route('/index.html', methods=['GET'])
def index():
    tracer = app.config['TRACER']
    tracer.start_span(name='index')

    # Add up to 1 sec delay, weighted toward zero
    time.sleep(random.random() ** 2)
    result = "Tracing requests"

    tracer.end_span()
    return result

Traces ansehen

Nach der Bereitstellung können Sie die Traces im Trace Viewer der Cloud Console anzeigen.

Trace-Anzeige öffnen

Fehlerbehebung

Informationen zur Behebung von Problemen mit Cloud Trace finden Sie auf der Seite zur Fehlerbehebung.

Ressourcen