Cloudflare

Cloudflare

Crawler Crawler

Présentation

Associez Datadog à votre compte Cloudflare pour consulter vos métriques relatives au DNS et au trafic Web.

Implémentation

Installation

Installez l’intégration avec le carré d’intégration Cloudflare de Datadog.

Configuration

  1. Accédez à l’onglet Configuration dans le carré d’intégration Cloudflare de Datadog.
  2. Saisissez les adresses e-mail et les clés ou tokens d’API des comptes que vous souhaitez surveiller. Vos clés et tokens d’API Cloudflare sont disponibles sur votre compte Cloudflare sous Mon profil > Tokens API.
  3. Nommez le compte. Ce nom est arbitraire. Il est utilisé dans le tag account de vos métriques.

Lorsque vous utilisez un token d’API, assurez-vous qu’il dispose des autorisations suivantes :

  • Zone > Zone > Read
  • Zone > Analytics > Read

Collecte de logs

Cloudflare permet aux clients de transmettre directement des logs à Datadog à l’aide de son service Logpush.

  1. Créez une tâche Logpush en envoyant une requête POST à l’endpoint des tâches Logpush. Renseignez les champs suivants :

    • name (facultatif) : indiquez votre nom de domaine.
    • destination_conf : une destination pour les logs caractérisée par les paramètres suivants :
      • <URL_ENDPOINT_DATADOG> : l’endpoint d’admission des logs HTTP Datadog. Votre endpoint est http-intake.logs./v1/input.
      • <CLÉ_API_DATADOG> : votre clé d’API Datadog.
      • ddsource : définissez ce paramètre sur cloudflare.
      • service (facultatif) : indiquez le nom du service.
      • host (facultatif) : indiquez le nom du host.
      • ddtags (facultatif) : indiquez des tags.
    • dataset : la catégorie des logs que vous souhaitez recevoir. Consultez la documentation Cloudflare (en anglais) pour découvrir la liste de tous les ensembles de données pris en charge.
    • logpull_options (facultatif) : pour configurer les champs, le taux d’échantillonnage et le format des timestamps, consultez la section Options de la documentation sur l’API Logpush (en anglais).

    Exemple de requête :

    curl -s -X POST 'https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs' \
    --header 'X-Auth-Key: <CLOUDFLARE_AUTH_KEY>' \
    --header 'X-Auth-Email: <CLOUDFLARE_AUTH_EMAIL>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
       "name": "<NAME>",
       "destination_conf": "datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>&ddsource=cloudflare&service=cloudflare&ddtags=env:dev",
       "logpull_options": "fields=RayID,EdgeStartTimestamp&timestamps=rfc3339",
       "dataset": "http_requests"
    }'
    

    Exemple de réponse :

    {
     "errors": [],
     "messages": [],
     "result": {
       "id": 100,
       "dataset": "http_requests",
       "enabled": false,
       "name": "<DOMAIN_NAME>",
       "logpull_options": "fields=RayID,EdgeStartTimestamp&timestamps=rfc3339",
       "destination_conf": "datadog://http-intake.logs.datadoghq.com/v1/input?header_DD-API-KEY=<DD-API-KEY>&ddsource=cloudflare&service=cloudflare&ddtags=env:dev",
       "last_complete": null,
       "last_error": null,
       "error_message": null
     },
     "success": true
    }
    

    Notez la valeur d'id. Dans l’exemple précédent, elle est de 100.

  2. Activez la tâche. Utilisez l’ID de tâche renvoyé dans la réponse et envoyez {"enabled": true} dans le corps de la requête.

    Exemple de requête :

    curl -s -X PUT \
    https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs/<JOB_ID> -d'{"enabled":true}' | jq .
    

    Exemple de réponse :

    {
      "errors": [],
      "messages": [],
      "result": {
        "id": 100,
        "dataset": "http_requests",
        "enabled": true,
        "name": "<DOMAIN_NAME>",
        "logpull_options": "fields=RayID,EdgeStartTimestamp&timestamps=rfc3339",
        "destination_conf": "datadog://<DATADOG-ENDPOINT-URL>?header_DD-API-KEY=<DATADOG-API-KEY>",
        "last_complete": null,
        "last_error": null,
        "error_message": null
      },
      "success": true
    }
    

