Zasada Statystyki Statystyki

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Co

Umożliwia gromadzenie statystyk dotyczących danych w wiadomości, takich jak identyfikator produktu, cena, działanie REST, klient i docelowy adres URL oraz długość wiadomości. Dane mogą pochodzić ze zmiennych przepływu wstępnie zdefiniowanych przez Apigee lub zmiennych niestandardowych zdefiniowanych przez Ciebie.

Dane statystyczne są przekazywane do serwera analitycznego, który analizuje statystyki i generuje raporty. Raporty możesz wyświetlać za pomocą interfejsu zarządzania Edge lub interfejsu Edge API.

Sample

Podstawowy przykład

<StatisticsCollector name="publishPurchaseDetails">
  <Statistics>
    <Statistic name="productID" ref="product.id" type="string">999999</Statistic>
    <Statistic name="price" ref="product.price" type="string">0</Statistic>
  </Statistics>
</StatisticsCollector>

W tym przykładzie zbierasz informacje statystyczne o 2 zmiennych niestandardowych: product.id i product.price. Przy każdym żądaniu zasada kolektora statystyk zapisuje wartości tych 2 zmiennych na serwerze analiz.

W tym przykładzie ustawia się też opcjonalną wartość domyślną każdej zmiennej – domyślna wartość product.id to 999999, a wartość domyślna product.price to 0. Jeśli zmienna jest niezdefiniowana i nie określisz wartości domyślnej, zmienna nie będzie rejestrować żadnych danych. Jeśli podasz wartość domyślną, będzie ona rejestrowana, gdy zmienna będzie niezdefiniowana.

Po zebraniu danych statystycznych możesz je pobrać za pomocą interfejsu użytkownika lub interfejsu API zarządzania urządzeniami brzegowymi. Przy pobieraniu statystyk dane zebrane dla tych zmiennych są oznaczone odpowiednio jako productID i price.

Uzyskiwanie dostępu do statystyk

W tym przykładzie użyjesz interfejsu Edge Management API, aby wyświetlić dane statystyczne dotyczące zbioru o nazwie productID. To żądanie tworzy raport niestandardowy dla identyfikatorów produktów na podstawie sumy liczby wiadomości przesłanych dla każdego identyfikatora produktu z poszczególnych dni. Zastąp nazwę organizacji w zmiennej {org_name}, a adres e-mail i hasło do konta w Apigee Edge zastąp wartością email:password.

Ustaw parametr timeRange, aby uwzględnić przedział czasu, w którym zebrano dane. Dane sprzed ponad 6 miesięcy od bieżącej daty są domyślnie niedostępne. Jeśli chcesz uzyskać dostęp do danych starszych niż 6 miesięcy, skontaktuj się z zespołem pomocy Apigee Edge.

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/test/stats/productID?"select=sum(message_count)&timeRange=1/19/2015%2000:00~6/21/2015%2000:00&timeUnit=day"
-u email:password

W odpowiedzi pole name zawiera identyfikator produktu, a jego wartość wskazuje liczbę żądań z każdego dnia:

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1353369600000,
          "value" : "4.0"
        } ]
      } ],
      "name" : "52"
    }, {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1353369600000,
          "value" : "19.0"
        } ]
      } ],
      "name" : "14"
    }, ...
  } ],
  "metaData" : {
    "samplingRate" : "100"
  }
}

Wyodrębnianie danych do zbierania

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="GetWeatherData">
    <VariablePrefix>weather</VariablePrefix>
    <XMLPayload>
       <Namespaces>
          <Namespace prefix="yweather">http://xml.weather.yahoo.com/ns/rss/1.0</Namespace>
       </Namespaces>
       <Variable name="location" type="string">
          <XPath>/rss/channel/yweather:location/@city</XPath>
       </Variable>
       <Variable name="condition" type="string">
          <XPath>/rss/channel/item/yweather:condition/@text</XPath>
       </Variable>
    </XMLPayload>
</ExtractVariables>

Zasady dotyczące kolektora statystyk wymagają, aby zebrane dane były przechowywane w zmiennych. Te zmienne mogą być wstępnie zdefiniowane przez Apigee lub zmienne niestandardowe zdefiniowane przez Ciebie.

