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

Edge pour Private Cloud v4.18.05

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 de la 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 le processus d'intégration.

Installer apigee-analytics-collector

La classe apigee-analytics-collector utilitaire 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. L'utilitaire apigee-analytics-collector peut ensuite importer 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 avec un accès 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 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. Voir Importation manuelle des données dans Apigee ci-dessous.

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 que source 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 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 transférer les données vers Apigee:

  • apigee_mgmt_api_uri: l'URL de base de l'API Edge sur votre interface 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: l'adresse e-mail d'un compte ayant accès à 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: le 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 dans l'installation Edge et télécharger ces données vers Apigee. Remarquez comment vous utilisez 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 <liste d'éléments séparés par une virgule>
  • -x, --exclure_orgs <liste d'éléments séparés par une virgule>
  • -n, --include_envs <liste d'éléments séparés par une virgule>
  • -e, --exclure_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 la méthode 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 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 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 les données importer dans Apigee. Vous pouvez ensuite réexécuter la commande sans l'option -S pour envoyer les données à Apigee.

Vous pouvez utiliser l'opérateur -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 le trafic les produits, les développeurs, les applications ou les mandataires d'API. L'exemple ci-dessous utilise les options -D et -S pour afficher les données de 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 sortie détaillée et l'option -R pour voir 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 l'ensemble complet des options pour l'utilitaire apigee-analytics-collector:

Commande

Utilisation

-h,--help

Informations sur l'utilisation de sortie

-D, --dimension &lt;dimension&gt;

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

-d, --jours <jours>

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

Si vous spécifiez -d, sans spécifier également -s et -z pour définir une heure la plage d'adresses IP.

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

URL de l'API de gestion Edge.

-u, --apigee_mgmt_api_email &lt;apigee_mgmt_api_email&gt;

L'adresse e-mail d'un compte ayant accès aux API Edge /stats. Il s'agira souvent 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 &lt;apigee_mgmt_api_password&gt;

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

-i, --include_orgs &lt;items&gt;

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

-x, --exclusion_orgs &lt;items&gt;

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

-n, --include_envs &lt;items&gt;

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

-e, --exclusion_envs &lt;items&gt;

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

-o, --output &lt;path&gt;

Chemin d'accès et nom de fichier pour enregistrer le résultat.

-s, --time_range_start &lt;time_range_start&gt;

Période de début d'interrogation des statistiques de trafic, au format "03/01/2016 00:00".

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

-z, --time_range_end &lt;time_range_end&gt;

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 également -s ni -z pour définir une période.

-t, --time_unit &lt;time_unit&gt;

Unité de temps des données sur le trafic. L'unité par défaut est l'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 &lt;apigee_analytics_client_id&gt;

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

-r, --apigee_analytics_secret &lt;apigee_analytics_secret&gt;

Votre secret pour importer des données dans Apigee. Veuillez envoyer une demande à l'assistance Apigee à 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 un une machine avec accès Internet externe. L'utilitaire apigee-analytics-collector peut ensuite importer 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'une machine avec l'accès à Internet. Vous devez répéter ce processus pour chaque organisation de production dans votre installation Edge.

Utilisez la commande cURL suivante pour collecter des données de trafic pour une organisation spécifique et 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 le l'adresse e-mail d'un compte ayant accès aux API Edge /stats.
  • &lt;ms_IP&gt; est l'adresse IP ou le nom DNS de l'appareil Edge. Serveur de gestion.
  • {org_name} et {org_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&amp;timeUnit=hour indique 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 compris dans la période.

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 de l'API Management. La valeur timeRange contient des caractères encodés en URL.

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"

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 dans Apigee à partir d'une machine avec 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 votre pour importer dans Apigee les données que vous avez obtenues auprès de l'assistance Apigee.
  • {org_name} spécifie l'organisation.
  • {"environments"...} contient les résultats de la commande cURL qui que vous utilisiez pour recueillir les statistiques ci-dessus.