Amazon CloudFront

Présentation

Amazon CloudFront est un réseau rapide de diffusion de contenu (CDN) qui distribue vos sites Web, API, vidéos et autres ressources Web.

Activez cette intégration pour visualiser dans Datadog toutes vos métriques de CloudFront.

Configuration

Installation

Si vous ne l’avez pas déjà fait, configurez d’abord l’intégration Amazon Web Services.

Collecte de métriques

  1. Dans le carré d’intégration AWS, assurez-vous que l’option CloudFront est cochée dans la section concernant la collecte des métriques.
  2. Installez l’intégration Datadog/AWS CloudFront.
  3. Facultatif : activez les métriques de distribution CloudFront supplémentaires pour analyser plus en détail les performances de votre trafic CloudFront.

Collecte de logs

Activer le logging

Lorsque vous activez la journalisation CloudFront pour une distribution, indiquez le compartiment Amazon S3 dans lequel vous souhaitez que CloudFront stocke vos logs. Si vous utilisez Amazon S3 comme source, Datadog vous déconseille d’utiliser le même compartiment pour vos fichiers de log. L’utilisation d’un compartiment distinct simplifie la maintenance.

Journalisation Cloudfront 1
Journalisation Cloudfront 2

Remarque importante : vous pouvez stocker des fichiers de log de plusieurs distributions dans un même compartiment. Lorsque vous activez la journalisation, vous pouvez indiquer cloudfront en tant que préfixe dans les noms de fichiers pour déterminer à quelle distribution sont associés vos fichiers.

Envoyer des logs à Datadog

  1. Si vous ne l’avez pas déjà fait, configurez la fonction Lambda de collecte de logs AWS avec Datadog.

  2. Une fois la fonction Lambda installée, ajoutez manuellement un déclencheur sur le compartiment S3 contenant vos logs CloudFront en cliquant sur S3 dans la liste des déclencheurs pour votre Lambda dans la console AWS :

    Configuration déclencheur S3

    Configurez votre déclencheur en choisissant le compartiment S3 qui contient vos logs CloudFront et remplacez le type d’événement par Object Created (All). Cliquez ensuite sur le bouton Add.

    Configuration déclencheur Lambda S3

Accédez ensuite à la section Log de Datadog pour commencer à explorer vos logs !

Activer le logging

Créer une configuration spécifique

Lorsque vous créez une configuration pour des logs en temps réel, vous pouvez spécifier les champs de log que vous souhaitez recevoir. Par défaut, tous les champs disponibles sont sélectionnés.

Journalisation Cloudfront 3

Datadog recommande de conserver la configuration par défaut et d’ajouter la règle de parsing personnalisée suivante afin de traiter automatiquement les logs avec tous les champs activés.

Accédez à la page Pipelines, recherchez AWS CloudFront, [créez ou modifiez un processeur de parser grok][7], puis ajoutez les règles d’assistance suivantes sous Advanced Settings :

      real_time_logs (%{number:timestamp:scale(1000)}|%{number:timestamp})\s+%{_client_ip}\s+%{_time_to_first_byte}\s+%{_status_code}\s+%{_bytes_write}\s+%{_method}\s+%{regex("[a-z]*"):http.url_details.scheme}\s+%{notSpace:http.url_details.host:nullIf("-")}\s+%{notSpace:http.url_details.path:nullIf("-")}\s+%{_bytes_read}\s+%{notSpace:cloudfront.edge-location:nullIf("-")}\s+%{_request_id}\s+%{_ident}\s+%{_duration}\s+%{_version}\s+IPv%{integer:network.client.ip_version}\s+%{_user_agent}\s+%{_referer}\s+%{notSpace:cloudfront.cookie}\s+(%{notSpace:http.url_details.queryString:querystring}|%{notSpace:http.url_details.queryString:nullIf("-")})\s+%{notSpace:cloudfront.edge-response-result-type:nullIf("-")}\s+%{_x_forwarded_for}\s+%{_ssl_protocol}\s+%{_ssl_cipher}\s+%{notSpace:cloudfront.edge-result-type:nullIf("-")}\s+%{_fle_encrypted_fields}\s+%{_fle_status}\s+%{_sc_content_type}\s+%{_sc_content_len}\s+%{_sc_range_start}\s+%{_sc_range_end}\s+%{_client_port}\s+%{_x_edge_detailed_result_type}\s+%{notSpace:network.client.country:nullIf("-")}\s+%{notSpace:accept-encoding:nullIf("-")}\s+%{notSpace:accept:nullIf("-")}\s+%{notSpace:cache-behavior-path-pattern:nullIf("-")}\s+%{notSpace:headers:nullIf("-")}\s+%{notSpace:header-names:nullIf("-")}\s+%{integer:headers-count}.*