W tym przykładzie użyjesz zasady Wyodrębnianie zmiennych, aby wyodrębnić dane z ładunku XML, który zawiera informacje o pogodzie. Dzięki nim:

  • Wyodrębnia nazwę miasta i zapisuje ją w zmiennej o nazwie weather.location
  • Wyodrębnia bieżące warunki i zapisuje je w zmiennej o nazwie weather.condition.

Następnie możesz zbierać informacje o zmiennych za pomocą zasady kolektora statystyk, jak pokazano poniżej:

<StatisticsCollector name="publishPurchaseDetails">
  <Statistics>
    <Statistic name="weatherLocation" ref="weather.location" type="string"></Statistic>
    <Statistic name="weatherCondition" ref="weather.condition" type="string"></Statistic>
  </Statistics>
</StatisticsCollector>

Pełny samouczek, który pokazuje, jak wyodrębniać dane z ładunku XML na potrzeby zasady kolektora statystyk, znajdziesz w artykule Analizowanie treści wiadomości interfejsu API przy użyciu statystyk niestandardowych.


Informacje o zasadach dotyczących kolektora statystyk

Po uruchomieniu zasada kolektora statystyk rejestruje bieżącą wartość co najmniej 1 zmiennej. Mogą to być zmienne przepływu wstępnie zdefiniowane przez Apigee lub zmienne niestandardowe zdefiniowane przez Ciebie. Te dane są zapisywane na serwerze analiz brzegowych.

Aby uzyskać dostęp do danych statystycznych zbieranych przez zasadę, możesz użyć interfejsu Edge API lub interfejsu zarządzania Edge. Możesz na przykład utworzyć w interfejsie zarządzania urządzeniami brzegowymi raport niestandardowy, który pokazuje zebrane dane w różnych formatach.

Pełny samouczek dotyczący zasady kolektora statystyk znajdziesz w artykule Analizowanie treści wiadomości interfejsu API przy użyciu statystyk niestandardowych.

Gdzie umieścić zasadę

Możesz umieścić zasadę kolektora statystyk w przepływie żądań lub odpowiedzi serwera proxy interfejsu API. Jeśli jednak umieścisz w serwerze proxy wiele zasad kolektora statystyk, ostatnia zostanie uruchomiona, dane zapisane na serwerze analiz i dane zapisane przez dowolne wcześniejsze zasady kolektora statystyk zostaną utracone.

Jednym ze scenariuszy, w których może być wiele zasad kolektora statystyk na serwerze proxy interfejsu API, jest jedna z nich w przepływie żądania lub odpowiedzi, a druga w module obsługi błędów. Jeśli w serwerze proxy interfejsu API wystąpi błąd, kolektor statystyk w module obsługi błędów określa zbierane dane. Za pomocą tego kolektora statystyk możesz zapisać informacje o błędzie lub inne niezbędne informacje. Kolektor statystyk w module obsługi błędów określa gromadzone dane niezależnie od tego, czy kolektor statystyk w żądaniu lub odpowiedzi został już wykonany.

Więcej informacji znajdziesz w sekcji Obsługa błędów.

Odwołanie do elementu

Dokumentacja elementów opisuje elementy i atrybuty zasady kolektora statystyk.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

Atrybuty <StatisticsCollector>

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Stats-1">

Tabela poniżej zawiera opis atrybutów wspólnych dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślne Obecność
name

Wewnętrzna nazwa zasady. Wartość atrybutu name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekraczać 255 znaków.

Opcjonalnie możesz użyć elementu <DisplayName>, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw wartość false, aby zwracać błąd w przypadku niepowodzenia zasady. Jest to normalne działanie większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po awarii zasady.

false Opcjonalnie
enabled

Ustaw jako true, aby wymuszać zasadę.

Ustaw wartość false, aby wyłączyć tę zasadę. Zasada nie będzie egzekwowana, nawet jeśli pozostanie dołączona do procesu.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

false Wycofano

Element <DisplayName>

Użyj oprócz atrybutu name, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

<DisplayName>Policy Display Name</DisplayName>
Domyślne

Nie dotyczy

Jeśli pominiesz ten element, zostanie użyta wartość atrybutu name zasady.

Obecność Opcjonalnie
Typ Ciąg znaków

