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

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

UnsupportedDatatype

Komunikat o błędzie

Wdrażanie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetla 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 Statistics Collector jest nieobsługiwany, wdrożenie serwera proxy interfejsu API nie powiedzie się.

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

Jeśli na przykład typ zmiennej jest określony jako char w elemencie <Statistic> zasady Statistics Collector, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Diagnostyka

  1. Określ zasady dotyczące modułu zbierającego statystyki w konkretnym serwerze proxy interfejsu API, w którym wystąpił błąd.
  2. Określ nieobsługiwany typ danych użyty w zasadach dotyczących 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 zasadach modułu zbierającego statystyki, które spowodowały błąd, jest zgodny z typem danych wskazanym w komunikacie o błędzie (krok 2 powyżej). Na przykład te zasady określają typ danych jako char, co odpowiada temu, co znajduje się w komunikacie 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 atrybut type nie jest obsługiwanym typem danych, to jest to przyczyną błędu.

    W przykładowych zasadach dotyczących zbierania statystyk pokazanych powyżej atrybut type jest ustawiony jako char, co jest nieobsługiwane. W związku z tym wdrożenie proxy interfejsu API nie powiedzie się i zostanie wyświetlony błąd:

    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 ref w elementach <Statistic> zasady Kolektor 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

Wdrażanie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetla 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 do odwoływania się do danych zebranych dla określonej zmiennej zdefiniowanej w elemencie <Statistic> zasady Kolektora statystyk jest sprzeczna ze zmienną zdefiniowaną przez system, wdrożenie serwera proxy interfejsu API nie powiedzie się.

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> zasad kolektora statystyk, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Diagnostyka

  1. Określ zasady dotyczące narzędzia do zbierania statystyk, w których wystąpił błąd, oraz 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 zasad to StatCollector, a nazwa elementu <Statistic>, który powoduje konflikt 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 nieudanej polityce XML kolektora statystyk jest zgodna z nazwą podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład poniższe zasady określają nazwę organization w elemencie <Statistic>, co odpowiada 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 występuje element <Statistic>, w którym atrybut name jest sprzeczny ze zmienną systemową, to jest to przyczyną błędu.

W przykładzie zasady Kolektor statystyk powyżej atrybut name elementu <Statistic> ma wartość organization, która jest nazwą zmiennej systemowej. Wdrożenie proxy interfejsu API nie powiedzie się z błędem:

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

Rozdzielczość

Upewnij się, że nazwa elementu <Statistic> używanego do odwoływania się do danych zebranych dla określonej zmiennej zdefiniowanej w elemencie <Statistic> w zasadach modułu zbierania statystyk nie jest taka sama jak zmienne zdefiniowane przez system. 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

Wdrażanie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetla 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. Określ zasady dotyczące modułu zbierającego statystyki w konkretnym serwerze proxy interfejsu API, w którym wystąpił błąd.
  2. Sprawdź definicję każdego elementu <Statistic> w nieprawidłowym pliku XML zasad dotyczących narzędzia do zbierania statystyk. Jeśli występują elementy <Statistic>, w których brakuje atrybutu type, to jest to przyczyną błędu.

Oto przykładowe zasady dotyczące 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ładowych zasadach dotyczących zbierania statystyk pokazanych powyżej zauważ, że w przypadku obu elementów <Statistic> brakuje atrybutu type. W związku z tym wdrożenie proxy interfejsu API się nie powiedzie.

Rozdzielczość

Sprawdź, czy atrybut typu zmiennej określony przez atrybut ref w elemencie <Statistic> zasady dotyczącej modułu zbierającego statystyki 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>