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.

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 du Forwarder Datadog dans votre compte AWS.
  2. Une fois la fonction Lambda configurée, accédez-y. Dans la section Function Overview, cliquez sur Add Trigger.
  3. Sélectionnez le déclencheur S3 pour le champ Trigger Configuration.
  4. Sélectionnez le compartiment S3 où se trouvent vos logs CloudFront.
  5. Conservez le type d’événement All object create events.
  6. Cliquez sur Add pour ajouter le déclencheur à votre fonction Lambda.

Accédez au Log Explorer pour commencer à explorer vos logs.

Pour en savoir plus sur la collecte de logs de service AWS, consultez la section Envoyer des logs de service AWS avec la fonction Lambda Datadog.

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.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.4xx_error_rate
(gauge)
The percentage of all requests for which the HTTP status code is 4xx.
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.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.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_compute_utilization
(gauge)
The amount of time that the function took to run as a percentage of the maximum allowed time.
Shown as percent
aws.cloudfront.function_execution_errors
(gauge)
The number of execution errors that occurred in a given time period.
Shown as error
aws.cloudfront.function_invocations
(count)
The number of times the function was started in a given time period.
Shown as invocation
aws.cloudfront.function_throttles
(count)
The number of times that the function was throttled in a given time period.
Shown as throttle
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.lambda_execution_error
(count)
The number of Lambda execution errors that occurred in a given time period.
Shown as error
aws.cloudfront.lambda_limit_exceeded_error
(count)
The number of Lambda limit exceeded errors that occurred in a given time period.
Shown as error
aws.cloudfront.lambda_validation_error
(count)
The number of Lambda validation errors that occurred in a given time period.
Shown as error
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.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

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.