Element <Statystyki>/<Statystyki>

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
Atrybut Opis Domyślne Obecność
nazwa

Nazwa używana w odniesieniu do danych zebranych w przypadku określonej zmiennej. Podczas wyświetlania danych analitycznych używaj tej nazwy, aby odwoływać się do zebranych informacji o zmiennej określonej przez atrybut ref.

Jeśli zmienna określona przez ref jest niezdefiniowana w żądaniu lub odpowiedzi, defaultStatValue określa wartość zebraną dla zmiennej. Jeśli pominiesz wartość domyślną, to gdy zmienna będzie niezdefiniowana, nie będą zbierane żadne dane.

Ograniczenia dotyczące nazw

Niestandardowe zmienne Analytics podlegają tym ograniczeniom dotyczącym nazewnictwa:

  • Nazwy mogą zawierać następujące znaki: a–z, 0–9, _ (podkreślenie).
  • Nazwy nie mogą zawierać spacji.
  • Nazwą nie może być dsi, response_time, timekey ani timestamp.
  • Wielkość liter jest ignorowana.
  • Nie możesz używać nazw wstępnie zdefiniowanych danych, wymiarów ani filtrów Analytics wymienionych na stronie Dane, wymiary i filtry Analytics.
  • Oprócz powyższego niedozwolone są słowa kluczowe wymienione na tej stronie:
    https://www.postgresql.org/docs/8.1/static/sql-keywords-appendix.html
Nie dotyczy Wymagane
referencja

Zmienna przepływu, dla której zbierane są statystyki. Ta zmienna może być zmienną przepływu wstępnie zdefiniowaną przez Apigee lub zmienną niestandardową zdefiniowaną przez Ciebie na serwerze proxy interfejsu API.

Atrybut ref często odwołuje się do zmiennej niestandardowej zdefiniowanej przez zasadę Wyodrębnianie zmiennych. Więcej informacji znajdziesz w artykule o wyodrębnianiu zmiennych.

Nie dotyczy Wymagane
typ

Określa typ danych zmiennej określony w atrybucie ref. Prawidłowe wartości to: string/integer/float/long/double/boolean.

W przypadku danych typu ciąg znaków odwołaj się do danych statystycznych jako wymiaru w raporcie niestandardowym. W przypadku typów danych liczbowych (całkowite, zmiennoprzecinkowe, długie i z liczbą zmiennoprzecinkową) dane statystyczne w raporcie niestandardowym możesz oznaczać jako wymiar lub dane. Więcej informacji znajdziesz w artykule Zarządzanie raportami niestandardowymi.

Wartość atrybutu type można pominąć tylko wtedy, gdy ref odnosi się do wstępnie zdefiniowanej zmiennej przepływu Apigee lub gdy typ jest zadeklarowany w ładunku XML w zasadzie Wyodrębnianie zmiennych.

ciąg znaków Opcjonalnie

Informacje o błędach

W tej sekcji opisujemy komunikaty o błędach i zmienne przepływu ustawiane, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły błędów dla serwera proxy. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy w czasie wykonywania

Brak.

Błędy wdrażania

Nazwa błędu Przyczyna Napraw
UnsupportedDatatype Jeśli typ zmiennej określony przez atrybut ref w elemencie <Statistic> zasady kolektora statystyk nie jest obsługiwany, wdrożenie serwera proxy interfejsu API nie powiedzie się. Obsługiwane typy danych to string, integer, float, long, double i boolean.
InvalidName Jeśli nazwa używana do odwoływania się do danych zebranych dla określonej zmiennej zdefiniowanej w elemencie <Statistic> zasady kolektora statystyk powoduje konflikt ze zmienną zdefiniowaną przez system, wdrożenie serwera proxy interfejsu API się nie uda. Niektóre ze znanych zmiennych zdefiniowanych w systemie to organization i environment.
DatatypeMissing Jeśli brakuje typu zmiennej określonego przez atrybut ref w elemencie <Statistic> zasady kolektora statystyk, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Zmienne błędów

Brak.

Schemat

Każdy typ zasady jest definiowany przez schemat XML (.xsd). Schematy zasad są dostępne na GitHubie.

Powiązane artykuły

Aby dowiedzieć się więcej, zobacz: