All Products
Search
Document Center

Managed Service for OpenTelemetry:Integrasi OpenTelemetry

Last Updated:Aug 27, 2026

Managed Service for OpenTelemetry dapat menerima data trace, metric, dan log dari aplikasi Anda. Layanan ini mendukung dua metode pelaporan: pelaporan langsung dan penerusan melalui OpenTelemetry Collector.

Pilih metode pelaporan

Anda dapat melaporkan data telemetri langsung ke Managed Service for OpenTelemetry atau meneruskannya melalui OpenTelemetry Collector. Pilih metode berdasarkan jenis data telemetri yang ingin Anda laporkan.

Metode pelaporanTipe data yang didukung
Pelaporan langsungTraces dan metrics
OpenTelemetry Collector (Core)Traces dan metrics
OpenTelemetry Collector (Contrib)Traces, metrics, dan logs

Data log diteruskan melalui OpenTelemetry Collector (Contrib) ke Simple Log Service (SLS). Jika Anda ingin melaporkan data log, gunakan metode penerusan Collector dengan edisi Contrib.

Jika Anda meneruskan data melalui OpenTelemetry Collector, pilih opsi penerapan. OpenTelemetry Collector tersedia dalam dua edisi:

  • OpenTelemetry Collector (Core): mendukung pelaporan data trace dan metric.

  • OpenTelemetry Collector (Contrib): mendukung pelaporan data trace, metric, dan log.

    Tabel berikut membandingkan opsi penerapan yang dijelaskan dalam topik ini.
Opsi penerapanEdisi yang didukungTipe data yang didukung
Terapkan ke kluster ACK dari ACK MarketplaceOpenTelemetry Collector (Core)Traces dan metrics
Terapkan dengan DockerOpenTelemetry Collector (Core) dan OpenTelemetry Collector (Contrib)Traces dan metrics (Core). Traces, metrics, dan logs (Contrib).
Metode instalasi dan penerapan lainnyaLihat Metode instalasi dan penerapan lainnya.Bervariasi tergantung metode

Sebelum memulai

  • Untuk melaporkan data log, aktifkan terlebih dahulu Simple Log Service (SLS), buat Project dan Logstore, serta buat pasangan AccessKey untuk pelaporan data log.

  • Dapatkan endpoint dan kredensial otentikasi. Tabel berikut mencantumkan semua variabel konfigurasi yang digunakan dalam topik ini. Dalam contoh kode dan konfigurasi pada topik ini, placeholder dalam format ${VAR} harus diganti dengan nilai aktual yang telah Anda siapkan. Siapkan endpoint dan kredensial yang dibutuhkan skenario Anda, berdasarkan jenis data yang dilaporkan dan metode pelaporan yang digunakan. Untuk informasi lebih lanjut, lihat Memulai Managed Service for OpenTelemetry.

Kasus penggunaanVariabelDeskripsiContoh
Laporkan data trace dan metric melalui gRPC${GRPC_ENDPOINT}Endpoint gRPC Managed Service for OpenTelemetry, yang mendukung pelaporan data trace dan metric. Jika layanan Anda berjalan di Alibaba Cloud di wilayah yang sama dengan wilayah endpoint yang Anda pilih, gunakan titik akhir internal Alibaba Cloud. Jika tidak, gunakan titik akhir publik.
  • Titik akhir internal: http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

  • Titik akhir publik: http://tracing-analysis-dc-hz.aliyuncs.com:8090

Laporkan data trace dan metric melalui gRPC${GRPC_AUTHENTICATION_TOKEN}Token otentikasi yang diperlukan untuk melaporkan data melalui gRPC ke Managed Service for OpenTelemetry. Untuk informasi cara mendapatkan token tersebut, lihat Memulai Managed Service for OpenTelemetry.abcdef1234@abcdef****56789_abcdef1234@abcdef****56789
Laporkan data trace dan metric melalui HTTP${HTTP_TRACES_ENDPOINT}Endpoint HTTP Managed Service for OpenTelemetry, yang mendukung pelaporan data trace. Jika layanan Anda berjalan di Alibaba Cloud di wilayah yang sama dengan wilayah endpoint yang Anda pilih, gunakan titik akhir internal Alibaba Cloud. Jika tidak, gunakan titik akhir publik.
  • Titik akhir internal: http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/traces
    - Titik akhir publik: http://tracing-analysis-dc-hz.aliyuncs.com/adapt_***_***/api/otlp/traces

Laporkan data trace dan metric melalui HTTP${HTTP_METRICS_ENDPOINT}Endpoint HTTP Managed Service for OpenTelemetry, yang mendukung pelaporan data metric. Jika layanan Anda berjalan di Alibaba Cloud di wilayah yang sama dengan wilayah endpoint yang Anda pilih, gunakan titik akhir internal Alibaba Cloud. Jika tidak, gunakan titik akhir publik.
  • Titik akhir internal: http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/metrics
    - Titik akhir publik: http://tracing-analysis-dc-hz.aliyuncs.com/adapt_***_***/api/otlp/metrics

