2026-02-18AWS Fundamentals

OpenTelemetry ile CloudWatch Application Signals Entegrasyonu

AWSCloudWatchOpenTelemetryObservabilityApplication Signals
O

AWS CloudWatch Application Signals, uygulamalarınızın performansını otomatik olarak izlemenizi ve sorunları hızlıca tespit etmenizi sağlayan güçlü bir gözlemlenebilirlik özelliğidir. Bu rehberde, OpenTelemetry (OTel) kullanarak Application Signals'ı nasıl entegre edeceğinizi adım adım inceleyeceğiz.

İçindekiler

Giriş <a name="giris"></a>

Modern mikroservis mimarilerinde, uygulamanızın sağlığını anlamak zor olabilir. Dağıtık sistemlerdeki hataları izlemek, darboğazları bulmak ve kullanıcı deneyimini iyileştirmek için gözlemlenebilirlik (observability) kritik öneme sahiptir. AWS CloudWatch Application Signals, bu ihtiyacı karşılamak için tasarlanmıştır.

CloudWatch Application Signals Nedir? <a name="cloudwatch-application-signals-nedir"></a>

CloudWatch Application Signals, uygulama performansını (hata oranı, gecikme süresi, istek sayısı) servis bazında otomatik olarak izler. Size şunları sunar:

  • Otomatik Servis Haritası: Servislerinizin birbirleriyle nasıl iletişim kurduğunu görselleştirir.
  • Service Level Objectives (SLO): İş hedeflerinize uygun performans metrikleri tanımlamanızı sağlar.
  • X-Ray Entegrasyonu: İzleme (trace) verileriyle sorunların kök nedenini analiz etmenizi kolaylaştırır.

Neden OpenTelemetry? <a name="neden-opentelemetry"></a>

OpenTelemetry (OTel), gözlemlenebilirlik verilerini (loglar, metrikler, izler) toplamak için endüstri standardı haline gelmiş açık kaynaklı bir projedir. AWS CloudWatch, OTel ile tam uyumlu çalışır.

  • Vendor Agnostic: Tek bir sağlayıcıya bağımlı kalmazsınız.
  • Geniş Ekosistem: Birçok dil ve framework için hazır kütüphaneler sunar.
  • Esneklik: Verileri topladıktan sonra birden fazla hedefe (CloudWatch, Prometheus, vb.) gönderebilirsiniz.

Mimari ve Çalışma Prensibi <a name="mimari-ve-calisma-prensibi"></a>

Aşağıdaki diyagram, OpenTelemetry Collector ve CloudWatch Application Signals'ın nasıl birlikte çalıştığını göstermektedir.

CloudWatch Application Signals Mimarisi

Uygulamanız (Java, Python, Node.js vb.) OTel SDK ile enstrümente edilir. Veriler ADOT (AWS Distro for OpenTelemetry) Collector'a gönderilir ve buradan CloudWatch'a iletilir.

Adım Adım Kurulum Rehberi <a name="adim-adim-kurulum-rehberi"></a>

Bu bölümde, basit bir Java uygulamasını OpenTelemetry ile CloudWatch Application Signals'a nasıl bağlayacağımızı göreceğiz.

Ön Koşullar

  • AWS Hesabı
  • AWS CLI yüklü ve yapılandırılmış
  • Kubernetes (EKS) veya ECS kümesi (Örnek EKS üzerindendir)
  • kubectl ve helm araçları

Adım 1: ADOT Eklentisini Kurun

EKS kümenize AWS Distro for OpenTelemetry (ADOT) operatörünü kurun.

# EKS Add-on olarak ADOT kurulumu
aws eks create-addon --cluster-name my-cluster --addon-name adot --addon-version v0.88.0-eksbuild.1

Adım 2: OpenTelemetry Collector Yapılandırması

CloudWatch'a veri göndermek için bir Collector yapılandırması (YAML) oluşturun. application_signals özelliğini etkinleştirmeyi unutmayın.

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: my-collector
spec:
  mode: daemonset
  config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:
    processors:
      resourcedetection:
        detectors: [aws_eks]
      batch:
    exporters:
      awscloudwatch:
        region: us-east-1
        logs:
          log_group_name: "/aws/containerinsights/my-cluster/application"
          log_stream_name: "application-signals"
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [resourcedetection, batch]
          exporters: [awscloudwatch]
        metrics:
          receivers: [otlp]
          processors: [resourcedetection, batch]
          exporters: [awscloudwatch]

Bu yapılandırmayı uygulayın:

kubectl apply -f collector-config.yaml

Adım 3: Uygulamanızı Enstrümente Edin

Java uygulamanız için otomatik enstrümantasyon (auto-instrumentation) kullanabilirsiniz. Dockerfile veya Kubernetes deployment dosyanıza gerekli ortam değişkenlerini ekleyin.

env:
  - name: OTEL_RESOURCE_ATTRIBUTES
    value: "service.name=my-java-service,service.namespace=production"
  - name: OTEL_TRACES_EXPORTER
    value: "otlp"
  - name: OTEL_METRICS_EXPORTER
    value: "otlp"
  - name: OTEL_EXPORTER_OTLP_ENDPOINT
    value: "http://my-collector-collector:4317"

Sıkça Sorulan Sorular (SSS) <a name="sikca-sorulan-sorular"></a>

1. CloudWatch Application Signals ücretli mi?

Evet, Application Signals kullanımı standart CloudWatch metrikleri ve X-Ray izleme ücretlerine tabidir. Ancak, sağladığı otomatik analiz yetenekleri operasyonel maliyetlerinizi düşürebilir.

2. Hangi diller destekleniyor?

Java, Python, Node.js ve .NET başta olmak üzere OpenTelemetry SDK'sı olan çoğu dil desteklenmektedir. AWS, Java ve Python için özel otomatik enstrümantasyon ajanları sunar.

3. Mevcut X-Ray kurulumumla çalışır mı?

Evet, Application Signals X-Ray ile entegre çalışır. Mevcut X-Ray izlerinizi zenginleştirerek servis haritası ve SLO takibi gibi özellikler ekler.

4. Application Signals'ı neden kullanmalıyım?

Manuel dashboard oluşturmak yerine, servislerinizin sağlığını "kutudan çıktığı gibi" (out-of-the-box) izlemek ve otomatik anormallik tespiti yapmak için kullanmalısınız.

Sonuç <a name="sonuc"></a>

CloudWatch Application Signals ve OpenTelemetry entegrasyonu, modern uygulamalar için güçlü bir gözlemlenebilirlik çözümü sunar. Standartlara dayalı (OTel) veri toplama ve AWS'nin gelişmiş analiz yeteneklerini birleştirerek, sistemlerinizin güvenilirliğini artırabilirsiniz.

Daha fazla bilgi için AWS CloudWatch Dokümantasyonu ve OpenTelemetry Resmi Sitesi'ni inceleyebilirsiniz.