全部产品
Search
文档中心

Simple Log Service:Impor data jejak dari aplikasi C# ke Layanan Log Sederhana menggunakan OpenTelemetry SDK untuk .NET

更新时间:Jul 06, 2025

Topik ini menjelaskan cara mengimpor data jejak dari aplikasi C# ke Layanan Log Sederhana menggunakan OpenTelemetry SDK untuk .NET.

Prasyarat

  • Sebuah instance jejak telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance Jejak.

  • Lingkungan pengembangan .NET Framework telah disiapkan.

    Catatan

    Metode impor dalam topik ini mendukung semua versi resmi .NET Framework kecuali .NET Framework 3.5 SP1. Untuk informasi lebih lanjut, lihat .NET Core dan .NET Framework.

Prosedur

  1. Tambahkan dependensi.

    dotnet add package OpenTelemetry --version 1.2.0-beta1
    dotnet add package OpenTelemetry.Exporter.Console --version 1.2.0-beta1
    dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol --version 1.2.0-beta1
    dotnet add package OpenTelemetry.Extensions.Hosting --version 1.0.0-rc8
    dotnet add package OpenTelemetry.Instrumentation.AspNetCore --version 1.0.0-rc8
    dotnet add package Grpc.Core --version 2.36.4
  2. Jalankan kode.

    Ganti variabel dalam kode berikut dengan nilai sebenarnya. Untuk informasi lebih lanjut tentang variabel, lihat Variabel.

    using System;
    using OpenTelemetry;
    using OpenTelemetry.Trace;
    using System.Diagnostics;
    using System.Collections.Generic;
    using OpenTelemetry.Resources;
    using Grpc.Core;
    
    namespace mydemo
    {
        class Program
        {
             private static readonly ActivitySource MyActivitySource = new ActivitySource(
            "MyCompany.MyProduct.MyLibrary");
    
            static void Main(string[] args) {
                using var tracerProvider = Sdk.CreateTracerProviderBuilder()
               .SetSampler(new AlwaysOnSampler())
               .AddSource("MyCompany.MyProduct.MyLibrary")
               .AddOtlpExporter(opt => {
                    opt.Endpoint = new Uri("${endpoint}");
                    opt.Headers = "x-sls-otel-project=${project},x-sls-otel-instance-id=${instance},x-sls-otel-ak-id=${access-key-id},x-sls-otel-ak-secret=${access-key-secret}";
               })
                .SetResourceBuilder(OpenTelemetry.Resources.ResourceBuilder.CreateDefault()
               .AddAttributes(new Dictionary<string, object> {
                   {"service.name", "${service}" },
                   {"service.version","${version}"},
                   {"service.host","${host}"},
                   {"service.namespace","${service.namespace}"}
                   }))
               .Build();
    
                using (var activity = MyActivitySource.StartActivity("SayHello"))
                {
                    activity?.SetTag("foo", 1);
                    activity?.SetTag("bar", "Hello, World!");
                    activity?.SetTag("baz", new int[] { 1, 2, 3 });
                }
                Console.WriteLine("Hello World!");
    
            }
        }
    }

    Tabel 1. Variabel

    Variabel

    Deskripsi

    Contoh

    ${service}

    Nama layanan. Tentukan nilainya berdasarkan kebutuhan bisnis Anda.

    payment

    ${version}

    Versi layanan. Kami menyarankan Anda menentukan versi dalam format va.b.c.

    v0.1.2

    ${host}

    Nama host.

    localhost

    ${endpoint}

    Titik akhir proyek Layanan Log Sederhana. Format: https://${project}.${region-endpoint}:Port.

    • ${project}: nama proyek Layanan Log Sederhana.

    • ${region-endpoint}: Titik akhir Layanan Log Sederhana untuk wilayah tempat proyek berada. Anda dapat mengakses Layanan Log Sederhana menggunakan titik akhir internal atau publik. Titik akhir internal dapat diakses melalui jaringan klasik atau virtual private cloud (VPC). Titik akhir publik dapat diakses melalui Internet. Untuk informasi lebih lanjut, lihat Titik Akhir.

    • Port: nomor port. Nilai ini tetap sebagai 10010.

    https://test-project.cn-hangzhou.log.aliyuncs.com:10010

    ${project}

    Nama proyek Layanan Log Sederhana.

    test-project

    ${instance}

    ID instance jejak. Untuk informasi lebih lanjut, lihat Buat instance jejak.

    instance-traces

    ${access-key-id}

    ID AccessKey akun Alibaba Cloud Anda.

    Kami menyarankan Anda menggunakan pasangan AccessKey dari pengguna RAM yang hanya memiliki izin tulis pada proyek Layanan Log Sederhana. Pasangan AccessKey terdiri dari ID AccessKey dan Rahasia AccessKey. Untuk informasi lebih lanjut tentang cara memberikan izin tulis pada proyek tertentu kepada pengguna RAM, lihat Gunakan kebijakan kustom untuk memberikan izin kepada pengguna RAM. Untuk informasi lebih lanjut tentang cara memperoleh pasangan AccessKey, lihat Pasangan AccessKey.

    LTAI****************

    ${access-key-secret}

    Rahasia AccessKey akun Alibaba Cloud Anda.

    Kami menyarankan Anda menggunakan pasangan AccessKey dari pengguna RAM yang hanya memiliki izin tulis pada proyek Layanan Log Sederhana.

    yourAccessKeySecret

    ${service.namespace}

    Namespace tempat layanan berada.

    order

Apa yang harus dilakukan selanjutnya