Laporkan data log${SLS_ENDPOINT}Endpoint Project SLS. Hanya diperlukan saat Anda melaporkan data log. Untuk langkah-langkah mendapatkan endpoint, lihat Endpoint.test-project.cn-hangzhou.log.aliyuncs.com
Laporkan data log${SLS_PROJECT}Nama Project SLS. Hanya diperlukan saat Anda melaporkan data log.test-project
Laporkan data log${SLS_LOGSTORE}Nama Logstore SLS. Hanya diperlukan saat Anda melaporkan data log.test-logstore
Laporkan data log${ALIYUN_ACCESS_KEY_ID}ID AccessKey akun Alibaba Cloud Anda. Hanya diperlukan saat Anda melaporkan data log. Kami menyarankan Anda menggunakan pasangan AccessKey, yang terdiri dari ID AccessKey dan rahasia AccessKey, dari Pengguna Resource Access Management (RAM) yang hanya memiliki izin menulis pada Project SLS. Untuk informasi cara memberikan izin kepada Pengguna RAM agar dapat menulis data ke Project tertentu, lihat Contoh kebijakan kustom RAM. Untuk informasi cara mendapatkan pasangan AccessKey, lihat Pasangan AccessKey.N/A
Laporkan data log${ALIYUN_ACCESS_KEY_SECRET}Rahasia AccessKey akun Alibaba Cloud Anda. Hanya diperlukan saat Anda melaporkan data log. Kami menyarankan Anda menggunakan pasangan AccessKey dari Pengguna RAM yang hanya memiliki izin menulis pada Project SLS.N/A

Pelaporan langsung

Konfigurasikan endpoint pelaporan dan informasi otentikasi di OpenTelemetry Agent atau SDK untuk mengirim data trace dan metric yang dikumpulkan OpenTelemetry langsung ke server Managed Service for OpenTelemetry.

Opsi 1: Konfigurasikan pengaturan pelaporan dalam kode (contoh Java)

Contoh kode Java berikut menunjukkan cara mengonfigurasi endpoint Managed Service for OpenTelemetry, yang mendukung pelaporan melalui HTTP atau gRPC. Untuk melihat kode integrasi lengkap dan demo, kunjungi Pusat Integrasi atau lihat Laporkan data trace dari aplikasi Java menggunakan OpenTelemetry.

Pelaporan HTTP

...

// Laporkan data trace
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpHttpSpanExporter.builder()
                .setEndpoint("${HTTP_TRACES_ENDPOINT}") // Tetapkan endpoint traces HTTP untuk melaporkan data trace ke Managed Service for OpenTelemetry.
                .build()).build())
        .build();

// Laporkan data metric
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpHttpMetricExporter.builder()
        .setEndpoint("${HTTP_METRICS_ENDPOINT}")  // Tetapkan endpoint metrics HTTP untuk melaporkan data metric ke Managed Service for OpenTelemetry.
        .build()).build())
    .build();

...

Pelaporan gRPC

...

// Laporkan data trace
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
        .addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
                .setEndpoint("${GRPC_ENDPOINT}") // Tetapkan endpoint gRPC untuk melaporkan data trace ke Managed Service for OpenTelemetry.
                .addHeader("Authentication","${GRPC_AUTHENTICATION_TOKEN}") // Tetapkan token otentikasi Managed Service for OpenTelemetry.
                .build()).build())
        .setResource(resource)
        .build();

// Laporkan data metric
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
    .registerMetricReader(PeriodicMetricReader.builder(OtlpGrpcMetricExporter.builder()
        .setEndpoint("${GRPC_ENDPOINT}")  // Tetapkan endpoint gRPC untuk melaporkan data metric ke Managed Service for OpenTelemetry.
        .addHeader("Authentication", "${GRPC_AUTHENTICATION_TOKEN}")  // Tetapkan token otentikasi Managed Service for OpenTelemetry.
        .build()).build())
    .setResource(resource)
    .build();

...

Opsi 2: Konfigurasikan pengaturan pelaporan dengan variabel lingkungan

OpenTelemetry juga mendukung konfigurasi endpoint pelaporan data dengan variabel lingkungan. Tabel berikut mencantumkan variabel lingkungan yang diperlukan untuk melaporkan data ke Managed Service for OpenTelemetry. Untuk variabel lingkungan OTLP OpenTelemetry lainnya, lihat Konfigurasi Eksporter OTLP.

