

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

# Kirim metrik menggunakan OpenTelemetry
<a name="metrics-otel-send"></a>

Anda dapat mempublikasikan metrik khusus untuk CloudWatch menggunakan OpenTelemetry Protokol (OTLP). Anda dapat menggunakan OTel SDK (Java, Python, Go, .NET, Node.js), Kolektor OTel, atau klien apa pun. OTLP-compatible

## CloudWatch Titik akhir OTLP
<a name="metrics-otel-send-endpoint"></a>

Kirim metrik ke titik akhir CloudWatch OTLP di Wilayah Anda:

```
https://monitoring.{{region}}.amazonaws.com/v1/metrics
```

Otentikasi menggunakan AWS penandatanganan SiGv4 standar. Nama layanannya adalah`monitoring`. Untuk informasi selengkapnya tentang titik akhir, opsi otentikasi, dan batas, lihat. [Titik Akhir OTLP](CloudWatch-OTLPEndpoint.md)

## Mulai cepat: publikasikan metrik pertama Anda
<a name="metrics-otel-send-quickstart"></a>

### Opsi 1: Otel Collector (direkomendasikan untuk produksi)
<a name="metrics-otel-send-collector"></a>

Konfigurasikan Kolektor OTel dengan eksportir HTTP OTLP dan otentikasi SigV4:

```
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

processors:
  batch:
    send_batch_size: 200
    timeout: 10s

exporters:
  otlphttp:
    tls:
      insecure: false
    metrics_endpoint: "https://monitoring.{{us-east-1}}.amazonaws.com/v1/metrics"
    auth:
      authenticator: sigv4auth

extensions:
  sigv4auth:
    service: "monitoring"
    region: "{{us-east-1}}"

service:
  extensions: [sigv4auth]
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]
```

Untuk petunjuk penyiapan terperinci, lihat[Memulai](CloudWatch-OTLPGettingStarted.md).

### Opsi 2: OTel SDK (contoh Python)
<a name="metrics-otel-send-python"></a>

```
from opentelemetry import metrics
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter

# Point at the CloudWatch OTLP endpoint
exporter = OTLPMetricExporter(
    endpoint="https://monitoring.{{us-east-1}}.amazonaws.com:443/v1/metrics"
)
reader = PeriodicExportingMetricReader(exporter, export_interval_millis=60000)
provider = MeterProvider(metric_readers=[reader])
metrics.set_meter_provider(provider)

# Create and record a metric
meter = metrics.get_meter("my-app")
counter = meter.create_counter("http_requests_total", description="Total HTTP requests")
counter.add(1, {"method": "GET", "path": "/api/users", "status": "200"})
```

### Opsi 3: OTel SDK (contoh Java)
<a name="metrics-otel-send-java"></a>

```
import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.api.metrics.LongCounter;

Meter meter = GlobalOpenTelemetry.getMeter("my-app");
LongCounter counter = meter.counterBuilder("http_requests_total")
    .setDescription("Total HTTP requests")
    .build();

counter.add(1, Attributes.of(
    AttributeKey.stringKey("method"), "GET",
    AttributeKey.stringKey("path"), "/api/users",
    AttributeKey.stringKey("status"), "200"
));
```

## Izin IAM yang diperlukan
<a name="metrics-otel-send-iam"></a>

Metrik pengiriman identitas memerlukan `cloudwatch:PutMetricData` izin. Untuk otentikasi SiGv4, lampirkan kebijakan berikut:

```
{
  "Effect": "Allow",
  "Action": [
    "cloudwatch:PutMetricData"
  ],
  "Resource": "*"
}
```

Untuk otentikasi token pembawa, lihat. [Menyiapkan otentikasi token pembawa untuk Metrik](CloudWatch-OTLP-MetricsBearerTokenAuth.md)

## Verifikasi metrik sudah tiba
<a name="metrics-otel-send-verify"></a>

Buka CloudWatch konsol, navigasikan ke **Query Studio**, dan jalankan:

```
http_requests_total
```

Metrik biasanya muncul dalam 1-2 menit dari titik data pertama dikirim.

## Jenis metrik yang didukung
<a name="metrics-otel-send-types"></a>

Tabel berikut menjelaskan jenis metrik OTel yang CloudWatch mendukung dan cara menanyakannya dengan PromQL.


| Jenis metrik OTel | Perilaku PromQL | 
| --- | --- | 
| Penghitung | Gunakan rate() atau increase() kueri | 
| Pengukur | Kueri langsung (nilai saat ini) | 
| Histogram | Gunakan histogram\_quantile() untuk persentil | 

## Praktik terbaik
<a name="metrics-otel-send-best-practices"></a>

Ikuti rekomendasi ini saat mengirim metrik melalui OTLP:
+ **Gunakan nama metrik yang berarti** — Ikuti konvensi penamaan OTel (misalnya, `http.server.request.duration` atau`http_request_duration_seconds`).
+ **Jaga agar kardinalitas label tetap wajar** — Hindari ID permintaan atau UUID sebagai nilai label.
+ **Tetapkan interval ekspor yang sesuai** - 60 detik adalah standar. Interval yang lebih pendek meningkatkan biaya.
+ **Gunakan atribut sumber daya** — Gunakan atribut sumber daya untuk metadata statis (nama layanan, versi, lingkungan) daripada label per titik data.