

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
<a name="AppSignals-CustomMetrics"></a>

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.

**Topics**
+ [Mengonfigurasi metrik khusus ke Sinyal Aplikasi](#AppSignals-CustomMetrics-Adding)
+ [Melihat metrik khusus di Sinyal Aplikasi](#AppSignals-CustomMetrics-Viewing)
+ [Pertanyaan yang sering diajukan (FAQs)](#AppSignals-CustomMetrics-FAQ)

## Mengonfigurasi metrik khusus ke Sinyal Aplikasi
<a name="AppSignals-CustomMetrics-Adding"></a>

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

**Topics**
+ [OpenTelemetry metrik](#AppSignals-CustomMetrics-OpenTelemetry)
+ [Metrik rentang](#AppSignals-CustomMetrics-SpanMetrics)

### OpenTelemetry metrik
<a name="AppSignals-CustomMetrics-OpenTelemetry"></a>

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.

1. Konfigurasikan agen atau kolektor.
   + Saat menggunakan CloudWatch agen, Anda harus [mengkonfigurasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-OpenTelemetry-metrics.html) `metrics_collected` dengan file`otlp`. 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](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/awsemfexporter) dan mengaktifkan [Atribut Sumber Daya ke Label Metrik](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/awsemfexporter#resource-attributes-to-metric-labels). 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]
     ```

1. 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"
   ```

1. Konfigurasikan ekspor metrik ke CloudWatch agen atau OpenTelemetry Kolektor. Anda dapat menggunakan salah satu pendekatan berikut:
   + (Disarankan) Pipa ekspor khusus - Dalam kode aplikasi, buat [MeterProvider](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#meterprovider)ekspor 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](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#exporter-selection).](https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/#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");
     ```

1. Menggunakan [OTEL Metrics SDK](https://opentelemetry.io/docs/specs/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
<a name="AppSignals-CustomMetrics-SpanMetrics"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-getting-started.html).

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

1. Tambahkan atribut span menggunakan [OTEL Traces SDK](https://opentelemetry.io/docs/specs/otel/trace/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);
     }
     ```

1. Buat filter metrik dengan nilai berikut. Untuk informasi tentang cara membuat filter metrik, lihat [Membuat filter metrik untuk grup log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html).
   + 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
<a name="AppSignals-CustomMetrics-Viewing"></a>

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, lihat[Lihat metrik terkait](ServiceDetail.md#ServiceDetail-relatedmetrics).

## Pertanyaan yang sering diajukan (FAQs)
<a name="AppSignals-CustomMetrics-FAQ"></a>

### Apa dampak dari tidak menambahkan konfigurasi untuk lingkungan untuk metrik khusus?
<a name="AppSignals-CustomMetrics-FAQ-Environment"></a>

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, lihat[OpenTelemetry metrik](#AppSignals-CustomMetrics-OpenTelemetry).

### Apakah ada batasan untuk filter metrik?
<a name="AppSignals-CustomMetrics-FAQ-Limits"></a>

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 sini[OpenTelemetry metrik](#AppSignals-CustomMetrics-OpenTelemetry).

### Mengapa grafik metrik tidak muncul di tabel metrik?
<a name="AppSignals-CustomMetrics-FAQ-Graph"></a>

Solusinya tergantung pada jenis metrik Anda:
+ Metrik kustom - Lihat [Mengonfigurasi metrik khusus ke Sinyal Aplikasi](#AppSignals-CustomMetrics-Adding) untuk memverifikasi konfigurasi metrik
+ Metrik standar atau runtime — Lihat [Pemecahan Masalah pemasangan Sinyal Aplikasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Application-Signals-Enable-Troubleshoot.html) Anda