Caricamento dei dati sul traffico API in Apigee - Versione beta

Edge per Private Cloud v4.18.01

Tutti i clienti di Edge per Cloud privato devono inviare ad Apigee le statistiche sul traffico proxy API. Apigee consiglia ai clienti di caricare queste informazioni una volta al giorno, possibilmente creando un cron job.

Devi inviare i dati per i deployment delle API di produzione, ma non per le API in deployment di sviluppo o test. Nella maggior parte delle installazioni Edge, devi definire organizzazioni o ambienti specifici per le API di produzione. I dati inviati sono destinati solo alle organizzazioni e agli ambienti di produzione corrispondenti.

Per facilitare il caricamento di questi dati, Apigee fornisce la versione beta dell'utilità a riga di comando apigee-analytics-collector. Questa utilità invia il report sul volume delle chiamate API ad Apigee. Ogni Edge per l'installazione del cloud privato può utilizzare questa utilità per recuperare i dati sul traffico e generare report su Apigee.

Accesso ai dati caricati da apigee-analytics-collector

Dopo aver caricato i dati con l'utilità apigee-analytics-collector, puoi visualizzarli in Apigee 360.

Per visualizzare i dati, accedi ad Apigee 360 e seleziona l'opzione Utilizzo. La pagina Utilizzo mostra un grafico sull'utilizzo e una tabella di dati sull'utilizzo per ciascuna organizzazione perimetrale.

Installazione di apigee-analytics-collector

L'utilità apigee-analytics-collector è un RPM che si installa utilizzando l'utilità apigee-service.

Dove installare

Il nodo su cui installi l'utilità apigee-analytics-collector può essere qualsiasi nodo che possa accedere all'API di gestione perimetrale sul server di gestione perimetrale. Puoi installarlo direttamente sul server di gestione, su un altro nodo dell'installazione Edge o su un nodo separato, purché questo nodo possa effettuare richieste API al server di gestione.

Requisiti di accesso a internet

Installa l'utilità apigee-analytics-collector su una macchina con accesso a internet esterno. Quindi l'utilità apigee-analytics-collector può caricare i dati direttamente in Apigee.

Se non esiste un nodo con accesso all'API di gestione perimetrale su Edge Management Server e con accesso esterno a internet, puoi utilizzare l'API di gestione perimetrale per salvare i dati sul traffico localmente. Devi quindi trasferire i dati su una macchina con accesso a internet per poterli caricare su Apigee. In questo scenario, non è necessario utilizzare l'utilità apigee-analytics-collector. Per saperne di più, consulta Caricamento manuale dei dati in Apigee di seguito.

Installazione

Utilizza il comando seguente per installare l'utilità apigee-analytics-collector. Poiché stai installando un file RPM, questo comando deve essere eseguito dall'utente root o da un utente con accesso sudo completo. Per l'accesso completo sudo, significa che l'utente dispone dell'accesso sudo per eseguire le stesse operazioni dell'utente root.

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

Esecuzione di apigee-analytics-collector

Questa sezione descrive come eseguire l'utilità apigee-analytics-collector.

Configurazione di un utente per l'esecuzione di apigee-analytics-collector

Devi eseguire apigee-analytics-collector come utente non root. Questo utente deve avere accesso sudo completo all'utente "apigee".

Per configurare un utente in modo che abbia accesso completo sudo all'utente "apigee", utilizza il comando "visudo" per modificare il file sudoers e aggiungere:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

dove analyticsUser è il nome utente della persona che esegue l'utilità apigee-analytics-collector.

Dopo aver installato l'utilità apigee-analytics-collector e configurato l'utente, puoi testarla eseguendo il comando help per l'utilità apigee-analytics-collector:

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

Informazioni obbligatorie per eseguire apigee-analytics-collector

Sono necessarie le seguenti informazioni per eseguire il comando apigee-analytics-collector e inoltrare i dati ad Apigee:

  • apigee_mgmt_api_uri: l'URL di base dell'API Edge sul tuo server di gestione. Questo URL solitamente ha il seguente formato:
    http://ms_IP:8080/v1

    Dove ms_IP è l'indirizzo IP o il server di gestione e 8080 è la porta utilizzata dall'API Edge. Se hai creato una voce DNS per l'API Edge, il formato dell'URL sarà:
    http://ms_DNS/v1

    Se attivi TLS sull'API Edge Management, il formato dell'URL sarà:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: l'indirizzo email di un account con accesso alle API Edge /stats. Spesso si tratta dell'indirizzo email dell'amministratore di sistema perimetrale o dell'amministratore dell'organizzazione delle organizzazioni di produzione.
  • apigee_mgmt_api_password: la password Edge per l'account specificato da apigee_mgmt_api_email.
  • apigee_analytics_client_id e apigee_analytics_secret: le tue credenziali per caricare i dati su Apigee. Invia un ticket all'assistenza Apigee per ottenere apigee_analytics_client_id e apigee_analytics_secret.

Comandi di esempio

Di seguito è riportato un comando di esempio per recuperare i dati sul traffico per tutte le organizzazioni e gli ambienti nell'installazione Edge e per caricarli in Apigee. Come puoi utilizzare apigee-service per eseguire il comando 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

Tieni presente che il comando contiene tutte le informazioni richieste, come apigee_analytics_client_id e apigee_analytics_secret.

Dovresti vedere i risultati nel modulo:

[
  {
    "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
      }
    ]
  }
]

Utilizza le opzioni della riga di comando per controllare le azioni del comando. Utilizza le seguenti opzioni per specificare le organizzazioni e gli ambienti da includere nei dati generati:

  • -i, --include_orgs <elenco di elementi separati da virgole>
  • -x, --exclude_orgs <elenco di elementi separati da virgole>
  • -n, --include_envs <elenco di elementi separati da virgole>
  • -e, --exclude_envs <elenco di elementi separati da virgole>

