นโยบาย StatisticsCollector

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

อะไร

ช่วยให้คุณรวบรวมสถิติสำหรับข้อมูลในข้อความ เช่น รหัสผลิตภัณฑ์, ราคา, การดำเนินการ REST, URL ของไคลเอ็นต์และเป้าหมาย ตลอดจนความยาวของข้อความ ข้อมูลอาจมาจากตัวแปรโฟลว์ที่ Apigee กำหนดไว้ล่วงหน้าหรือตัวแปรที่กำหนดเองที่คุณกำหนด

ระบบจะส่งข้อมูลสถิติไปยังเซิร์ฟเวอร์การวิเคราะห์ ซึ่งจะวิเคราะห์สถิติและสร้างรายงาน คุณสามารถดูรายงานได้โดยใช้ UI การจัดการ Edge หรือ Edge API

ลองฟัง

ตัวอย่างพื้นฐาน

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

ในตัวอย่างนี้ คุณรวบรวมข้อมูลทางสถิติเกี่ยวกับตัวแปรที่กำหนดเอง 2 รายการ ได้แก่ product.id และ product.price ในทุกคำขอ นโยบายเครื่องมือรวบรวมสถิติจะเขียนค่าของตัวแปร 2 ตัวนี้ไปยังเซิร์ฟเวอร์การวิเคราะห์

ตัวอย่างนี้ยังกำหนดค่าเริ่มต้นที่ไม่บังคับสำหรับแต่ละตัวแปรด้วย โดยที่ค่าเริ่มต้นของ product.id คือ 999999 และ product.price เริ่มต้นคือ 0 หากไม่ได้กำหนดตัวแปรและคุณไม่ได้ระบุค่าเริ่มต้น จะไม่มีการบันทึกข้อมูลสำหรับตัวแปรนั้น หากคุณระบุค่าเริ่มต้น ระบบจะบันทึกค่าเริ่มต้นเมื่อไม่มีการกำหนดตัวแปร

หลังจากรวบรวมข้อมูลสถิติแล้ว คุณจะใช้ UI หรือ API การจัดการ Edge เพื่อเรียกดูสถิติได้ เมื่อเรียกข้อมูลสถิติ คุณจะอ้างอิงข้อมูลที่รวบรวมสำหรับตัวแปรเหล่านี้เป็น productID และ price ตามลำดับ

การเข้าถึงสถิติ

ในตัวอย่างนี้ คุณจะใช้ Edge Management API เพื่อดูข้อมูลสถิติสำหรับคอลเล็กชันที่เรียกว่า productID คำขอนี้จะสร้างรายงานที่กำหนดเองสำหรับรหัสผลิตภัณฑ์โดยอิงตามผลรวมของจำนวนข้อความที่ส่งสำหรับรหัสผลิตภัณฑ์แต่ละรหัสในแต่ละวัน แทนที่ชื่อองค์กรสำหรับตัวแปร {org_name} และแทนที่อีเมลและรหัสผ่านสำหรับบัญชีของคุณใน Apigee Edge สำหรับ email:password

ตั้งค่าพารามิเตอร์ timeRange ให้รวมช่วงเวลาที่มีการรวบรวมข้อมูลของคุณ ไม่สามารถเข้าถึงข้อมูลที่เก่ากว่า 6 เดือนนับจากวันที่ปัจจุบันโดยค่าเริ่มต้น หากต้องการเข้าถึงข้อมูลที่เก่ากว่า 6 เดือน โปรดติดต่อทีมสนับสนุนของ Apigee Edge

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/test/stats/productID?"select=sum(message_count)&timeRange=1/19/2015%2000:00~6/21/2015%2000:00&timeUnit=day"
-u email:password

ในคำตอบนั้น ช่อง name จะมีรหัสผลิตภัณฑ์และค่าที่แสดงจำนวนคำขอสำหรับแต่ละวัน ดังนี้

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1353369600000,
          "value" : "4.0"
        } ]
      } ],
      "name" : "52"
    }, {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1353369600000,
          "value" : "19.0"
        } ]
      } ],
      "name" : "14"
    }, ...
  } ],
  "metaData" : {
    "samplingRate" : "100"
  }
}

การแยกข้อมูลสำหรับคอลเล็กชัน

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="GetWeatherData">
    <VariablePrefix>weather</VariablePrefix>
    <XMLPayload>
       <Namespaces>
          <Namespace prefix="yweather">http://xml.weather.yahoo.com/ns/rss/1.0</Namespace>
       </Namespaces>
       <Variable name="location" type="string">
          <XPath>/rss/channel/yweather:location/@city</XPath>
       </Variable>
       <Variable name="condition" type="string">
          <XPath>/rss/channel/item/yweather:condition/@text</XPath>
       </Variable>
    </XMLPayload>
</ExtractVariables>

นโยบายเครื่องมือรวบรวมสถิติกำหนดให้เก็บข้อมูลที่เก็บรวบรวมไว้ในตัวแปร ตัวแปรเหล่านี้สามารถกำหนดไว้ล่วงหน้าโดย Apigee หรือตัวแปรที่กำหนดเองที่คุณกำหนด

ในตัวอย่างนี้ คุณใช้นโยบายแยกตัวแปรเพื่อดึงข้อมูลจากเพย์โหลด XML ที่มีข้อมูลสภาพอากาศ นโยบายนี้มีคุณสมบัติดังต่อไปนี้

  • ดึงข้อมูลชื่อเมืองและเขียนลงในตัวแปรที่ชื่อ weather.location
  • ดึงข้อมูลเงื่อนไขปัจจุบันและเขียนลงในตัวแปรที่ชื่อ weather.condition

จากนั้นคุณสามารถใช้นโยบายเครื่องมือรวบรวมสถิติเพื่อรวบรวมข้อมูลเกี่ยวกับตัวแปรดังที่แสดงด้านล่าง

<StatisticsCollector name="publishPurchaseDetails">
  <Statistics>
    <Statistic name="weatherLocation" ref="weather.location" type="string"></Statistic>
    <Statistic name="weatherCondition" ref="weather.condition" type="string"></Statistic>
  </Statistics>
</StatisticsCollector>

ดูบทแนะนำทั้งหมดที่แสดงวิธีดึงข้อมูลจากเพย์โหลด XML สำหรับนโยบายเครื่องมือรวบรวมสถิติได้ที่วิเคราะห์เนื้อหาข้อความ API โดยใช้การวิเคราะห์ที่กำหนดเอง


เกี่ยวกับนโยบายเครื่องมือรวบรวมสถิติ

เมื่อดำเนินการ นโยบายเครื่องมือรวบรวมสถิติจะบันทึกค่าปัจจุบันของตัวแปรอย่างน้อย 1 รายการ ตัวแปรเหล่านี้อาจเป็นตัวแปรโฟลว์ที่กำหนดไว้ล่วงหน้าโดย Apigee หรือตัวแปรที่กำหนดเองที่คุณกำหนด ระบบจะเขียนข้อมูลนี้ไปยังเซิร์ฟเวอร์การวิเคราะห์ Edge

หากต้องการเข้าถึงข้อมูลสถิติที่รวบรวมโดยนโยบาย ให้ใช้ Edge API หรือ UI การจัดการ Edge ตัวอย่างเช่น คุณสามารถใช้ UI การจัดการ Edge เพื่อสร้างรายงานที่กำหนดเองซึ่งแสดงข้อมูลที่รวบรวมในรูปแบบต่างๆ

ดูบทแนะนำทั้งหมดเกี่ยวกับการใช้นโยบายเครื่องมือรวบรวมสถิติได้ที่วิเคราะห์เนื้อหาข้อความของ API โดยใช้การวิเคราะห์ที่กำหนดเอง

ตำแหน่งที่ควรระบุนโยบาย

คุณวางนโยบายเครื่องมือรวบรวมข้อมูลสถิติไว้ในขั้นตอนการส่งคำขอหรือการตอบกลับของพร็อกซี API ได้ อย่างไรก็ตาม หากคุณใส่นโยบายเครื่องมือรวบรวมสถิติหลายนโยบายในพร็อกซี นโยบายสุดท้ายที่จะดำเนินการจะระบุข้อมูลที่เขียนไปยังเซิร์ฟเวอร์การวิเคราะห์และข้อมูลที่เขียนโดยนโยบายเครื่องมือรวบรวมสถิติใดๆ ก่อนหน้าจะสูญหาย

สถานการณ์หนึ่งที่คุณอาจมีนโยบายเครื่องมือรวบรวมสถิติหลายนโยบายในพร็อกซี API คือเมื่อคุณมีนโยบายหนึ่งอยู่ในขั้นตอนคำขอหรือการตอบกลับ และอีกนโยบายหนึ่งในเครื่องจัดการข้อผิดพลาด หากข้อผิดพลาดเกิดขึ้นในพร็อกซี API เครื่องมือรวบรวมสถิติในเครื่องจัดการข้อผิดพลาดจะเป็นตัวกำหนดข้อมูลที่รวบรวม คุณสามารถใช้โปรแกรมรวบรวมสถิตินั้นเพื่อบันทึกข้อมูลเกี่ยวกับความผิดพลาด หรือบันทึกข้อมูลอื่นๆ ที่คุณคิดว่าจำเป็น เครื่องมือรวบรวมสถิติในเครื่องจัดการข้อผิดพลาดจะระบุข้อมูลที่รวบรวมไม่ว่าเครื่องมือรวบรวมสถิติในคำขอ/คำตอบจะได้รับการดำเนินการแล้วหรือไม่ก็ตาม

ดูข้อมูลเพิ่มเติมได้ที่การจัดการข้อผิดพลาด

การอ้างอิงองค์ประกอบ

การอ้างอิงองค์ประกอบจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบายเครื่องมือรวบรวมสถิติ

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

แอตทริบิวต์ <StatisticsCollector>

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Stats-1">

ตารางต่อไปนี้อธิบายแอตทริบิวต์ที่ใช้ร่วมกันในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
name

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name มีตัวอักษร ตัวเลข ช่องว่าง ขีดกลาง ขีดล่าง และจุด ค่านี้ต้องมีอักขระไม่เกิน 255 ตัว

(ไม่บังคับ) ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป

ไม่มีข้อมูล จำเป็น
continueOnError

ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งถือเป็นเรื่องปกติสำหรับนโยบายส่วนใหญ่

ตั้งค่าเป็น true เพื่อให้การดำเนินการโฟลว์ดำเนินต่อไปได้แม้ว่านโยบายจะล้มเหลวก็ตาม

false ไม่บังคับ
enabled

ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย

ตั้งค่าเป็น false เพื่อปิดนโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังแนบอยู่กับขั้นตอนก็ตาม

จริง ไม่บังคับ
async

แอตทริบิวต์นี้เลิกใช้งานแล้ว

false เลิกใช้

องค์ประกอบ <DisplayName>

ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป

<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น

ไม่มีข้อมูล

หากคุณไม่ใส่องค์ประกอบนี้ ระบบจะใช้ค่าของแอตทริบิวต์ name ของนโยบาย

การมีบุคคลอยู่ ไม่บังคับ
Type สตริง

องค์ประกอบ <สถิติ>/<สถิติ>

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
ชื่อ

ชื่อที่ใช้ในการอ้างอิงข้อมูลที่รวบรวมสำหรับตัวแปรที่ระบุ เมื่อดูข้อมูลวิเคราะห์ ให้ใช้ชื่อนี้ในการอ้างอิงข้อมูลที่รวบรวมเกี่ยวกับตัวแปรที่ระบุโดยแอตทริบิวต์ ref

หากตัวแปรที่ระบุโดย ref ไม่ได้กำหนดในคำขอหรือการตอบกลับ defaultStatValue จะระบุค่าที่รวบรวมสำหรับตัวแปร หากไม่ใส่ค่าเริ่มต้น ระบบจะไม่รวบรวมข้อมูลสำหรับตัวแปรเมื่อไม่ได้กำหนดตัวแปร

ข้อจำกัดการตั้งชื่อ

ข้อจำกัดในการตั้งชื่อต่อไปนี้มีผลกับตัวแปรการวิเคราะห์ที่กำหนดเอง

  • ชื่อสามารถใช้อักขระต่อไปนี้ได้: a-z, 0-9, _ (ขีดล่าง)
  • โดยชื่อต้องไม่มีการเว้นวรรค
  • ชื่อจะเป็น dsi, response_time, timekey หรือ timestamp ไม่ได้
  • ไม่สนใจตัวพิมพ์เล็กหรือใหญ่
  • คุณใช้ชื่อเมตริก มิติข้อมูล หรือตัวกรองข้อมูลวิเคราะห์ที่กำหนดไว้ล่วงหน้าในการอ้างอิงเมตริก มิติข้อมูล และตัวกรองของ Analytics ไม่ได้
  • นอกเหนือจากคีย์เวิร์ดข้างต้นแล้ว ไม่อนุญาตให้ใช้คีย์เวิร์ดที่แสดงในหน้าต่อไปนี้
    https://www.postgresql.org/docs/8.1/static/sql-keywords-appendix.html
