Metrik khusus dengan Sinyal Aplikasi - Amazon CloudWatch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Metrik khusus dengan Sinyal Aplikasi

Untuk memantau kinerja dan ketersediaan aplikasi, Sinyal Aplikasi mengumpulkan metrik standar (kesalahan, kesalahan, dan latensi) dan metrik runtime dari aplikasi yang ditemukan setelah Anda mengaktifkannya.

Metrik Kustom menambahkan konteks berharga ke pemantauan aplikasi Anda dan membantu mempercepat pemecahan masalah. Anda dapat menggunakannya untuk:

  • Sesuaikan analisis data telemetri

  • Identifikasi akar penyebab masalah

  • Membuat keputusan bisnis dan operasional yang tepat dengan cepat

Sinyal Aplikasi memungkinkan Anda melihat dan mengkorelasikan metrik kustom yang dihasilkan dari layanan dengan metrik standar dan runtime. Misalnya, aplikasi dapat memancarkan metrik untuk ukuran permintaan dan jumlah kehilangan cache. Metrik khusus ini memberikan wawasan yang lebih terperinci tentang masalah kinerja, membantu Anda mendiagnosis dan menyelesaikan penurunan ketersediaan dan lonjakan latensi lebih cepat.

Mengonfigurasi metrik khusus ke Sinyal Aplikasi

Anda dapat membuat metrik kustom dari aplikasi Anda menggunakan dua metode: OpenTelemetry metrik dan metrik Span.

OpenTelemetry metrik

Untuk menggunakan OpenTelemetry metrik kustom dengan Sinyal Aplikasi, Anda harus menggunakan CloudWatch Agen atau OpenTelemetry Kolektor. OpenTelemetry Metrik khusus memungkinkan Anda membuat dan mengekspor metrik langsung dari kode aplikasi menggunakan OpenTelemetry Metrics SDK.

  1. Layanan onboard ke Sinyal Aplikasi.

  2. Konfigurasikan agen atau kolektor.

    • Saat menggunakan CloudWatch agen, Anda harus mengkonfigurasi metrics_collected dengan fileotlp. Sebagai contoh, cloudwatch-config.json.

      { "traces": { "traces_collected": { "application_signals": {} } }, "logs": { "metrics_collected": { "application_signals": {}, "otlp": { "grpc_endpoint": "0.0.0.0:4317", "http_endpoint": "0.0.0.0:4318" } } } }
    • Saat menggunakan OpenTelemetry Collector, konfigurasikan pipeline metrik. Anda harus menggunakan CloudWatch EMF Exporter for OpenTelemetry Collector dan mengaktifkan Atribut Sumber Daya ke Label Metrik. Disarankan untuk mengonfigurasi dimension_rollup_option: NoDimensionRollup agar tidak memancarkan banyak agregasi metrik. Misalnya,config.yaml:

      receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: awsemf: region: $REGION namespace: $NAMESPACE log_group_name:$LOG_GROUP_NAME resource_to_telemetry_conversion: enabled: true dimension_rollup_option: "NoDimensionRollup" otlphttp/traces: compression: gzip traces_endpoint: https://xray.$REGION.amazonaws.com/v1/traces auth: authenticator: sigv4auth/traces extensions: sigv4auth/logs: region: "$REGION" service: "logs" sigv4auth/traces: region: "$REGION" service: "xray" processors: batch: service: telemetry: extensions: [sigv4auth/logs, sigv4auth/traces] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [awsemf] traces: receivers: [otlp] processors: [batch] exporters: [otlphttp/traces]
  3. Konfigurasikan lingkungan. Ketika ada beberapa layanan dengan nama layanan yang sama dan untuk secara akurat menghubungkan metrik Sinyal Aplikasi ke nama layanan yang benar, disarankan untuk mengonfigurasi atribut sumber daya. deployment.environment.name Mengkonfigurasi atribut sumber daya ini biasanya dilakukan melalui variabel lingkungan.

    OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME,deployment.environment.name=$YOUR_ENV_NAME"
  4. Konfigurasikan ekspor metrik ke CloudWatch agen atau OpenTelemetry Kolektor. Anda dapat menggunakan salah satu pendekatan berikut:

    • (Disarankan) Pipa ekspor khusus - Dalam kode aplikasi, buat MeterProviderekspor khusus ke titik akhir agen atau kolektor yang dikonfigurasi. Misalnya:

      Resource resource = Resource.getDefault().toBuilder() .put(AttributeKey.stringKey("service.name"), serviceName) .put(AttributeKey.stringKey("deployment.environment.name"), environment) .build(); MetricExporter metricExporter = OtlpHttpMetricExporter.builder() .setEndpoint("http://localhost:4318/v1/metrics") .build(); MetricReader metricReader = PeriodicMetricReader.builder(metricExporter) .setInterval(Duration.ofSeconds(10)) .build() SdkMeterProvider meterProvider = SdkMeterProvider.builder() .setResource(resource) .registerMetricReader() .build(); Meter meter = meterProvider.get("myMeter");
    • Ekspor berbasis agen - Konfigurasikan variabel lingkungan agen OTEL_METRICS_EXPORTER dan OTEL_EXPORTER_OTLP_METRICS_ENDPOINT. Misalnya:

      OTEL_METRICS_EXPORTER=otlp OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metrics

      Dalam kode aplikasi, andalkan global MeterProvider yang dibuat oleh agen. Misalnya:

      Meter meter = GlobalOpenTelemetry.getMeter("myMeter");
  5. Menggunakan OTEL Metrics SDK dalam kode aplikasi, tambahkan Metrik OTEL. Misalnya, untuk menambahkan metrik OTEL dengan Python:

    counter = meter.counterBuilder("myCounter").build(); counter.add(value); counter.add(value, Attributes.of(AttributeKey.stringKey("Operation"), "myOperation"));

    Menambahkan atribut Operasi tidak diperlukan, tetapi dapat berguna untuk menghubungkan Operasi Layanan Sinyal Aplikasi ke OpenTelemetry Metrik Kustom.

