Przesyłanie danych o ruchu do interfejsu API w Apigee – wersja beta

Edge for Private Cloud w wersji 4.17.01

Wszyscy klienci Edge for Private Cloud muszą przesyłać do Apigee statystyki dotyczące interfejsu API przez serwer proxy. Apigee zaleca, aby klienci przesyłali te informacje raz dziennie, najlepiej w celu utworzenia zadania cron.

Musisz przesłać dane dotyczące wdrożeń produkcyjnych interfejsów API, ale nie interfejsów API w trakcie opracowywania lub testowania wdrożeń. W większości instalacji Edge musisz zdefiniować konkretne organizacje lub środowisk produkcyjnych interfejsów API. Przesłane przez Ciebie dane dotyczą wyłącznie środowiska produkcyjnego, organizacji i środowisk.

Aby ułatwić przesyłanie tych danych, Apigee udostępnia wersję beta wiersza poleceń apigee-analytics-collector. za media. To narzędzie wysyła raport liczby wywołań interfejsu API z powrotem do Apigee. Na każdym brzegu Instalacja chmury prywatnej może używać tego narzędzia do pobierania i raportowania danych o ruchu Apigee.

Więcej informacji o procesie przesyłania danych o ruchu do Apigee znajdziesz w Najczęstsze pytania.

Obejrzyj krótki film, aby zobaczyć, jak działa to narzędzie.

Instalowanie apigee-analytics-collector

apigee-analytics-collector narzędzie to moduł Node.js instalowany przy użyciu npm.

Montaż wymagania

apigee-analytics-collector narzędzie wymaga:

  • npm w wersji 2.x lub nowszej
  • Node.js 4.x.

Gdzie zainstalować

Węzeł, w którym instalujesz narzędzie apigee-analytics-collector, może być dowolnym który ma dostęp do interfejsu Edge Management API na serwerze zarządzania brzegiem. Możesz ją zainstalować bezpośrednio na serwerze zarządzania, w innym węźle instalacji Edge lub w oddzielnym tak długo, jak ten węzeł może wysyłać żądania do interfejsu API do serwera zarządzania.

Dostęp do internetu wymagania

Zainstaluj narzędzie apigee-analytics-collector w komputer z zewnętrznym dostępem do internetu. Następnie narzędzie apigee-analytics-collector może przesłać bezpośrednio do Apigee.

Jeśli na serwerze zarządzania brzegiem nie ma węzła z dostępem jednocześnie do interfejsu Edge Management API a poza tym z zewnętrznym dostępem do internetu możesz użyć interfejsu Edge Management API, aby zmniejszyć ruch. lokalnie. Następnie musisz przenieść dane na urządzenie z dostępem do internetu, aby mogły zostać przesłane na Apigee. W takim przypadku nie musisz korzystać z narzędzia apigee-analytics-collector. Zobacz Ręczne przesyłanie danych do Apigee znajdziesz poniżej.

Instalacja

Aby zainstalować narzędzie apigee-analytics-collector, użyj tego polecenia:

> npm install apigee-analytics-collector -g

Uruchamianie apigee-analytics-collector

W tej sekcji dowiesz się, jak uruchomić narzędzie apigee-analytics-collector.

Informacje wymagane do uruchomienia narzędzia apigee-analytics-collect

Aby uruchomić polecenie apigee-analytics-collector oraz przekazanie danych do Apigee:

  • apigee_mgmt_api_uri: podstawowy adres URL interfejsu Edge API w systemie zarządzania, Serwer Adres URL ma zwykle następujący format:
    http://ms_IP:8080/v1

    Gdzie ms_IP to adres IP lub Twój serwer zarządzania, a kod 8080 to port używany przez interfejs Edge API. Jeśli utworzono wpis DNS dla interfejsu Edge API, adres URL znajduje się w formularz:
    http://ms_DNS/v1

    Jeśli włączysz protokół TLS w interfejsie Edge Management API, będzie on miał postać:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: adres e-mail konta z dostępem do Edge /stats interfejsy API. Często to będzie adresem e-mail administratora systemu Edge lub adresu e-mail administratora organizacji w organizacjach produkcyjnych.
  • apigee_mgmt_api_password: hasło do konta Edge dla konta określonego przez apigee_mgmt_api_email.
  • apigee_analytics_client_id i apigee_analytics_secret: Twoje dane logowania do przesyłania danych do Apigee. Prześlij zgłoszenie do zespołu pomocy Apigee, aby uzyskać apigee_analytics_client_id i apigee_analytics_secret.

Przykładowe polecenia

Poniżej znajduje się przykładowe polecenie do pobrania danych o ruchu dla wszystkich organizacji i w instalacji Edge i prześlij te dane do Apigee:

> 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

Zwróć uwagę, że to polecenie zawiera wszystkie wymagane informacje, takie jak apigee_analytics_client_id i apigee_analytics_secret.

Wyniki powinny wyglądać w takim formacie:

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

Użyj opcji wiersza poleceń, aby kontrolować działania polecenia. Użyj następujących opcji, aby określ organizacje i środowiska do uwzględnienia w wygenerowanych danych:

  • -i, --include_orgs <rozdzielana przecinkami lista produktów>
  • -x, --wyklucz_orgs <rozdzielana przecinkami lista produktów>
  • -n, --include_envs <rozdzielana przecinkami lista produktów>
  • -e, --wyklucz_środki <rozdzielana przecinkami lista produktów>

Aby na przykład określić tylko organizacje i środowiska produkcyjne, użyj funkcji Opcje -i (lub --include_orgs) i -n (lub --include_envs):

> 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

W tym przykładzie zbierasz dane tylko ze środowiska produkcyjnego myOrg.

Aby skopiować dane na ekran w celu ich sprawdzenia przed wysłaniem do Apigee, użyj opcji -S:

> 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 

Opcja -S pomija dane. prześlij do Apigee. Następnie możesz ponownie uruchomić polecenie bez opcji -S, aby wysłać dane do Apigee.

Jednym z powodów, dla których warto używać znaku -S pozwala wyświetlać lokalnie różne typy danych. Apigee wymaga tylko przesyłania danych o ruchu przez interfejsy API, ale opcja -D umożliwia wyświetlanie usług, deweloperów, aplikacji ani serwerów proxy interfejsów API. W przykładzie poniżej użyto opcji -D i -S do wyświetlania danych dewelopera lokalnie:

> 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 

Dołącz opcję -v, aby uzyskać szczegółowe dane wyjściowe oraz opcję -R. by zobaczyć polecenia curl wygenerowane przez narzędzie apigee-analytics-collector:

 > 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 

Następna sekcja zawiera pełną listę opcji wiersza poleceń.

Parametry polecenia

Tabela poniżej zawiera pełny zestaw opcji kolektora-analizy narzędzie:

Polecenie

Użycie

-h, --help

Wyjściowe informacje o wykorzystaniu

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

Wymiar ruchu, który ma być rejestrowany. Prawidłowe wymiary: apiproducts, devs, apps, apiproxy (domyślne)

-d, --dni <days>

Liczba dni, które mają zostać zebrane, licząc od bieżącej daty. domyślna wartość to 3.

Jeśli podasz -d, wykonaj nie określaj też właściwości -s i -z, aby ustawić godzinę; zakres dat.

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

Adres URL interfejsu Edge Management API.

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

Adres e-mail konta z dostępem do interfejsów API Edge /stats. Często jest to Adres e-mail administratora systemu brzegowego lub adres e-mail administratora organizacji dla w organizacjach produkcyjnych.

-p, --apigee_mgmt_api_password &lt;apigee_mgmt_api_password&gt;

Hasło powiązane z kontem e-mail interfejsu Edge Management API określonym przez -u.

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

Rozdzielona przecinkami lista organizacji do uwzględnienia w danych wyjściowych.

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

Rozdzielona przecinkami lista organizacji, które mają zostać wykluczone z danych wyjściowych.

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