ไม่มีข้อมูล จำเป็น
อ้างอิง

ตัวแปรโฟลว์ที่คุณกำลังรวบรวมสถิติ ตัวแปรนี้อาจเป็นตัวแปรโฟลว์ที่กำหนดไว้ล่วงหน้าโดย Apigee หรือตัวแปรที่กำหนดเองที่คุณกำหนดในพร็อกซี API

แอตทริบิวต์ ref มักจะอ้างอิงตัวแปรที่กำหนดเองที่กำหนดโดยนโยบายการดึงข้อมูลตัวแปร ดูข้อมูลเพิ่มเติมได้ในนโยบายการแยกตัวแปร

ไม่มีข้อมูล จำเป็น
ประเภท

ระบุประเภทข้อมูลของตัวแปรที่ระบุโดยแอตทริบิวต์ ref ค่าที่ใช้ได้มีดังนี้ string/integer/float/long/double/boolean

สำหรับข้อมูลประเภทสตริง ให้อ้างอิงข้อมูลทางสถิติเป็นมิติข้อมูลในรายงานที่กำหนดเอง สำหรับประเภทข้อมูลตัวเลข (จำนวนเต็ม/ทศนิยม/ทศนิยม) ให้อ้างอิงข้อมูลสถิติในรายงานที่กำหนดเองเป็นมิติข้อมูลหรือเมตริก โปรดดูข้อมูลเพิ่มเติมในจัดการรายงานที่กำหนดเอง

คุณจะละเว้นค่าของ type ได้ก็ต่อเมื่อ ref อ้างอิงถึงตัวแปรโฟลว์ Apigee ที่กำหนดไว้ล่วงหน้าหรือประกาศประเภทในเพย์โหลด XML ของนโยบายการดึงข้อมูลตัวแปร

สตริง ไม่บังคับ

การอ้างอิงข้อผิดพลาด

ส่วนนี้อธิบายข้อความแสดงข้อผิดพลาดและตัวแปรโฟลว์ที่ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้สำคัญที่ต้องทราบ หากคุณกำลังพัฒนากฎข้อผิดพลาดสำหรับพร็อกซี ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด

ข้อผิดพลาดเกี่ยวกับรันไทม์

ไม่มี

ข้อผิดพลาดในการทำให้ใช้งานได้

ชื่อข้อผิดพลาด สาเหตุ แก้ไข
UnsupportedDatatype หากระบบไม่รองรับประเภทของตัวแปรที่ระบุโดยแอตทริบิวต์ ref ในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือรวบรวมสถิติ จะทำให้ใช้งานพร็อกซี API ไม่สำเร็จ ประเภทข้อมูลที่รองรับ ได้แก่ string, integer, float, long, double และ boolean
InvalidName หากชื่อที่ใช้อ้างอิงข้อมูลที่รวบรวมสำหรับตัวแปรที่ระบุซึ่งกำหนดภายในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือรวบรวมสถิติขัดแย้งกับตัวแปรที่ระบบกำหนด การทำให้พร็อกซี API ใช้งานได้จะไม่สำเร็จ ตัวแปรที่กำหนดโดยระบบที่รู้จักบางรายการคือ organization และ environment
DatatypeMissing หากไม่มีประเภทของตัวแปรที่ระบุโดยแอตทริบิวต์ ref ในองค์ประกอบ <Statistic> ของนโยบายเครื่องมือรวบรวมสถิติ จะทำให้ใช้งานพร็อกซี API ไม่สำเร็จ

ตัวแปรของข้อผิดพลาด

ไม่มี

สคีมา

นโยบายแต่ละประเภทจะกำหนดโดยสคีมา XML (.xsd) โปรดทราบว่าสคีมานโยบายมีอยู่ใน GitHub

หัวข้อที่เกี่ยวข้อง

ดูข้อมูลเพิ่มเติมได้ที่