Устранение неполадок при развертывании правил для сборщика статистики

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

UnsupportedDatatype

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Если тип переменной, указанный в атрибуте ref элемента <Statistic> правила Statistics Collector, не поддерживается, развертывание прокси-сервера API завершится неудачно.

Поддерживаются следующие типы данных: string, integer, float, long, double и boolean.

Например, если в элементе <Statistic> политики сборщика статистики для переменной указан тип char, развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите политику сборщика статистики в определенном прокси API, в котором произошел сбой.
  2. Определите тип данных, который не поддерживается правилами сборщика статистики. Эту информацию можно найти в сообщении об ошибке. Например, в следующем сообщении об ошибке неподдерживаемый тип данных – char:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. Убедитесь, что атрибут типа, используемый в невыполненном правиле сборщика статистики, соответствует типу данных, указанному в сообщении об ошибке (шаг 2 выше). Например, в приведенном ниже правиле тип данных указан как char, что соответствует сообщению об ошибке:

    <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. Если атрибут type имеет неподдерживаемый тип данных, это и является причиной ошибки.

    В примере выше атрибут type задан как char, что не поддерживается. Поэтому развертывание прокси API завершается неудачно с ошибкой:

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

Разрешение

Убедитесь, что тип данных переменных, указанных в атрибутах ref элементов <Statistic> правила "Сборщик статистики", поддерживается и действителен. Пример:

<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

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Если название, используемое для ссылки на данные, собранные для указанной переменной, определенной в элементе <Statistic> политики сборщика статистики, конфликтует с системной переменной, развертывание прокси-сервера API завершится неудачно.

К известным системным переменным относятся, например, organization и environment.

Например, если атрибут name указан как organization в элементе <Statistic> политики Statistics Collector, развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите правило сборщика статистики, в котором произошла ошибка, и название элемента <Statistic>, который конфликтует с системной переменной. Оба этих элемента можно найти в сообщении об ошибке. Например, в приведенном ниже сообщении об ошибке название правила – StatCollector, а название элемента <Statistic>, который конфликтует с системной переменной, – organization:

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. Убедитесь, что название элемента <Statistic>, использованного в XML-файле неудачной политики сборщика статистики, совпадает с названием, указанным в сообщении об ошибке (шаг 1 выше). Например, в приведенных ниже правилах название указано как organization в элементе <Statistic>, что соответствует сообщению об ошибке:

    <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. Изучите определение каждого элемента <Statistic>. Если есть элемент <Statistic>, атрибут name которого конфликтует с системной переменной, то это и является причиной ошибки.

В примере правил для сборщика статистики, приведенном выше, атрибут name тега <Statistic> имеет значение organization, которое является названием системной переменной. Поэтому развертывание прокси API завершается неудачно с ошибкой:

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

Разрешение

Убедитесь, что название элемента <Statistic>, используемого для ссылки на данные, собранные для указанной переменной, определенной в элементе <Statistic> в правилах сборщика статистики, не совпадает с названиями системных переменных. Пример:

<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

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Если тип переменной, указанной в атрибуте ref элемента <Statistic> правила "Сборщик статистики", отсутствует, развертывание прокси-сервера API завершится неудачно.

диагностика;

  1. Определите политику сборщика статистики в определенном прокси API, в котором произошел сбой.
  2. Проверьте определение каждого элемента <Statistic> в XML-файле правил, который не удалось применить. Если в каких-либо элементах <Statistic> отсутствует атрибут type, это и является причиной ошибки.

Пример правил для сборщика статистики:

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

В примере выше обратите внимание, что атрибут type отсутствует в обоих элементах <Statistic>. Поэтому развертывание прокси API не удается.

Разрешение

Убедитесь, что атрибут type переменной, указанной атрибутом ref в элементе <Statistic> правила "Сборщик статистики", всегда задан и имеет поддерживаемый тип данных.

Поддерживаются следующие типы данных: string, integer, float, long, double и boolean.

Пример:

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