Importer des données de trafic de l'API vers Apigee – Version bêta

Tous les clients Edge for Private Cloud doivent envoyer à Apigee des statistiques sur le trafic du proxy d'API. Apigee recommande aux clients de télécharger ces informations une fois par jour, éventuellement en créant une tâche Cron.

Vous devez envoyer les données pour vos déploiements d'API de production, mais pas pour les API en cours de développement ou de test. Dans la plupart des installations Edge, vous définissez des organisations ou des environnements spécifiques pour vos API de production. Les données que vous envoyez ne concernent que ces organisations et ces environnements de production.

Pour vous aider à importer ces données, Apigee fournit la version bêta de l'utilitaire de ligne de commande apigee-analytics-collector. Cet utilitaire renvoie le rapport sur le volume d'appels d'API à Apigee. Chaque Edge de l'installation de Private Cloud peut utiliser cet utilitaire pour récupérer les données de trafic et les signaler à Apigee.

Obligatoire: Contactez l'assistance Apigee avant d'importer des données

Avant de pouvoir importer des données dans Apigee, vous devez contacter l'assistance Apigee Edge afin de terminer le processus d'intégration.

Installer apigee-analytics-collector

L'utilitaire apigee-analytics-collector est un RPM que vous installez à l'aide de l'utilitaire apigee-service.

Où l'installer ?

Le nœud sur lequel vous installez l'utilitaire apigee-analytics-collector peut être n'importe quel nœud pouvant accéder à l'API de gestion Edge sur le serveur de gestion Edge. Vous pouvez l'installer directement sur le serveur de gestion, sur un autre nœud de l'installation Edge ou sur un nœud distinct à condition que ce nœud puisse envoyer des requêtes API au serveur de gestion.

Conditions d'accès à Internet

Installez l'utilitaire apigee-analytics-collector sur une machine disposant d'un accès Internet externe. L'utilitaire apigee-analytics-collector peut ensuite importer des données directement dans Apigee.

Si aucun nœud ne dispose à la fois d'un accès à l'API de gestion Edge sur le serveur de gestion Edge et d'un accès à l'Internet externe, vous pouvez utiliser l'API de gestion Edge pour enregistrer les données de trafic localement. Vous devez ensuite transférer les données vers une machine disposant d'un accès à Internet pour les importer dans Apigee. Dans ce scénario, vous n'avez pas besoin d'utiliser l'utilitaire apigee-analytics-collector. Pour en savoir plus, consultez la section Importer manuellement des données sur Apigee.

Installation

Exécutez la commande suivante pour installer l'utilitaire apigee-analytics-collector. Comme vous installez un fichier RPM, cette commande doit être exécutée par l'utilisateur racine ou par un utilisateur disposant d'un accès sudo complet. Pour un accès sudo complet, cela signifie que l'utilisateur dispose d'un accès sudo pour effectuer les mêmes opérations qu'avec root.

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install

Exécuter apigee-analytics-collector

Cette section explique comment exécuter l'utilitaire apigee-analytics-collector.

Configuration d'un utilisateur pour exécuter apigee-analytics-collector

Vous devez exécuter apigee-analytics-collector en tant qu'utilisateur non racine. Cet utilisateur doit avoir un accès sudo complet à l’utilisateur « apigee ».

Pour configurer un utilisateur afin qu'il ait un accès sudo complet à l'utilisateur "apigee", utilisez la commande "visudo" pour modifier le fichier sudoers à ajouter:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

analyticsUser correspond au nom de l'utilisateur qui exécute l'utilitaire apigee-analytics-collector.

Après avoir installé l'utilitaire apigee-analytics-collector et configuré l'utilisateur, vous pouvez le tester en exécutant la commande d'aide de l'utilitaire apigee-analytics-collector:

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic --help

Informations requises pour exécuter apigee-analytics-collector

Vous avez besoin des informations suivantes pour exécuter la commande apigee-analytics-collector et transférer des données à Apigee:

  • apigee_mgmt_api_uri: URL de base de l'API Edge sur votre serveur de gestion. Cette URL se présente généralement sous la forme suivante:

    http://ms_IP:8080/v1

    ms_IP est l'adresse IP de votre serveur de gestion et 8080 est le port utilisé par l'API Edge. Si vous avez créé une entrée DNS pour l'API Edge, l'URL se présente au format suivant:

    http://ms_DNS/v1

    Si vous activez TLS sur l'API de gestion Edge, il se présente sous la forme suivante:

    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: adresse e-mail d'un compte ayant accès aux API Edge /stats. Il s'agit souvent de l'adresse e-mail de l'administrateur système Edge ou de l'adresse e-mail de l'administrateur de l'organisation pour vos organisations de production.
  • apigee_mgmt_api_password: mot de passe Edge pour le compte spécifié par apigee_mgmt_api_email.
  • apigee_analytics_client_id et apigee_analytics_secret : vos identifiants pour importer des données dans Apigee. Veuillez envoyer une demande à l'assistance Apigee Edge pour obtenir apigee_analytics_client_id et apigee_analytics_secret.

Exemples de commandes

