Rozwiązywanie problemów z wdrażaniem zasad kolektora statystyk

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

UnsupportedDatatype

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

Error Deploying Revision [revision_number]
StatisticsCollection [datatype]: Datatype Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is unsupported . Context [context].

Przykładowy komunikat o błędzie

Error Saving Revision 1
StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.

Przykładowy zrzut ekranu

Przyczyna

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.

Jeśli np. typ zmiennej jest określony jako char w elemencie <Statistic> w zasadach kolektora statystyk, wdrożenie serwera proxy interfejsu API się nie uda.

Diagnostyka

  1. Zidentyfikuj zasadę kolektora statystyk na konkretnym serwerze proxy interfejsu API, na którym wystąpił błąd.
  2. Wskaż nieobsługiwany typ danych używany w zasadzie kolektora statystyk. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nieobsługiwany typ danych to char:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. Sprawdź, czy atrybut typu użyty w nieudanej zasadzie kolektora statystyk jest zgodny z typem danych określonym w komunikacie o błędzie (krok 2 powyżej). Na przykład ta zasada określa typ danych jako char, co jest zgodne z treścią komunikatu o błędzie:

    <StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
      <DisplayName>Statistics Collector 1</DisplayName>
      <Statistics>
          <Statistic name="statName" ref="varName" type="char">defaultStatValue</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  4. Jeśli typ danych nie jest obsługiwany, to jest przyczyną błędu.

    W przykładowej zasadzie kolektora statystyk pokazanej powyżej przypominamy, że atrybut type jest ustawiony jako char, co nie jest obsługiwane. Dlatego wdrożenie serwera proxy interfejsu API nie powiedzie się z błędem:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    

Rozdzielczość

Upewnij się, że typ danych zmiennych określonych przez atrybuty referencyjne w elementach <Statistic> w zasadach kolektora statystyk jest obsługiwany i prawidłowy. Na przykład:

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="string">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

InvalidName

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

Error Deploying Revision [revision_number]
StatisticsCollection: Name: [name] conflicts with system defined variables. Context policy: [policy_name]

Przykładowy komunikat o błędzie

Error Saving Revision 1
StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

Przykładowy zrzut ekranu

Przyczyna

Jeśli nazwa używana w celu odwoływania się do danych zebranych dla określonej zmiennej zdefiniowanej w elemencie <Statistic> w zasadach 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.

Jeśli na przykład atrybut name jest określony jako organization w elemencie <Statistic> w zasadach kolektora statystyk, wdrożenie serwera proxy interfejsu API się nie uda.

Diagnostyka

  1. Wskaż zasadę kolektora statystyk, w której wystąpił błąd, i nazwę elementu <Statistic>, który powoduje konflikt ze zmienną zdefiniowaną przez system. Oba te elementy znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to StatCollector, a nazwa elementu <Statistic>, który koliduje ze zmienną zdefiniowaną przez system, to organization:

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. Sprawdź, czy nazwa elementu <Statistic> użytego w nieudanym kodzie XML zasad kolektora statystyk jest zgodna z nazwą podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa w elemencie <Statistic> nazwę organization, która jest zgodna z treścią komunikatu o błędzie:

    <StatisticsCollector name="StatCollector">
      <Statistics>
          <Statistic name="organization" ref="organization" type="string">myorg</Statistic>
          <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  3. Sprawdź definicję każdego elementu <Statistic>. Jeśli w jakimkolwiek elemencie <Statistic> występuje konflikt atrybutu name ze zmienną systemową, to jest przyczyną błędu.

W przykładowej zasadzie kolektora statystyk pokazanej powyżej zapamiętaj, że używany atrybut nazwy <Statistic> to organization, który jest nazwą zmiennej systemowej. Z tego powodu wdrożenie serwera proxy interfejsu API nie powiodło się i występuje błąd:

StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

Rozdzielczość

Upewnij się, że nazwa elementu <Statistic> używana w odniesieniu do danych zebranych w przypadku określonej zmiennej zdefiniowanej w elemencie <Statistic> w zasadach dotyczących kolektora statystyk różni się od zmiennych zdefiniowanych w systemie. Na przykład:

<StatisticsCollector name="StatCollector">
    <Statistics>
        <Statistic name="org" ref="org" type="string">myorg</Statistic>
        <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
    </Statistics>
</StatisticsCollector>

DatatypeMissing

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

Error Deploying Revision [revision_number]
StatisticsCollection [ref]: Datatype of Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is missing . Context [context].

Przykładowy komunikat o błędzie

Error Deploying Revision 2 to test
StatisticsCollection product.id: Datatype of Revision:2;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is missing. Context {2}.

Przykładowy zrzut ekranu

Przyczyna

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

Diagnostyka

  1. Zidentyfikuj zasadę kolektora statystyk na konkretnym serwerze proxy interfejsu API, na którym wystąpił błąd.
  2. Sprawdź definicję każdego z elementów <Statistic> w nieudanym kodzie XML zasad kolektora statystyk. Jeśli brakuje jakiegoś atrybutu typu w jakimś elemencie <Statistic>, to jest to przyczyna błędu.

Oto przykładowa zasada kolektora statystyk:

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

W przykładowej zasadzie kolektora statystyk pokazanej powyżej można zauważyć, że w przypadku elementów <Statistic> brakuje atrybutu typu. Z tego powodu wdrożenie proxy interfejsu API się nie uda.

Rozdzielczość

Upewnij się, że atrybut typu zmiennej określony przez atrybut ref w elemencie <Statistic> zasady kolektora statystyk jest zawsze określony i ma obsługiwany typ danych.

Obsługiwane typy danych to string, integer, float, long, double i boolean.

Na przykład:

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