All Products
Search
Document Center

Simple Log Service:Kelola toko

Last Updated:Mar 14, 2026

Penyimpanan (store) adalah unit dasar untuk penyimpanan dan kueri data di Simple Log Service (SLS). Untuk mendukung berbagai tipe data, SLS menyediakan Logstore, Metricstore, dan Eventstore.

Cara memilih tipe toko

Simple Log Service mendukung tiga tipe penyimpanan: Logstore, Metricstore, dan Eventstore. Perbedaan utama di antara ketiganya terletak pada kompatibilitas model datanya. Pilih tipe penyimpanan yang paling sesuai dengan data Anda. Jika tidak memiliki persyaratan khusus, gunakan Logstore sebagai pilihan default.

Jenis toko

Skenario

Logstore

  • Data log: Catatan peristiwa atau perubahan dalam sistem seiring waktu. Data log terdiri dari kumpulan operasi yang tersusun secara kronologis beserta hasilnya. Definisi luas ini mencakup sebagian besar tipe data, sehingga Logstore menjadi pilihan default.

  • Data jejak: Mencatat informasi pemrosesan untuk satu permintaan, termasuk pemanggilan layanan dan durasi pemrosesan.

Metricstore

Data deret waktu (metric): Deret waktu yang terdiri dari pengenal unik dan rangkaian titik data. Gunakan Metricstore untuk menyimpan dan mengkueri data deret waktu secara efisien.

Eventstore

Data event: Catatan kejadian penting, seperti alert pemantauan atau hasil inspeksi berkala. Gunakan Eventstore untuk menyimpan data diskrit berbasis event.

Logstore

Logstore adalah unit dasar untuk menyimpan dan mengkueri data log di Simple Log Service. Setiap Logstore termasuk dalam satu proyek. Anda dapat membuat beberapa Logstore dalam satu proyek untuk memisahkan berbagai tipe log dari aplikasi yang sama. Misalnya, untuk mengumpulkan log operasi, log aplikasi, dan log akses untuk Aplikasi A, buat proyek bernama app-a. Di dalam proyek tersebut, buat Logstore bernama operation_log, application_log, dan access_log untuk menyimpan masing-masing tipe log secara terpisah.

Anda menentukan Logstore saat menulis, mengkueri, menganalisis, memproses, mengonsumsi, atau mengirimkan log. Penggunaan spesifik meliputi hal-hal berikut:

  • Kumpulkan log menggunakan Logstore sebagai unit pengumpulan.

  • Simpan log di Logstore untuk diproses, dikonsumsi, atau dikirimkan.

  • Buat indeks di Logstore untuk mengkueri dan menganalisis log.

Metricstore

Metricstore adalah unit dasar untuk menyimpan dan mengkueri data deret waktu. Setiap Metricstore termasuk dalam satu proyek. Anda dapat membuat beberapa Metricstore dalam satu proyek sesuai kebutuhan, misalnya membuat Metricstore terpisah untuk berbagai tipe data deret waktu. Sebagai contoh, untuk mengumpulkan data pemantauan host dasar, data pemantauan layanan cloud, dan data pemantauan aplikasi bisnis, buat proyek bernama demo-monitor. Kemudian, di dalam proyek tersebut, buat Metricstore bernama host-metrics, cloud-service-metrics, dan app-metrics untuk menyimpan masing-masing tipe data secara terpisah.

Anda menentukan Metricstore saat menulis, mengkueri, menganalisis, atau mengonsumsi data deret waktu. Penggunaan spesifik meliputi hal-hal berikut:

  • Kumpulkan data deret waktu menggunakan Metricstore sebagai unit pengumpulan.

  • Gunakan Metricstore untuk menyimpan data deret waktu dan melakukan operasi konsumsi.

  • Kueri dan analisis data deret waktu menggunakan Prometheus Query Language (PromQL), sintaks SQL-92, atau SQL+PromQL.

Eventstore

Eventstore adalah unit dasar untuk menyimpan dan mengkueri data event. Setiap Eventstore termasuk dalam satu proyek. Anda dapat membuat beberapa Eventstore dalam satu proyek sesuai kebutuhan, biasanya untuk berbagai tipe data event. Sebagai contoh, kategorikan dan simpan event anomali infrastruktur, event aplikasi bisnis, dan event kustom di Eventstore terpisah untuk penyimpanan dan analisis.

