All Products
Search
Document Center

Simple Log Service:Kelola toko

Last Updated:Aug 27, 2026

Penyimpanan (store) adalah unit dasar untuk penyimpanan dan kueri data di SLS. SLS menyediakan tiga jenis penyimpanan untuk data berbeda: Logstore, Metricstore, dan Eventstore.

Pilih jenis toko

Jenis-jenis penyimpanan ini berbeda dalam model data dasarnya. Pilih jenis yang sesuai dengan struktur data Anda: log, metrik, atau event. Jika tidak ada kebutuhan khusus, gunakan Logstore secara default.

Tipe penyimpanan

Deskripsi

Logstore

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

  • Trace: Mencatat informasi pemrosesan untuk satu permintaan, termasuk panggilan layanan dan durasi pemrosesannya.

Metricstore

Metrik: Deret waktu yang terdiri dari pengenal unik dan rangkaian titik data. Gunakan metricstore untuk menyimpan dan mengkueri data deret waktu secara efisien.

Eventstore

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

LogStore, Metricstore, dan Eventstore dikelompokkan dalam tab yang berbeda di Konsol SLS. LogStore muncul pada tab Log Storage, sedangkan Metricstore muncul pada tab Time Series Storage. Jika Anda tidak dapat menemukan Metricstore yang telah dibuat (misalnya, yang namanya diawali dengan aliyun-prom-) dalam daftar LogStore, beralihlah ke tab Time Series Storage untuk melihatnya.

Logstore

Logstore adalah unit dasar untuk menyimpan dan mengkueri data log. Setiap logstore termasuk dalam satu proyek. Anda dapat membuat beberapa logstore dalam satu proyek untuk mengisolasi jenis log yang berbeda dari aplikasi yang sama. Misalnya, untuk mengumpulkan log operasi, log aplikasi, dan log akses untuk aplikasi A, buat proyek bernama app-a. Dalam proyek ini, buat logstore 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:

  • Kumpulkan dan tulis log ke logstore.

  • 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 (metrik). Setiap metricstore termasuk dalam satu proyek. Buat beberapa metricstore dalam satu proyek untuk memisahkan jenis data deret waktu yang berbeda. Misalnya, untuk mengumpulkan data pemantauan host dasar, data pemantauan layanan cloud, dan data pemantauan aplikasi, buat proyek bernama demo-monitor. Kemudian, dalam proyek ini, buat metricstore bernama host-metrics, cloud-service-metrics, dan app-metrics untuk menyimpan jenis data tersebut secara terpisah.

Tentukan metricstore saat Anda menulis, mengkueri, menganalisis, atau mengonsumsi data deret waktu:

  • Kumpulkan data deret waktu ke dalam metricstore sebagai unit pengumpulan.

  • Gunakan metricstore untuk menyimpan data deret waktu guna analisis dan 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. Buat beberapa eventstore dalam satu proyek untuk memisahkan jenis event yang berbeda, seperti event anomali infrastruktur, event aplikasi bisnis, dan event kustom.

Tentukan eventstore saat Anda menulis, mengkueri, menganalisis, atau mengonsumsi data event:

  • Kumpulkan data event dengan eventstore sebagai unit pengumpulan.

  • Simpan data event dan lakukan operasi konsumsi dengan eventstore sebagai unit penyimpanan.

Referensi

Kelompok log

Kelompok log (log group) menggabungkan beberapa log sebagai unit dasar baca/tulis. Log dalam kelompok yang sama berbagi metadata seperti alamat IP dan sumber. Penggabungan ini mengurangi operasi I/O dan meningkatkan efisiensi. Ukuran maksimum kelompok: 5 MB.

Log group

Log

Log mencatat peristiwa atau perubahan dalam sistem seiring waktu. Log dapat merepresentasikan file teks, peristiwa sistem, BinLog database, atau data deret waktu. Di SLS, log menggunakan model semi-terstruktur dengan lima bidang: topik, waktu, konten, sumber, dan tag. Tabel berikut mencantumkan persyaratan formatnya.

Bidang

Deskripsi

Format

Topik

SLS menggunakan bidang terpesan __topic__ untuk mengidentifikasi topik log, yang dapat membedakan log yang dihasilkan oleh layanan, pengguna, atau instans yang berbeda. Misalnya, jika sistem mencakup modul pemrosesan permintaan HTTP front-end, caching, 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. Topik log biasanya dikonfigurasi dalam konfigurasi global Konfigurasi Logtail.

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

String berukuran 0 hingga 128 byte, termasuk string kosong.

Jika Anda tidak perlu membedakan log dalam logstore, Anda dapat mengatur topik menjadi string kosong saat mengumpulkan log. String kosong merupakan topik yang valid.

Waktu

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

Stempel waktu UNIX.

Konten

Konten log, yang terdiri dari satu atau beberapa pasangan 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 ini penjelasan format Key:Value:

  • Kunci: String UTF-8 berukuran 1 hingga 128 byte, terdiri atas huruf, angka, dan garis bawah (_). Tidak boleh diawali angka. Anda tidak boleh menggunakan nama bidang terpesan berikut.

    • __time__

    • __source__

    • __topic__

    • __partition_time__

    • _extract_others_

    • __extract_others__

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

Sumber

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

String berukuran 0 hingga 128 byte.

Tag

Tag log, yang mencakup:

  • Tag kustom: Anda dapat menambahkan tag ini saat menulis log dengan memanggil operasi API PutLogs.

  • Tag sistem: Tag yang ditambahkan SLS ke log, termasuk __client_ip__ dan __receive_time__.

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

Contoh

Contoh berikut menggunakan log akses website untuk menunjukkan pemetaan antara log mentah dan model data di SLS.

  • 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.

    __source__:192.xxx.xxx.35
    __tag__:__hostname__:iZxxxxxxxxxxxxxxkw0Z
    __tag__:__path__:/opt/log.txt
    __tag__:__receive_time__:1620639668
    __topic__:
    content: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.xxx.xxx.6 Safari/537.36
  • Log yang dikumpulkan dalam mode ekspresi reguler. Konten log distrukturkan dengan mengekstraksi konten menjadi beberapa pasangan kunci-nilai berdasarkan ekspresi reguler yang dikonfigurasi.

    Contoh log akses Nginx yang diurai berisi bidang kunci-nilai berikut:

    • remote_addr: 127.0.0.1

    • request_method: GET

    • request_uri: /index.html

    • request__protocol: HTTP/1.1

    • status: 200

    • body_bytes_sent: 612

    • http_user_agent: Informasi browser Mozilla/5.0

    • http_referer: -

    • time_local: 01/Mar/2021:12:36:49 +0800

    • __source__: IP sumber log

    • __tag__:__path__: /opt/log.txt

Metrik

Data deret waktu terdiri dari pengenal metrik dan titik data. Titik-titik dengan pengenal yang sama membentuk deret waktu. Model SLS kompatibel dengan model data Prometheus. Semua data metricstore disimpan sebagai deret waktu.

image

Pengenal metrik

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 jumlah total 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 (|). Contohnya, method adalah POST, dan URL adalah /api/v1/get.

Titik data

Titik data menangkap nilai deret waktu pada momen tertentu. Setiap titik terdiri dari stempel waktu (presisi nanodetik) dan nilai double.

Struktur data

Data deret waktu menggunakan protokol penulisan pengkodean data Protobuf yang sama dengan log. Pengenal dan titik data disimpan di bidang content:

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 dengan nilai kosong (seperti app=""). Label bernilai kosong tidak valid dalam model data Prometheus dan akan 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 mendukung berbagai presisi (s, ms, us, ns) tetapi selalu dinormalisasi ke mikrodetik (us) dalam hasil kueri agar perhitungan konsisten.

1585727297293000

__value__

Nilainya.

36.0

Catatan

Bidang kustom seperti Topic, Source, atau LogTags tidak disimpan di metricstore saat ditulis melalui SDK. Untuk informasi selengkapnya, lihat Kirim metrik dengan SDK.

Contoh

Contoh berikut menunjukkan kueri untuk semua data deret waktu mentah metrik `process_resident_memory_bytes` dalam rentang waktu tertentu.

* | select * from "sls-mall-k8s-metrics.prom" where __name__ = 'process_resident_memory_bytes' limit all

Hasil kueri berisi empat kolom: __name__ (nama metrik), __labels__ (informasi label, termasuk pasangan kunci-nilai seperti cluster, instance, job, namespace, dan node), __time_nano__ (stempel waktu), dan __value__ (nilai metrik).

Event

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

Jenis bidang

Nama bidang

Wajib

Format data

Deskripsi

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

Jenis 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 konten nilai data. Nilai default adalah application/cloudevents+json.

dataschema

Tidak

URI

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

data

Tidak

JSON

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

time

Ya

Stempel waktu

Stempel waktu event, diformat sesuai RFC 3339. Contoh: 2022-10-17T11:20:45.984+0800.

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"
}

Trace

Trace mencatat pemrosesan end-to-end dari satu permintaan, termasuk semua panggilan layanan dan durasinya. Trace merepresentasikan jalur eksekusi transaksi atau proses melalui sistem terdistribusi. Sesuai standar OpenTracing, trace adalah Graf Terarah Tak Berputar (Directed Acyclic Graph/DAG) dari span, di mana setiap span merepresentasikan segmen eksekusi bernama, bertempo, dan berkelanjutan. Struktur data lengkapnya didefinisikan dalam Format data trace.