การอัปโหลดข้อมูลการเข้าชม API ไปยัง Apigee - รุ่นเบต้า

ลูกค้า Edge สำหรับ Private Cloud ทุกรายจะต้องส่งสถิติเกี่ยวกับการรับส่งข้อมูลพร็อกซีของ API ไปยังสถิติ Apigee Apigee แนะนำให้ลูกค้าอัปโหลดข้อมูลวันละครั้ง โดยอาจสร้างงาน Cron

คุณต้องส่งข้อมูลสำหรับการทำให้ API ที่ใช้งานจริงใช้งานได้ แต่ไม่ใช่สำหรับ API ในการพัฒนาหรือการทดสอบการทำให้ใช้งานได้ ในการติดตั้ง Edge ส่วนใหญ่ คุณจะกำหนดองค์กรหรือสภาพแวดล้อมที่เฉพาะเจาะจงสำหรับ API ที่ใช้งานจริง ข้อมูลที่คุณส่งมีไว้สำหรับองค์กรและสภาพแวดล้อมที่ใช้งานจริงเท่านั้น

Apigee เพื่อช่วยอัปโหลดข้อมูลนี้ โดยมียูทิลิตีบรรทัดคำสั่ง apigee-analytics-collector รุ่นเบต้า ยูทิลิตีนี้จะส่งรายงานปริมาณการเรียก API กลับไปยัง Apigee Edge ทั้งหมดสำหรับการติดตั้ง Private Cloud จะใช้ยูทิลิตีนี้เพื่อเรียกและรายงานข้อมูลการรับส่งข้อมูลไปยัง Apigee ได้

จำเป็น: ติดต่อฝ่ายสนับสนุนของ Apigee ก่อนอัปโหลดข้อมูล

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

ติดตั้ง apigee-analytics-collector

ยูทิลิตี apigee-analytics-collector คือ RPM ที่คุณติดตั้งโดยใช้ยูทิลิตี apigee-service

ติดตั้งที่ไหน

โหนดที่คุณติดตั้งยูทิลิตี apigee-analytics-collector อาจเป็นโหนดใดก็ได้ที่เข้าถึง Edge Management API ใน Edge Management Server ได้ คุณติดตั้งโดยตรงในเซิร์ฟเวอร์การจัดการ บนโหนดอื่นของการติดตั้ง Edge หรือในโหนดแยกต่างหากได้ ตราบใดที่โหนดนั้นส่งคำขอ API ไปยังเซิร์ฟเวอร์การจัดการได้

ข้อกำหนดในการเข้าถึงอินเทอร์เน็ต

ติดตั้งยูทิลิตี apigee-analytics-collector ในเครื่องที่มีการเข้าถึงอินเทอร์เน็ตภายนอก จากนั้นยูทิลิตี apigee-analytics-collector จะอัปโหลดข้อมูลไปยัง Apigee ได้โดยตรง

หากไม่มีโหนดที่ทั้งมีสิทธิ์เข้าถึง Edge Management API ใน Edge Management Server และการเข้าถึงอินเทอร์เน็ตภายนอก คุณจะใช้ Edge Management API เพื่อบันทึกข้อมูลการรับส่งข้อมูลในเครื่องได้ จากนั้นคุณต้องโอนข้อมูลไปยังเครื่องที่เข้าถึงอินเทอร์เน็ตเพื่ออัปโหลดไปยัง Apigee ได้ ในสถานการณ์นี้ คุณไม่จำเป็นต้องใช้ยูทิลิตี apigee-analytics-collector โปรดดูข้อมูลเพิ่มเติมที่การอัปโหลดข้อมูลไปยัง Apigee ด้วยตนเอง

การติดตั้ง

ใช้คำสั่งต่อไปนี้เพื่อติดตั้งยูทิลิตี apigee-analytics-collector เนื่องจากคุณกำลังติดตั้งไฟล์ RPM ผู้ใช้รูทหรือผู้ใช้ที่มีสิทธิ์การเข้าถึง sudo จึงต้องเรียกใช้คำสั่งนี้ สำหรับการเข้าถึง sudo เต็มรูปแบบ หมายความว่าผู้ใช้มีสิทธิ์เข้าถึง sudo เพื่อดำเนินการเช่นเดียวกับรูท

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install

