Operasi GraphQL

Setiap kueri dan mutasi GraphQL yang dijalankan melalui Fabric API anda untuk GraphQL menghasilkan log operasi terperinci yang menangkap metrik performa, teks kueri, detail autentikasi, dan hasil eksekusi. Log ini secara otomatis dikumpulkan dan disimpan dalam database pemantauan ruang kerja Anda, memberikan visibilitas tentang bagaimana API GraphQL Anda digunakan dan performanya.

Log operasi GraphQL adalah bagian dari kemampuan pemantauan ruang kerja Fabric. Saat Anda mengaktifkan pemantauan ruang kerja, Fabric membuat database Eventhouse di ruang kerja Anda yang terus mengumpulkan log dari semua API GraphQL Anda. Anda dapat mengkueri log ini menggunakan KQL (Bahasa Kueri Kusto) untuk memecahkan masalah, mengoptimalkan performa, melacak pola penggunaan, dan memastikan API Anda memenuhi persyaratan SLA.

Prasyarat

Untuk mengakses dan mengkueri log operasi GraphQL:

  1. Mengaktifkan pemantauan ruang kerja di ruang kerja Fabric Anda
  2. Mengakses database Eventhouse KQL yang dibuat untuk ruang kerja Anda
  3. Memahami Bahasa Kueri Kusto (KQL) untuk mengkueri log

Setelah pemantauan diaktifkan, operasi GraphQL secara otomatis dicatat ke dua tabel: GraphQLMetrics untuk metrik agregat dan GraphQLLog untuk log operasi terperinci.

Siapa yang menggunakan log operasi GraphQL

Log operasi dan pemantauan sangat penting untuk:

  • Admin ruang kerja Fabric memantau penggunaan, performa, dan konsumsi kapasitas GraphQL API
  • Teknisi data melacak pola akses data dan mengoptimalkan kueri Fabric lakehouse dan gudang
  • Tim DevOps memastikan aplikasi produksi yang menggunakan data Fabric memenuhi persyaratan SLA
  • Administrator kapasitas fabric memahami metrik konsumsi API untuk perencanaan kapasitas dan manajemen biaya

Gunakan log operasi saat Anda perlu memantau, memecahkan masalah, atau menganalisis performa dan penggunaan API Fabric GraphQL Anda.

Log operasi GraphQL

Peristiwa log untuk setiap kueri yang dijalankan oleh Fabric API untuk GraphQL pada sumber data yang terhubung disimpan dalam dua tabel pelengkap:

  • GraphQLMetrics: Berisi data metrik agregat dengan ringkasan butir waktu, ideal untuk pemantauan performa dan analisis tren
  • GraphQLLog: Berisi log operasi terperinci dengan teks kueri lengkap dan detail eksekusi, ideal untuk pemecahan masalah kueri tertentu

Gunakan log ini untuk:

  • Mengidentifikasi perubahan perilaku dan potensi degradasi API
  • Mendeteksi kueri yang tidak biasa atau berat sumber daya
  • Mengidentifikasi pengguna dan aplikasi dengan jumlah kueri tertinggi
  • Menganalisis performa dan tren kueri
  • Memecahkan masalah kueri yang lambat
  • Mendiagnosis masalah dengan kueri GraphQL tertentu

Tabel GraphQLMetrics

Tabel GraphQLMetrics menyimpan metrik agregat untuk operasi GraphQL. Gunakan tabel ini untuk pemantauan performa, perencanaan kapasitas, dan identifikasi tren dari waktu ke waktu.

Tabel ini berisi kolom berikut:

Nama kolom Tipe Deskripsi
Tanda Waktu tanggalwaktu Tanda waktu (UTC) ketika entri log dihasilkan ketika rekaman dibuat oleh sumber data.
ID Item string ID unik dari pengelogan sumber daya data.
ItemKind string Jenis artefak yang mencatat operasi.
ItemName string Nama artefak Fabric yang mencatat operasi ini.
WorkspaceId string Pengidentifikasi unik ruang kerja Fabric yang berisi artefak yang sedang dioperasikan
WorkspaceName string Nama ruang kerja Fabric yang berisi artefak.
CapacityId string Pengidentifikasi unik dari kapasitas yang menghosting artefak yang sedang dioperasikan.
CustomerTenantId string ID Penyewa Pelanggan, tempat operasi dilakukan.
PlatformMonitoringTableName string Nama tabel ke rekaman milik (atau jenis peristiwa bersertifikat rekaman). Formatnya adalah <WorkloadName> + [OperationType>]+ <TelemetryType>
Wilayah string Wilayah sumber daya yang memancarkan peristiwa; misalnya, US Timur atau Prancis Selatan.
MetricTimeGrain string Butir waktu metrik (Durasi ISO 8601).
MetricUnitName string Unit metrik.
MetrikNilaiNilai long Nilai jumlah agregat metrik selama satu menit.
DatasourceTypes dinamis Array jenis DataSource yang digunakan oleh model.
ResultCode string Kode Kesalahan aktivitas yang gagal, digunakan untuk memperluas penggunaan keandalan.
Status string Status operasi. Kueri berhasil dijalankan/berhasil dengan kesalahan/gagal.