Metrik rentang

Metrik Span Kustom saat ini hanya berfungsi dengan Penelusuran Transaksi. Dengan metrik Span kustom, Anda dapat:

  • Buat metrik menggunakan Filter Metrik

  • Atribut rentang proses ditambahkan dalam kode aplikasi

  • Menggunakan OpenTelemetry Traces SDK untuk implementasi

  1. Aktifkan pemantauan Sinyal Aplikasi dengan Pencarian Transaksi. Untuk informasi selengkapnya, lihat Pencarian Transaksi.

    Untuk memastikan pengambilan sampel metrik 100%, disarankan untuk mengirim 100% bentang ke titik akhir.

  2. Tambahkan atribut span menggunakan OTEL Traces SDK. Ada dua cara:

    • [Disarankan] Tambahkan atribut ke rentang yang dihasilkan secara otomatis. Misalnya:

      Span.current().setAttribute("myattribute", value);
    • Tambahkan atribut ke rentang yang dihasilkan secara manual. Misalnya:

      Span span = tracer.spanBuilder("myspan").startSpan(); try (Scope scope = span.makeCurrent()) { span.setAttribute("myattribute", value); }
  3. Buat filter metrik dengan nilai berikut. Untuk informasi tentang cara membuat filter metrik, lihat Membuat filter metrik untuk grup log.

    • Grup Log - aws/bentang

    • Pola filter — {$.attributes. ['myattribute'] = *}

    • Nama metrik — myattribute (Nilai harus sama persis atau korelasi rentang tidak akan berfungsi

    • Nilai metrik — $.attributes. ['myattribute']

    • Dimensi - Nama Bidang: Layanan, Nilai Bidang: $.attributes. ['aws.local.service'], Nama Bidang: Lingkungan, Nilai Bidang: $.attributes. ['aws.local.environment'], dan Nama Bidang: Operasi, Nilai Bidang: $.attributes. ['aws.local.operation']

      catatan

      Ketika Anda menambahkan atribut ke rentang yang dihasilkan secara manual, Anda tidak dapat mengatur Operation karena tidak aws.local.operation akan hadir dalam data rentang.

Melihat metrik khusus di Sinyal Aplikasi

Sekarang Anda dapat melihat metrik kustom untuk layanan dan operasi di konsol Sinyal Aplikasi:

  • Pilih layanan dari daftar Layanan untuk melihat tab Metrik Terkait yang baru

  • Melihat metrik standar, metrik runtime, dan metrik terkait untuk layanan yang Anda pilih

  • Filter dan pilih beberapa metrik dari daftar

  • Grafik metrik yang dipilih untuk mengidentifikasi korelasi dan akar penyebab masalah

Untuk informasi selengkapnya tentang Metrik Terkait, lihatLihat metrik terkait.

Pertanyaan yang sering diajukan (FAQs)

Apa dampak dari tidak menambahkan konfigurasi untuk lingkungan untuk metrik khusus?

Sinyal Aplikasi mengonfigurasi atribut deployment.environment.name sumber daya untuk membedakan aplikasi. Sinyal Aplikasi tidak dapat mengkorelasikan metrik kustom yang dihasilkan dari dua layanan berbeda dengan nama yang sama ke layanan yang benar tanpa disambiguasi.

Untuk menambahkan konfigurasi lingkungan ke aplikasi Anda, lihatOpenTelemetry metrik.

Apakah ada batasan untuk filter metrik?

Anda hanya dapat membuat hingga 100 filter metrik per grup CloudWatch log Log. Setiap metrik yang ditentukan dapat memiliki hingga 3 dimensi. Anda dapat melihat batas untuk filter metrik di siniOpenTelemetry metrik.

Mengapa grafik metrik tidak muncul di tabel metrik?

Solusinya tergantung pada jenis metrik Anda: