عیب یابی خطای استقرار خط مشی جمع آوری آمار

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

نوع داده پشتیبانی نشده

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت 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> از سیاست Statistics Collector به صورت char مشخص شده باشد، پیاده‌سازی پروکسی API با شکست مواجه می‌شود.

تشخیص

  1. سیاست جمع‌آوری آمار را در پروکسی API خاصی که خرابی در آن رخ داده است، شناسایی کنید.
  2. نوع داده پشتیبانی نشده مورد استفاده در سیاست جمع آوری آمار را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نوع داده پشتیبانی نشده char است:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. تأیید کنید که ویژگی نوع استفاده شده در خط‌مشی ناموفق جمع‌آوری آمار با نوع داده شناسایی شده در پیام خطا (مرحله ۲ در بالا) مطابقت دارد. برای مثال، خط‌مشی زیر نوع داده را 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 Proxy با خطای زیر ناموفق است:

    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>

نام نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت 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> از خط‌مشی Statistics Collector استفاده می‌شود، با یک متغیر تعریف‌شده توسط سیستم تداخل داشته باشد، پیاده‌سازی پروکسی API با شکست مواجه می‌شود.

برخی از متغیرهای شناخته‌شده‌ی تعریف‌شده توسط سیستم، organization و environment هستند.

برای مثال، اگر ویژگی نام در عنصر <Statistic> از خط‌مشی Statistics Collector به عنوان organization مشخص شده باشد، پیاده‌سازی پروکسی API با شکست مواجه می‌شود.

تشخیص

  1. سیاست جمع‌آوری آمار (Statistic Collector) که خطا در آن رخ داده است و نام عنصر <Statistic> که با یک متغیر تعریف‌شده توسط سیستم تداخل دارد را شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام سیاست StatCollector و نام عنصر <Statistic> که با متغیر تعریف‌شده توسط سیستم تداخل دارد organization است:

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. تأیید کنید که نام عنصر <Statistic> استفاده شده در سیاست XML مربوط به Statistics Collector ناموفق با نام شناسایی شده در پیام خطا (مرحله ۱ در بالا) مطابقت داشته باشد. برای مثال، سیاست زیر نام را به عنوان 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 با یک متغیر سیستمی تداخل داشته باشد، علت خطا همان است.

در مثال سیاست جمع‌آوری آمار که در بالا نشان داده شده است، به یاد داشته باشید که ویژگی نام <Statistic> مورد استفاده، organization است که اتفاقاً نام یک متغیر سیستمی است. از این رو، استقرار API Proxy با خطای زیر شکست می‌خورد:

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 یا رابط مدیریت 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> از خط‌مشی Statistics Collector وجود نداشته باشد، پیاده‌سازی پروکسی API با شکست مواجه می‌شود.

تشخیص

  1. سیاست جمع‌آوری آمار را در پروکسی API خاصی که خرابی در آن رخ داده است، شناسایی کنید.
  2. تعریف هر یک از عناصر <Statistic> را در XML مربوط به سیاست ناموفق جمع‌آوری آمار بررسی کنید. اگر عناصر <Statistic> وجود دارند که ویژگی نوع آنها وجود ندارد، علت خطا همین است.

در اینجا یک مثال از سیاست جمع‌آوری آمار آمده است:

  <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 Proxy با شکست مواجه می‌شود.

وضوح تصویر

اطمینان حاصل کنید که ویژگی نوع متغیر مشخص شده توسط ویژگی ref در عنصر <Statistic> از خط‌مشی Statistics Collector همیشه مشخص شده و از نوع داده پشتیبانی شده باشد.

انواع داده‌های پشتیبانی‌شده عبارتند از 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>