Menggunakan rekaman aktivitas sisi klien

Halaman ini menjelaskan cara mengaktifkan rekaman aktivitas sisi klien dengan OpenTelemetry saat Anda menggunakan library klien Cloud Storage untuk berinteraksi dengan Cloud Storage. Anda dapat mengumpulkan dan melihat data rekaman aktivitas menggunakan library klien Cloud Storage yang didukung berikut:

Ringkasan

Dengan mengaktifkan rekaman aktivitas di library klien Cloud Storage, Anda dapat memantau performa, menemukan masalah latensi, dan melakukan proses debug dengan cepat untuk permintaan Cloud Storage. Dengan rekaman aktivitas, Anda dapat melihat urutan permintaan yang telah selesai, yang memberikan tampilan mendetail tentang cara permintaan diterima, dikelola, dan direspons oleh Cloud Storage. Satu trace terdiri dari beberapa span, yang merupakan catatan mendetail dengan stempel waktu dari setiap fungsi atau operasi yang dilakukan aplikasi Anda di seluruh permintaan Cloud Storage.

Manfaat

Mengumpulkan dan menyebarkan data rekaman aktivitas memberikan manfaat berikut untuk aplikasi Anda:

  • Visibilitas performa yang ditingkatkan: karena data rekaman aktivitas dihasilkan dalam hampir real-time saat Cloud Storage menyelesaikan setiap permintaan yang Anda buat, Anda dapat mengidentifikasi bottleneck performa dan mendeteksi masalah latensi dengan cepat.

  • Penanganan error: Anda dapat menentukan tempat terjadinya masalah, mempercepat analisis akar masalah, dan mengurangi periode nonaktif menggunakan informasi tentang setiap permintaan Cloud Storage yang diberikan dalam rekaman aktivitas.

Cara kerja rekaman aktivitas sisi klien

Bagian berikut memberikan gambaran mendetail tentang cara kerja pengumpulan rekaman aktivitas.

Cara kerja pengumpulan rekaman aktivitas dengan OpenTelemetry

Library klien Cloud Storage mendukung pengumpulan data rekaman aktivitas menggunakan OpenTelemetry SDK untuk menyiapkan komponen berikut yang diperlukan untuk mengumpulkan dan menyebarkan data rekaman aktivitas:

  • Penyedia trace: digunakan oleh library klien Cloud Storage, penyedia trace bertanggung jawab untuk membuat dan mengelola sistem pelacakan, termasuk membuat dan mengelola trace dan span di aplikasi Anda.

  • Pengekspor trace: digunakan oleh OpenTelemetry SDK, pengekspor trace bertanggung jawab untuk mengirim data trace ke platform visibilitas backend seperti Cloud Trace, tempat Anda dapat menganalisis dan memvisualisasikan data trace. Untuk mempelajari lebih lanjut eksportir rekaman aktivitas, lihat Cara kerja eksportir rekaman aktivitas.

Cara kerja pengekspor rekaman aktivitas

Mengonfigurasi rekaman aktivitas menggunakan OpenTelemetry SDK mencakup pemilihan backend observabilitas untuk mengekspor data Anda ke tempat data tersebut dianalisis, disimpan, dan divisualisasikan. Meskipun Anda dapat mengekspor data rekaman aktivitas ke backend visibilitas apa pun yang Anda pilih, sebaiknya gunakan Cloud Trace, yang dapat diakses menggunakan konsol Google Cloud dan menyediakan integrasi dengan layanan Google Cloud lain.

Setelah penyedia rekaman aktivitas dan eksportir rekaman aktivitas dikonfigurasi dan diaktifkan, Anda dapat melihat data rekaman aktivitas secara hampir real-time saat rekaman aktivitas dan span dihasilkan untuk setiap permintaan Cloud Storage.

Dengan menggunakan Cloud Trace Explorer di konsol Google Cloud, Anda dapat melihat setiap rekaman aktivitas yang berisi hal berikut:

  • Tampilan tingkat tinggi permintaan Cloud Storage dari awal hingga akhir.

  • Beberapa span, setiap span merekam satu operasi berstempel waktu dalam permintaan Cloud Storage yang dilakukan.

