Sebuah store adalah unit dasar untuk penyimpanan data dan kueri di Simple Log Service. Simple Log Service menyediakan tiga jenis store untuk menangani berbagai tipe data: Logstore, MetricStore, dan EventStore.
Cara memilih jenis penyimpanan
Simple Log Service menyediakan tiga jenis store: Logstore, MetricStore, dan EventStore. Perbedaan utama antara tipe-tipe store ini adalah kompatibilitasnya dengan berbagai tipe data. Pilihlah tipe store yang sesuai dengan data Anda. Jika tidak memiliki persyaratan khusus, gunakan Logstore sebagai default.
Jenis Toko | Skenario |
Logstore |
|
MetricStore | Data deret waktu (Metric): Terdiri dari pengenal metrik dan titik data. Data dengan pengenal metrik yang sama membentuk deret waktu. Gunakan MetricStore ketika Anda perlu menyimpan data deret waktu. |
EventStore | Data peristiwa (Event): Sebuah peristiwa adalah data yang penting dan bernilai. Contohnya termasuk data pemantauan peringatan dan hasil pekerjaan inspeksi berkala. Gunakan EventStore ketika Anda perlu menyimpan data peristiwa. |
Logstore
Sebuah Logstore adalah unit untuk menyimpan dan mengkueri data log di Simple Log Service. Setiap Logstore termasuk dalam sebuah proyek. Anda dapat membuat beberapa Logstores dalam sebuah proyek sesuai kebutuhan. Biasanya, buat Logstores terpisah untuk berbagai jenis log dari aplikasi yang sama. Misalnya, untuk mengumpulkan log operasi (operation_log), log aplikasi (application_log), dan log akses (access_log) untuk App A, buat proyek bernama app-a. Dalam proyek ini, buat Logstores bernama operation_log, application_log, dan access_log untuk menyimpan setiap jenis log secara terpisah.
Tentukan Logstore saat menulis, mengkueri, menganalisis, memproses, mengonsumsi, atau mengirimkan log. Detailnya adalah sebagai berikut:
Logstore digunakan sebagai unit untuk pengumpulan log.
Logstore digunakan sebagai unit untuk penyimpanan, pemrosesan, konsumsi, dan pengiriman log.
Indeks dibuat di Logstore untuk mengkueri dan menganalisis log.
MetricStore
Sebuah MetricStore adalah unit untuk menyimpan dan mengkueri data deret waktu di Simple Log Service. Setiap MetricStore termasuk dalam sebuah proyek. Anda dapat membuat beberapa MetricStores dalam sebuah proyek sesuai kebutuhan. Biasanya, buat MetricStores berbeda untuk berbagai jenis data deret waktu. Misalnya, untuk mengumpulkan data pemantauan host dasar, data pemantauan layanan cloud, dan data pemantauan aplikasi bisnis, buat proyek bernama demo-monitor. Kemudian, dalam proyek ini, buat MetricStores bernama host-metrics, cloud-service-metrics, dan app-metrics untuk menyimpan jenis-jenis data ini secara terpisah.
Tentukan MetricStore saat menulis, mengkueri, menganalisis, atau mengonsumsi data deret waktu. Detailnya adalah sebagai berikut:
MetricStore digunakan sebagai unit untuk pengumpulan data deret waktu.
MetricStore digunakan sebagai unit untuk penyimpanan dan konsumsi data deret waktu.
Data deret waktu dalam MetricStore dapat dikueri dan dianalisis menggunakan Prometheus Query Language (PromQL), SQL-92, atau sintaksis SQL+PromQL.
EventStore
Sebuah EventStore adalah unit untuk menyimpan dan mengkueri data peristiwa di Simple Log Service. Setiap EventStore termasuk dalam sebuah proyek. Anda dapat membuat beberapa EventStores dalam sebuah proyek sesuai kebutuhan. Biasanya, buat EventStores berbeda untuk berbagai jenis data peristiwa. Misalnya, kategorikan data berdasarkan aktivitas anomali infrastruktur, peristiwa aplikasi bisnis, dan peristiwa kustom, serta gunakan EventStores berbeda untuk penyimpanan dan analisis.
Tentukan EventStore saat menulis, mengkueri, menganalisis, atau mengonsumsi data peristiwa. Detailnya adalah sebagai berikut:
EventStore digunakan sebagai unit untuk pengumpulan data peristiwa.
EventStore digunakan sebagai unit untuk penyimpanan dan konsumsi data peristiwa.
Referensi
LogGroup
Grup log (LogGroup) adalah kumpulan log dan merupakan unit dasar untuk penulisan dan pembacaan log. Log dalam LogGroup berbagi metadata yang sama, seperti alamat IP dan informasi sumber. Saat menulis log ke atau membaca log dari Simple Log Service, beberapa log dikemas menjadi LogGroup. Metode ini mengurangi jumlah operasi baca dan tulis serta meningkatkan efisiensi. Setiap LogGroup dapat berukuran hingga 5 MB.

Data log (Log)
Data log adalah representasi abstrak dari perubahan dalam sistem seiring waktu. Sebuah log terdiri dari kumpulan operasi terurut pada objek tertentu dan hasil dari operasi tersebut. File log, peristiwa, log biner database (BinLogs), dan data deret waktu (metrik) semuanya adalah bentuk log yang berbeda. Simple Log Service menggunakan model data semi-terstruktur untuk mendefinisikan sebuah log. Sebuah log terdiri dari lima domain data: topik, waktu, konten, sumber, dan tag. Simple Log Service memiliki persyaratan format berbeda untuk setiap domain data. Tabel berikut menjelaskan persyaratan tersebut.
Domain data | Deskripsi | Format |
Topik | Simple Log Service menggunakan bidang cadangan ( Hubungan antara Logstore, topik, dan shard adalah sebagai berikut: | String berukuran 0 hingga 128 byte, termasuk string kosong. Jika tidak perlu membedakan log dalam Logstore, atur topik sebagai string kosong saat mengumpulkan log. String kosong adalah topik yang valid. |
Waktu peristiwa | Bidang cadangan ( | Stempel waktu UNIX. |
Konten log | Konten log, yang terdiri dari satu atau lebih item konten dalam format Saat Anda menggunakan Logtail dalam mode sederhana (single-line atau multi-line) untuk mengumpulkan log, Logtail tidak mengurai konten log. Seluruh log mentah diunggah ke bidang konten. | Format
|
Sumber log | Bidang cadangan ( | String berukuran 0 hingga 128 byte. |
Tag log | Tag log, yang meliputi hal-hal berikut:
| Format kamus di mana key dan value adalah string. Dalam log, tag ditampilkan dengan awalan |
Contoh
Contoh berikut menggunakan log akses situs web untuk menunjukkan pemetaan antara log mentah dan model data di Simple Log Service.
Log mentah
127.0.0.1 - - [01/Mar/2021:12:36:49 0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36Log yang dikumpulkan dalam mode sederhana. Seluruh log mentah disimpan di bidang konten.

Log yang dikumpulkan dalam mode ekspresi reguler. Konten log distrukturkan dengan mengekstraksi konten menjadi beberapa pasangan key-value berdasarkan ekspresi reguler yang dikonfigurasi.

Data deret waktu (Metric)
Data deret waktu terdiri dari pengenal metrik dan titik data. Data dengan pengenal yang sama membentuk deret waktu. Tipe data deret waktu di Simple Log Service mengikuti model data Prometheus. Semua data dalam MetricStore disimpan sebagai data deret waktu.

Pengenal metrik
Setiap deret waktu memiliki pengenal unik, yang terdiri dari nama metrik dan label.
Nama metrik adalah pengenal string yang menentukan jenis metrik. Nama metrik harus cocok dengan ekspresi reguler [a-zA-Z_:][a-zA-Z0-9_:]*. Misalnya, http_request_total merepresentasikan total jumlah permintaan HTTP yang diterima.
Label adalah serangkaian pasangan key-value yang mengidentifikasi atribut metrik. Key harus cocok dengan ekspresi reguler [a-zA-Z_][a-zA-Z0-9_]*, dan value tidak boleh berisi tanda vertikal (|). Misalnya, method adalah POST, dan URL adalah /api/v1/get.
Titik data
Titik data merepresentasikan nilai deret waktu pada titik waktu tertentu. Setiap titik data terdiri dari stempel waktu dan nilai. Stempel waktu dicatat dengan presisi nanodetik, dan nilainya adalah tipe double.
Struktur data
Protokol penulisan untuk data deret waktu sama dengan protokol penulisan log dan menggunakan metode pengkodean data Protobuf pengkodean data. Pengenal metrik dan titik data keduanya berada di bidang content, seperti yang ditunjukkan dalam tabel berikut.
Bidang | Deskripsi | Contoh |
__name__ | Nama metrik. | nginx_ingress_controller_response_size |
__labels__ | Informasi label. Formatnya adalah Catatan
| app#$#ingress-nginx|controller_class#$#nginx|controller_namespace#$#kube-system|controller_pod#$#nginx-ingress-controller-589877c6b7-hw9cj |
__time_nano__ | Stempel waktu. Anda dapat menulis stempel waktu dengan berbagai presisi, seperti detik (s), milidetik (ms), mikrodetik (us), dan nanodetik (ns). Untuk kueri SQL, semua stempel waktu dikonversi ke presisi mikrodetik (us) dalam output untuk memastikan kalkulasi yang konsisten. | 1585727297293000 |
__value__ | Nilai. | 36.0 |
Contoh
Kueri semua data deret waktu mentah untuk metrik process_resident_memory_bytes dalam rentang waktu tertentu.
* | select * from "sls-mall-k8s-metrics.prom" where __name__ = 'process_resident_memory_bytes' limit all
Data peristiwa (Event)
Peristiwa adalah data yang penting dan bernilai. Contohnya termasuk data pemantauan peringatan dan hasil pekerjaan inspeksi berkala. Data peristiwa di Simple Log Service mengikuti spesifikasi protokol CloudEvents, seperti yang dijelaskan dalam tabel berikut.
Tipe bidang | Nama bidang | Diperlukan | Format data | Deskripsi |
Bidang protokol |
| Ya | String | Nilai default adalah |
| Ya | String | ID peristiwa. Anda dapat menggunakan | |
| Ya | String | Konteks di mana peristiwa terjadi, seperti sumber peristiwa atau instans yang menerbitkan peristiwa tersebut. | |
| Ya | String | Tipe peristiwa, seperti | |
| Tidak | String | Subjek dari peristiwa. Bidang ini melengkapi bidang | |
| Tidak | String | Tipe peristiwa. Nilai default adalah | |
| Tidak | URI | Skema yang harus dipatuhi oleh bidang | |
| Tidak | JSON | Konten peristiwa spesifik. Formatnya bervariasi berdasarkan sumber dan jenis peristiwa. | |
| Ya | Timestamp | Waktu peristiwa. Untuk informasi lebih lanjut tentang format, lihat RFC 3339. Contoh: | |
Bidang ekstensi |
| Ya | String | Judul peristiwa. |
| Ya | String | Deskripsi peristiwa. | |
| Ya | String | Status peristiwa. Nilai valid:
|
Contoh
Contoh berikut menunjukkan data untuk peristiwa peringatan:
{
"specversion": "1.0",
"id": "af****6c",
"source": "acs:sls",
"type": "sls.alert",
"subject": "https://sls.console.alibabacloud.com/lognext/project/demo-alert-chengdu/logsearch/nginx-access-log?encode=base64&endTime=1684312259&queryString=c3RhdHVzID49IDQwMCB8IHNlbGVjdCByZXF1ZXN0X21ldGhvZCwgY291bnQoKikgYXMgY250IGdyb3VwIGJ5IHJlcXVlc3RfbWV0aG9kIA%3D%3D&queryTimeType=99&startTime=1684311959",
"datacontenttype": "application/cloudevents+json",
"data": {
"aliuid": "16****50",
"region": "cn-chengdu",
"project": "demo-alert-chengdu",
"alert_id": "alert-16****96-247190",
"alert_name": "Nginx Access Error",
"alert_instance_id": "77****e4-1aad9f7",
"alert_type": "sls_alert",
"next_eval_interval": 300,
"fire_time": 1684299959,
"alert_time": 1684312259,
"resolve_time": 0,
"status": "firing",
"severity": 10,
"labels": {
"request_method": "GET"
},
"annotations": {
"__count__": "1",
"cnt": "49",
"desc": "Nginx telah mengalami 49 kesalahan permintaan GET dalam lima menit terakhir",
"title": "Peringatan Kesalahan Akses Nginx Dipicu"
},
"results": [
{
"region": "cn-chengdu",
"project": "demo-alert-chengdu",
"store": "nginx-access-log",
"store_type": "log",
"role_arn": "",
"query": "status >= 400 | select request_method, count(*) as cnt group by request_method ",
"start_time": 1684311959,
"end_time": 1684312259,
"fire_result": {
"cnt": "49",
"request_method": "GET"
},
"raw_results": [
{
"cnt": "49",
"request_method": "GET"
},
{
"cnt": "3",
"request_method": "DELETE"
},
{
"cnt": "7",
"request_method": "POST"
},
{
"cnt": "6",
"request_method": "PUT"
}
],
"raw_result_count": 4,
"truncated": false,
"dashboard_id": "",
"chart_title": "",
"is_complete": true,
"power_sql_mode": "auto"
}
],
"fire_results": [
{
"cnt": "49",
"request_method": "GET"
}
],
"fire_results_count": 1,
"condition": "Count:[1] > 0; Condition:[49] > 20",
"raw_condition": "Count:__count__ > 0; Condition:cnt > 20"
},
"time": "2023-05-17T08:30:59Z",
"title": "Peringatan Kesalahan Akses Nginx Dipicu",
"message": "Nginx telah mengalami 49 kesalahan permintaan GET dalam lima menit terakhir",
"status": "error"
}Data jejak (Trace)
Data jejak mencatat informasi pemrosesan untuk satu permintaan tunggal, termasuk pemanggilan layanan dan durasi pemrosesan. Sebuah data jejak sesuai dengan rantai panggilan. Untuk informasi lebih lanjut tentang format, lihat Format data jejak. Dalam arti luas, rantai panggilan merepresentasikan proses eksekusi transaksi atau alur dalam sistem terdistribusi. Dalam standar OpenTracing, rantai panggilan adalah grafik asiklik terarah (DAG) yang terdiri dari beberapa rentang. Setiap rentang merepresentasikan segmen eksekusi bernama dan berdurasi kontinu dalam rantai panggilan.