全部产品
Search
文档中心

Simple Log Service:Mengelola toko

更新时间:Nov 05, 2025

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

  • Data log (Log): Representasi abstrak dari perubahan dalam sistem seiring waktu. Isinya adalah kumpulan operasi terurut pada objek tertentu dan hasil dari operasi tersebut. Dalam arti luas, ini mencakup hampir semua jenis data. Secara default, Anda dapat menggunakan Logstore.

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

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 (__topic__) untuk mengidentifikasi topik log. Ini membantu membedakan log dari layanan, pengguna, atau instans yang berbeda. Misalnya, jika Sistem A memiliki modul untuk penanganan permintaan HTTP frontend, caching, pemrosesan logika, dan penyimpanan, atur topik untuk log setiap modul, seperti http_module, cache_module, logic_module, dan store_module. Setelah log dikumpulkan ke dalam Logstore yang sama, gunakan topik untuk dengan cepat mengidentifikasi asalnya. Atur topik log di Pengaturan Global dari konfigurasi pengumpulan.

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 (__time__) mengidentifikasi waktu log. Untuk informasi lebih lanjut, lihat Bidang Cadangan.

Stempel waktu UNIX.

Konten log

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

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 Key:Value adalah sebagai berikut:

  • Key: Nama bidang. Key harus berupa string UTF-8 berukuran 1 hingga 128 byte yang hanya berisi huruf, garis bawah, dan angka. Key tidak boleh dimulai dengan angka. Key tidak boleh berupa salah satu bidang cadangan berikut:

    • __time__

    • __source__

    • __topic__

    • __partition_time__

    • _extract_others_

    • __extract_others__

  • Value: Nilai bidang. Value bisa berupa string apa pun hingga ukuran 1 MB.

Sumber log

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

String berukuran 0 hingga 128 byte.

Tag log

Tag log, yang meliputi hal-hal berikut:

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

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

Format kamus di mana key dan value adalah string. Dalam log, tag ditampilkan dengan awalan __tag__:.

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

image

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 {key}#$#{value}|{key}#$#{value}|{key}#$#{value}.

Catatan
  • Urutkan key label secara alfabetis.

  • Kami sarankan agar Anda tidak menulis label dengan nilai string kosong. Misalnya, jika informasi label adalah app#$#|controller_class#$#nginx, menulis label dengan key `app` ke Metricstore dapat menyebabkan kesalahan 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). 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

image

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

specversion

Ya

String

Nilai default adalah 1.0, yang sesuai dengan spesifikasi CloudEvents.

id

Ya

String

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

source

Ya

String

Konteks di mana peristiwa terjadi, seperti sumber peristiwa atau instans yang menerbitkan peristiwa tersebut.

type

Ya

String

Tipe peristiwa, seperti sls.alert.

subject

Tidak

String

Subjek dari peristiwa. Bidang ini melengkapi bidang source, misalnya dengan mendeskripsikan objek yang memicu peristiwa tersebut.

datacontenttype

Tidak

String

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

dataschema

Tidak

URI

Skema yang harus dipatuhi oleh bidang data. Nilai default adalah kosong.

data

Tidak

JSON

Konten peristiwa spesifik. Formatnya bervariasi berdasarkan sumber dan jenis peristiwa.

time

Ya

Timestamp

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

Bidang ekstensi

title

Ya

String

Judul peristiwa.

message

Ya

String

Deskripsi peristiwa.

status

Ya

String

Status peristiwa. Nilai valid:

  • ok

  • info

  • warning

  • error

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.