Data tidak muncul di dasbor analisis

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

Gejala

Dasbor analisis (Performa Proxy, Performa Target, dll.) tidak menampilkan data apa pun di UI Edge. Semua dasbor menampilkan pesan berikut:

No traffic in the selected date range

Pesan error

Masalah ini tidak menyebabkan error yang dapat diamati.

Kemungkinan penyebab

Tabel berikut mencantumkan kemungkinan penyebab masalah ini:

Penyebab Untuk
Tidak Ada Traffic API untuk Organisasi-Lingkungan Pengguna Edge untuk Private Cloud
Data tersedia di Database Postgres, tetapi tidak ditampilkan di UI Pengguna Edge untuk Private Cloud
Data Analytics tidak dikirim ke Database Postgres Pengguna Edge untuk Private Cloud
Deployment Analytics yang Salah Pengguna Edge untuk Private Cloud
UUID Server Analytics yang Tidak Aktif Pengguna Edge untuk Private Cloud

Tidak Ada Traffic API untuk Organisasi-Lingkungan

Diagnosis

  1. Periksa apakah ada traffic untuk Proxy API di organisasi-lingkungan tertentu selama durasi tertentu saat Anda mencoba melihat data analisis menggunakan salah satu metode berikut:
    1. Aktifkan rekaman aktivitas untuk API yang saat ini digunakan oleh pengguna Anda dan periksa apakah Anda dapat memperoleh permintaan apa pun dalam rekaman aktivitas.
    2. Lihat log akses NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log) dan lihat apakah ada entri baru untuk API Proxy selama durasi tertentu.
    3. Jika Anda mencatat informasi dari Proxy API ke server log seperti Syslog, Splunk, Loggly, dll., Anda dapat memeriksa apakah ada entri di server log ini untuk Proxy API selama durasi tertentu.
  2. Jika tidak ada traffic (tidak ada permintaan API) untuk durasi tertentu, data analisis tidak tersedia. Anda akan melihat "Tidak ada traffic dalam rentang tanggal yang dipilih" di dasbor Analytics.

Resolusi

  1. Lakukan beberapa panggilan ke satu atau beberapa proxy API di lingkungan organisasi tertentu.
  2. Tunggu beberapa detik, lalu lihat dasbor analisis di tab Hour dan periksa apakah data muncul.
  3. Jika masalah berlanjut, lanjutkan ke Data tersedia di Database Postgres, tetapi tidak ditampilkan di UI.

Data tersedia di Database Postgres, tetapi tidak ditampilkan di UI

Gejala

Pertama, tentukan ketersediaan data Analytics terbaru di database Postgres.

Untuk memeriksa apakah data Analytics terbaru tersedia di node Postgres Master:

  1. Login ke setiap server Postgres dan jalankan perintah berikut untuk memvalidasi apakah Anda berada di node Postgres Master:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
  2. Di node Master Postgres, login ke PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
  3. Periksa apakah tabel ada untuk org-env Anda menggunakan kueri SQL berikut di database Postgres:
    \d analytics."orgname.envname.fact"
  4. Periksa apakah data terbaru tersedia di database Postgres menggunakan kueri SQL berikut:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  5. Jika stempel waktu terbaru sudah sangat lama (atau null), hal ini menunjukkan bahwa data tidak tersedia di database Postgres. Kemungkinan penyebab masalah ini adalah data tidak dikirim dari Server Qpid ke database Postgres. Lanjutkan ke Data Analytics tidak dikirim ke Database Postgres.
  6. Jika data terbaru tersedia di database Postgres pada node Master, ikuti langkah-langkah di bawah untuk mendiagnosis alasan data tidak ditampilkan di UI Edge.

