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

Edge pour Private Cloud v. 4.17.09

Tous les clients Edge pour Private Cloud doivent soumettre à Apigee des statistiques sur le trafic proxy API. Apigee recommande aux clients d'importer 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 en production, mais pas pour les API en cours de développement ou de test. Dans la plupart des installations Edge, vous définirez des organisations ou des environnements spécifiques pour vos API de production. Les données que vous envoyez ne concernent que ces organisations et 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 pour l'installation du cloud privé peut utiliser cet utilitaire pour récupérer et signaler les données de trafic à Apigee.

Accéder aux données téléchargées par apigee-analytics-collector

Une fois les données importées avec l'utilitaire apigee-analytics-collector, vous pouvez les afficher dans Apigee 360.

Pour afficher les données, connectez-vous à Apigee 360, puis sélectionnez l'option Utilisation. La page Utilisation affiche un graphique d'utilisation et un tableau de données d'utilisation pour chacune de vos organisations Edge.

Installer apigee-analytics-collector

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

Où 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 les données directement dans Apigee.

Si aucun nœud n'a à la fois accès à l'API Edge Management sur le serveur Edge Management et à Internet externe, vous pouvez utiliser l'API Edge Management 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 dans Apigee ci-dessous.

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 complet sudo, cela signifie que l'utilisateur dispose d'un accès sudo pour effectuer les mêmes opérations qu'un utilisateur racine.

> /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.

Configurer un utilisateur pour exécuter apigee-analytics-collector

Vous devez exécuter apigee-analytics-collector en tant qu'utilisateur non racine. Cet utilisateur doit disposer d'un accès sudo complet à l'utilisateur "apigee".

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

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

analyticsUser est le nom d'utilisateur de la personne qui exécute l'utilitaire apigee-analytics-collector.

Après avoir installé l'utilitaire apigee-analytics-collector et configuré l'utilisateur, vous pouvez tester l'utilitaire 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 transmettre 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:
    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 sous la forme suivante:
    http://ms_DNS/v1

    Si vous activez TLS sur l'API de gestion Edge, elle se présente sous la forme:
    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'administrateur de l'organisation pour vos organisations de production.
  • apigee_mgmt_api_password: mot de passe Edge du 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 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 pour toutes les organisations et tous les environnements de l'installation Edge, puis de les importer dans Apigee. Notez la façon dont vous utilisez apigee-service pour 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 votre apigee_analytics_client_id et votre apigee_analytics_secret.

Vous devriez obtenir les résultats suivants:

[
  {
    "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 des options de ligne de commande pour contrôler les actions de la commande. Utilisez les options suivantes pour spécifier les organisations et les environnements à inclure dans les données générées:

  • -i, --include_orgs <liste d'éléments séparés par une virgule>
  • -x, --exclude_orgs <liste d'éléments séparés par une virgule>
  • -n, --include_envs <liste d'éléments séparés par des virgules>
  • -e, --exclude_envs <liste d'éléments séparés par une virgule>

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 des données de l'environnement de production de myOrg.

Pour extraire 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 ignore l'importation des données dans Apigee. Vous pouvez ensuite réexécuter la commande sans l'option -S pour envoyer les données à Apigee.

L'option -S vous permet d'afficher différents types de données localement. Apigee ne vous demande que d'importer des données sur le trafic des API, mais l'option -D vous permet d'afficher des données sur les produits, 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 localement:

>  /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 la commande

Le tableau suivant présente l'ensemble complet des options de l'utilitaire apigee-analytics-collector:

Commande

Utilisation

-h,--help

Informations sur l'utilisation des sorties

-D, --dimension <dimension>

Dimension sur le trafic à collecter. Dimensions valides: apiproducts, devs, apps, apiproxy (par défaut)

-d, --days <days>

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

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

-m, --apigee_mgmt_api_uri &lt;apigee_mgmt_api_uri&gt;

URL de l'API de gestion Edge.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

L'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'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 <éléments>

Liste d'organisations à inclure dans la sortie, 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 <éléments>

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

-e, --exclude_envs <éléments>

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

-o, --output <chemin d'accès>

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

-s, --time_range_start <time_range_start>

Plage de dates à partir de laquelle les statistiques sur le trafic peuvent être interrogées, au format "03/01/2016 00:00".

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

-z, --time_range_end <time_range_end>

Fin de la période pour interroger les statistiques sur le trafic, au format "04/01/2016 24:00".

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

-t, --time_unit <time_unit>

Unité de temps des données sur le trafic. Semaine par défaut. Unités par défaut par heure. Unités de temps valides : seconde, minute, heure, jour, 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. Pour l'obtenir, veuillez envoyer une demande à l'assistance Apigee.

-r, --apigee_analytics_secret <apigee_analytics_secret>

Votre secret pour importer des données dans Apigee. Pour l'obtenir, veuillez envoyer une demande à l'assistance Apigee.

-R, --include_curl_commands

Incluez les commandes cURL générées dans la sortie pour le débogage.

-v, --verbose

Afficher une sortie détaillée.

Importer manuellement 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 les 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 avec accès à Internet. Vous devez répéter ce processus pour chaque organisation et environnement de production de votre installation Edge.

Utilisez la commande cURL suivante pour collecter des données sur le trafic pour une organisation et un environnement spécifiques pendant une période spécifiée:

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

Cette commande utilise l'API Edge Get API message count. 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> correspond à l'adresse IP ou au nom DNS du serveur de gestion Edge.
  • {org_name} et {env_name} spécifient l'organisation et l'environnement.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM spécifie la période des statistiques à collecter. Notez que la commande cURL utilise le code hexadécimal %20 pour les espaces de la plage temporelle.

Par exemple, pour collecter des statistiques sur une période de 24 heures, utilisez la commande suivante:

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/?select=sum(message_count)&timeRange=08/29/2016%2000:00~08/30/2016%2000:00"

Vous devriez obtenir une réponse au format suivant :

{
  "environments" : [ {
    "metrics" : [ {
      "name" : "sum(message_count)",
      "values" : [ "42.0" ]
    } ],
    "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 dans 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écifiez vos identifiants pour importer des données dans Apigee que vous avez obtenus auprès de l'assistance Apigee.
  • {org_name} spécifie l'organisation.
  • {"environments"...} contient les résultats de la commande cURL que vous avez utilisée pour collecter les statistiques ci-dessus.