กำลังเรียกใช้ apigee-analytics-collector

หัวข้อนี้จะอธิบายวิธีการเรียกใช้ยูทิลิตี apigee-analytics-collector

การกำหนดค่าผู้ใช้ให้เรียกใช้ apigee-analytics-collector

คุณต้องเรียกใช้ apigee-analytics-collector ในฐานะผู้ใช้ที่ไม่ใช่ระดับรูท ผู้ใช้รายนี้ต้องมีสิทธิ์เข้าถึง sudo สำหรับผู้ใช้ "apigee" โดยสมบูรณ์

หากต้องการกำหนดค่าผู้ใช้ให้มีสิทธิ์เข้าถึง sudo สำหรับผู้ใช้ "apigee" โดยสมบูรณ์ ให้ใช้คำสั่ง "visudo" เพื่อแก้ไขไฟล์ sudoers เพื่อเพิ่ม:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

โดย analyticsUser คือชื่อผู้ใช้ของบุคคลที่เรียกใช้ยูทิลิตี apigee-analytics-collector

หลังจากติดตั้งยูทิลิตี apigee-analytics-collector และกำหนดค่าผู้ใช้แล้ว คุณสามารถทดสอบยูทิลิตีนี้ได้โดยเรียกใช้คำสั่งความช่วยเหลือสำหรับยูทิลิตี apigee-analytics-collector ดังนี้

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic --help

ข้อมูลที่จำเป็นในการเรียกใช้ apigee-analytics-collector

คุณต้องมีข้อมูลต่อไปนี้เพื่อเรียกใช้คำสั่ง apigee-analytics-collector และส่งต่อข้อมูลไปยัง Apigee

  • apigee_mgmt_api_uri: URL พื้นฐานของ Edge API ในเซิร์ฟเวอร์การจัดการ โดยทั่วไป URL นี้จะอยู่ในรูปแบบต่อไปนี้

    http://ms_IP:8080/v1

    โดย ms_IP คือที่อยู่ IP หรือเซิร์ฟเวอร์การจัดการและ 8080 คือพอร์ตที่ Edge API ใช้ หากสร้างรายการ DNS สำหรับ Edge API ไว้ URL นั้นจะอยู่ในรูปแบบต่อไปนี้

    http://ms_DNS/v1

    ถ้าเปิดใช้ TLS ใน Edge Management API ข้อมูลจะอยู่ในรูปแบบต่อไปนี้

    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: อีเมลของบัญชีที่มีสิทธิ์เข้าถึง API ของ Edge /stats ซึ่งมักจะเป็นอีเมลของผู้ดูแลระบบ Edge หรืออีเมลของผู้ดูแลระบบองค์กรขององค์กรที่ใช้งานจริง
  • apigee_mgmt_api_password: รหัสผ่าน Edge ของบัญชีที่ระบุโดย apigee_mgmt_api_email
  • apigee_analytics_client_id และ apigee_analytics_secret: ข้อมูลเข้าสู่ระบบสำหรับการอัปโหลดข้อมูลไปยัง Apigee โปรดส่งตั๋วกับฝ่ายสนับสนุนของ Apigee Edge เพื่อรับ apigee_analytics_client_id และ apigee_analytics_secret

คำสั่งตัวอย่าง

ด้านล่างนี้เป็นคำสั่งตัวอย่างสำหรับเรียกข้อมูลการรับส่งข้อมูลสำหรับองค์กรและสภาพแวดล้อมทั้งหมดในการติดตั้ง Edge แล้วอัปโหลดข้อมูลดังกล่าวไปยัง Apigee โปรดสังเกตวิธีที่คุณใช้ apigee-service เพื่อเรียกใช้คำสั่ง apigee-analytics-collector

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

โปรดทราบว่าคำสั่งมีข้อมูลที่จำเป็นทั้งหมด เช่น apigee_analytics_client_id และ apigee_analytics_secret

คุณจะเห็นผลลัพธ์ในแบบฟอร์ม

