Managed Service for OpenTelemetry, uygulamalarınızdan izleme (trace), ölçüm (metric) ve günlük (log) verilerini alabilir. Doğrudan raporlama ve OpenTelemetry Collector üzerinden iletme olmak üzere iki raporlama yöntemini destekler.
Bir raporlama yöntemi seçin
Telemetri verilerini doğrudan Managed Service for OpenTelemetry'ye gönderebilir veya bir OpenTelemetry Collector üzerinden iletebilirsiniz. Raporlamak istediğiniz telemetri verisi türüne göre bir yöntem seçin.
| Raporlama yöntemi | Desteklenen veri türleri |
| Doğrudan raporlama | İzlemeler ve ölçümler |
| OpenTelemetry Collector (Core) | İzlemeler ve ölçümler |
| OpenTelemetry Collector (Contrib) | İzlemeler, ölçümler ve günlükler |
Günlük verileri, OpenTelemetry Collector (Contrib) aracılığıyla Simple Log Service (SLS) hizmetine iletilir. Günlük verilerini raporlamak istiyorsanız, Contrib sürümüyle Collector iletme yöntemini kullanın.
Verileri bir OpenTelemetry Collector üzerinden iletirken bir dağıtım seçeneği belirleyin. OpenTelemetry Collector iki farklı sürümde sunulur:
OpenTelemetry Collector (Core): İzleme ve ölçüm verilerinin raporlanmasını destekler.
OpenTelemetry Collector (Contrib): İzleme, ölçüm ve günlük verilerinin raporlanmasını destekler. Aşağıdaki tabloda bu konuda açıklanan dağıtım seçenekleri karşılaştırılmaktadır.
| Dağıtım seçeneği | Desteklenen sürüm | Desteklenen veri türleri |
| ACK Marketplace üzerinden bir ACK kümesine dağıtma | OpenTelemetry Collector (Core) | İzlemeler ve ölçümler |
| Docker ile dağıtma | OpenTelemetry Collector (Core) ve OpenTelemetry Collector (Contrib) | İzlemeler ve ölçümler (Core). İzlemeler, ölçümler ve günlükler (Contrib). |
| Diğer kurulum ve dağıtım yöntemleri | Bkz. Diğer kurulum ve dağıtım yöntemleri. | Yönteme göre değişir |
Başlamadan önce
Günlük verilerini raporlamak için öncelikle Simple Log Service (SLS) hizmetini etkinleştirin, bir Project ve bir Logstore oluşturun ve günlük verisi raporlaması için bir AccessKey çifti oluşturun.
Uç noktaları ve kimlik doğrulama kimlik bilgilerini edinin. Aşağıdaki tabloda bu konuda kullanılan tüm yapılandırma değişkenleri listelenmiştir. Bu konudaki kod ve yapılandırma örneklerinde,
${VAR}biçimindeki yer tutucuları hazırladığınız gerçek değerlerle değiştirmeniz gerekir. Raporladığınız veri türüne ve kullandığınız raporlama yöntemine göre senaryonuzun gerektirdiği uç noktaları ve kimlik bilgilerini hazırlayın. Daha fazla bilgi için bkz. Managed Service for OpenTelemetry'ye giriş.
| Kullanım durumu | Değişken | Açıklama | Örnek |
| gRPC üzerinden izleme ve ölçüm verilerini raporlama | ${GRPC_ENDPOINT} | İzleme ve ölçüm verilerinin raporlanmasını destekleyen Managed Service for OpenTelemetry gRPC uç noktası. Hizmetiniz, seçtiğiniz uç nokta bölgesiyle aynı bölgede Alibaba Cloud üzerinde çalışıyorsa Alibaba Cloud dahili uç noktasını kullanın. Aksi takdirde genel uç noktayı kullanın. |
|
| gRPC üzerinden izleme ve ölçüm verilerini raporlama | ${GRPC_AUTHENTICATION_TOKEN} | gRPC üzerinden Managed Service for OpenTelemetry hizmetine veri raporlamak için gereken kimlik doğrulama belirteci. Belirteci edinme hakkında bilgi için bkz. Managed Service for OpenTelemetry'ye giriş. | abcdef1234@abcdef****56789_abcdef1234@abcdef****56789 |
| HTTP üzerinden izleme ve ölçüm verilerini raporlama | ${HTTP_TRACES_ENDPOINT} | İzleme verilerinin raporlanmasını destekleyen Managed Service for OpenTelemetry HTTP uç noktası. Hizmetiniz, seçtiğiniz uç nokta bölgesiyle aynı bölgede Alibaba Cloud üzerinde çalışıyorsa Alibaba Cloud dahili uç noktasını kullanın. Aksi takdirde genel uç noktayı kullanın. |
|
| HTTP üzerinden izleme ve ölçüm verilerini raporlama | ${HTTP_METRICS_ENDPOINT} | Ölçüm verilerinin raporlanmasını destekleyen Managed Service for OpenTelemetry HTTP uç noktası. Hizmetiniz, seçtiğiniz uç nokta bölgesiyle aynı bölgede Alibaba Cloud üzerinde çalışıyorsa Alibaba Cloud dahili uç noktasını kullanın. Aksi takdirde genel uç noktayı kullanın. |
|
| Günlük verilerini raporlama | ${SLS_ENDPOINT} | SLS Project uç noktası. Yalnızca günlük verilerini raporlarken gereklidir. Uç noktayı edinme adımları için bkz. Uç nokta. | test-project.cn-hangzhou.log.aliyuncs.com |
| Günlük verilerini raporlama | ${SLS_PROJECT} | SLS Project adı. Yalnızca günlük verilerini raporlarken gereklidir. | test-project |
| Günlük verilerini raporlama | ${SLS_LOGSTORE} | SLS Logstore adı. Yalnızca günlük verilerini raporlarken gereklidir. | test-logstore |
| Günlük verilerini raporlama | ${ALIYUN_ACCESS_KEY_ID} | Alibaba Cloud hesabınızın AccessKey ID'si. Yalnızca günlük verilerini raporlarken gereklidir. Yalnızca SLS Project üzerinde yazma iznine sahip bir Resource Access Management (RAM) kullanıcısının AccessKey ID'si ve AccessKey secret'ından oluşan AccessKey çiftini kullanmanızı öneririz. Bir RAM kullanıcısına belirli bir Project'e veri yazma izni verme hakkında bilgi için bkz. RAM özel ilke örnekleri. Bir AccessKey çifti edinme hakkında bilgi için bkz. AccessKey çifti. | N/A |
| Günlük verilerini raporlama | ${ALIYUN_ACCESS_KEY_SECRET} | Alibaba Cloud hesabınızın AccessKey secret'ı. Yalnızca günlük verilerini raporlarken gereklidir. Yalnızca SLS Project üzerinde yazma iznine sahip bir RAM kullanıcısının AccessKey çiftini kullanmanızı öneririz. | N/A |
Doğrudan raporlama
OpenTelemetry'nin topladığı izleme ve ölçüm verilerini doğrudan Managed Service for OpenTelemetry sunucusuna göndermek için OpenTelemetry Agent veya SDK içinde raporlama uç noktasını ve kimlik doğrulama bilgilerini yapılandırın.
Seçenek 1: Raporlama ayarlarını kodda yapılandırma (Java örneği)
Aşağıdaki Java kod örnekleri, HTTP veya gRPC üzerinden raporlamayı destekleyen Managed Service for OpenTelemetry uç noktalarının nasıl yapılandırılacağını göstermektedir. Tam entegrasyon kodunu ve demoları görüntülemek için Entegrasyon Merkezi sayfasını ziyaret edin veya bkz. OpenTelemetry kullanarak Java uygulamalarından izleme verilerini raporlama.
HTTP raporlama
...
// Report trace data
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
.addSpanProcessor(BatchSpanProcessor.builder(OtlpHttpSpanExporter.builder()
.setEndpoint("${HTTP_TRACES_ENDPOINT}") // Set the HTTP traces endpoint to report trace data to Managed Service for OpenTelemetry.
.build()).build())
.build();
// Report metric data
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
.registerMetricReader(PeriodicMetricReader.builder(OtlpHttpMetricExporter.builder()
.setEndpoint("${HTTP_METRICS_ENDPOINT}") // Set the HTTP metrics endpoint to report metric data to Managed Service for OpenTelemetry.
.build()).build())
.build();
...
gRPC raporlama
...
// Report trace data
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder()
.addSpanProcessor(BatchSpanProcessor.builder(OtlpGrpcSpanExporter.builder()
.setEndpoint("${GRPC_ENDPOINT}") // Set the gRPC endpoint to report trace data to Managed Service for OpenTelemetry.
.addHeader("Authentication","${GRPC_AUTHENTICATION_TOKEN}") // Set the authentication token of Managed Service for OpenTelemetry.
.build()).build())
.setResource(resource)
.build();
// Report metric data
SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder()
.registerMetricReader(PeriodicMetricReader.builder(OtlpGrpcMetricExporter.builder()
.setEndpoint("${GRPC_ENDPOINT}") // Set the gRPC endpoint to report metric data to Managed Service for OpenTelemetry.
.addHeader("Authentication", "${GRPC_AUTHENTICATION_TOKEN}") // Set the authentication token of Managed Service for OpenTelemetry.
.build()).build())
.setResource(resource)
.build();
...
Seçenek 2: Raporlama ayarlarını ortam değişkenleriyle yapılandırma
OpenTelemetry, veri raporlama uç noktasının ortam değişkenleriyle yapılandırılmasını da destekler. Aşağıdaki tabloda, verileri Managed Service for OpenTelemetry hizmetine raporlamak için gereken ortam değişkenleri listelenmiştir. Daha fazla OpenTelemetry OTLP ortam değişkeni için bkz. OTLP Exporter Configuration.
Verileri bir OpenTelemetry Collector üzerinden iletme
Bir OpenTelemetry Collector, uygulamalarınızdan izleme, ölçüm ve günlük verilerini alır ve dışa aktarıcı (exporter) yapılandırmasına göre bu verileri Managed Service for OpenTelemetry hizmetine iletir.
Seçenek 1: ACK Marketplace üzerinden bir ACK kümesine dağıtma
Bu seçenekte, collector bileşenini ACK Marketplace üzerinden bir Container Service for Kubernetes (ACK) kümesine dağıtırsınız. ACK Marketplace şu anda yalnızca OpenTelemetry Collector (Core) sürümünü sunar; Contrib sürümünü sunmaz. Günlük verilerini toplamak için diğer dağıtım yöntemlerinden birini kullanın.
Adım 1: Collector bileşenini dağıtma
ACK konsolu oturumunu açın. Sol gezinme bölmesinde öğelerini tıklayın.
Marketplace'te
opentelemetry-collectoranahtar kelimesini aratın ve ilgili sonucu tıklayın. Ardından sayfanın sağ üst köşesindeki Deploy düğmesini tıklayın.Create sayfasında,
opentelemetry-collectorbileşenini dağıtmak istediğiniz kümeyi ve ad alanını seçin. Varsayılan ad alanı otel-collector'dır. Ardından Next düğmesini tıklayın.Parameter Configurations sayfasında mode parametresini
deploymentveyadaemonsetolarak ayarlayın ve ardından OK düğmesini tıklayın.
Adım 2: Collector parametrelerini yapılandırma
Clusters sayfasında hedef kümeyi tıklayın.
Sol gezinme bölmesinde yolunu izleyin.
opentelemetry-collector bileşeninin dağıtıldığı ad alanını seçin. Varsayılan ad alanı otel-collector'dır.
Configuration Item sayfasında opentelemetry-collector öğesini bulun ve ardından YAML düğmesini tıklayın.
-
Aşağıdaki YAML içeriğine göre exporters, processors, receivers ve service bölümlerini yapılandırın ve ardından OK düğmesini tıklayın.
opentelemetry-collector yapılandırma öğesi (gRPC raporlama)
exporters: otlp: endpoint: "${GRPC_ENDPOINT}" headers: Authentication: "${GRPC_AUTHENTICATION_TOKEN}" tls: insecure: true processors: batch: {} memory_limiter: check_interval: 5s # The interval at which memory usage is checked. Change the value as needed. limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed. spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed. 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]opentelemetry-collector yapılandırma öğesi (HTTP raporlama)
exporters: otlphttp: traces_endpoint: "${HTTP_TRACES_ENDPOINT}" metrics_endpoint: "${HTTP_METRICS_ENDPOINT}" tls: insecure: true timeout: 5s # The timeout period. The default value is 5s. Change the value as needed. processors: batch: {} memory_limiter: check_interval: 5s # The interval at which memory usage is checked. Change the value as needed. limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed. spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed. 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] Yapılandırma tamamlandıktan sonra opentelemetry-collector bileşenini manuel olarak yeniden başlatın.
Seçenek 2: Docker ile dağıtma
Bu seçenekte, collector bileşenini bir Docker konteyneri olarak çalıştırırsınız. Hem Core hem de Contrib sürümleri kullanılabilir.
Adım 1: Görüntüyü çekme
opentelemetry-collector
Bir görüntü sürümü belirtmek için https://hub.docker.com/r/otel/opentelemetry-collector/tags adresini ziyaret edin.
docker pull otel/opentelemetry-collector:latest
opentelemetry-collector-contrib
Bir görüntü sürümü belirtmek için https://hub.docker.com/r/otel/opentelemetry-collector-contrib/tags adresini ziyaret edin.
docker pull otel/opentelemetry-collector-contrib:latest
Adım 2: Yapılandırma dosyasını hazırlama
Bir config.yaml dosyası oluşturun ve ilgili parametreleri yapılandırın. Aşağıdaki örneklerde, ${VAR} biçimindeki yer tutucuları "Başlamadan önce" bölümünde hazırladığınız değerlerle değiştirmeniz gerekir. Bu yer tutucular, Collector tarafından çalışma zamanında ortam değişkenlerinden çözümlenen ${env:...} genişletme sözdiziminden (örneğin ${env:MY_POD_IP}) farklıdır.
opentelemetry-collector yapılandırma öğesi (gRPC raporlama)
# config.yaml
exporters:
otlp:
endpoint: "${GRPC_ENDPOINT}"
headers:
Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
tls:
insecure: true
processors:
batch: {}
memory_limiter:
check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
http:
endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.
service:
pipelines:
traces:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
opentelemetry-collector yapılandırma öğesi (HTTP raporlama)
# config.yaml
exporters:
otlphttp:
traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
tls:
insecure: true
timeout: 5s # The timeout period. The default value is 5s. Change the value as needed.
processors:
batch: {}
memory_limiter:
check_interval: 5s # The interval at which memory usage is checked. Change the value as needed.
limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
http:
endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.
service:
pipelines:
traces:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
opentelemetry-collector-contrib yapılandırma öğesi (gRPC raporlama)
# config.yaml
exporters:
otlp:
endpoint: "${GRPC_ENDPOINT}"
headers:
Authentication: "${GRPC_AUTHENTICATION_TOKEN}"
tls:
insecure: true
# Log exporter configuration (optional)
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 # The interval at which memory usage is checked. Change the value as needed.
limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
http:
endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.
service:
pipelines:
traces:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlp]
processors: [memory_limiter, batch]
receivers: [otlp]
# Log data processing pipeline (optional)
logs:
exporters: [alibabacloud_logservice/logs]
processors: [memory_limiter, batch]
receivers: [otlp]
opentelemetry-collector-contrib yapılandırma öğesi (HTTP raporlama)
# config.yaml
exporters:
otlphttp:
traces_endpoint: "${HTTP_TRACES_ENDPOINT}"
metrics_endpoint: "${HTTP_METRICS_ENDPOINT}"
tls:
insecure: true
timeout: 5s # The timeout period. The default value is 5s. Change the value as needed.
# Log exporter configuration (optional)
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 # The interval at which memory usage is checked. Change the value as needed.
limit_percentage: 80 # The maximum memory usage as a percentage. Change the value as needed.
spike_limit_percentage: 25 # The additional memory as a percentage that is allowed for spikes. Change the value as needed.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317 # The default value is localhost:4317. Change the value as needed.
http:
endpoint: 0.0.0.0:4318 # The default value is localhost:4318. Change the value as needed.
service:
pipelines:
traces:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
metrics:
exporters: [otlphttp]
processors: [memory_limiter, batch]
receivers: [otlp]
# Log data processing pipeline (optional)
logs:
exporters: [alibabacloud_logservice/logs]
processors: [memory_limiter, batch]
receivers: [otlp]
Adım 3: Özel yapılandırma dosyasını bağlama ve collector bileşenini çalıştırma
-p işaretçileri, uygulamalarınızın collector bileşenine veri gönderebilmesi için alıcı bağlantı noktalarını yayımlar. Bağlantı noktası eşlemesini, yapılandırma dosyanızdaki alıcı uç noktalarıyla eşleşecek şekilde ayarlayın.
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
Diğer dağıtım yöntemleri için bkz. Diğer kurulum ve dağıtım yöntemleri.