Variabel lingkunganDeskripsiContoh
OTEL_SERVICE_NAMENama aplikasi.export OTEL_SERVICE_NAME=opentelemetry-demo-service
OTEL_EXPORTER_OTLP_PROTOCOLProtokol pelaporan. Trace mendukung grpc, http/protobuf, dan http/json. Metric mendukung grpc dan http/protobuf. Jika Anda memilih endpoint gRPC, atur variabel ini ke grpc. Jika tidak, gunakan http/protobuf atau http/json.export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTEndpoint pelaporan traces. Endpoint HTTP dan gRPC didukung. Gunakan nilai ${GRPC_ENDPOINT} atau ${HTTP_TRACES_ENDPOINT} yang telah Anda peroleh di .
  • Laporkan melalui HTTP: export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/traces

  • Laporkan melalui gRPC: export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

OTEL_EXPORTER_OTLP_METRICS_ENDPOINTEndpoint pelaporan metrics. Endpoint HTTP dan gRPC didukung. Gunakan nilai ${GRPC_ENDPOINT} atau ${HTTP_METRICS_ENDPOINT} yang telah Anda peroleh di .
  • Laporkan melalui HTTP: export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/metrics

  • Laporkan melalui gRPC: export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090

OTEL_EXPORTER_OTLP_HEADERSHeader permintaan untuk pelaporan gRPC, yang terutama digunakan untuk otentikasi. Gunakan format Authentication=${GRPC_AUTHENTICATION_TOKEN}, di mana ${GRPC_AUTHENTICATION_TOKEN} adalah token otentikasi yang telah Anda peroleh di .export OTEL_EXPORTER_OTLP_HEADERS=Authentication=abcdef1234@abcdef****56789_abcdef1234@abcdef****56789

Meneruskan data melalui OpenTelemetry Collector

OpenTelemetry Collector menerima data trace, metric, dan log dari aplikasi Anda, lalu meneruskan data tersebut ke Managed Service for OpenTelemetry berdasarkan konfigurasi eksporternya.

Opsi 1: Terapkan ke kluster ACK dari ACK Marketplace

Pada opsi ini, Anda menerapkan collector ke kluster Container Service for Kubernetes (ACK) dari ACK Marketplace. Saat ini, ACK Marketplace hanya menyediakan edisi OpenTelemetry Collector (Core), bukan edisi Contrib. Untuk mengumpulkan data log, gunakan salah satu metode penerapan lainnya.

Langkah 1: Terapkan Collector

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Marketplace > Marketplace.

  2. Di Marketplace, cari dan klik opentelemetry-collector, lalu klik Deploy di pojok kanan atas halaman.

  3. Di halaman Create , pilih kluster dan namespace tempat Anda ingin menerapkan opentelemetry-collector. Namespace default adalah otel-collector. Lalu, klik Next.

  4. Di halaman Parameter Configurations, atur parameter mode ke deployment atau daemonset, lalu klik OK.