Données collectées

Métriques

cloudflare.requests.all
(count)
Total request count
Shown as request
cloudflare.requests.cached
(count)
Cached requests count
Shown as request
cloudflare.requests.uncached
(count)
Uncached requests count
Shown as request
cloudflare.requests.ssl.encrypted
(count)
SSL encrypted requests count
Shown as request
cloudflare.requests.ssl.unencrypted
(count)
Unencrypted requests count
Shown as request
cloudflare.requests.country
(count)
Request count, tagged by IATA country code
Shown as request
cloudflare.requests.status
(count)
Request count, tagged by HTTP response code
Shown as request
cloudflare.requests.content_type
(count)
Request count, tagged by Content-Type
Shown as request
cloudflare.requests.ip_class
(count)
Request count, tagged by IP class
Shown as request
cloudflare.bandwidth.all
(count)
Total bandwidth
Shown as byte
cloudflare.bandwidth.cached
(count)
Cached bandwidth
Shown as byte
cloudflare.bandwidth.uncached
(count)
Uncached bandwidth
Shown as byte
cloudflare.bandwidth.ssl.encrypted
(count)
SSL encrypted bandwidth
Shown as byte
cloudflare.bandwidth.ssl.unencrypted
(count)
Unencrypted bandwidth
Shown as byte
cloudflare.bandwidth.country
(count)
Bandwidth tagged by IATA country code
Shown as byte
cloudflare.bandwidth.content_type
(count)
Bandwidth tagged by Content-Type
Shown as byte
cloudflare.threats.all
(count)
Total threats
Shown as operation
cloudflare.threats.type
(count)
Threats tagged by type
Shown as operation
cloudflare.threats.country
(count)
Threats tagged by IATA country code
Shown as operation
cloudflare.pageviews.all
(count)
Total page views
Shown as page
cloudflare.pageviews.search_engine
(count)
Page views tagged by search engine
Shown as page
cloudflare.uniques.all
(count)
Unique visitors count
Shown as connection
cloudflare.dns.query.all
(count)
DNS query count
Shown as request
cloudflare.dns.query.uncached
(count)
Uncached DNS query count
Shown as request
cloudflare.dns.query.stale
(count)
Stale DNS query count
Shown as request
cloudflare.dns.response_time.avg
(gauge)
DNS query average response time
Shown as millisecond
cloudflare.dns.response_time.median
(gauge)
DNS query median response time
Shown as millisecond
cloudflare.dns.response_time.90p
(gauge)
DNS query response time to the 90th percentile
Shown as millisecond
cloudflare.dns.response_time.99p
(gauge)
DNS query response time to the 99th percentile
Shown as millisecond
cloudflare.workers.requests.all
(count)
The request count to the worker script (metrics may not show without enabled API Key permissions)
Shown as request
cloudflare.workers.requests.errors
(count)
The error count to the worker script (metrics may not show without enabled API Key permissions)
Shown as request
cloudflare.workers.requests.subrequests
(count)
The subrequest count to the worker script (metrics may not show without enabled API Key permissions)
Shown as request
cloudflare.workers.response_time.75p
(gauge)
The worker response time to the 75th percentile (metrics may not show without enabled API Key permissions)
Shown as millisecond
cloudflare.workers.response_time.99p
(gauge)
The worker response time to the 99th percentile (metrics may not show without enabled API Key permissions)
Shown as millisecond
cloudflare.load_balancer.pool.round_trip_time.average
(gauge)
The average round trip time to reach the load balancer pool
Shown as millisecond
cloudflare.load_balancer.pool.health.status
(count)
The load balancer pool health status
Shown as request

Événements

L’intégration Cloudflare n’inclut aucun événement.

Checks de service

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

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.