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

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

Analisis Edge API adalah fitur bawaan yang sangat canggih yang disediakan oleh Apigee Edge. Crawler 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? Manakah API yang paling sering digunakan? API mana yang memiliki tingkat error tinggi?

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

Data Analytics dan penyimpanannya

Analytics API menangkap berbagai jenis data seperti:

  • Informasi tentang API - URI Permintaan, alamat IP Klien, Kode Status Respons, dan sebagainya
  • Performa Proxy API - Tingkat Keberhasilan/Kegagalan, Waktu Pemrosesan Permintaan dan Respons, dan sebagainya
  • Performa Server Target - Tingkat Keberhasilan/Kegagalan, Waktu Pemrosesan
  • Informasi Error - Jumlah Error, Kode Kesalahan, Kebijakan Gagal, Jumlah Apigee, dan Server Target 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 instalasi Edge vanilla, Postgres akan memiliki schemata 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 dimaksudkan untuk internal Postgres.

Skema analytics akan terus berubah karena Apigee Edge akan menambahkan tabel fakta baru secara dinamis ke dalamnya 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 yang dimiliki Apigee di Database Postgres pada lingkungan Private Cloud secara langsung menggunakan kueri SQL tidak disarankan, karena dapat berdampak negatif.

Mari kita ambil contoh untuk menjelaskan ini secara rinci.

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

Setelah beberapa saat, anggaplah Apigee Edge perlu diupgrade dari versi yang lebih rendah ke versi yang lebih tinggi. Mengupgrade Private Cloud Apigee Edge 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 tersebut karena tidak dibuat oleh Apigee Edge. Oleh karena itu, upgrade Apigee Edge juga gagal dan tidak dapat diselesaikan.

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

Praktik Terbaik

  • Jangan tambahkan informasi kustom dalam bentuk kolom, tabel, tampilan, fungsi, dan prosedur secara langsung ke skema yang dimiliki Apigee seperti analytics, dan seterusnya
  • Jika perlu mendukung informasi kustom, informasi tersebut dapat ditambahkan sebagai kolom (kolom) menggunakan kebijakan Kolektor Statistik ke skema analytics.

Bacaan lebih lanjut