Diagnosis

  1. Aktifkan Developer Tools di browser Chrome Anda dan dapatkan API yang digunakan dari salah satu dasbor analisis menggunakan langkah-langkah di bawah:
    1. Pilih tab Jaringan dari Developer Tools.
    2. Mulai Merekam.
    3. Muat ulang dasbor Analytics.
    4. Di panel sebelah kiri di Developer Tools, pilih baris yang memiliki "apiproxy?_optimized...".
    5. Di panel sebelah kanan di Developer Tools, pilih tab "Header" dan catat "URL Permintaan".
  2. Berikut contoh output dari Alat Developer:

    Contoh output yang menampilkan API yang digunakan di dasbor Performa Proxy dari Tab Jaringan Alat Developer untuk dasbor Performa Proxy

  3. Jalankan panggilan API pengelolaan secara langsung dan periksa apakah Anda mendapatkan hasilnya. Berikut adalah contoh panggilan API untuk tab Hari di dasbor Performa Proxy:
    curl -u username:password
      "http://management_server_IP_address:8080/v1/organizations/
      org_name/environments/env_name/stats/apiproxy?limit=14400&
      select=sum(message_count),sum(is_error),avg(total_response_time),
      avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error),
      avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+
      18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
  4. Jika Anda melihat respons berhasil, tetapi tanpa data apa pun, hal ini menunjukkan bahwa Server Pengelolaan tidak dapat mengambil data dari server Postgres karena masalah konektivitas jaringan.
  5. Periksa apakah Anda dapat terhubung ke server Postgres dari Server Pengelolaan:
    telnet Postgres_server_IP_address 5432
  6. Jika Anda tidak dapat terhubung ke server Postgres, periksa apakah ada batasan firewall di port 5432.
  7. Jika ada batasan firewall, hal tersebut dapat menjadi penyebab Server Pengelolaan tidak dapat menarik data dari server Postgres.

Resolusi

  1. Jika ada batasan firewall, hapus batasan tersebut agar Server Pengelolaan dapat berkomunikasi dengan server Postgres.
  2. Jika tidak ada batasan firewall, masalah ini mungkin disebabkan oleh gangguan jaringan.
  3. Jika terjadi gangguan jaringan di Server Pengelolaan, memulai ulang server dapat memperbaiki masalah tersebut.
  4. Mulai ulang semua Server Pengelolaan satu per satu menggunakan perintah di bawah:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. Periksa apakah Anda dapat melihat data analisis di UI Edge.

Jika Anda masih tidak melihat data, hubungi Dukungan Apigee Edge.

Data Analytics tidak dikirim ke Database Postgres

Diagnosis

