Caricamento dei dati sul traffico API in Apigee - Versione beta

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

Obbligatorio: contatta l'assistenza Apigee prima di caricare i dati

Prima di poter caricare i dati su Apigee, devi contattare l'assistenza Apigee Edge per completare il processo di onboarding.

Installa apigee-analytics-collector

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

Dove installare

Il nodo su cui installi l'utilità apigee-analytics-collector può essere qualsiasi nodo in grado di accedere all'API Edge Management su Edge Management Server. 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 accesso a internet esterno, 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.

Installazione

Utilizza il seguente comando 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 testare l'utilità eseguendo il comando della guida 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. Generalmente questo URL 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 abiliti TLS sull'API Edge Management, il formato sarà il seguente:

    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 perimetrale per l'account specificato da apigee_mgmt_api_email.
  • apigee_analytics_client_id e apigee_analytics_secret: le tue credenziali per caricare dati su Apigee. Invia un ticket all'assistenza Apigee Edge 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. Nota come utilizzi 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 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

Ad esempio, per specificare solo le organizzazioni e gli ambienti di produzione, utilizza -i (o --include_orgs) e -n (oppure le opzioni --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 in Apigee. Puoi quindi eseguire nuovamente il comando senza l'opzione -S per inviare i dati ad Apigee.

Un motivo per utilizzare l'opzione -S è che tu possa 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 sviluppatore 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 Descrizione
-h, --help

Informazioni sull'utilizzo dell'output

-D, --dimension dimension

La dimensione del traffico da raccogliere. I valori validi sono:

  • apiproducts
  • apiproxy (valore predefinito)
  • apps
  • devs
-d, --days days

Il numero di giorni precedenti di dati da raccogliere, a partire dalla data corrente. 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 /stats perimetrali. In genere 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

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

-i, --include_orgs items

Un elenco separato da virgole di organizzazioni da includere nell'output.

-x, --exclude_orgs items

Un elenco separato da virgole di organizzazioni da escludere dall'output.

-n, --include_envs items

Un elenco separato da virgole di ambienti da includere nell'output.

-e, --exclude_envs items

Un elenco separato da virgole di ambienti da includere dall'output.

-o, --output path

Il percorso e il 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: "MM/DD/YYYY HH:MM".

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. Il valore predefinito è hour. Le unità di tempo valide sono:

  • second
  • minute
  • hour (valore predefinito)
  • day
  • week

Se imposti -t su week e -d su 365, Apigee restituisce una grande quantità di dati, raggruppati in 52 voci separate (una per 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 Edge per ottenerlo.

-r, --apigee_analytics_secret apigee_analytics_secret

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

-R, --include_curl_commands

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

-v, --verbose

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 questa 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. Tieni presente 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.

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"

Tieni presente che timeRange contiene caratteri con codifica URL.

Dovresti vedere una risposta nel modulo:

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

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 specifica le tue credenziali per caricare su Apigee i dati ottenuti da Apigee.
  • org_name specifica il nome dell'organizzazione.
  • "environments"... contiene i risultati del comando curl che hai utilizzato per raccogliere le statistiche precedenti.