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 les API le trafic proxy. Apigee recommande aux clients d'importer ces informations une fois par jour, créer 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 à tester des déploiements. Dans la plupart des installations Edge, vous définirez des organisations ou des pour vos API de production. Les données que vous envoyez ne concernent organisations et environnements.

Pour vous aider à importer ces données, Apigee fournit la version bêta du Ligne de commande apigee-analytics-collector utilitaire. Cet utilitaire renvoie le rapport sur le volume des appels d'API à Apigee. Chaque périphérie pour L'installation d'un cloud privé peut se servir de cet utilitaire pour récupérer et transmettre les données de trafic 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 pour terminer l'intégration processus.

Installer apigee-analytics-collector

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 quelle 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 serveur à condition que celui-ci puisse envoyer des requêtes API au serveur de gestion.

Accès Internet configuration requise

Installez l'utilitaire apigee-analytics-collector sur un une machine avec accès Internet externe. Ensuite, l'utilitaire apigee-analytics-collector peuvent 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 l'accès à l'Internet externe, vous pouvez utiliser l'API de gestion Edge pour enregistrer le trafic en local. Vous devez ensuite transférer les données vers une machine dotée d'un accès à Internet pour les importer dans Apigee. Dans ce scénario, vous n'avez pas besoin d'utiliser le apigee-analytics-collector utilitaire. Voir Importation manuelle des données dans Apigee.

Installation

Exécutez la commande suivante pour installer l'utilitaire apigee-analytics-collector. En effet, vous installez un fichier RPM, cette commande doit être exécutée par l'utilisateur racine ou par un utilisateur qui a 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 en tant que 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 utilisateur. Cet utilisateur doit disposer d'un accès sudo complet à "apigee" utilisateur.

Pour configurer un utilisateur afin qu’il dispose d’un accès sudo complet à « apigee » utilisez la commande "visudo" pour Modifiez le fichier sudoers pour l'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 en configurant l'utilisateur, vous pouvez tester l'utilitaire en exécutant la commande help pour 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 pour transférer les données vers Apigee:

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

    http://ms_IP:8080/v1

    ms_IP est l'adresse IP ou 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 trouve dans au format suivant:

    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 au API /stats Edge. Il s'agit souvent sera l'adresse e-mail de l'administrateur du système Edge ou celle de l'administrateur de l'organisation pour vos entreprises 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 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 pour toutes les organisations et dans l'installation Edge et télécharger ces données vers Apigee. Remarquez comment vous utiliser apigee-service pour exécutez 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 apigee_analytics_client_id et apigee_analytics_secret.

Les résultats doivent s'afficher 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 pour contrôler ses actions. Utilisez les options suivantes pour spécifiez 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 la méthode -i (ou --include_orgs) et -n (ou Options --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 des données que depuis l'environnement de production myOrg

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

/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 les données importer dans Apigee. Vous pouvez ensuite réexécuter la commande sans l'option -S pour envoyer le vers Apigee.

Une raison d'utiliser -S est de pouvoir afficher différents types de données localement. Apigee ne requiert que importer les données de trafic de l'API, mais l'option -D vous permet d'afficher des données sur l'API les produits, les développeurs, les applications ou les mandataires d'API. L'exemple ci-dessous utilise -D et Options -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 une liste complète des options de ligne de commande.

Paramètres de la commande

Le tableau suivant répertorie toutes les options disponibles pour Utilitaire apigee-analytics-collector:

Commande Description
-h, --help

Informations sur l'utilisation de sortie

-D, --dimension dimension

Dimension sur le trafic à collecter. Les valeurs valides 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 la valeur par défaut est 3.

Si vous spécifiez -d, ne spécifiez pas -s ni -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

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

-p, --apigee_mgmt_api_password apigee_mgmt_api_password

Le 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 des environnements à inclure dans la sortie, séparés par une virgule.

-e, --exclude_envs items

Liste des environnements à inclure dans le résultat, séparés par une virgule.

-o, --output path

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

-s, --time_range_start time_range_start

Période de début d'interrogation des statistiques de trafic, au format suivant : "MM/DD/YYYY HH:MM".

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

-z, --time_range_end time_range_end

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

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

-t, --time_unit time_unit

Unité de temps des données sur le trafic. La valeur par défaut est hour. Unités de temps valides sont:

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

Si vous définissez -t sur week et -d sur 365, puis Apigee renvoie une grande quantité de données, regroupées en 52 (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 à l'assistance Apigee Edge au obtenir.

-r, --apigee_analytics_secret apigee_analytics_secret

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

-R, --include_curl_commands

Inclure les commandes curl générées dans la sortie pour le débogage.

-v, --verbose

Affiche le résultat détaillé.

Importer manuellement des données dans Apigee

Apigee vous recommande d'installer l'utilitaire apigee-analytics-collector sur une une machine avec accès Internet externe. Ensuite, l'utilitaire apigee-analytics-collector peuvent importer des données directement dans Apigee.

Cependant, 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 utiliser les commandes curl pour les importer dans Apigee à partir d'un machine avec l'accès à Internet. Vous devez répéter ce processus pour chaque organisation de production dans votre installation Edge.

Exécutez la commande curl suivante pour collecter des données sur le trafic d'une organisation spécifique. pendant 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 comptage des 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 de l'appareil Edge. Serveur de gestion.
  • org_name et env_name spécifient organisation et environnement.
  • apiproxy est la dimension 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 pour les métriques à collecter. Notez que La commande curl utilise le code hexadécimal %20 pour les espaces dans le temps la plage d'adresses IP.

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

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 ces données dans Apigee à partir d'une machine avec accès à Internet, utilisez le code suivant : Commande curl:

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 indiquez votre les 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 qui que vous utilisiez pour recueillir les statistiques ci-dessus.