[
  {
    "org": "myOrg",
    "env": "prod",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  },
  {
    "org": "VALIDATE",
    "env": "test",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  }
]

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

  • -i, --include_orgs comma-separated list of items
  • -x, --exclude_orgs comma-separated list of items
  • -n, --include_envs comma-separated list of items
  • -e, --exclude_envs comma-separated list of items

ตัวอย่างเช่น หากต้องการระบุเฉพาะองค์กรและสภาพแวดล้อมที่ใช้งานจริง ให้ใช้ตัวเลือก -i (หรือ --include_orgs) และ -n (หรือ --include_envs)) ดังนี้

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

ในตัวอย่างนี้ คุณรวบรวมข้อมูลจากสภาพแวดล้อม Pro ของ myOrg เท่านั้น

หากต้องการถ่ายโอนข้อมูลไปยังหน้าจอเพื่อตรวจสอบก่อนส่งไปยัง Apigee ให้ใช้ตัวเลือก -S ดังนี้

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S \
  --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
  --apigee_mgmt_api_email $ae_username \
  --apigee_mgmt_api_password $ae_password \
  --apigee_analytics_client_id $apigee_analytics_client_id \
  --apigee_analytics_secret $apigee_analytics_secret

ตัวเลือก -S จะยกเว้นข้อมูลที่อัปโหลดไปยัง Apigee จากนั้นคุณจะเรียกใช้คำสั่งอีกครั้งได้โดยไม่ต้องใช้ตัวเลือก -S เพื่อส่งข้อมูลไปยัง Apigee

เหตุผลหนึ่งที่ควรใช้ตัวเลือก -S คือเพื่อให้คุณแสดงข้อมูลประเภทต่างๆ ในเครื่องได้ Apigee ต้องการเพียงให้คุณอัปโหลดข้อมูลการจราจรของข้อมูล API เท่านั้น แต่ตัวเลือก -D จะช่วยให้คุณแสดงข้อมูลเกี่ยวกับผลิตภัณฑ์ API, นักพัฒนาซอฟต์แวร์, แอป หรือพร็อกซี API ได้ ตัวอย่างด้านล่างใช้ตัวเลือก -D และ -S เพื่อแสดงข้อมูลนักพัฒนาซอฟต์แวร์ในเครื่อง

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -D devs \
  --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
  --apigee_mgmt_api_email $ae_username \
  --apigee_mgmt_api_password $ae_password \
  --apigee_analytics_client_id $apigee_analytics_client_id \
  --apigee_analytics_secret $apigee_analytics_secret

ใส่ตัวเลือก -v เพื่อรับเอาต์พุตแบบละเอียดและตัวเลือก -R เพื่อดูคำสั่ง curl ที่สร้างโดย apigee-analytics-collector ดังนี้

/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -R -v \
  --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
  --apigee_mgmt_api_email $ae_username \
  --apigee_mgmt_api_password $ae_password \
  --apigee_analytics_client_id $apigee_analytics_client_id \
  --apigee_analytics_secret $apigee_analytics_secret

ส่วนถัดไปจะมีรายการตัวเลือกบรรทัดคำสั่งทั้งหมด

พารามิเตอร์คำสั่ง

ตารางต่อไปนี้แสดงรายการตัวเลือกทั้งหมดสำหรับยูทิลิตี apigee-analytics-collector

คำสั่ง คำอธิบาย
-h, --help

ข้อมูลการใช้งานเอาต์พุต

-D, --dimension dimension

มิติข้อมูลการเข้าชมที่จะรวบรวม ค่าที่ใช้ได้มีดังนี้

  • apiproducts
  • apiproxy (ค่าเริ่มต้น)
  • apps
  • devs
-d, --days days

จำนวนวันที่ผ่านมาของข้อมูลที่จะรวบรวม โดยเริ่มตั้งแต่วันที่ปัจจุบัน ค่าเริ่มต้นคือ 3

หากคุณระบุ -d ไม่ต้องระบุ -s และ -z เพื่อกำหนดช่วงเวลา

-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri

URL ไปยัง Edge Management API

-u, --apigee_mgmt_api_email apigee_mgmt_api_email