Vous trouverez ci-dessous un exemple de commande permettant de récupérer les données de trafic de toutes les organisations et de tous les environnements de l'installation Edge et de télécharger ces données vers Apigee. Notez comment apigee-service permet d'exécuter la commande apigee-analytics-collector:

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

Notez que la commande contient toutes les informations requises, telles que vos apigee_analytics_client_id et apigee_analytics_secret.

Les résultats doivent se présenter sous la forme suivante:

[
  {
    "org": "myOrg",
    "env": "prod",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  },
  {
    "org": "VALIDATE",
    "env": "test",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  }
]

Utilisez les options de ligne de commande avec la commande pour contrôler ses actions. Utilisez les options suivantes pour spécifier les organisations et les environnements à inclure dans les données générées:

  • -i, --include_orgs comma-separated list of items
  • -x, --exclude_orgs comma-separated list of items
  • -n, --include_envs comma-separated list of items
  • -e, --exclude_envs comma-separated list of items

Par exemple, pour ne spécifier que les organisations et les environnements de production, utilisez les options -i (ou --include_orgs) et -n (ou --include_envs)) :

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

Dans cet exemple, vous ne collectez que les données de l'environnement de production de myOrg.

Pour vider les données sur un écran afin de les examiner avant de les envoyer à Apigee, utilisez l'option -S:

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S \
  --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
  --apigee_mgmt_api_email $ae_username \
  --apigee_mgmt_api_password $ae_password \
  --apigee_analytics_client_id $apigee_analytics_client_id \
  --apigee_analytics_secret $apigee_analytics_secret

L'option -S omet l'importation des données vers Apigee. Vous pouvez ensuite réexécuter la commande sans l'option -S pour envoyer les données à Apigee.

L'option -S permet notamment d'afficher différents types de données localement. Apigee ne nécessite que l'importation des données de trafic des API, mais l'option -D vous permet d'afficher des données sur les produits d'API, les développeurs, les applications ou les proxys d'API. L'exemple ci-dessous utilise les options -D et -S pour afficher les données du développeur en local:

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -D devs \
  --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
  --apigee_mgmt_api_email $ae_username \
  --apigee_mgmt_api_password $ae_password \
  --apigee_analytics_client_id $apigee_analytics_client_id \
  --apigee_analytics_secret $apigee_analytics_secret

Incluez l'option -v pour obtenir une sortie détaillée et l'option -R pour afficher les commandes curl générées par apigee-analytics-collector:

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -R -v \
  --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
  --apigee_mgmt_api_email $ae_username \
  --apigee_mgmt_api_password $ae_password \
  --apigee_analytics_client_id $apigee_analytics_client_id \
  --apigee_analytics_secret $apigee_analytics_secret

La section suivante contient la liste complète des options de ligne de commande.

Paramètres de commande

Le tableau suivant répertorie l'ensemble des options pour l'utilitaire apigee-analytics-collector:

Commande Description
-h, --help

Informations sur l'utilisation de la sortie

-D, --dimension dimension

Dimension "Trafic" à collecter. Les valeurs possibles sont les suivantes :

  • apiproducts
  • apiproxy (par défaut)
  • apps
  • devs
-d, --days days

Nombre de jours précédents de données à collecter, à partir de la date du jour. La valeur par défaut est 3.

Si vous spécifiez -d, ne spécifiez pas -s et -z pour définir une période.

-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri

URL de l'API de gestion Edge.

-u, --apigee_mgmt_api_email apigee_mgmt_api_email

Adresse e-mail d'un compte ayant accès aux API Edge /stats. Il s'agit généralement de l'adresse e-mail de l'administrateur système Edge ou de l'adresse e-mail de l'administrateur de l'organisation pour vos organisations de production.

-p, --apigee_mgmt_api_password apigee_mgmt_api_password

Mot de passe associé au compte de messagerie de l'API de gestion Edge spécifié par -u.

-i, --include_orgs items

Liste d'organisations à inclure dans le résultat, séparées par une virgule.

-x, --exclude_orgs items

Liste d'organisations à exclure de la sortie, séparées par une virgule.

-n, --include_envs items

Liste d'environnements séparés par une virgule à inclure dans le résultat.

-e, --exclude_envs items

Liste d'environnements à inclure dans la sortie, séparés par une virgule.

-o, --output path

Chemin d'accès et nom de fichier pour enregistrer la sortie.

-s, --time_range_start time_range_start

Période pendant laquelle commencer l'interrogation des statistiques de trafic, au format "MM/DD/YYYY HH:MM".

Si vous spécifiez -d, ne spécifiez pas -s et -z pour définir une période.

-z, --time_range_end time_range_end

Fin de la période pour l'interrogation des statistiques de trafic, sous la forme: "04/01/2016 24:00".

Si vous spécifiez -d, ne spécifiez pas -s et -z pour définir une période.

-t, --time_unit time_unit

Unité de temps des données de trafic. La valeur par défaut est hour. Les unités de temps valides sont les suivantes:

  • second
  • minute
  • hour (par défaut)
  • day
  • week