Anda menentukan Eventstore saat menulis, mengkueri, menganalisis, atau mengonsumsi data event. Penggunaan spesifik meliputi hal-hal berikut:

  • Kumpulkan data event menggunakan Eventstore sebagai unit pengumpulan.

  • Simpan data event dan lakukan operasi konsumsi menggunakan Eventstore sebagai unit penyimpanan.

Referensi

LogGroup

Log group (LogGroup) adalah kumpulan log dan berfungsi sebagai unit dasar untuk menulis dan membaca data. Semua log dalam satu LogGroup memiliki metadata yang sama, seperti alamat IP dan sumber. Saat Anda menulis atau membaca log ke/dari SLS, beberapa log digabung menjadi satu LogGroup. Pendekatan ini mengurangi jumlah operasi baca/tulis dan meningkatkan efisiensi. Setiap LogGroup memiliki ukuran maksimum 5 MB.

日志组

Data log

Data log mencatat peristiwa atau perubahan dalam sistem seiring waktu dan terdiri dari kumpulan operasi yang tersusun secara kronologis beserta hasilnya untuk objek tertentu. Secara luas, ini mencakup file teks (LogFiles), event (Events), log biner database (BinLogs), dan data deret waktu (metrics). Simple Log Service menggunakan model data semi-terstruktur untuk mendefinisikan log, yang terdiri dari lima domain data utama: topik, waktu, konten, sumber, dan tag. Tabel berikut menjelaskan persyaratan format untuk setiap domain data.

Domain data

Deskripsi

Format

Topik

Simple Log Service menggunakan bidang terpesan (__topic__) untuk mengidentifikasi topik log, yang membedakan log yang dihasilkan oleh layanan, pengguna, atau instans berbeda. Misalnya, jika Sistem A terdiri dari modul pemrosesan permintaan HTTP antarmuka depan, cache, pemrosesan logika, dan penyimpanan, tetapkan topik untuk log masing-masing modul, seperti http_module, cache_module, logic_module, dan store_module. Setelah log dikumpulkan ke dalam Logstore yang sama, Anda dapat menggunakan topik untuk mengidentifikasi sumbernya dengan cepat. Atur topik di Global Configurations pada konfigurasi pengumpulan.

Hubungan antara Logstore, topik, dan shard adalah sebagai berikut:

image

String berukuran 0 hingga 128 byte, termasuk string kosong.

Jika Anda tidak perlu membedakan log dalam Logstore, atur topik menjadi string kosong saat mengumpulkan log. String kosong merupakan topik yang valid.

Waktu log

Bidang terpesan (__time__) mengidentifikasi waktu log. Untuk informasi lebih lanjut, lihat Bidang terpesan.

Stempel waktu UNIX.

Konten log

Konten log, yang terdiri dari satu atau beberapa item konten dalam format Key:Value.

Saat Anda menggunakan Logtail dalam mode simple (single-line atau multi-line) untuk mengumpulkan log, Logtail tidak mengurai konten log. Seluruh log mentah diunggah ke bidang content.

Berikut penjelasan format Key:Value:

  • Key: Nama bidang. Harus berupa string UTF-8 berukuran 1 hingga 128 byte, terdiri atas huruf, garis bawah, dan angka. Tidak boleh diawali angka. Anda tidak boleh menggunakan nama bidang terpesan berikut.

    • __time__

    • __source__

    • __topic__

    • __partition_time__

    • _extract_others_

    • __extract_others__

  • Value: String apa pun dengan ukuran maksimum 1 MB.

Sumber log

Bidang terpesan (__source__) mengidentifikasi sumber log, seperti alamat IP server yang menghasilkan log.

String apa pun berukuran 0 hingga 128 byte.

Tag

Tag log mencakup hal-hal berikut:

  • Tag kustom: Tambahkan tag ini saat menulis log dengan memanggil operasi API PutLogs.

  • Tag sistem: Tag yang ditambahkan oleh Simple Log Service ke log, termasuk __client_ip__ dan __receive_time__.

Kamus pasangan kunci-nilai string. Di dalam log, tag muncul dengan awalan __tag__:.

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.36
  • Log yang dikumpulkan dalam mode simple. Seluruh log mentah disimpan di bidang content.

    日志样例

  • Log yang dikumpulkan 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 kompatibel dengan model data Prometheus. Semua data di Metricstore disimpan sebagai data deret waktu.

image

Pengenal deret waktu

Setiap deret waktu diidentifikasi secara unik oleh nama metrik dan sekumpulan label.

  • Nama metrik adalah string yang mengidentifikasi jenis metrik. Nama metrik harus sesuai dengan ekspresi reguler [a-zA-Z_:][a-zA-Z0-9_:]*. Contohnya, http_request_total merepresentasikan total jumlah permintaan HTTP yang diterima.

  • Label adalah sekumpulan pasangan kunci-nilai yang mengidentifikasi atribut metrik. Kunci harus sesuai dengan ekspresi reguler [a-zA-Z_][a-zA-Z0-9_]*. 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 akurat hingga nanodetik, dan nilainya berupa double.

Struktur data

Protokol penulisan data deret waktu sama dengan protokol log dan menggunakan metode encoding data Protobuf. Pengenal deret waktu dan titik data disimpan di bidang content, seperti dijelaskan dalam tabel berikut.

Bidang

Deskripsi

Contoh

__name__

Nama metrik.

nginx_ingress_controller_response_size

__labels__

Informasi label. Formatnya adalah {key}#$#{value}|{key}#$#{value}|{key}#$#{value}.

Catatan
  • Kunci label harus diurutkan secara alfabetis.

  • Jangan menulis label yang memiliki nilai kosong. Misalnya, label dengan kunci `app` dalam app#$#|controller_class#$#nginx memiliki nilai kosong. Jika Anda menulis label ini ke Metricstore, hal tersebut dapat menyebabkan error selama agregasi PromQL.

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 distandarisasi ke presisi mikrodetik (us) dalam output untuk memastikan konsistensi perhitungan waktu.

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

image

Data event

Event adalah catatan data penting, seperti alert pemantauan atau hasil pekerjaan inspeksi berkala. Data event di Simple Log Service mengikuti spesifikasi CloudEvents, seperti dijelaskan dalam tabel berikut.

Tipe bidang

Nama bidang

Wajib

Format data

Deskripsi

Bidang protokol

specversion

Ya

String

Nilai default adalah 1.0, yang sesuai dengan spesifikasi CloudEvents.

id

Ya

String

ID event. Anda dapat menggunakan source+id untuk mengidentifikasi event secara unik.

source

Ya

String

Konteks tempat event terjadi, seperti sumber event atau instans yang menerbitkan event.

type

Ya

String

Tipe event, seperti sls.alert.

subject

Tidak

String

Subjek event. Bidang ini memberikan informasi tambahan ke bidang source, seperti objek yang memicu event.

datacontenttype

Tidak

String

Tipe event. Nilai default adalah application/cloudevents+json.

dataschema

Tidak

URI

Skema yang harus diikuti oleh bidang data. Nilai default kosong.

data

Tidak

JSON

Konten event spesifik. Formatnya bervariasi tergantung sumber dan tipe event.

time

Ya

Stempel waktu

Waktu event. Untuk informasi lebih lanjut tentang formatnya, lihat RFC 3339. Contoh: 2022-10-17T11:20:45.984+0800.

Bidang ekstensi

title

Ya

String

Judul event.

message

Ya

String

Deskripsi event.

status

Ya

String

Status event. Nilai yang valid:

  • ok

  • info

  • warning

  • error

Contoh

Contoh berikut menunjukkan data untuk 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 jejak

Data jejak mencatat pemrosesan end-to-end dari satu permintaan, termasuk semua pemanggilan layanan dan durasinya. Setiap data jejak berkorespondensi dengan satu jejak (trace). Jejak merepresentasikan jalur eksekusi suatu transaksi atau proses melalui sistem terdistribusi. Menurut standar OpenTracing, jejak adalah grafik asiklik terarah (DAG) dari Spans. Setiap Span merepresentasikan segmen eksekusi bernama, berdurasi, dan kontinu dalam jejak. Untuk informasi lebih lanjut, lihat Format data jejak.