Managed Service for OpenTelemetry dapat menerima data trace, metric, dan log dari aplikasi Anda. Data tersebut dapat dilaporkan secara langsung atau diteruskan melalui OpenTelemetry Collector.
Persiapan
-
Untuk melaporkan data log, Anda harus terlebih dahulu mengaktifkan Simple Log Service (SLS), membuat Project dan Logstore, serta membuat pasangan AccessKey untuk pelaporan data log.
-
Dapatkan endpoint dan kredensial autentikasi yang diperlukan. Tabel berikut mencantumkan semua variabel konfigurasi yang digunakan dalam topik ini. Siapkan nilainya sesuai dengan tipe data dan metode pelaporan yang Anda gunakan. Untuk informasi selengkapnya, lihat Persiapan.
Kasus penggunaan
Parameter
Deskripsi
Contoh
Laporkan data trace dan metric
Laporkan data melalui gRPC
${GRPC_ENDPOINT}
Endpoint gRPC untuk Managed Service for OpenTelemetry, digunakan untuk melaporkan data trace dan metric.
Jika layanan Anda diterapkan di Alibaba Cloud pada wilayah yang sama dengan Managed Service for OpenTelemetry, kami menyarankan Anda menggunakan titik akhir internal. 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
${GRPC_AUTHENTICATION_TOKEN}
Token autentikasi yang diperlukan untuk melaporkan data ke Managed Service for OpenTelemetry melalui gRPC. Untuk informasi lebih lanjut tentang cara mendapatkan token tersebut, lihat Persiapan.
abcdef1234@abcdef****56789_abcdef1234@abcdef****56789
Laporkan data melalui HTTP
${HTTP_TRACES_ENDPOINT}
Endpoint HTTP untuk Managed Service for OpenTelemetry, digunakan untuk melaporkan data trace.
Jika layanan Anda diterapkan di Alibaba Cloud pada wilayah yang sama dengan Managed Service for OpenTelemetry, kami menyarankan Anda menggunakan titik akhir internal. 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
${HTTP_METRICS_ENDPOINT}
Endpoint HTTP untuk Managed Service for OpenTelemetry, digunakan untuk melaporkan data metric.
Jika layanan Anda diterapkan di Alibaba Cloud pada wilayah yang sama dengan Managed Service for OpenTelemetry, kami menyarankan Anda menggunakan titik akhir internal. 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 Simple Log Service (SLS) Project, hanya diperlukan untuk pelaporan data log. Untuk informasi cara mendapatkan endpoint, lihat Service Endpoints.
test-project.cn-hangzhou.log.aliyuncs.com
${SLS_PROJECT}
Nama Project Simple Log Service (SLS), hanya diperlukan untuk pelaporan data log.
test-project
${SLS_LOGSTORE}
Nama Logstore Simple Log Service (SLS), hanya diperlukan untuk pelaporan data log.
test-logstore
${ALIYUN_ACCESS_KEY_ID}
ID AccessKey Akun Alibaba Cloud Anda, hanya diperlukan untuk pelaporan data log.
Kami menyarankan Anda menggunakan pasangan AccessKey milik Pengguna RAM yang hanya memiliki izin menulis pada Project Simple Log Service (SLS). Pasangan AccessKey terdiri dari ID AccessKey dan Rahasia AccessKey. Untuk informasi lebih lanjut tentang cara memberikan izin menulis data ke Project tertentu kepada Pengguna RAM, lihat Contoh kebijakan kustom RAM. Untuk informasi lebih lanjut tentang cara mendapatkan pasangan AccessKey, lihat Pasangan AccessKey.
N/A
${ALIYUN_ACCESS_KEY_SECRET}
Rahasia AccessKey Akun Alibaba Cloud Anda, hanya diperlukan untuk pelaporan data log.
Kami menyarankan Anda menggunakan pasangan AccessKey milik Pengguna RAM.
N/A
-
Pelaporan langsung
Laporkan data trace dan metric secara langsung ke Managed Service for OpenTelemetry dengan mengonfigurasi endpoint dan informasi autentikasi di agen atau SDK OpenTelemetry Anda.
Opsi 1: Konfigurasi dalam kode
Contoh Java berikut mengonfigurasi endpoint untuk Managed Service for OpenTelemetry untuk melaporkan data melalui HTTP atau gRPC. Untuk kode integrasi lengkap dan demo, kunjungi Pusat Integrasi atau lihat Laporkan data 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 autentikasi untuk 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 autentikasi untuk Managed Service for OpenTelemetry.
.build()).build())
.setResource(resource)
.build();
...
Opsi 2: Konfigurasi dengan variabel lingkungan
Anda juga dapat mengonfigurasi endpoint pelaporan data melalui variabel lingkungan. Tabel berikut mencantumkan variabel yang diperlukan untuk melaporkan data ke Managed Service for OpenTelemetry. Untuk informasi selengkapnya, lihat Konfigurasi Eksporter OTLP.
|
Variabel lingkungan |
Deskripsi |
Contoh |
|
OTEL_SERVICE_NAME |
Nama aplikasi. |
export OTEL_SERVICE_NAME=opentelemetry-demo-service |
|
OTEL_EXPORTER_OTLP_PROTOCOL |
Protokol untuk pelaporan data. Trace dapat dilaporkan melalui Metric dapat dilaporkan melalui Jika Anda memilih endpoint gRPC, atur variabel ini ke |
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc |
|
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT |
Endpoint untuk melaporkan trace. Endpoint HTTP dan gRPC didukung. Gunakan nilai ${GRPC_ENDPOINT} atau ${HTTP_TRACES_ENDPOINT} dari bagian Persiapan. |
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/traces
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090 |
|
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT |
Endpoint untuk melaporkan metric. Endpoint HTTP dan gRPC didukung. Gunakan nilai ${GRPC_ENDPOINT} atau ${HTTP_METRICS_ENDPOINT} dari bagian Persiapan. |
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_***_***/api/otlp/metrics
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090 |
|
OTEL_EXPORTER_OTLP_HEADERS |
Header permintaan untuk pelaporan gRPC, yang terutama digunakan untuk autentikasi. Gunakan format |
export OTEL_EXPORTER_OTLP_HEADERS=Authentication=abcdef1234@abcdef****56789_abcdef1234@abcdef****56789 |
Meneruskan data melalui OpenTelemetry Collector
Edisi Collector
-
OpenTelemetry Collector (Core): Melaporkan data trace dan metric.
-
OpenTelemetry Collector (Contrib): Melaporkan data trace, metric, dan log.
Opsi 1: Terapkan dari ACK Marketplace
ACK Marketplace hanya menyediakan edisi OpenTelemetry Collector (Core), bukan edisi Contrib. Jika Anda perlu mengumpulkan data log, gunakan metode penerapan lain.
Langkah 1: Terapkan collector
Masuk ke Konsol ACK. Di panel navigasi kiri, klik .
-
Di Marketplace, cari dan klik
opentelemetry-collector, lalu klik Deploy di pojok kanan atas halaman. -
Di halaman Create , pilih kluster dan namespace untuk menerapkan
opentelemetry-collector, lalu klik Next. Namespace default adalahotel-collector. -
Di halaman Parameter Configurations, atur parameter
modemenjadideploymentataudaemonset, lalu klik OK.
Langkah 2: Konfigurasi parameter collector
-
Di halaman Clusters, klik kluster target.
-
Di panel navigasi kiri, pilih .
-
Pilih namespace tempat opentelemetry-collector berada. Nilai default adalah
otel-collector. -
Di halaman Configuration Item, temukan opentelemetry-collector dan klik YAML.
-
Konfigurasikan bagian
exporters,processors,receivers, danserviceseperti pada contoh YAML berikut, lalu klik OK.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. Anda dapat mengubah nilainya sesuai kebutuhan. limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan. spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya 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]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. Anda dapat mengubah nilainya sesuai kebutuhan. processors: batch: {} memory_limiter: check_interval: 5s # Interval pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan. limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan. spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya 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] -
Setelah konfigurasi selesai, restart pod opentelemetry-collector secara manual.
Opsi 2: Terapkan dengan Docker
Langkah 1: Tarik gambar
OpenTelemetry Collector (Core)
Untuk versi gambar spesifik, lihat https://hub.docker.com/r/otel/opentelemetry-collector/tags.
docker pull otel/opentelemetry-collector:latest
OpenTelemetry Collector (Contrib)
Untuk versi gambar spesifik, lihat 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 tambahkan konfigurasi yang diperlukan.
Pelaporan gRPC (Core)
# 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. Anda dapat mengubah nilainya sesuai kebutuhan.
limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
http:
endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.
service:
pipelines:
traces:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
Pelaporan HTTP (Core)
# 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. Anda dapat mengubah nilainya sesuai kebutuhan.
processors:
batch: {}
memory_limiter:
check_interval: 5s # Interval pemeriksaan penggunaan memori. Anda dapat mengubah nilainya sesuai kebutuhan.
limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
http:
endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.
service:
pipelines:
traces:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
Pelaporan gRPC (Contrib)
# config.yaml
exporters:
otlp:
endpoint: "${GRPC_ENDPOINT}"
headers:
Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
tls:
insecure: true
# Opsional: Konfigurasi eksporter log.
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. Anda dapat mengubah nilainya sesuai kebutuhan.
limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
http:
endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.
service:
pipelines:
traces:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
# Opsional: Konfigurasi pipeline pemrosesan data log.
logs:
exporters: [alibabacloud_logservice/logs]
processors: [memory_limiter, batch]
receivers: [otlp]
Pelaporan HTTP (Contrib)
# 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. Anda dapat mengubah nilainya sesuai kebutuhan.
# Opsional: Konfigurasi eksporter log.
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. Anda dapat mengubah nilainya sesuai kebutuhan.
limit_percentage: 80 # Penggunaan memori maksimum dalam persentase. Anda dapat mengubah nilainya sesuai kebutuhan.
spike_limit_percentage: 25 # Tambahan memori dalam persentase yang diizinkan saat lonjakan. Anda dapat mengubah nilainya sesuai kebutuhan.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # Nilai default adalah localhost:4317. Anda dapat mengubah nilainya sesuai kebutuhan.
http:
endpoint: 0.0.0.0:4318 # Nilai default adalah localhost:4318. Anda dapat mengubah nilainya sesuai kebutuhan.
service:
pipelines:
traces:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
# Opsional: Konfigurasi pipeline pemrosesan data log.
logs:
exporters: [alibabacloud_logservice/logs]
processors: [memory_limiter, batch]
receivers: [otlp]
Langkah 3: Mount konfigurasi dan jalankan
OpenTelemetry Collector (Core)
docker run -v $(pwd)/config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:latest
OpenTelemetry Collector (Contrib)
docker run -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:latest