Ad esempio, per specificare solo le organizzazioni e gli ambienti di produzione, utilizza le opzioni -i (o --include_orgs) e -n (o --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

In questo esempio, raccogli i dati solo dall'ambiente di produzione di myOrg.

Per eseguire il dump dei dati su una schermata in modo da esaminarli prima di inviarli ad Apigee, utilizza l'opzione -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'opzione -S omette il caricamento dei dati su Apigee. Puoi quindi eseguire nuovamente il comando senza l'opzione -S per inviare i dati ad Apigee.

Uno dei motivi per utilizzare l'opzione -S è che puoi visualizzare diversi tipi di dati localmente. Apigee richiede solo il caricamento dei dati sul traffico API, ma l'opzione -D consente di visualizzare i dati relativi a prodotti API, sviluppatori, app o proxy API. L'esempio seguente utilizza le opzioni -D e -S per visualizzare i dati degli sviluppatori localmente:

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

Includi l'opzione -v per ottenere un output dettagliato e l'opzione -R per vedere i comandi curl generati da 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 sezione successiva contiene un elenco completo delle opzioni della riga di comando.

Parametri del comando

La seguente tabella elenca il set completo di opzioni per l'utilità apigee-analytics-collector:

Comando

Utilizzo

-h, --help

Informazioni sull'utilizzo dell'output

-D, --dimension <dimension>

La dimensione del traffico da raccogliere. Dimensioni valide: apiproducts, devs, apps, apiproxy (valore predefinito)

-d, --days <days>

Gli ultimi giorni, a partire dalla data corrente, di dati da raccogliere. Il valore predefinito è 3.

Se specifichi -d, non specificare anche -s e -z per impostare un intervallo di tempo.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

URL all'API Edge Management.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

L'indirizzo email di un account con accesso alle API Edge /stats. Spesso si tratta dell'indirizzo email dell'amministratore di sistema perimetrale o dell'amministratore dell'organizzazione delle tue organizzazioni di produzione.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

Password associata all'account email dell'API Edge Management specificato da -u.

-i, --include_orgs <items>

Elenco separato da virgole di organizzazioni da includere nell'output.

-x, --exclude_orgs <items>

Elenco separato da virgole di organizzazioni da escludere dall'output.

-n, --include_envs <items>

Elenco separato da virgole di ambienti da includere nell'output.

-e, --exclude_envs <items>

Elenco separato da virgole di ambienti da includere dall'output.

-o, --output <path>

Percorso e nome file per salvare l'output.

-s, --time_range_start <time_range_start>

Intervallo di tempo di inizio per le query sulle statistiche sul traffico, nel formato: "01/03/2016 00:00".

Se specifichi -d, non specificare anche -s e -z per impostare un intervallo di tempo.

-z, --time_range_end <time_range_end>

L'intervallo di tempo termina per l'esecuzione di query sulle statistiche sul traffico, nel formato: "01/04/2016 24:00".

Se specifichi -d, non specificare anche -s e -z per impostare un intervallo di tempo.

-t, --time_unit <time_unit>

Unità di tempo per i dati sul traffico. Settimana predefinita. Unità predefinite per ora. Unità di tempo valide: secondo, minuto, ora, giorno, settimana.

-S, --standard_output

Scrivi l'output sul terminale (stdout), anziché caricarlo su Apigee.

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

Il tuo ID per il caricamento dei dati su Apigee. Invia un ticket all'Assistenza Apigee per ottenerlo.

-r, --apigee_analytics_secret <apigee_analytics_secret>

Il tuo secret per caricare i dati su Apigee. Invia un ticket all'Assistenza Apigee per ottenerlo.

-R, --include_curl_commands

Includi i comandi cURL generati nell'output per il debug.

-v, --dettagliato

Mostra output dettagliato.

Caricamento manuale dei dati su Apigee

Apigee consiglia di installare l'utilità apigee-analytics-collector su una macchina con accesso a internet esterno. Quindi l'utilità apigee-analytics-collector può caricare i dati direttamente in Apigee.

Tuttavia, se la macchina non dispone di un accesso a internet esterno, utilizza l'API di gestione perimetrale per raccogliere i dati sul traffico, quindi usa i comandi cURL per caricarli in Apigee da una macchina con accesso a internet. Devi ripetere la procedura per ogni organizzazione e ambiente di produzione nell'installazione di Edge.

Utilizza il seguente comando cURL per raccogliere i dati sul traffico per un'organizzazione e un ambiente specifici per un intervallo di tempo specificato:

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"

Questo comando utilizza l'API per il conteggio dei messaggi dell'API Edge Get. In questo comando:

  • apigee_mgmt_api_email:apigee_mgmt_api_password specifica l'indirizzo email di un account con accesso alle API Edge /stats.
  • <ms_IP> è l'indirizzo IP o il nome DNS di Edge Management Server.
  • {org_name} e {env_name} specificano l'organizzazione e l'ambiente.
  • apiproxy è la dimensione che raggruppa le metriche per proxy API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour specifica l'intervallo di tempo diviso in unità di tempo delle metriche da raccogliere. Nota che il comando cURL utilizza il codice esadecimale %20 per gli spazi nell'intervallo di tempo.

Ad esempio, per raccogliere i conteggi dei messaggi proxy API ora per ora in un periodo di 24 ore, utilizza la seguente chiamata API di gestione. timeRange contiene caratteri con codifica 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"

Dovresti vedere una risposta nel modulo:

{
  "environments" : [ {
    "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"
  } ],
  "metaData" : {
    "errors" : [ ],
    "notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ]
  }
}

Per quindi caricare i dati in Apigee da una macchina con accesso a internet, utilizza il seguente comando 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"...}'

dove:

  • apigee_analytics_client_id:apigee_analytics_secret le tue credenziali per caricare su Apigee i dati ottenuti dall'assistenza Apigee.
  • {org_name} specifica l'organizzazione.
  • {"environments"...} contiene i risultati del comando cURL che hai utilizzato per raccogliere le statistiche in alto.