Como fazer o upload de dados de tráfego da API para a Apigee: versão Beta

Edge para nuvem privada v4.18.01

Todos os clientes do Edge para nuvem privada precisam enviar à Apigee estatísticas sobre o tráfego do proxy da API. A Apigee recomenda que os clientes façam upload dessas informações uma vez por dia, possivelmente criando um cron job.

É necessário enviar os dados para suas implantações de API de produção, mas não para APIs em desenvolvimento ou testes. Na maioria das instalações do Edge, você vai definir organizações ou ambientes específicos para suas APIs de produção. Os dados enviados são apenas para essas organizações e ambientes de produção.

Para ajudar no upload desses dados, a Apigee fornece a versão Beta do utilitário de linha de comando apigee-analytics-collector. Esse utilitário envia o relatório do volume de chamadas de API de volta à Apigee. Cada borda da instalação da nuvem privada pode usar esse utilitário para recuperar e relatar dados de tráfego à Apigee.

Como acessar os dados enviados pelo apigee-analytics-collector

Depois de fazer upload dos dados com o utilitário apigee-analytics-collector, você pode visualizá-los na Apigee 360.

Para ver os dados, faça login na Apigee 360 e selecione a opção Uso. A página Uso exibe um gráfico e uma tabela de dados de uso de cada uma das organizações de Edge.

Como instalar o apigee-analytics-collector

O utilitário apigee-analytics-collector é uma RPM que você instala usando o utilitário apigee-service.

Onde instalar

O nó em que você instala o utilitário apigee-analytics-collector pode ser qualquer nó que possa acessar a API Edge Management no servidor de gerenciamento de borda. Ele pode ser instalado diretamente no servidor de gerenciamento, em outro nó da instalação do Edge ou em um nó separado, desde que esse nó possa fazer solicitações de API ao servidor de gerenciamento.

Requisitos de acesso à Internet

Instale o utilitário apigee-analytics-collector em uma máquina com acesso externo à Internet. Em seguida, o utilitário apigee-analytics-collector pode fazer upload de dados diretamente para a Apigee.

Se não houver um nó com acesso à API de gerenciamento de borda no servidor de gerenciamento de borda e com acesso externo à Internet, será possível usar essa API para salvar os dados de tráfego localmente. Em seguida, transfira os dados para uma máquina com acesso à Internet para fazer upload na Apigee. Neste cenário, você não precisa usar o utilitário apigee-analytics-collector. Consulte Como fazer o upload manual de dados para a Apigee abaixo para mais informações.

Instalação

Use o comando a seguir para instalar o utilitário apigee-analytics-collector. Como você está instalando um arquivo RPM, esse comando precisa ser executado pelo usuário raiz ou por um usuário com acesso total ao sudo. Para acesso sudo completo, isso significa que o usuário tem acesso de sudo para executar as mesmas operações que o usuário raiz.

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

Executando o apigee-analytics-collector

Esta seção descreve como executar o utilitário apigee-analytics-collector.

Como configurar um usuário para executar apigee-analytics-collector

Execute o apigee-analytics-collector como um usuário não raiz. Esse usuário precisa ter acesso total ao sudo para o usuário "apigee".

Para configurar um usuário para ter acesso total ao sudo para o usuário "apigee", use o comando "visudo" para editar o arquivo sudoers e adicionar:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

em que analyticsUser é o nome de usuário da pessoa que executa o utilitário apigee-analytics-collector.

Depois de instalar o utilitário apigee-analytics-collector e configurar o usuário, você poderá testá-lo executando o comando de ajuda do utilitário apigee-analytics-collector:

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

Informações necessárias para executar o apigee-analytics-collector

Você precisa das seguintes informações para executar o comando apigee-analytics-collector e para encaminhar dados para a Apigee:

  • apigee_mgmt_api_uri: o URL base da API Edge no seu servidor de gerenciamento. Esse URL geralmente está no formato:
    http://ms_IP:8080/v1

    Em que ms_IP é o endereço IP ou seu servidor de gerenciamento e 8080 é a porta usada pela API Edge. Se você criou uma entrada DNS para a API Edge, o URL terá este formato:
    http://ms_DNS/v1

    Se você ativar o TLS na API Edge Management, ele vai estar no formato:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: o endereço de e-mail de uma conta com acesso às APIs do Edge /stats. Geralmente, esse será o e-mail do administrador do sistema de borda ou o e-mail do administrador da organização das suas organizações de produção.
  • apigee_mgmt_api_password: a senha do Edge para a conta especificada por apigee_mgmt_api_email.
  • apigee_analytics_client_id e apigee_analytics_secret: suas credenciais para fazer upload de dados na Apigee. Envie um tíquete ao suporte da Apigee para receber apigee_analytics_client_id e apigee_analytics_secret.

Exemplos de comandos

Veja abaixo um exemplo de comando para recuperar dados de tráfego de todas as organizações e ambientes na instalação do Edge e fazer upload desses dados para a Apigee. Observe como você usa o apigee-service para executar o 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

Observe que o comando contém todas as informações necessárias, como apigee_analytics_client_id e apigee_analytics_secret.

Os resultados devem aparecer no formulário:

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

Use as opções da linha de comando para controlar as ações dele. Use as opções a seguir para especificar as organizações e os ambientes a serem incluídos nos dados gerados:

  • -i, --include_orgs <lista de itens separados por vírgula>
  • -x, --exclude_orgs <lista de itens separada por vírgulas>
  • -n, --include_envs <lista separada por vírgulas de itens>
  • -e, --exclude_envs <lista de itens separada por vírgulas>

Por exemplo, para especificar apenas as organizações e os ambientes de produção, use as opções -i (ou --include_orgs) e -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

Neste exemplo, você só coleta dados do ambiente de produção de myOrg.

Para despejar os dados em uma tela e analisá-los antes de enviá-los à Apigee, use a opção -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 

A opção -S omite o upload de dados para a Apigee. Depois disso, é possível executar o comando novamente sem a opção -S para enviar os dados à Apigee.

Um motivo para usar a opção -S é que você pode exibir diferentes tipos de dados localmente. A Apigee exige apenas que você faça upload dos dados de tráfego da API, mas a opção -D permite exibir dados sobre produtos, desenvolvedores, apps ou proxies de API. O exemplo abaixo usa as opções -D e -S para exibir dados do desenvolvedor 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 

Inclua a opção -v para receber a saída detalhada e a opção -R para ver os comandos curl gerados por 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 

A próxima seção contém uma lista completa de opções de linha de comando.

Parâmetros de comando

A tabela a seguir lista o conjunto completo de opções do utilitário apigee-analytics-collector:

Comando

Uso

-h, --help

Informações de uso de saída

-D, --dimension <dimension>

A dimensão de tráfego a ser coletada. Dimensões válidas: apiproducts, devs, apps, apiproxy (padrão)

-d, --dias <days>

O número de dias, a partir da data atual, de dados a serem coletados. O padrão é 3.

Se você especificar -d, não especifique também -s e -z para definir um intervalo de tempo.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

URL para a API Edge Management.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

O endereço de e-mail de uma conta com acesso às APIs do Edge /stats. Geralmente, esse será o e-mail do administrador do sistema de borda ou o e-mail do administrador da organização das suas organizações de produção.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

Senha associada à conta de e-mail da API Edge Management especificada por -u.

-i, --include_orgs <items>

Lista separada por vírgulas de organizações a serem incluídas na saída.

-x, --exclude_orgs <itens>

Lista de organizações separadas por vírgulas a serem excluídas da saída.

-n, --include_envs <items>

Lista de ambientes separados por vírgulas a serem incluídos na saída.

-e, --exclude_envs <itens>

Lista de ambientes separados por vírgulas a serem incluídos da saída.

-o, --output <path>

Caminho e nome de arquivo para salvar a saída.

-s, --time_range_start <time_range_start>

Período para começar a consultar as estatísticas de tráfego, no formato: "03/01/2016 00:00".

Se você especificar -d, não especifique também -s e -z para definir um intervalo de tempo.

-z, --time_range_end <time_range_end>

Fim do período para a consulta de estatísticas de tráfego no formato: "04/01/2016 24:00".

Se você especificar -d, não especifique também -s e -z para definir um intervalo de tempo.

-t, --time_unit <unidade_de_tempo>

Unidade de tempo para dados de tráfego. Semana padrão. Unidades padrão por hora. Unidades de tempo válidas: segundo, minuto, hora, dia, semana.

-S, --standard_output

Grave a saída no terminal (stdout) em vez de fazer upload dela na Apigee.

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

Seu ID para fazer upload de dados para a Apigee. Envie um tíquete ao suporte da Apigee para receber.

-r, --apigee_analytics_secret <apigee_analytics_secret>

Seu secret para fazer upload de dados para a Apigee. Envie um tíquete ao suporte da Apigee para receber.

-R, --include_curl_commands

Inclua os comandos cURL gerados na saída para depuração.

-v, --pronto

Mostra saída detalhada.

Como fazer upload manual de dados para a Apigee

A Apigee recomenda que você instale o utilitário apigee-analytics-collector em uma máquina com acesso externo à Internet. Em seguida, o utilitário apigee-analytics-collector pode fazer upload de dados diretamente para a Apigee.

No entanto, se a máquina não tiver acesso externo à Internet, use a API Edge Management para coletar dados de tráfego e, em seguida, use comandos cURL para fazer upload deles na Apigee a partir de uma máquina com acesso à Internet. É necessário repetir esse processo para cada organização de produção e ambiente na instalação do Edge.

Use o comando cURL a seguir para coletar dados de tráfego de uma organização e um ambiente específicos por um intervalo de tempo determinado:

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"

Esse comando usa a API Edge Get API de contagem de mensagens. Nesse comando:

  • apigee_mgmt_api_email:apigee_mgmt_api_password especifica o endereço de e-mail de uma conta com acesso às APIs do Edge /stats.
  • <ms_IP> é o endereço IP ou nome DNS do servidor de gerenciamento de borda.
  • {org_name} e {env_name} especificam a organização e o ambiente.
  • apiproxy é a dimensão que agrupa métricas por proxies de API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour especifica o período dividido em unidades de tempo das métricas a serem coletadas. Observe que o comando cURL usa o código hexadecimal %20 para os espaços no intervalo de tempo.

Por exemplo, para coletar as contagens de mensagens de proxy de API de hora em hora em um período de 24 horas, use a seguinte chamada de API de gerenciamento. O timeRange contém caracteres codificados pelo 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"

Você verá uma resposta no formato:

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

Para fazer upload desses dados para a Apigee a partir de uma máquina com acesso à Internet, use o seguinte 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"...}'

onde:

  • apigee_analytics_client_id:apigee_analytics_secret especifica suas credenciais para fazer upload de dados para a Apigee recebidas do suporte da Apigee.
  • {org_name} especifica a organização.
  • {"environments"...} contém os resultados do comando cURL que você usou para coletar as estatísticas acima.