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

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

Edge API Analytics adalah fitur bawaan yang sangat canggih yang disediakan oleh Apigee Edge. Fitur ini mengumpulkan dan menganalisis spektrum data luas 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? API mana yang paling sering digunakan? API mana yang memiliki rasio error tinggi?

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

Data Analisis dan penyimpanannya

API Analytics mengambil 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 - Rasio Keberhasilan/Kegagalan, Waktu Pemrosesan
  • Informasi Error - Jumlah Error, Kode Kesalahan, Kebijakan yang Gagal, Jumlah error yang disebabkan oleh Apigee dan Server Target
  • Informasi Lainnya - Jumlah permintaan yang dibuat oleh Developer, Aplikasi Developer, dan sebagainya

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

Biasanya, dalam instalasi 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 saat runtime. Komponen server Postgres akan menggabungkan data fakta ke dalam tabel gabungan 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 disarankan, karena dapat menimbulkan implikasi yang merugikan.

Mari kita ambil contoh untuk menjelaskannya secara mendetail.

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

Setelah beberapa saat, katakanlah ada kebutuhan untuk mengupgrade Apigee Edge dari versi yang lebih rendah ke versi yang lebih tinggi version. 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 merujuk ke objek kustom karena tidak dibuat oleh Apigee Edge. Dengan demikian, upgrade Apigee Edge juga gagal dan tidak dapat diselesaikan.

Error serupa 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 merujuk ke objek kustom yang tidak dibuat oleh Apigee Edge.
  • Ketidakkonsistenan (dan kegagalan) saat melakukan pemeliharaan layanan Apigee Analytics (pencadangan/pemulihan).

Praktik Terbaik

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

Bacaan lebih lanjut