Si vous définissez -t sur week et -d sur 365, Apigee renvoie une grande quantité de données, regroupées en 52 entrées distinctes (une pour chaque semaine).

-S, --standard_output

Écrivez la sortie dans le terminal (stdout) au lieu de l'importer dans Apigee.

-c, --apigee_analytics_client_id apigee_analytics_client_id

Votre ID pour importer des données dans Apigee. Veuillez envoyer une demande d'assistance à l'assistance Apigee Edge pour l'obtenir.

-r, --apigee_analytics_secret apigee_analytics_secret

Votre secret pour importer des données dans Apigee. Veuillez envoyer une demande d'assistance à l'assistance Apigee Edge pour l'obtenir.

-R, --include_curl_commands

Incluez les commandes curl générées dans le résultat pour le débogage.

-v, --verbose

Afficher une sortie détaillée.

Importation manuelle des données dans Apigee

Apigee vous recommande d'installer l'utilitaire apigee-analytics-collector sur une machine disposant d'un accès Internet externe. L'utilitaire apigee-analytics-collector peut ensuite importer des données directement dans Apigee.

Toutefois, si la machine ne dispose pas d'un accès Internet externe, utilisez l'API de gestion Edge pour collecter les données de trafic, puis utilisez les commandes curl pour les importer dans Apigee à partir d'une machine disposant d'un accès à Internet. Vous devez répéter ce processus pour chaque organisation de production et chaque environnement de votre installation Edge.

Exécutez la commande curl suivante pour collecter des données de trafic pour une organisation et un environnement spécifiques sur un intervalle de temps spécifié:

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://ms_IP:8080/v1/organizations/org_name/environments/env_name/stats/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"

Cette commande utilise l'API de décompte de messages de l'API Edge Get. Dans cette commande :

  • apigee_mgmt_api_email:apigee_mgmt_api_password spécifie l'adresse e-mail d'un compte ayant accès aux API Edge /stats.
  • ms_IP est l'adresse IP ou le nom DNS du serveur de gestion Edge.
  • org_name et env_name spécifient l'organisation et l'environnement.
  • apiproxy est le composant qui regroupe les métriques par proxy d'API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour spécifie la période divisée en unités de temps des métriques à collecter. Notez que la commande curl utilise le code hexadécimal %20 pour les espaces compris dans la période.

Par exemple, pour recueillir le nombre de messages de proxy d'API heure par heure sur une période de 24 heures, utilisez l' appel d'API suivant.

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/apiproxy?select=sum(message_count)&timeRange=01%2F01%2F2018%2000%3A00~01%2F02%2F2018%2000%3A00&timeUnit=hour"

Notez que timeRange contient des caractères encodés en URL.

Vous devriez obtenir une réponse au format suivant :

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values": [
                {
                  "timestamp": 1514847600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514844000000,
                  "value": "19.0"
                },
                {
                  "timestamp": 1514840400000,
                  "value": "58.0"
                },
                {
                  "timestamp": 1514836800000,
                  "value": "28.0"
                },
                {
                  "timestamp": 1514833200000,
                  "value": "29.0"
                },
                {
                  "timestamp": 1514829600000,
                  "value": "33.0"
                },
                {
                  "timestamp": 1514826000000,
                  "value": "26.0"
                },
                {
                  "timestamp": 1514822400000,
                  "value": "57.0"
                },
                {
                  "timestamp": 1514818800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514815200000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514811600000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514808000000,
                  "value": "66.0"
                },
                {
                  "timestamp": 1514804400000,
                  "value": "50.0"
                },
                {
                  "timestamp": 1514800800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514797200000,
                  "value": "49.0"
                },
                {
                  "timestamp": 1514793600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514790000000,
                  "value": "89.0"
                },
                {
                  "timestamp": 1514786400000,
                  "value": "42.0"
                },
                {
                  "timestamp": 1514782800000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514779200000,
                  "value": "21.0"
                },
                {
                  "timestamp": 1514775600000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514772000000,
                  "value": "20.0"
                },
                {
                  "timestamp": 1514768400000,
                  "value": "12.0"
                },
                {
                  "timestamp": 1514764800000,
                  "value": "7.0"
                }
              ]
            }
          ],
          "name" : "proxy1"
      } ],
    "name" : "prod"
  } ],
  "metaData" : {
    "errors" : [ ],
    "notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ]
  }
}

Pour importer ensuite ces données vers Apigee à partir d'une machine disposant d'un accès à Internet, utilisez la commande curl suivante:

curl -X POST -H 'Content-Type:application/json' \
  -u apigee_analytics_client_id:apigee_analytics_secret \
  https://nucleus-api-prod.apigee.com/v1/apigee-analytics-cli-api/traffic/orgs/org_name/apis -d '"environments"...'

Où :

  • apigee_analytics_client_id:apigee_analytics_secret spécifie vos identifiants pour importer dans Apigee les données obtenues auprès d'Apigee.
  • org_name spécifie le nom de l'organisation.
  • "environments"... contient les résultats de la commande curl que vous avez utilisée pour rassembler les statistiques ci-dessus.