Dokumen ini menjelaskan tampilan analisis dan kapan Anda sebaiknya membuatnya. Dokumen ini juga menjelaskan perbedaan antara tampilan analisis dan kueri tersimpan.
Ringkasan
Tampilan analisis adalah resource yang dapat Anda kueri. Artinya, setelah Anda
menentukan tampilan analisis, Anda dapat menulis kueri dengan menentukan
tampilan analisis dalam klausa FROM.
Manfaat utama menggunakan tampilan analisis adalah Anda tidak dibatasi untuk mengirimkan kueri data dalam format yang ditentukan oleh API atau sistem. Tampilan analisis memungkinkan Anda menentukan skema, yang memungkinkan Anda menyederhanakan kueri atau mengurangi waktu yang Anda habiskan untuk menulis kueri. Kueri dalam tampilan analisis dapat melakukan hal-hal seperti mempertahankan hanya kolom tertentu, mengganti nama kolom, memindahkan kolom bertingkat ke kolom tingkat teratas, serta melakukan pengelompokan dan penggabungan.
Tampilan Analytics bukan merupakan tampilan terwujud. Tampilan analisis bukanlah tampilan yang telah dihitung sebelumnya yang secara berkala menyimpan hasil kueri ke dalam cache. Oleh karena itu, membuat kueri tampilan analisis sama dengan membuat kueri tampilan yang tercantum dalam kueri tampilan analisis.
Tampilan Analytics lebih efektif daripada kueri tersimpan, yaitu kueri yang Anda jalankan di halaman Log Analytics, lalu simpan. Anda dapat menjalankan kembali kueri tersimpan, tetapi Anda tidak dapat membuat kueri hasil kueri tersimpan.
Jenis tampilan analisis
Ada dua jenis tampilan analisis: yang ditentukan pengguna dan yang ditentukan sistem:
Tampilan analisis yang ditentukan pengguna adalah tampilan analisis yang Anda buat. Anda dapat membuat kueri, mengedit, dan menghapus tampilan analisis yang ditentukan pengguna.
Tampilan analisis yang ditentukan sistem adalah tampilan analisis yang dibuat oleh layanan Google Cloud . Anda dapat membuat kueri tampilan analisis yang ditentukan sistem. Namun, Anda tidak dapat mengedit atau menghapusnya.
Untuk mengetahui informasi tentang cara mencantumkan tampilan analisis di Google Cloud project, lihat Mencantumkan tampilan analisis.
Lokasi tampilan analisis
Lokasi tampilan analisis ditentukan oleh lokasi
resource yang dikuerinya. Misalnya, jika tampilan analisis membuat kueri
tampilan log atau tampilan observasi yang berada di lokasi global, maka lokasi
tampilan analisis juga harus global. Saat Anda menggunakan konsol Google Cloud untuk membuat tampilan analisis, lokasi akan ditetapkan secara otomatis.
Contoh kasus penggunaan
Manfaat utama tampilan analisis adalah Anda tidak dibatasi untuk mengirimkan kueri data dalam format yang ditentukan sistem. Tampilan analisis memungkinkan Anda menentukan skema, yang memungkinkan Anda menyederhanakan kueri atau mengurangi waktu yang Anda habiskan untuk menulis kueri.
Meminta detail jaringan
Anda ingin menganalisis performa jaringan menggunakan Log Aliran VPC. Anda
perlu menganalisis performa jaringan secara keseluruhan serta mengidentifikasi
jaringan, alamat IP, dan host tertentu. Informasi ini disimpan dalam
kolom bertingkat di kolom json_payload entri log.
Untuk menyederhanakan kueri analisis, Anda membuat tampilan analisis berikut
dan menamainya network_details:
SELECT
-- Create a column for each network field.
JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
JSON_VALUE(json_payload.connection.src_ip) as src_ip,
JSON_VALUE(json_payload.connection.src_port) as src_port,
JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
JSON_VALUE(json_payload.connection.dest_port) as dest_port,
CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
-- Only query the VPC Flow Logs log.
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
Sebelum menggunakan kueri, tetapkan nilai variabel berikut:
- PROJECT_ID: ID project.
- LOCATION: Lokasi tampilan log.
- BUCKET_ID: Nama atau ID bucket log.
- LOG_VIEW_ID: ID tampilan log, yang dibatasi hingga 100 karakter dan hanya dapat menyertakan huruf, angka, garis bawah, dan tanda hubung.
Jika ingin menganalisis performa jaringan, Anda membuat kueri tampilan analisis. Misalnya, jika Anda hanya tertarik dengan nama instance dan jumlah data yang dikirim, Anda dapat menulis kueri berikut:
SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100
Kueri dasar untuk analisis latensi API
Beberapa tim memerlukan data performa mingguan untuk menyelesaikan analisis mereka. Daripada setiap tim membuat data mingguan, Anda membuat tampilan analisis yang mengekstrak data mingguan. Tim lain dapat membuat kueri tampilan analisis, lalu melakukan analisis mereka.
Kueri berikut mengilustrasikan cara menggunakan SQL untuk menghitung latensi permintaan minimum, maksimum, dan rata-rata:
SELECT week, MIN(took_ms) as min, MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE json_payload IS NOT NULL
AND SEARCH(labels,"frontend")
AND JSON_VALUE(json_payload.message) = "request complete"
ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week
Mengekstrak nama layanan rekaman aktivitas
Misalkan Anda ingin menulis kueri yang menganalisis data rekaman aktivitas, dan Anda ingin menampilkan atau mengelompokkan menurut nama layanan yang disintesis. Kueri untuk
tampilan analisis Anda menentukan nama layanan untuk rentang dengan menggunakan
fungsi COALESCE, yang mengevaluasi daftar ekspresi, secara berurutan, dan
menampilkan nilai untuk ekspresi pertama yang tidak dievaluasi menjadi NULL:
SELECT
start_time,
-- Set the value of service name based on the first non-null value in the list.
COALESCE(
JSON_VALUE(resource.attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
name AS span_name,
duration_nano,
status.code AS status,
trace_id,
span_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans`
LIMIT 10
Sebelum menggunakan kueri, ganti PROJECT_ID dengan ID project Google Cloud Anda.
Menggabungkan data log dan rekaman aktivitas menggunakan ID rekaman aktivitas
Saat menganalisis aplikasi, Anda mungkin ingin menghubungkan data log dan trace. Salah satu opsinya adalah membuat tampilan analisis yang melakukan penggabungan dan melaporkan kolom pilihan.
Kueri berikut menggabungkan data log dan rekaman aktivitas menggunakan ID span dan rekaman aktivitas:
SELECT
T.trace_id,
T.span_id,
T.name,
T.start_time,
T.duration_nano,
L.log_name,
L.severity,
L.json_payload,
L.text_payload,
L.proto_payload,
L.insert_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans` AS T
JOIN
`PROJECT_ID.us.BUCKET_ID.LOG_VIEW_ID` AS L
ON
-- Join log and trace data by both the span ID and trace ID.
-- Don't join only on span ID, this field isn't globally unique.
T.span_id = L.span_id
-- A regular expression is required because the storage format of the trace ID
-- differs between a log view and a trace view.
AND T.trace_id = REGEXP_EXTRACT(L.trace, r'/([^/]+)$')
Sebelum menggunakan kueri, tetapkan nilai variabel berikut:
- PROJECT_ID: ID project.
- BUCKET_ID: Nama atau ID bucket log.
- LOG_VIEW_ID: ID tampilan log, yang dibatasi hingga 100 karakter dan hanya dapat menyertakan huruf, angka, garis bawah, dan tanda hubung.
Dalam contoh, perhatikan bahwa tampilan log dan tampilan observasi berada di lokasi yang sama, us. Tampilan analisis dapat membuat kueri beberapa tampilan, tetapi tampilan tersebut harus berada di lokasi yang sama.
Batasan
Batasan berikut berlaku untuk tampilan analisis:
- Tampilan analisis hanya dapat membuat kueri tampilan log dan tampilan kemampuan pengamatan.
- Resource induk tampilan analisis harus berupa Google Cloud project.
- Anda hanya dapat membuat kueri tampilan analisis menggunakan halaman Log Analytics, dan hanya saat Anda menggunakan mesin kueri Log Analytics (default).
- Semua tampilan yang dikueri oleh tampilan analisis harus berada di lokasi yang sama.
- Anda harus menggunakan konsol Google Cloud untuk membuat atau mengelola tampilan analisis.
- Anda dapat membuat maksimal 100 tampilan analisis per project Google Cloud .
- Anda dapat membuat maksimal 50 tampilan analisis per region.
- Per Google Cloud project, maksimal 10 region dapat berisi tampilan analisis.
Langkah berikutnya
- Membuat, membuat kueri, dan mengelola tampilan analisis.
- Buat kueri dan analisis telemetri dengan Log Analytics.
- Membuat diagram hasil kueri SQL.
- Menyimpan dan membagikan kueri.
- Contoh kueri SQL.