อีเมลของบัญชีที่มีสิทธิ์เข้าถึง API ของ Edge /stats โดยปกติจะเป็นอีเมลของผู้ดูแลระบบ Edge หรืออีเมลของผู้ดูแลระบบองค์กรขององค์กรที่ใช้งานจริง

-p, --apigee_mgmt_api_password apigee_mgmt_api_password

รหัสผ่านที่เชื่อมโยงกับบัญชีอีเมล Edge Management API ที่ระบุโดย -u

-i, --include_orgs items

รายการองค์กรที่คั่นด้วยคอมมาเพื่อรวมไว้ในเอาต์พุต

-x, --exclude_orgs items

รายการองค์กรที่คั่นด้วยคอมมาที่จะยกเว้นจากเอาต์พุต

-n, --include_envs items

รายการสภาพแวดล้อมที่คั่นด้วยคอมมาที่จะรวมไว้ในเอาต์พุต

-e, --exclude_envs items

รายการสภาพแวดล้อมที่คั่นด้วยคอมมาที่จะรวมจากเอาต์พุต

-o, --output path

เส้นทางและชื่อไฟล์ที่จะบันทึกเอาต์พุต

-s, --time_range_start time_range_start

ช่วงเวลาที่จะเริ่มต้นการค้นหาสถิติการเข้าชมในรูปแบบ: "MM/DD/YYYY HH:MM"

หากคุณระบุ -d ไม่ต้องระบุ -s และ -z เพื่อกำหนดช่วงเวลา

-z, --time_range_end time_range_end

เวลาสิ้นสุดสําหรับการค้นหาสถิติการเข้าชม ซึ่งอยู่ในรูปแบบ "04/01/2016 24:00"

หากคุณระบุ -d ไม่ต้องระบุ -s และ -z เพื่อกำหนดช่วงเวลา

-t, --time_unit time_unit

หน่วยเวลาสำหรับข้อมูลการจราจร ค่าเริ่มต้นคือ hour หน่วยเวลาที่ถูกต้องคือ

  • second
  • minute
  • hour (ค่าเริ่มต้น)
  • day
  • week

หากคุณตั้งค่า -t เป็น week และ -d เป็น 365 Apigee จะส่งคืนข้อมูลจำนวนมากโดยจัดกลุ่มเป็น 52 รายการแยกกัน (แต่ละรายการต่อสัปดาห์)

-S, --standard_output

เขียนเอาต์พุตไปยังเทอร์มินัล (stdout) แทนการอัปโหลดไปยัง Apigee

-c, --apigee_analytics_client_id apigee_analytics_client_id

รหัสสำหรับการอัปโหลดข้อมูลไปยัง Apigee โปรดส่งตั๋วกับฝ่ายสนับสนุนของ Apigee Edge เพื่อรับ

-r, --apigee_analytics_secret apigee_analytics_secret

ข้อมูลลับสำหรับการอัปโหลดข้อมูลไปยัง Apigee โปรดส่งตั๋วกับฝ่ายสนับสนุนของ Apigee Edge เพื่อรับ

-R, --include_curl_commands

รวมคำสั่ง curl ที่สร้างขึ้นในเอาต์พุตเพื่อแก้ไขข้อบกพร่อง

-v, --verbose

แสดงเอาต์พุตที่มีข้อมูลขนาดใหญ่

การอัปโหลดข้อมูลไปยัง Apigee ด้วยตนเอง

Apigee ขอแนะนำให้คุณติดตั้งยูทิลิตี apigee-analytics-collector บนเครื่องที่มีการเข้าถึงอินเทอร์เน็ตภายนอก จากนั้นยูทิลิตี apigee-analytics-collector จะอัปโหลดข้อมูลไปยัง Apigee ได้โดยตรง

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

ใช้คำสั่ง curl ต่อไปนี้เพื่อรวบรวมข้อมูลการรับส่งข้อมูลสำหรับองค์กรและสภาพแวดล้อมที่เฉพาะเจาะจงสำหรับช่วงเวลาที่ระบุ

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://ms_IP:8080/v1/organizations/org_name/environments/env_name/stats/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"

