Antipattern: Menambahkan informasi kustom ke skema milik Apigee di database Postgres

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Edge API Analytics adalah fitur bawaan yang sangat canggih yang disediakan oleh Apigee Edge. Alat ini mengumpulkan dan menganalisis berbagai spektrum data yang mengalir di seluruh API. Data analisis yang diambil dapat memberikan insight yang sangat berguna. Misalnya, Bagaimana tren volume traffic API selama jangka waktu tertentu? Manakah API yang paling sering digunakan? API mana yang memiliki rasio error tinggi?

Analisis data dan insight ini secara rutin dapat digunakan untuk mengambil tindakan yang sesuai seperti perencanaan kapasitas API di masa mendatang berdasarkan penggunaan saat ini, keputusan investasi bisnis dan masa mendatang, dan banyak lagi.

Data Analytics dan penyimpanannya

Analytics API merekam berbagai jenis data seperti:

  • Informasi tentang API - URI Permintaan, Alamat IP Klien, Kode Status Respons, dan sebagainya
  • Performa Proxy API - Rasio Keberhasilan/Kegagalan, Waktu Pemrosesan Permintaan dan Respons, dan sebagainya
  • Performa Server Target - Tingkat Keberhasilan/Kegagalan, Waktu Pemrosesan
  • Informasi Error - Jumlah Error, Kode Error, Kebijakan Gagal, Jumlah Apigee dan Server Target yang menyebabkan error.
  • Informasi Lainnya - Jumlah permintaan yang dibuat oleh Developer, Aplikasi Developer, dan sebagainya

Semua data ini disimpan dalam skema analytics yang dibuat dan dikelola dalam database Postgres oleh Apigee Edge.

Biasanya, dalam penginstalan Edge vanilla, Postgres akan memiliki skema berikut:

Skema bernama analytics digunakan oleh Edge untuk menyimpan semua data analisis untuk setiap organisasi dan lingkungan. Jika monetisasi diinstal, akan ada skema rkms. Skema lainnya ditujukan untuk internal Postgres.

Skema analytics akan terus berubah karena Apigee Edge akan menambahkan tabel fakta baru secara dinamis ke skema tersebut saat runtime. Komponen server Postgres akan menggabungkan data fakta ke dalam tabel agregat yang dimuat dan ditampilkan di UI Edge.

Antipola

Menambahkan kolom, tabel, dan/atau tampilan kustom ke salah satu skema milik Apigee di Database Postgres di lingkungan Private Cloud secara langsung menggunakan kueri SQL tidak dianjurkan, karena dapat memiliki implikasi yang merugikan.

Mari kita ambil contoh untuk menjelaskan hal ini secara mendetail.

Pertimbangkan tabel kustom bernama account yang telah dibuat dalam skema analisis seperti yang ditunjukkan di bawah:

Setelah beberapa saat, misalnya ada kebutuhan untuk mengupgrade Apigee Edge dari versi yang lebih rendah ke versi yang lebih tinggi. Mengupgrade Apigee Edge Private Cloud melibatkan upgrade Postgres di antara banyak komponen lainnya. Jika ada kolom, tabel, atau tampilan kustom yang ditambahkan ke Database Postgres, upgrade Postgres akan gagal dengan error yang mereferensikan objek kustom karena tidak dibuat oleh Apigee Edge. Dengan demikian, upgrade Apigee Edge juga gagal dan tidak dapat diselesaikan.

Demikian pula, error dapat terjadi selama aktivitas pemeliharaan Apigee Edge saat pencadangan dan pemulihan komponen Edge termasuk database Postgres dilakukan.

Dampak

  • Upgrade Apigee Edge tidak dapat diselesaikan karena upgrade komponen Postgres gagal dengan error yang mereferensikan ke objek kustom yang tidak dibuat oleh Apigee Edge.
  • Inkonsistensi (dan kegagalan) saat melakukan pemeliharaan layanan Apigee Analytics (pencadangan/pemulihan).

Praktik Terbaik

  • Jangan tambahkan informasi kustom apa pun dalam bentuk kolom, tabel, tampilan, fungsi, dan prosedur langsung ke skema milik Apigee seperti analytics, dan sebagainya
  • Jika perlu mendukung informasi kustom, informasi tersebut dapat ditambahkan sebagai kolom (kolom) menggunakan kebijakan Pengumpul Statistik ke skema analytics.

Bacaan lebih lanjut