Untuk membaca lebih lanjut tentang rekaman aktivitas dan span, lihat dokumentasi OpenTelemetry tentang rekaman aktivitas dan span.

Harga

Data rekaman aktivitas dapat dikenai biaya. Biaya didasarkan pada jumlah span trace yang diserap dan dipindai oleh Cloud Trace. Untuk mempelajari lebih lanjut contoh harga dan span trace yang dapat ditagih, lihat Biaya Cloud Trace.

Sebelum memulai

Sebelum dapat mengumpulkan rekaman aktivitas untuk penggunaan Cloud Storage API, Anda harus menyelesaikan langkah-langkah berikut:

  1. Instal library klien Cloud Storage.

  2. Siapkan autentikasi.

  3. Enable the Cloud Trace API.

    Enable the API

  4. Aktifkan Cloud Storage API.

    Mengaktifkan API

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna menulis rekaman aktivitas ke Cloud Trace, minta administrator untuk memberi Anda peran IAM Cloud Trace Agent (roles/coudtrace.agent) pada project yang digunakan oleh klien.

Peran bawaan ini berisi izin cloudtrace.traces.patch, yang diperlukan untuk menulis rekaman aktivitas ke Cloud Trace.

Anda mungkin juga bisa mendapatkan izin ini dengan peran standar, atau Anda dapat membuat peran khusus untuk memberikan izin tertentu. Untuk mengetahui petunjuk cara memberikan peran pada project, lihat Memberikan atau mencabut peran. Untuk informasi selengkapnya tentang peran Cloud Trace Agent, lihat dokumentasi Identity and Access Management (IAM).

Mengonfigurasi pelacakan untuk aplikasi Anda

Gunakan petunjuk berikut untuk mengonfigurasi pelacakan dan mulai mengumpulkan data pelacakan menggunakan library klien Cloud Storage:

Java

  1. Instal versi library klien Java Cloud Storage berikut:

    • com.google.cloud:google-cloud-storage:2.47.0 atau yang lebih baru

    • com.google.cloud:libraries-bom:26.53.0 atau yang lebih baru

  2. Instal eksportir Cloud Trace untuk OpenTelemetry. Anda juga dapat menggunakan eksportir pilihan Anda.

  3. Instal propagator Cloud Trace.

  4. Buat instance klien Cloud Storage dengan pelacakan OpenTelemetry diaktifkan.

    public class QuickstartOpenTelemetrySample {
      public static void main(String... args) throws Exception {
        SpanExporter spanExporter = TraceExporter.createWithDefaultConfiguration();
        TextMapPropagator propagators =
            TextMapPropagator.composite(
                W3CTraceContextPropagator.getInstance(),
                new XCloudTraceContextPropagator(/*oneway=*/ true));
    
        OpenTelemetrySdk openTelemetry =
            OpenTelemetrySdk.builder()
                .setPropagators(ContextPropagators.create(propagators))
                .setTracerProvider(
                    SdkTracerProvider.builder()
                        // Sample Rate is set to alwaysOn
                        // It is recommended to sample based on a ratio for standard use ie.
                        // .setSampler(Sampler.traceIdRatioBased(0.2)) // sample only 20% of trace ids
                        .setSampler(Sampler.alwaysOn())
                        .addSpanProcessor(BatchSpanProcessor.builder(spanExporter).build())
                        .build())
                .build();
        StorageOptions options = StorageOptions.newBuilder().setOpenTelemetry(openTelemetry).build();
        Storage storage = options.getService();
        System.out.println("Created an instance of storage with OpenTelemetry configured");
      }
    }