คำสั่งนี้ใช้ Edge Get API จำนวนข้อความ API คำสั่งนี้

  • apigee_mgmt_api_email:apigee_mgmt_api_password จะระบุอีเมลของบัญชีที่มีสิทธิ์เข้าถึง Edge /stats API
  • ms_IP คือที่อยู่ IP หรือชื่อ DNS ของเซิร์ฟเวอร์ Edge Management
  • org_name และ env_name ระบุองค์กรและสภาพแวดล้อม
  • apiproxy เป็นมิติข้อมูลที่จัดกลุ่มเมตริกตามพร็อกซี API
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour ระบุช่วงเวลาที่แบ่งออกเป็นหน่วยเวลาของเมตริกที่จะรวบรวม โปรดสังเกตว่าคำสั่ง curl ใช้รหัสฐานสิบหก %20 สำหรับช่องว่างในช่วงเวลา

ตัวอย่างเช่น หากต้องการรวบรวมจำนวนข้อความพร็อกซี API แบบชั่วโมงต่อชั่วโมงในช่วงเวลา 24 ชั่วโมง ให้ใช้ การเรียก API ต่อไปนี้

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/apiproxy?select=sum(message_count)&timeRange=01%2F01%2F2018%2000%3A00~01%2F02%2F2018%2000%3A00&timeUnit=hour"

(โปรดทราบว่า timeRange มีอักขระที่เข้ารหัส URL)

คุณควรเห็นการตอบกลับในแบบฟอร์ม:

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values": [
                {
                  "timestamp": 1514847600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514844000000,
                  "value": "19.0"
                },
                {
                  "timestamp": 1514840400000,
                  "value": "58.0"
                },
                {
                  "timestamp": 1514836800000,
                  "value": "28.0"
                },
                {
                  "timestamp": 1514833200000,
                  "value": "29.0"
                },
                {
                  "timestamp": 1514829600000,
                  "value": "33.0"
                },
                {
                  "timestamp": 1514826000000,
                  "value": "26.0"
                },
                {
                  "timestamp": 1514822400000,
                  "value": "57.0"
                },
                {
                  "timestamp": 1514818800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514815200000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514811600000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514808000000,
                  "value": "66.0"
                },
                {
                  "timestamp": 1514804400000,
                  "value": "50.0"
                },
                {
                  "timestamp": 1514800800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514797200000,
                  "value": "49.0"
                },
                {
                  "timestamp": 1514793600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514790000000,
                  "value": "89.0"
                },
                {
                  "timestamp": 1514786400000,
                  "value": "42.0"
                },
                {
                  "timestamp": 1514782800000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514779200000,
                  "value": "21.0"
                },
                {
                  "timestamp": 1514775600000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514772000000,
                  "value": "20.0"
                },
                {
                  "timestamp": 1514768400000,
                  "value": "12.0"
                },
                {
                  "timestamp": 1514764800000,
                  "value": "7.0"
                }
              ]
            }
          ],
          "name" : "proxy1"
      } ],
    "name" : "prod"
  } ],
  "metaData" : {
    "errors" : [ ],
    "notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ]
  }
}

จากนั้น หากต้องการอัปโหลดข้อมูลดังกล่าวไปยัง Apigee จากเครื่องที่เข้าถึงอินเทอร์เน็ตได้ ให้ใช้คำสั่ง curl ต่อไปนี้

curl -X POST -H 'Content-Type:application/json' \
  -u apigee_analytics_client_id:apigee_analytics_secret \
  https://nucleus-api-prod.apigee.com/v1/apigee-analytics-cli-api/traffic/orgs/org_name/apis -d '"environments"...'

โดยที่

  • apigee_analytics_client_id:apigee_analytics_secret ระบุข้อมูลเข้าสู่ระบบสำหรับการอัปโหลดข้อมูลไปยัง Apigee ซึ่งได้รับจาก Apigee
  • org_name ระบุชื่อองค์กร
  • "environments"... ประกอบด้วยผลลัพธ์ของคำสั่ง curl ที่คุณใช้เพื่อรวบรวมสถิติข้างต้น