Envoyer des logs à Datadog

Les logs en temps réel sont envoyés au flux de données Kinesis de votre choix et peuvent être directement transmis à Datadog grâce à l’intégration Kinesis Firehose.

Vous pouvez également configurer un consommateur, tel qu’Amazon Kinesis Data Firehose, pour envoyer des logs en temps réel vers un compartiment S3 et utiliser le Forwarder Lambda Datadog pour les transmettre à Datadog.

Données collectées

Métriques

aws.cloudfront.4xx_error_rate
(gauge)
The percentage of all requests for which the HTTP status code is 4xx.
Shown as percent
aws.cloudfront.5xx_error_rate
(gauge)
The percentage of all requests for which the HTTP status code is 5xx.
Shown as percent
aws.cloudfront.bytes_downloaded
(count)
The number of bytes downloaded by viewers for GET, HEAD, and OPTIONS requests.
Shown as byte
aws.cloudfront.bytes_uploaded
(count)
The number of bytes uploaded to your origin with CloudFront using POST and PUT requests.
Shown as byte
aws.cloudfront.requests
(count)
The number of requests for all HTTP methods and for both HTTP and HTTPS requests.
aws.cloudfront.total_error_rate
(gauge)
The percentage of all requests for which the HTTP status code is 4xx or 5xx.
Shown as percent
aws.cloudfront.401_error_rate
(gauge)
The percentage of all viewer requests for which the response’s HTTP status code is 401 (Additional Metrics must be enabled).
Shown as percent
aws.cloudfront.403_error_rate
(gauge)
The percentage of all viewer requests for which the response’s HTTP status code is 403 (Additional Metrics must be enabled).
Shown as percent
aws.cloudfront.404_error_rate
(gauge)
The percentage of all viewer requests for which the response’s HTTP status code is 404 (Additional Metrics must be enabled).
Shown as percent
aws.cloudfront.502_error_rate
(gauge)
The percentage of all viewer requests for which the response’s HTTP status code is 502 (Additional Metrics must be enabled).
Shown as percent
aws.cloudfront.503_error_rate
(gauge)
The percentage of all viewer requests for which the response’s HTTP status code is 503 (Additional Metrics must be enabled).
Shown as percent
aws.cloudfront.504_error_rate
(gauge)
The percentage of all viewer requests for which the response’s HTTP status code is 504 (Additional Metrics must be enabled).
Shown as percent
aws.cloudfront.origin_latency
(gauge)
The total time spent from when CloudFront receives a request to when it starts providing a response to the network (not the viewer) for requests that are served from the origin (not the CloudFront cache). This is also known as first byte latency or time-to-first-byte (Additional Metrics must be enabled).
Shown as millisecond
aws.cloudfront.cache_hit_rate
(gauge)
The percentage of all cacheable requests for which CloudFront served the content from its cache. HTTP POST and PUT requests (and errors) are not considered cacheable requests (Additional Metrics must be enabled).
Shown as percent
aws.cloudfront.function_invocations
(count)
The number of times the function was started in a given time period.
Shown as invocation
aws.cloudfront.function_validation_errors
(gauge)
The number of validation errors produced by the function in a given time period.
Shown as error
aws.cloudfront.function_execution_errors
(gauge)
The number of execution errors that occurred in a given time period.
Shown as error
aws.cloudfront.function_execution_time
(gauge)
The amount of time that the function took to run as a percentage of the maximum allowed time.
Shown as percent

Chacune des métriques récupérées à partir d’AWS se voit assigner les mêmes tags que ceux qui apparaissent dans la console AWS, y compris, mais sans s’y limiter aws_account, region et distributionid.

Événements

L’intégration AWS CloudFront n’inclut aucun événement.

Checks de service

L’intégration AWS CloudFront n’inclut aucun check de service.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.