Dimensi Kustom tidak muncul saat beberapa grup sumbu telah dikonfigurasi

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

Gejala

Variabel kustom yang dibuat menggunakan kebijakan Pengumpul Statistik tidak terlihat di bagian Dimensi Kustom di Laporan Kustom Analytics di UI Edge.

Pesan Error

Log sistem edge-postgres-server akan menampilkan error berikut setelah memulai ulang untuk setiap kombinasi organisasi/lingkungan yang tidak memiliki jalur:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

Kemungkinan Penyebab

Penyebab Deskripsi Petunjuk Pemecahan Masalah yang Berlaku Untuk
Jalur properti ZooKeeper tidak ada untuk kombinasi organisasi dan lingkungan. Jika jalur ZooKeeper /organizations//environments//properties tidak ada, dimensi kustom tidak dapat dibuat. Pengguna Edge Private Cloud

Penyebab: Jalur properti ZooKeeper tidak ada untuk kombinasi organisasi dan lingkungan

Diagnosis

Analytics diaktifkan untuk kombinasi organisasi-lingkungan melalui Enable analytics API, yang mengisi /organizations//environments//properties di pohon ZooKeeper. Jika API ini gagal, komponen edge-postgres-server tidak dapat membuat dimensi kustom, dan error berikut akan muncul di system.log-nya:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

Biasanya, hal ini terjadi saat organisasi diaktifkan pada saat ada lebih dari satu grup analytics yang menggunakan UUID postgres-server yang sama. Untuk memeriksa jumlah grup analytics yang ada, jalankan panggilan API berikut:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

Jika API ini menampilkan beberapa grup, kemungkinan besar hal ini adalah penyebab masalah. Pada contoh berikut, perhatikan bahwa ada dua grup, yang dibedakan hanya dengan tanda hubung: axgroup-001 dan axgroup001

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

Secara khusus, masalah ini disebabkan jika UUID postgres-server yang dikonfigurasi untuk setiap axgroup sama. Cara cepat untuk menentukannya adalah dengan menjalankan perintah berikut:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

Output contoh berikut dengan cepat membandingkan UUID postgres-server untuk menentukan apakah keduanya sama:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

Resolusi

Kumpulan server PostgreSQL yang sama tidak dapat ditetapkan ke dua axgroup. Cara tercepat untuk menyelesaikan masalah ini adalah dengan menghapus informasi server postgres dari satu axgroup dan menetapkan semua cakupan (kombinasi organisasi, lingkungan) ke grup lainnya. Untuk melakukannya, ikuti langkah-langkah berikut:

  1. Hapus komponen server postgres dari salah satu dari dua axgroup menggunakan petunjuk di Menambahkan dan menghapus komponen analytics di grup analytics. Jika Anda hanya melihat masalah dengan cakupan non-produksi, pilih axgroup yang TIDAK memiliki cakupan produksi untuk latihan ini. Jika tidak, pilih axgroup dengan jumlah cakupan paling sedikit.
  2. Hapus semua cakupan dari axgroup yang tidak lagi memiliki server postgres, dan cakupan yang menyebabkan masalah dimensi kustom dari axgroup-nya. Dengan asumsi axgroup-001 dari contoh di atas adalah grup yang ingin Anda gunakan, Anda harus menggunakan perintah berikut untuk menghapus cakupan untuk organisasi myorg , dan lingkungan prod:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Aktifkan analytics menggunakan Enable analytics API.
  4. Mulai ulang komponen edge-postgres-server di node master postgres, dan semua komponen edge-qpid-server yang mungkin telah Anda instal, menggunakan perintah berikut:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Pastikan error yang diberikan di bagian Pesan Error di atas tidak lagi terjadi di file log server Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Konfirmasi apakah dimensi kustom muncul di UI Edge.

Jika masalah berlanjut, buka Mengumpulkan Informasi Diagnostik.

Mengumpulkan Informasi Diagnostik

Jika masalah berlanjut meskipun setelah mengikuti petunjuk sebelumnya, harap kumpulkan informasi diagnostik berikut. Hubungi dan bagikan informasi tersebut ke Dukungan Apigee Edge:

  1. edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log dari waktu mulai ulang terakhir.
  2. Output dari panggilan Management API berikut:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. Output pohon ZooKeeper yang diperoleh menggunakan perintah berikut:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt