

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Envoyez des métriques à l'aide de OpenTelemetry
<a name="metrics-otel-send"></a>

Vous pouvez publier des métriques personnalisées à CloudWatch l'aide du OpenTelemetry protocole (OTLP). Vous pouvez utiliser les SDK OTel (Java, Python, Go, .NET Node.js), le collecteur OTel ou n'importe quel OTLP-compatible client.

## CloudWatch Point de terminaison OTLP
<a name="metrics-otel-send-endpoint"></a>

Envoyez des métriques au point de terminaison CloudWatch OTLP de votre région :

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

L'authentification utilise la signature standard AWS SigV4. Le nom du service est`monitoring`. Pour plus d'informations sur le point de terminaison, les options d'authentification et les limites, consultez[Points de terminaison OTLP](CloudWatch-OTLPEndpoint.md).

## Démarrage rapide : publiez votre premier indicateur
<a name="metrics-otel-send-quickstart"></a>

### Option 1 : OTel Collector (recommandé pour la production)
<a name="metrics-otel-send-collector"></a>

Configurez un collecteur OTel avec l'exportateur HTTP OTLP et l'authentification 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]
```

Pour des instructions de configuration détaillées, voir[Prise en main](CloudWatch-OTLPGettingStarted.md).

### Option 2 : SDK OTel (exemple en 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"})
```

### Option 3 : SDK OTel (exemple 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"
));
```

## Autorisations IAM nécessaires
<a name="metrics-otel-send-iam"></a>

Les métriques d'envoi d'identité nécessitent une `cloudwatch:PutMetricData` autorisation. Pour l'authentification SigV4, joignez la politique suivante :

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

Pour l'authentification par jeton au porteur, voir[Configuration de l'authentification par jeton porteur pour Metrics](CloudWatch-OTLP-MetricsBearerTokenAuth.md).

## Vérifiez que les métriques arrivent
<a name="metrics-otel-send-verify"></a>

Ouvrez la CloudWatch console, accédez à **Query Studio** et exécutez :

```
http_requests_total
```

Les métriques apparaissent généralement dans les 1 à 2 minutes suivant l'envoi du premier point de données.

## Types de métriques pris en charge
<a name="metrics-otel-send-types"></a>

Le tableau suivant décrit les types de métriques OTel pris CloudWatch en charge et explique comment les interroger avec ProMQL.


| Type métrique OTel | Comportement de ProMQL | 
| --- | --- | 
| Compteur | Utiliser rate() ou increase() pour interroger | 
| Jauge | Requête directe (valeur actuelle) | 
| Histogramme | Utiliser histogram\_quantile() pour les percentiles | 

## Bonnes pratiques
<a name="metrics-otel-send-best-practices"></a>

Suivez ces recommandations lorsque vous envoyez des métriques via OTLP :
+ **Utilisez des noms de métriques significatifs** : suivez les conventions de dénomination OTel (par exemple, `http.server.request.duration` ou`http_request_duration_seconds`).
+ **Maintenez une cardinalité d'étiquette raisonnable** : évitez les ID de demande ou les UUID comme valeurs d'étiquette.
+ **Définissez un intervalle d'exportation approprié** (60 secondes, c'est la norme). Des intervalles plus courts augmentent les coûts.
+ **Utiliser les attributs de ressource** : utilisez les attributs de ressource pour les métadonnées statiques (nom du service, version, environnement) plutôt que pour les étiquettes par point de données.