Python

  1. Instal library klien Python Cloud Storage:

    pip install google-cloud-storage[tracing]>=2.18.0
  2. Instal pengekspor dan propagator Cloud Trace. Anda juga dapat menggunakan eksportir apa pun sesuai pilihan Anda.

    pip install opentelemetry-exporter-gcp-trace opentelemetry-propagator-gcp
  3. Instal instrumentasi permintaan OpenTelemetry untuk melacak permintaan HTTP yang mendasarinya.

    pip install opentelemetry-instrumentation-requests
  4. Tetapkan variabel lingkungan untuk memilih secara selektif pelacakan untuk klien penyimpanan Python:

    export ENABLE_GCS_PYTHON_CLIENT_OTEL_TRACES=True
  5. Konfigurasikan eksportir rekaman aktivitas dan penyedia rekaman aktivitas.

    
    from opentelemetry import trace
    from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter
    from opentelemetry.resourcedetector.gcp_resource_detector import (
        GoogleCloudResourceDetector,
    )
    from opentelemetry.sdk.trace import TracerProvider
    from opentelemetry.sdk.trace.export import BatchSpanProcessor
    from opentelemetry.sdk.trace.sampling import ALWAYS_ON
    # Optional: Enable traces emitted from the requests HTTP library.
    from opentelemetry.instrumentation.requests import RequestsInstrumentor
    
    from google.cloud import storage
    
    # The ID of your GCS bucket
    # bucket_name = "your-bucket-name"
    # The ID of your GCS object
    # blob_name = "your-object-name"
    # The contents to upload to the file
    # data = "The quick brown fox jumps over the lazy dog."
    
    # In this sample, we use Google Cloud Trace to export the OpenTelemetry
    # traces: https://cloud.google.com/trace/docs/setup/python-ot
    # Choose and configure the exporter for your environment.
    
    tracer_provider = TracerProvider(
        # Sampling is set to ALWAYS_ON.
        # It is recommended to sample based on a ratio to control trace ingestion volume,
        # for instance, sampler=TraceIdRatioBased(0.2)
        sampler=ALWAYS_ON,
        resource=GoogleCloudResourceDetector().detect(),
    )
    
    # Export to Google Cloud Trace.
    tracer_provider.add_span_processor(BatchSpanProcessor(CloudTraceSpanExporter()))
    trace.set_tracer_provider(tracer_provider)
    
    # Optional: Enable traces emitted from the requests HTTP library.
    RequestsInstrumentor().instrument(tracer_provider=tracer_provider)
    
    # Get the tracer and create a new root span.
    tracer = tracer_provider.get_tracer("My App")
    with tracer.start_as_current_span("trace-quickstart"):
        # Instantiate a storage client and perform a write and read workload.
        storage_client = storage.Client()
        bucket = storage_client.bucket(bucket_name)
        blob = bucket.blob(blob_name)
        blob.upload_from_string(data)
        print(f"{blob_name} uploaded to {bucket_name}.")
    
        blob.download_as_bytes()
        print("Downloaded storage object {} from bucket {}.".format(blob_name, bucket_name))
    

Melihat trace Anda

Gunakan Cloud Trace Explorer untuk melihat data rekaman aktivitas Anda di konsol Google Cloud:

  1. Di konsol Google Cloud, buka halaman Trace Explorer:

    Buka Trace Explorer

    Anda juga dapat menemukan halaman ini menggunakan kotak penelusuran.

  2. Di halaman Penjelajah rekaman aktivitas, klik rekaman aktivitas tertentu dalam diagram sebar untuk melihat detail rekaman aktivitas.

    Panel Trace details menampilkan tabel span rekaman aktivitas.

  3. Opsional: klik baris span untuk melihat informasi mendetail tentang span tertentu seperti informasi berikut:

    • Atribut: key-value pair yang memberikan informasi tambahan tentang span.

    • Log & peristiwa: entri log yang terkait dengan span.

    • Stack trace: stack trace yang terkait dengan span.

    • Metadata & Link: link ke layanan Google Cloud lain yang terkait dengan span.

Untuk informasi selengkapnya tentang cara menggunakan Cloud Trace Explorer, lihat Menemukan dan menjelajahi trace.

Langkah berikutnya