Langkah 2: Konfigurasikan parameter Collector

  1. Di halaman Clusters, klik kluster target.

  2. Di panel navigasi kiri, pilih Configuration Management > Configuration Item.

  3. Pilih namespace tempat opentelemetry-collector diterapkan. Namespace default adalah otel-collector.

  4. Di halaman Configuration Item, temukan opentelemetry-collector, lalu klik YAML.

  5. Konfigurasikan bagian exporters, processors, receivers, dan service berdasarkan konten YAML berikut, lalu klik OK.

    Item konfigurasi opentelemetry-collector (pelaporan gRPC)

    exporters:
      otlp:
        endpoint: "${GRPC_ENDPOINT}"
        headers:
          Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
        tls:
          insecure: true
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # Interval pemeriksaan penggunaan memori. Ubah nilai sesuai kebutuhan.
        limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Ubah nilai sesuai kebutuhan.
        spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Ubah nilai sesuai kebutuhan.
    
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: ${env:MY_POD_IP}:4317
          http:
            endpoint: ${env:MY_POD_IP}:4318
    
    service:
      pipelines:
        traces:
          exporters: [otlp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
        metrics:
          exporters: [otlp]
          processors: [memory_limiter, batch]
          receivers: [otlp]

    Item konfigurasi opentelemetry-collector (pelaporan HTTP)

    exporters:
      otlphttp:
        traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
        metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
        tls:
          insecure: true
        timeout: 5s # Periode timeout. Nilai default adalah 5s. Ubah nilai sesuai kebutuhan.
    
    processors:
      batch: {}
      memory_limiter:
        check_interval: 5s # Interval pemeriksaan penggunaan memori. Ubah nilai sesuai kebutuhan.
        limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Ubah nilai sesuai kebutuhan.
        spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Ubah nilai sesuai kebutuhan.
    
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: ${env:MY_POD_IP}:4317
          http:
            endpoint: ${env:MY_POD_IP}:4318
    
    service:
      pipelines:
        traces:
          exporters: [otlphttp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
        metrics:
          exporters: [otlphttp]
          processors: [memory_limiter, batch]
          receivers: [otlp]
  6. Setelah konfigurasi selesai, restart opentelemetry-collector secara manual.

Opsi 2: Terapkan dengan Docker

Pada opsi ini, Anda menjalankan collector sebagai kontainer Docker. Edisi Core dan Contrib tersedia.

Langkah 1: Tarik gambar

opentelemetry-collector

Untuk menentukan versi gambar, kunjungi https://hub.docker.com/r/otel/opentelemetry-collector/tags.

docker pull otel/opentelemetry-collector:latest

opentelemetry-collector-contrib

Untuk menentukan versi gambar, kunjungi https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags.

docker pull otel/opentelemetry-collector-contrib:latest

Langkah 2: Siapkan file konfigurasi

Buat file config.yaml dan konfigurasikan parameter terkait. Dalam contoh berikut, placeholder dalam format ${VAR} harus diganti dengan nilai yang telah Anda siapkan di bagian Sebelum memulai. Placeholder ini berbeda dari sintaks ekspansi native Collector ${env:...}, seperti ${env:MY_POD_IP}, yang diselesaikan Collector dari variabel lingkungan saat runtime.

Item konfigurasi opentelemetry-collector (pelaporan gRPC)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval pemeriksaan penggunaan memori. Ubah nilai sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Ubah nilai sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Ubah nilai sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Ubah nilai sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Ubah nilai sesuai kebutuhan.

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Item konfigurasi opentelemetry-collector (pelaporan HTTP)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # Periode timeout. Nilai default adalah 5s. Ubah nilai sesuai kebutuhan.

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval pemeriksaan penggunaan memori. Ubah nilai sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Ubah nilai sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Ubah nilai sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Ubah nilai sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Ubah nilai sesuai kebutuhan.

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Item konfigurasi opentelemetry-collector-contrib (pelaporan gRPC)

# config.yaml
exporters:
  otlp:
    endpoint: "${GRPC_ENDPOINT}"
    headers:
      Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
    tls:
      insecure: true
  # Konfigurasi eksporter log (opsional)
  alibabacloud_logservice/logs:
    endpoint: "${SLS_ENDPOINT}"
    project: "${SLS_PROJECT}"
    logstore: "${SLS_LOGSTORE}"
    access_key_id: "${ALIYUN_ACCESS_KEY_ID}"
    access_key_secret: "${ALIYUN_ACCESS_KEY_SECRET}"

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval pemeriksaan penggunaan memori. Ubah nilai sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Ubah nilai sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Ubah nilai sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Ubah nilai sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Ubah nilai sesuai kebutuhan.

service:
  pipelines:
    traces:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Pipeline pemrosesan data log (opsional)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Item konfigurasi opentelemetry-collector-contrib (pelaporan HTTP)

# config.yaml
exporters:
  otlphttp:
    traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
    metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
    tls:
      insecure: true
    timeout: 5s # Periode timeout. Nilai default adalah 5s. Ubah nilai sesuai kebutuhan.

  # Konfigurasi eksporter log (opsional)
  alibabacloud_logservice/logs:
    endpoint: "${SLS_ENDPOINT}"
    project: "${SLS_PROJECT}"
    logstore: "${SLS_LOGSTORE}"
    access_key_id: "${ALIYUN_ACCESS_KEY_ID}"
    access_key_secret: "${ALIYUN_ACCESS_KEY_SECRET}"

processors:
  batch: {}
  memory_limiter:
    check_interval: 5s # Interval pemeriksaan penggunaan memori. Ubah nilai sesuai kebutuhan.
    limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Ubah nilai sesuai kebutuhan.
    spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Ubah nilai sesuai kebutuhan.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Ubah nilai sesuai kebutuhan.
      http:
        endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Ubah nilai sesuai kebutuhan.

service:
  pipelines:
    traces:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    metrics:
      exporters: [otlphttp]
      processors: [memory_limiter, batch]
      receivers: [otlp]
    # Pipeline pemrosesan data log (opsional)
    logs:
      exporters: [alibabacloud_logservice/logs]
      processors: [memory_limiter, batch]
      receivers: [otlp]

Langkah 3: Mount file konfigurasi kustom dan jalankan collector

Flag -p memublikasikan port receiver sehingga aplikasi Anda dapat mengirim data ke collector. Sesuaikan pemetaan port agar sesuai dengan endpoint receiver dalam file konfigurasi Anda.

opentelemetry-collector

docker run -p 4317:4317 -p 4318:4318 -v $(pwd)/config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:latest

opentelemetry-collector-contrib

docker run -p 4317:4317 -p 4318:4318 -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:latest

Untuk metode penerapan lainnya, lihat Metode instalasi dan penerapan lainnya.

Referensi