Rozdzielona przecinkami lista środowisk, które chcesz uwzględnić w danych wyjściowych.

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

Rozdzielona przecinkami lista środowisk, które chcesz uwzględnić w danych wyjściowych.

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

Ścieżka i nazwa pliku do zapisania danych wyjściowych.

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

Początek zakresu czasu, w którym mają być wysyłane zapytania o statystyki natężenia ruchu, w formacie: „03/01/2016 00:00”.

Jeśli wybierzesz opcję -d, nie dodawaj również -s ani -z, aby ustawić zakres czasu.

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

Koniec zakresu czasu na potrzeby zapytań o statystyki ruchu w formacie: „04/01/2016 24:00”.

Jeśli wybierzesz opcję -d, nie dodawaj również -s ani -z, aby ustawić zakres czasu.

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

Jednostka czasu danych o natężeniu ruchu. Domyślny tydzień. Domyślne jednostki według godziny. Prawidłowe jednostki czasu: sekunda, minuta, godzina, dzień, tydzień.

-S, --standard_output

Zapisz dane wyjściowe w terminalu (stdout) zamiast przesyłać je do Apigee.

-c, --apigee_analytics_client_id &lt;apigee_analytics_client_id&gt;

Twój identyfikator przesyłania danych do Apigee. Prześlij zgłoszenie do zespołu pomocy Apigee do uzyskać.

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

Twój obiekt tajny do przesyłania danych do Apigee. Prześlij zgłoszenie do zespołu pomocy Apigee do uzyskać.

-R, --include_curl_commands

W danych wyjściowych umieść wygenerowane polecenia cURL na potrzeby debugowania.

-v, --wyczerpująco

Wyświetl szczegółowe dane wyjściowe.

Ręczne przesyłanie danych do Apigee

Apigee zaleca zainstalowanie narzędzia apigee-analytics-collector w komputer z zewnętrznym dostępem do internetu. Następnie narzędzie apigee-analytics-collector może przesłać bezpośrednio do Apigee.

Jeśli jednak komputer nie ma zewnętrznego dostępu do internetu, użyj interfejsu Edge Management API, aby zbierać dane o ruchu, a następnie za pomocą poleceń cURL przesłać je do Apigee z komputera dostęp do internetu. Musisz powtórzyć ten proces dla każdej organizacji produkcyjnej w środowisku Edge.

Użyj poniższego polecenia cURL, aby zebrać dane dotyczące ruchu w określonej organizacji i środowiska w określonym przedziale czasu:

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"

To polecenie używa interfejsu API liczby wiadomości interfejsu Edge Get API. W tym poleceniu:

  • apigee_mgmt_api_email:apigee_mgmt_api_password określa Adres e-mail konta z dostępem do interfejsów API Edge /stats.
  • &lt;ms_IP&gt; to adres IP lub nazwa DNS urządzenia Edge Serwer zarządzania.
  • {org_name} i {org_name} określają organizacji i środowiska.
  • apiproxy to wymiar, który grupuje wskaźniki według serwerów proxy API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&amp;timeUnit=hour zawiera informacje zakresu czasu podzielonego na jednostki czasowe danych do zebrania. Zwróć uwagę, że polecenie cURL używa kodu szesnastkowego %20 dla spacji w zakresie czasowym.

Aby na przykład zbierać informacje o liczbie komunikatów serwera proxy interfejsu API co godzinę w okresie 24 godzin, użyj funkcji obserwowane: do interfejsu Management API. Parametr timeRange zawiera znaki zakodowane w adresie 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"

Odpowiedź powinna mieć następujący format:

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

Aby przesłać te dane do Apigee z maszyny z dostępem do internetu, użyj tego polecenia cURL polecenie:

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"...}'

gdzie:

  • apigee_analytics_client_id:apigee_analytics_secret określ Twój dane logowania na potrzeby przesyłania danych do Apigee uzyskane od zespołu pomocy Apigee.
  • {org_name} określa organizację.
  • {"environments"...} zawiera wyniki polecenia cURL, które zebranych w ramach powyższych statystyk.