Store adalah unit penyimpanan dan kueri data di Simple Log Service. Untuk menangani berbagai tipe data, Simple Log Service menyediakan tiga jenis store: LogStore, MetricStore, dan EventStore.
Memilih jenis toko
Simple Log Service menyediakan tiga jenis store: LogStore, MetricStore, dan EventStore. Perbedaan utama antara jenis-jenis store ini terletak pada kompatibilitas model datanya. Pilih tipe store yang sesuai dengan data Anda. Jika tidak memiliki persyaratan khusus, Anda dapat menggunakan LogStore sebagai pilihan default.
Tipe store | Skenario penggunaan |
LogStore |
|
MetricStore | Data deret waktu (metric): Terdiri dari pengenal deret waktu dan titik data. Titik data dengan pengenal yang sama membentuk satu deret waktu. Gunakan MetricStore ketika data Anda memerlukan penyimpanan berbasis deret waktu. |
EventStore | Data event (event): Catatan kejadian penting dan bernilai, seperti alert pemantauan atau hasil pekerjaan inspeksi berkala. Gunakan EventStore ketika data Anda memerlukan penyimpanan berbasis event. |
LogStore
LogStore adalah unit untuk menyimpan dan mengkueri data log di Simple Log Service. Setiap LogStore termasuk dalam satu proyek, dan setiap proyek dapat berisi beberapa LogStore. Anda dapat membuat beberapa LogStore dalam proyek target sesuai kebutuhan. Biasanya, LogStore terpisah dibuat untuk berbagai jenis log dari aplikasi yang sama. Misalnya, untuk mengumpulkan log operasi, log aplikasi, dan log akses dari aplikasi bernama App A, buat proyek bernama app-a, lalu buat LogStore bernama operation_log, application_log, dan access_log dalam proyek tersebut untuk menyimpan masing-masing jenis log secara terpisah.
Anda harus menentukan LogStore saat melakukan operasi seperti menulis, mengkueri, menganalisis, memproses, mengonsumsi, atau mengirimkan log.
LogStore adalah unit pengumpulan log.
LogStore adalah unit untuk menyimpan, memproses, mengonsumsi, dan mengirimkan log.
Anda dapat membuat indeks di LogStore untuk mengkueri dan menganalisis log.
MetricStore
MetricStore adalah unit untuk menyimpan dan mengkueri data deret waktu di Simple Log Service. Setiap MetricStore termasuk dalam satu proyek, dan setiap proyek dapat berisi beberapa MetricStore. Anda dapat membuat beberapa MetricStore dalam satu proyek sesuai kebutuhan. Biasanya, MetricStore berbeda dibuat 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, lalu buat MetricStore bernama host-metrics, cloud-service-metrics, dan app-metrics dalam proyek tersebut untuk menyimpan jenis data tersebut secara terpisah.
Anda harus menentukan MetricStore saat menulis, mengkueri, menganalisis, atau mengonsumsi data deret waktu.
MetricStore adalah unit pengumpulan data deret waktu.
MetricStore adalah unit untuk menyimpan dan mengonsumsi data deret waktu.
Anda dapat mengkueri dan menganalisis data deret waktu menggunakan sintaks PromQL, SQL-92, dan SQL+PromQL.
EventStore
EventStore adalah unit untuk menyimpan dan mengkueri data event di Simple Log Service. Setiap EventStore termasuk dalam satu proyek, dan setiap proyek dapat berisi beberapa EventStore. Anda dapat membuat beberapa EventStore dalam satu proyek sesuai kebutuhan. Biasanya, EventStore berbeda dibuat untuk berbagai jenis data event. Misalnya, data seperti event anomali infrastruktur, event aplikasi bisnis, dan event kustom dapat dikategorikan dan disimpan dalam EventStore berbeda untuk keperluan penyimpanan dan analisis.
Anda harus menentukan EventStore saat menulis, mengkueri, menganalisis, atau mengonsumsi data event.
EventStore adalah unit pengumpulan data event.
EventStore adalah unit untuk menyimpan dan mengonsumsi data event.
Referensi
LogGroup
LogGroup adalah kumpulan log dan berfungsi sebagai unit dasar untuk operasi baca dan tulis. Semua log dalam satu LogGroup memiliki metadata yang sama, seperti alamat IP dan sumber. Saat menulis atau membaca log dari Simple Log Service, beberapa log dikemas menjadi satu LogGroup untuk diproses. Pendekatan ini mengurangi jumlah operasi baca-tulis dan meningkatkan efisiensi. Setiap LogGroup memiliki ukuran maksimum 5 MB.

Data log
Log adalah representasi abstrak dari perubahan dalam suatu sistem seiring waktu, yang terdiri dari kumpulan operasi terurut pada objek tertentu beserta hasilnya. Data log hadir dalam berbagai bentuk, seperti log teks (LogFile), event, log biner database (BinLog), dan data deret waktu (metric). Simple Log Service menggunakan model data semi-terstruktur untuk mendefinisikan log. Sebuah log berisi lima bidang data: topic, time, content, source, dan tags. Tabel berikut menjelaskan persyaratan format untuk setiap bidang data.
Bidang data | Deskripsi | Format |
Topic | Simple Log Service menggunakan bidang terpesan ( Gambar berikut menunjukkan hubungan antara LogStore, topik, dan shard. | String apa pun dengan panjang 0 hingga 128 byte, termasuk string kosong. Jika tidak perlu membedakan log dalam LogStore, Anda dapat menetapkan topik sebagai string kosong selama pengumpulan log. String kosong merupakan nilai topik yang valid. |
Time | Bidang terpesan ( | Stempel waktu UNIX. |
Content | Konten log, yang terdiri dari satu atau beberapa item konten dalam format Saat menggunakan Logtail dalam mode simple (single-line atau multi-line) untuk mengumpulkan log, Logtail tidak mengurai konten log. Seluruh log mentah disimpan dalam bidang content. | Format pasangan
|
Source | Bidang terpesan ( | String apa pun dengan panjang 0 hingga 128 byte. |
Tags | Tag log, yang mencakup jenis berikut:
| Kamus pasangan kunci-nilai string. Dalam log, tag ditampilkan dengan awalan |
Contoh
Contoh berikut menggunakan log akses website 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.36Setelah log dikumpulkan menggunakan Logtail dalam mode simple, seluruh log mentah disimpan dalam bidang content.

Setelah log dikumpulkan menggunakan Logtail dalam mode ekspresi reguler, konten log distrukturkan dengan mengekstraksi konten menjadi beberapa pasangan kunci-nilai berdasarkan ekspresi reguler yang dikonfigurasi.

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

Pengenal deret waktu
Setiap deret waktu diidentifikasi secara unik oleh nama metrik dan sekumpulan label.
Nama metrik adalah pengenal string yang menunjukkan tipe metrik. Nama metrik harus mengikuti ekspresi reguler [a-zA-Z_:][a-zA-Z0-9_:]*. Contohnya, http_request_total merepresentasikan jumlah total permintaan HTTP yang diterima.
Label terdiri dari pasangan kunci-nilai yang dipisahkan oleh tanda pipa vertikal (|). Label mengidentifikasi atribut suatu metrik. Kunci harus sesuai dengan ekspresi reguler [a-zA-Z_][a-zA-Z0-9_]*, dan nilai tidak boleh mengandung tanda pipa vertikal (|). Contohnya, method adalah POST, dan URL adalah /api/v1/get .
Titik data
Titik data merepresentasikan nilai deret waktu pada waktu tertentu. Setiap titik data terdiri dari stempel waktu dan nilai. Stempel waktu memiliki presisi nanodetik, dan nilainya bertipe double.
Struktur data
Protokol penulisan data deret waktu sama dengan protokol untuk log dan menggunakan metode pengkodean data Protobuf. Pengenal deret waktu dan titik data disimpan dalam bidang content, seperti dijelaskan dalam tabel berikut.
Bidang | Deskripsi | Contoh |
__name__ | Nama metrik. | nginx_ingress_controller_response_size |
__labels__ | Informasi label dalam format 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). Saat menjalankan kueri SQL, semua stempel waktu dinormalisasi ke presisi mikrodetik (us) dalam output untuk memastikan konsistensi dalam perhitungan waktu. | 1585727297293000 |
__value__ | Nilai. | 36.0 |
MetricStore tidak menyimpan bidang kustom selain yang tercantum dalam tabel di atas, seperti topic, source, dan tag log, saat Anda menulis data menggunakan SDK. Untuk informasi lebih lanjut, lihat Menulis data deret waktu menggunakan SDK.
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 event
Event adalah catatan kejadian penting dan bernilai, seperti alert pemantauan atau hasil pekerjaan inspeksi berkala. Data event di Simple Log Service mengikuti spesifikasi CloudEvents.
Tipe bidang | Nama bidang | Wajib | Format data | Deskripsi |
Bidang protokol |
| Ya | String | Sesuai spesifikasi protokol CloudEvents, nilai default-nya adalah |
| Ya | String | ID event. Anda dapat menggunakan | |
| Ya | String | Konteks tempat event terjadi, seperti sumber event atau instans yang menerbitkan event tersebut. | |
| Ya | String | Tipe event, seperti | |
| Tidak | String | Subjek event melengkapi bidang | |
| Tidak | String | Tipe event. Nilai default-nya adalah | |
| Tidak | URI | Skema untuk bidang | |
| Tidak | JSON | Muatan event. Formatnya bervariasi tergantung sumber dan tipe event. | |
| Ya | Stempel waktu | Waktu event. Untuk format spesifiknya, lihat RFC 3339. Contohnya, | |
Bidang ekstensi |
| Ya | String | Judul event. |
| Ya | String | Deskripsi event. | |
| Ya | String | Status event. Nilai yang valid:
|
Contoh
Blok kode berikut menunjukkan contoh event alert:
{
"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 has had 49 GET request errors in the last five minutes",
"title": "Nginx Access Error Alert Triggered"
},
"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": "Nginx Access Error Alert Triggered",
"message": "Nginx has had 49 GET request errors in the last five minutes",
"status": "error"
}Data trace
Trace mencatat informasi pemrosesan dalam cakupan satu permintaan tunggal, termasuk panggilan layanan dan durasi pemrosesannya. Setiap trace berkorespondensi dengan satu rantai panggilan. Untuk informasi lebih lanjut tentang format data, lihat Format data trace. Dalam arti luas, rantai panggilan merepresentasikan eksekusi transaksi atau proses dalam sistem terdistribusi. Dalam standar OpenTracing, trace adalah Graf Tak Berarah Siklik (DAG) yang terdiri dari beberapa span. Setiap span merepresentasikan segmen eksekusi berkelanjutan yang bernama dan berdurasi dalam trace tersebut.