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

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

Неподдерживаемый тип данных

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

Развертывание 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> политики сборщика статистики, не поддерживается, развертывание API-прокси завершится неудачей.

Поддерживаемые типы данных: string , integer , float , long , double и boolean .

Например, если тип переменной указан как char в элементе <Statistic> политики сборщика статистики, то развертывание 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 установлен как 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 .

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

Диагноз

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

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

    <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 конфликтует с системной переменной, то это и является причиной ошибки.

В приведенном выше примере политики сбора статистики напомним, что атрибут имени <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>

Отсутствует тип данных

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

Развертывание 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-прокси завершается неудачей.

Разрешение

Убедитесь, что атрибут типа переменной, указанной атрибутом 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>