Tabel GraphQLLog

Tabel GraphQLLog menyimpan log operasi terperinci untuk setiap eksekusi kueri GraphQL. Gunakan tabel ini untuk memecahkan masalah kueri tertentu, menganalisis teks kueri, dan menyelidiki kesalahan atau masalah performa.

Untuk informasi selengkapnya tentang peristiwa dan penelusuran paling detail peristiwa ExecutionMetrics , lihat Peristiwa dan skema.

Tabel ini berisi kolom berikut:

Nama kolom Tipe Deskripsi
Tanda Waktu tanggalwaktu Tanda waktu (UTC) ketika entri log dihasilkan ketika rekaman dibuat oleh sumber data.
OperationName string Nama operasi.
ID Item string ID unik dari pengelogan sumber daya data.
ItemKind string Jenis artefak yang mencatat operasi.
ItemName string Nama artefak Fabric yang mencatat operasi ini.
WorkspaceId string Pengidentifikasi unik ruang kerja Fabric yang berisi artefak yang sedang dioperasikan.
WorkspaceName string Nama ruang kerja Fabric yang berisi artefak.
CapacityId string Pengidentifikasi unik dari kapasitas yang menghosting artefak yang sedang dioperasikan.
CorrelationId string ID Aktivitas Root.
OperationId string Pengidentifikasi unik untuk operasi yang dicatat.
Identitas dinamis Detail pengguna dan klaim. Pengguna yang terkait dengan operasi yang sedang dilaporkan.
CustomerTenantId string ID Penyewa Pelanggan, tempat operasi dilakukan.
DurationMs long Waktu CPU yang berlalu yang telah berlalu sementara semua operasi yang diperlukan telah diproses. Unit dalam milidetik.
Status string Status operasi. Kueri berhasil dijalankan/berhasil dengan kesalahan/gagal.
Tingkat string Metadata diperlukan oleh tim pemantauan platform.
Wilayah string Wilayah sumber daya yang memancarkan peristiwa; misalnya, US Timur atau Prancis Selatan.
PlatformMonitoringTableName string Nama tabel ke rekaman milik (atau jenis peristiwa bersertifikat rekaman). Formatnya adalah <WorkloadName> + [OperationType>]+ <TelemetryType>
QueryText string Teks kueri.
GraphQLOverheadDurationMs long Overhead GraphQL dalam ms untuk permintaan dataplane.
ProcessedBytes long Volume data yang diproses dalam byte.
TransportProtocol string Protokol transportasi untuk permintaan.
QueryResultMessage string Dimensi ini digunakan untuk memberikan konteks tambahan pada hasil operasi kueri.

Contoh kueri

Gunakan kueri KQL ini untuk menganalisis log operasi GraphQL Anda. Anda dapat menjalankan kueri ini langsung di editor kueri Eventhouse di dalam ruang kerja Anda.

Menemukan kueri lambat

Identifikasi kueri GraphQL yang membutuhkan waktu lebih dari 5 detik untuk dijalankan:

GraphQLLog
| where DurationMs > 5000
| project Timestamp, ItemName, DurationMs, QueryText, Status, Identity
| order by DurationMs desc
| take 20

Pengguna teratas menurut jumlah kueri

Temukan pengguna atau aplikasi mana yang paling banyak membuat permintaan GraphQL:

GraphQLLog
| summarize QueryCount = count() by Identity
| order by QueryCount desc
| take 10

Analisis tingkat kesalahan

Hitung tingkat kesalahan untuk operasi GraphQL dari waktu ke waktu:

GraphQLLog
| summarize 
    TotalQueries = count(),
    FailedQueries = countif(Status == "failed"),
    ErrorRate = (countif(Status == "failed") * 100.0) / count()
    by bin(Timestamp, 1h)
| order by Timestamp desc

Sebagian besar kueri intensif sumber daya

Identifikasi kueri yang memproses jumlah data terbesar:

GraphQLLog
| where ProcessedBytes > 0
| project Timestamp, ItemName, ProcessedBytes, QueryText, DurationMs
| order by ProcessedBytes desc
| take 20

Analisis performa kueri rata-rata selama 24 jam terakhir:

GraphQLMetrics
| where Timestamp > ago(24h)
| summarize 
    AvgDuration = avg(MetricSumValue),
    MaxDuration = max(MetricSumValue),
    QueryCount = count()
    by bin(Timestamp, 1h), ItemName
| order by Timestamp desc

Untuk sampel pemantauan ruang kerja lainnya, kunjungi pemantauan ruang kerja di repositori GitHub sampel Fabric.