Jika data tidak dikirim dari Qpid Server ke Database Postgres seperti yang ditentukan dalam Data tersedia di Database Postgres, tetapi tidak muncul di UI, lakukan langkah-langkah berikut:

  1. Periksa apakah setiap Server Qpid sudah aktif dan berjalan dengan menjalankan perintah di bawah:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. Jika ada Server Qpid yang tidak aktif, mulai ulang server tersebut. Jika tidak, lanjutkan ke langkah #5.
    /opt/apigee/apigee-service/bin edge-qpid-server restart
  3. Tunggu beberapa saat, lalu periksa kembali apakah data terbaru tersedia di database Postgres.
    1. Login ke PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Jalankan kueri SQL di bawah untuk memeriksa apakah data terbaru tersedia:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  4. Jika data terbaru tersedia, lewati langkah-langkah berikut dan lanjutkan ke langkah terakhir di bagian Penyelesaian. Jika data terbaru tidak tersedia, lanjutkan dengan langkah-langkah berikut.
  5. Periksa apakah pesan dari antrean server Qpid didorong ke database Postgres.
    1. Jalankan qpid-stat -q command dan periksa nilai kolom msgIn dan msgOut.
    2. Berikut adalah contoh output yang menunjukkan bahwa msgIn dan msgOut tidak sama. Hal ini menunjukkan bahwa pesan tidak dikirim dari Qpid Server ke Postgres Database.

  6. Jika ada ketidakcocokan di kolom msgIn dan msgOut, periksa log Server Qpid /opt/apigee/var/log/edge-qpid-server/system.log dan lihat apakah ada error.
  7. Anda mungkin melihat pesan error seperti "Probably PG is still down" atau "FATAL: sorry, too many clients already" seperti yang ditunjukkan pada gambar di bawah:
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when
      execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d
      Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee
      Initial referenced UUID when execution started in this thread was
      a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used -
      [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create
      PoolableConnectionFactory (FATAL: sorry, too many clients already)

Hal ini dapat terjadi jika Server Postgres menjalankan terlalu banyak kueri SQL atau CPU berjalan tinggi sehingga tidak dapat merespons Server Qpid.

Resolusi

  1. Mulai ulang Server Postgres dan PostgreSQL seperti yang ditunjukkan di bawah:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. Mulai ulang ini memastikan bahwa semua kueri SQL sebelumnya dihentikan dan akan memungkinkan koneksi baru ke database Postgres.
  3. Muat ulang dasbor Analytics dan periksa apakah data Analytics ditampilkan.

Jika masalah berlanjut, hubungi Dukungan Apigee Edge.

Penerapan Analytics yang Salah

Diagnosis

  1. Dapatkan status deployment Analytics menggunakan panggilan API berikut:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
  2. Periksa status server Qpid dan Postgres dari hasil panggilan API.
    1. Jika status server Qpid dan Postgres ditampilkan sebagai "SUCCESS", berarti server analisis telah terhubung dengan benar. Lanjutkan ke Stale Analytics Server UUIDs.
    2. Jika status server Qpid/Postgres ditampilkan sebagai "UNKNOWN" atau "FAILURE", berarti ada masalah dengan server terkait.

      Misalnya, skenario berikut menunjukkan status server Postgres sebagai "UNKNOWN":

      Hal ini dapat terjadi jika ada kegagalan selama aktivasi Analytics. Kegagalan ini mencegah pesan dari Server Pengelolaan mencapai server Postgres.

Resolusi

Masalah ini biasanya dapat diatasi dengan memulai ulang server yang menampilkan "FAILURE" atau "UNKNOWN".

  1. Mulai ulang setiap server yang status konfigurasi Analytics-nya menunjukkan "GAGAL" atau "TIDAK DIKETAHUI" menggunakan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service component restart
  2. Contoh:
    1. Jika Anda melihat masalah di Server Qpid, mulai ulang Server Qpid:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    2. Jika Anda melihat masalah di Server Postgres, mulai ulang node Server Postgres Master dan Slave:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. Dalam contoh di atas, pesan "UNKNOWN" ditampilkan untuk server Postgres, jadi Anda perlu memulai ulang server Postgres Master dan Slave:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

UUID Server Analytics yang Tidak Aktif

Diagnosis

  1. Dapatkan konfigurasi analisis menggunakan panggilan API berikut:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax

    Berikut contoh output dari API di atas:

    [ {
      "name" : "axgroup001",
      "properties" : {
        "consumer-type" : "ax"
      },
      "scopes" : [ "myorg~prod", "myorg~test" ],
      "uuids" : {
        "aries-datastore" : [ ],
        "postgres-server" : [ "6777...2db14" ],
        "dw-server" : [ ],
        "qpid-server" : [ "774e...fb23", "29f3...8c11" ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "774e...8c11" ],
        "datastores" : [ "6777...db14" ],
        "properties" : {
        }
      } ],
      "data-processors" : {
      }
    } ]
  2. Pastikan informasi berikut dalam output sudah benar:
    1. Nama org-env yang tercantum dalam elemen "scopes".
    2. UUID server Postgres dan server Qpid.
      • Dapatkan UUID Server Postgres dengan menjalankan perintah berikut di setiap node server Postgres:
        curl 0:8084/v1/servers/self/uuid
      • Dapatkan UUID Server Qpid dengan menjalankan perintah berikut di setiap node server Qpid:
        curl 0:8083/v1/servers/self/uuid
  3. Jika semua informasi sudah benar, lanjutkan ke Data Analytics tidak dikirim ke Database Postgres.
  4. Jika UUID server Postgres dan/atau Qpid salah, maka kemungkinan Server Pengelolaan merujuk ke UUID yang sudah tidak berlaku.

Resolusi

Untuk menghapus UUID yang tidak aktif dan menambahkan UUID server yang benar, hubungi Dukungan Apigee Edge.