All Products
Search
Document Center

Simple Log Service:Kumpulkan log sisi klien dengan WebTracking

Last Updated:Jul 10, 2026

WebTracking menangkap perilaku pengguna di browser—seperti tampilan halaman, pembelian, dan durasi sesi—lalu mengalirkannya ke Simple Log Service (SLS) untuk dianalisis dengan perubahan kode minimal.

WebTracking mendukung dua metode ingest. Ingest terotentikasi direkomendasikan.

  • Ingest terotentikasi (direkomendasikan)
    Antarmuka depan memperoleh token STS sementara dari backend Anda. Token ini menyediakan kredensial berdurasi terbatas dengan hak istimewa minimal (AccessKey + SecurityToken) untuk permintaan log bertanda tangan ke SLS, mencegah pemalsuan dan kontaminasi data. Ideal untuk produksi.



  • Ingest tanpa autentikasi
    Antarmuka depan menulis log langsung ke titik akhir WebTracking publik tanpa kredensial. Mudah dikonfigurasi, tetapi memerlukan izin tulis anonim. Jika informasi Project atau Logstore bocor, kontaminasi data mungkin terjadi. Direkomendasikan hanya untuk pengujian.



Persiapkan sumber daya cloud

Buat sumber daya cloud yang diperlukan untuk penyimpanan log.

Langkah 1: Buat project

Project adalah unit manajemen sumber daya utama di SLS yang mengisolasi sumber daya untuk aplikasi berbeda.

Prosedur: Masuk ke Konsol Layanan Log dan klik Create Project.

Parameter:

  • Region: Pilih wilayah berdasarkan lokasi sumber log Anda. Pengaturan ini tidak dapat diubah setelah project dibuat.

  • Project Name: Masukkan nama yang unik secara global dalam Alibaba Cloud. Nama ini tidak dapat diubah setelah project dibuat.

  • Biarkan pengaturan lain pada nilai default-nya dan klik Create.

Langkah 2: Buat logstore

Logstore menyimpan log frontend yang dikumpulkan.

Prosedur: Navigasi ke project target. Di panel navigasi, pilih Log Storageimage, lalu klik +.

Parameter:

  • Logstore Name: Masukkan nama yang unik dalam project. Nama ini tidak dapat diubah nanti. Contohnya, web-tracking-logstore.

  • Logstore Type: Pilih Standard atau Query sesuai kebutuhan Anda.

  • Billing Mode:

    • Pay-by-feature: Cocok untuk skenario dengan volume log rendah atau untuk pengembangan dan pengujian.

    • Pay-by-ingested-data: Cocok untuk skenario dengan volume log stabil yang memerlukan analisis jangka panjang.

  • Data Retention Period: Default-nya 30 hari. Rentang yang didukung adalah 1 hingga 3.650 hari.

  • Biarkan pengaturan lain pada nilai default-nya dan klik OK.

Mode autentikasi STS (Direkomendasikan)

Metode ini menggunakan layanan kredensial backend untuk menghindari pengeksposan kunci di frontend. Direkomendasikan untuk produksi.

Cara kerja

Frontend meminta kredensial sementara dari layanan STS di server aplikasi Anda. SDK WebTracking menggunakan kredensial ini untuk mengunggah log. Kredensial kedaluwarsa setelah 60 menit secara default.

  1. Aplikasi frontend meminta kredensial keamanan sementara dari server aplikasi untuk mengunggah log.

  2. Setelah memvalidasi permintaan, server aplikasi menggunakan RAM user yang telah dikonfigurasi sebelumnya untuk memanggil API Alibaba Cloud STS AssumeRole dan mengasumsikan peran RAM dengan izin menulis untuk SLS.

  3. STS memvalidasi izin peran dan menerbitkan kredensial keamanan sementara yang berisi AccessKey ID, AccessKey Secret, dan token keamanan.

  4. Server aplikasi mengembalikan kredensial keamanan sementara ke aplikasi frontend.

  5. Aplikasi frontend menggunakan kredensial keamanan sementara tersebut dengan SDK WebTracking untuk mengunggah log ke logstore yang ditentukan.

Langkah 1: Konfigurasikan izin RAM

Buat identitas dengan hak istimewa minimal untuk layanan kredensial backend dan SDK frontend.

1. Buat peran RAM untuk frontend

Identitas virtual ini tidak memiliki kunci jangka panjang. Frontend mengasumsikannya sementara untuk menulis log.

1.1 Buat peran RAM

Prosedur: Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Role, lalu klik Create Role.

Konfigurasi:

  • Principal Type: Pilih Alibaba Cloud Account.

  • Principal Name: Pilih akun cloud saat ini atau tentukan akun cloud lain.

  • Klik OK dan masukkan nama peran sls-web-tracking.

1.2 Buat kebijakan penulisan log

Kebijakan ini membatasi peran hanya untuk menulis log ke Logstore yang ditentukan.

Prosedur: Di panel navigasi kiri, pilih Permission Management > Policy, lalu klik Create Policy.

Konfigurasi:

  • Gunakan editor JSON untuk menempelkan skrip berikut. Ganti <ProjectName> dan <LogstoreName> dengan nama project dan logstore aktual Anda.

    {
      "Version":"1",
      "Statement":[
        {
          "Effect":"Allow",
          "Action":[
            "log:PostLogStoreLogs",
            "log:PutLogs"
          ],
          "Resource":[
            "acs:log:*:*:project/<ProjectName>/logstore/<LogstoreName>"
          ]
        }
      ]
    }
  • Klik OK, lalu masukkan post-logs-policy sebagai Policy Name untuk membuat kebijakan.

1.3 Berikan izin penulisan log ke peran

Sambungkan kebijakan tulis dari langkah sebelumnya ke peran frontend.

Prosedur: Di panel navigasi kiri, pilih Identities > Role. Klik nama peran target untuk membuka halaman detailnya. Di tab Permission Management, klik Create Authorization.

Konfigurasi:

  • Di panel Add Permissions, cari dan pilih kebijakan kustom yang dibuat pada langkah sebelumnya (post-logs-policy).

  • Klik Authorize untuk menyambungkan kebijakan.

2. Buat pengguna RAM untuk backend

Pengguna RAM ini menyediakan pasangan AccessKey jangka panjang yang digunakan backend Anda untuk memanggil STS dan mengasumsikan peran.

2.1 Buat pengguna RAM

Prosedur:  Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Users, lalu klik Create User.

Konfigurasi:

  • Logon Name: Masukkan nama yang hanya berisi huruf, angka, titik (.), tanda hubung (-), dan garis bawah (_). Nama bisa sampai 64 karakter. Contoh: sls-token-service.

  • Access Method: Pilih Using permanent AccessKey to access.

  • Biarkan pengaturan lain pada nilai default-nya, klik OK untuk membuat pengguna, lalu simpan AccessKey ID dan AccessKey Secret.

    AccessKey Secret hanya ditampilkan sekali saat pembuatan dan tidak dapat diambil kembali nanti. Pastikan untuk segera menyimpannya di lokasi aman.
2.2 Berikan izin untuk mengasumsikan peran

Prosedur: Klik nama pengguna target untuk membuka halaman detail pengguna. Beralih ke tab Permission Management, lalu klik Create Authorization.

Konfigurasi:

  • Di bagian Policy, pilih kebijakan AliyunSTSAssumeRoleAccess.

  • Biarkan pengaturan lain pada nilai default-nya dan klik OK.

Ringkasan: Layanan backend menggunakan pasangan AccessKey pengguna RAM untuk mengasumsikan peran RAM sls-web-tracking. Proses ini menghasilkan kredensial keamanan sementara dan mengembalikannya ke aplikasi frontend. SDK WebTracking kemudian menggunakan kredensial sementara ini untuk mengunggah log secara aman.

Langkah 2: Bangun layanan STS backend

Anda harus membangun titik akhir API backend yang menerima permintaan kredensial dari frontend dan mengembalikan kredensial keamanan sementara STS. Contoh berikut menggunakan Python dan Flask.

Contoh Java, Node.js, PHP, dan Ruby tersedia di Lampiran 1: Contoh STS dalam berbagai bahasa.

1. Persiapkan lingkungan server

Integrasikan API kredensial STS ke server aplikasi yang sudah ada atau deploy secara mandiri. Persyaratan:

  • Aplikasi frontend dapat mengakses server melalui HTTP atau HTTPS.

  • Python 3 telah diinstal. Disarankan versi 3.8 atau lebih baru.

Jalankan perintah berikut untuk menginstal library yang diperlukan:

# Instal framework web Flask dan library SDK Alibaba Cloud terkait
pip3 install Flask==3.1.2
pip3 install aiohttp==3.8.4
pip3 install alibabacloud-credentials==0.3.2
pip3 install alibabacloud-sts20150401==1.1.3
pip3 install alibabacloud-tea==0.3.2
pip3 install alibabacloud-tea-openapi==0.3.7
pip3 install alibabacloud-tea-util==0.3.8
pip3 install alibabacloud-tea-xml==0.0.2

2. Tulis kode layanan STS backend

Buat titik akhir HTTP /get_sts_token untuk menghasilkan dan mengembalikan kredensial keamanan sementara STS.

2.1 Buat direktori dan file project
# Buat dan masuk ke direktori project
mkdir my_web_sample
cd my_web_sample
touch main.py
2.2 Edit file main.py

Tempelkan kode berikut ke file main.py. Ganti <YOUR_ROLE_ARN> dengan ARN peran RAM sls-web-tracking dan ganti <YOUR_ROLE_SESSION_NAME> dengan nama sesi kustom, seperti role_session_test.

import json
from flask import Flask, render_template
from alibabacloud_tea_openapi.models import Config
from alibabacloud_sts20150401.client import Client as Sts20150401Client
from alibabacloud_sts20150401 import models as sts_20150401_models
from alibabacloud_credentials.client import Client as CredentialClient

app = Flask(__name__)

# ================== Konfigurasi Pengguna ==================
# Ganti dengan ARN peran RAM Anda. Format: acs:ram::${accountId}:role/${roleName}
role_arn_for_sls_upload = '<YOUR_ROLE_ARN>'

# Tetapkan nama sesi peran. Kami merekomendasikan menggunakan pengenal unik untuk sumber permintaan.
role_session_name = '<YOUR_ROLE_SESSION_NAME>'  # contoh, sls-web-session-001

# Wilayah layanan STS, seperti cn-hangzhou.
region_id = 'cn-hangzhou'
# ==============================================

@app.route("/")
def hello_world():
    return render_template('index.html')

@app.route('/get_sts_token', methods=['GET'])
def get_sts_token():
    """
    Titik Akhir: /get_sts_token
    Metode: GET
    Fungsi: Panggil API STS AssumeRole untuk mendapatkan token keamanan sementara.
    Mengembalikan: Objek Credentials dalam format JSON.
    """
    # Jika Anda tidak menentukan parameter saat menginisialisasi CredentialClient, rantai kredensial default akan digunakan.
    # Saat menjalankan program secara lokal, tentukan pasangan AccessKey dengan menggunakan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    # Saat berjalan di ECS, ECI, atau Container Service, tentukan instance RAM role dengan menggunakan variabel lingkungan ALIBABA_CLOUD_ECS_METADATA. SDK secara otomatis memperoleh kredensial sementara STS.
    config = Config(
        region_id=region_id,
        credential=CredentialClient()
    )
    sts_client = Sts20150401Client(config=config)

    # Bangun permintaan AssumeRole
    assume_role_request = sts_20150401_models.AssumeRoleRequest(
        role_arn=role_arn_for_sls_upload,
        role_session_name=role_session_name,
    )
      
    # Panggil STS untuk mendapatkan kredensial sementara
    response = sts_client.assume_role(assume_role_request)
    
    token = json.dumps(response.body.credentials.to_map())
    return token


app.run(host="0.0.0.0", port=80)

3. Jalankan layanan backend

Jalankan perintah berikut untuk memulai layanan dengan pasangan AccessKey pengguna RAM yang dibuat pada Langkah 1:

ALIBABA_CLOUD_ACCESS_KEY_ID=<YOUR_AK_ID> 
ALIBABA_CLOUD_ACCESS_KEY_SECRET=<YOUR_AK_SECRET> 
python3 main.py

4. Verifikasi titik akhir

Kirim permintaan uji:

curl http://<your_instance_public_ip_address>/get_sts_token

Contoh respons sukses:

{
  "AccessKeyId": "STS.L4xxxxxx",
  "AccessKeySecret": "Dcyyyyyyyy",
  "Expiration": "2025-04-05T10:30:00Z",
  "SecurityToken": "CAISzxxxxxxxxxxx..."
}

Poin verifikasi:

  • Respons berisi bidang AccessKeyIdAccessKeySecret, dan SecurityToken.

  • AccessKeyId dimulai dengan STS., menunjukkan bahwa ini adalah kredensial sementara.

  • Bidang Expiration menunjukkan waktu kedaluwarsa dan harus dalam rentang yang wajar.

Langkah 3: Integrasikan SDK WebTracking

Integrasikan SDK ke aplikasi frontend Anda dan konfigurasikan plugin STS untuk pengunggahan log yang aman. Contoh lengkap tersedia di Lampiran 2: Contoh project aplikasi frontend.

1. Instal dependensi SDK

Gunakan npm untuk menginstal SDK WebTracking dan plugin STS-nya:

npm install --save @aliyun-sls/web-track-browser
npm install --save @aliyun-sls/web-sts-plugin

2. Inisialisasi SDK dan konfigurasikan STS

Buat file JavaScript (misalnya, index.js) untuk menginisialisasi instance SlsTracker dan mengonfigurasi plugin STS.

2.1 Impor modul inti
import SlsTracker from "@aliyun-sls/web-track-browser";
import createStsPlugin from "@aliyun-sls/web-sts-plugin";
2.2 Konfigurasikan informasi SLS

Tentukan parameter berikut berdasarkan informasi sumber daya aktual Anda:

const opts = {
  host: "${endpoint}", // Titik akhir untuk wilayah Anda. Contoh: cn-hangzhou.log.aliyuncs.com
  project: "${project}", // Nama project Anda.
  logstore: "${logstore}", // Nama logstore Anda.
  time: 10, // Interval waktu pengiriman log, dalam detik. Default: 10.
  count: 10, // Jumlah log yang dikirim dalam satu batch. Default: 10.
  topic: "topic", // Topik log kustom.
  source: "source",
  tags: {
    tags: "tags",
  },
};
2.3 Konfigurasikan plugin STS

Frontend tidak boleh menyimpan pasangan AccessKey jangka panjang. Gunakan plugin STS untuk mengambil dan memperbarui token sementara secara otomatis dari backend Anda.

const stsOpt = {
  accessKeyId: "",
  accessKeySecret: "",
  securityToken: "",
  
  // Fungsi asinkron untuk memperbarui token STS.
  refreshSTSToken: () =>
    new Promise((resolve, reject) => {
      const xhr = new window.XMLHttpRequest();
      xhr.open("GET", "http://<your_instance_public_ip_address>/get_sts_token", true);
      xhr.send();
      
      xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
          if (xhr.status === 200) {
            let credential = JSON.parse(xhr.response);
            // Perbarui kredensial sementara.
            stsOpt.accessKeyId = credential.AccessKeyId;
            stsOpt.accessKeySecret = credential.AccessKeySecret;
            stsOpt.securityToken = credential.SecurityToken;
            resolve();
          } else {
            reject("Wrong status code.");
          }
        }
      };
    }),
   // (Opsional) Interval pembaruan kustom. Default: 5 menit (300.000 ms).
  // refreshSTSTokenInterval: 300000,
  
  // (Opsional) Periode sebelum token kedaluwarsa untuk memicu pembaruan, dalam milidetik.
  // stsTokenFreshTime: undefined,
};
2.4 Inisialisasi pelacak dan aktifkan plugin STS
// Buat instance pelacak.
const tracker = new SlsTracker(opts);

// Buat dan daftarkan plugin STS.
const stsPlugin = createStsPlugin(stsOpt);
tracker.useStsPlugin(stsPlugin);

3. Laporkan log

Di halaman web Anda, gunakan binding event DOM standar untuk menangkap tindakan pengguna dan panggil metode tracker.send() untuk mengirim log kustom.

3.1 Dengarkan interaksi pengguna

Contoh: Lacak event login pengguna.

document.getElementById("loginButton").addEventListener("click", () => {
  const username = document.getElementById("username").value;
  
  tracker.send({
    eventType: "login",
    username: username,
  });
  
  console.log("Login event tracked for:", username);
});
3.2 Referensikan skrip

Pastikan file JavaScript dimuat dengan benar. Kami merekomendasikan mengimpornya sebagai modul:

<!DOCTYPE html>
<html lang="en-US">
<head>
  <meta charset="UTF-8" />
  <title>Contoh Pemantauan Perilaku Pengguna</title>
</head>
<body>
  <input type="text" id="username" placeholder="Masukkan username" />
  <button id="loginButton">Login</button>

  <!-- Gunakan skrip modular -->
  <script type="module" src="/static/js/index.js"></script>
</body>
</html>

4. Jalankan dan uji

Jalankan frontend, akses halaman, dan picu event perilaku pengguna untuk memverifikasi bahwa SDK mengumpulkan dan mengunggah log.

  1. Jalankan layanan frontend dan akses halaman frontend di http://<your_instance_public_ip_address>.

  2. Simulasikan tindakan pengguna, seperti mengklik tombol login.

  3. Buka alat developer di browser Anda (F12):

    • Di tab Console, periksa apakah output menampilkan Login event tracked for: xxx.

    • Di tab Network, periksa adanya permintaan POST yang berhasil ke cn-xxx.log.aliyuncs.com.

5. Verifikasi ingest log

Konfirmasi bahwa log frontend ditulis ke Logstore SLS.

  1. Masuk ke Konsol SLS.

  2. Di daftar Projects, klik project target.

  3. Di halaman Logstores, klik image di sebelah nama logstore target untuk memperluasnya.

  4. Klik image untuk membuka halaman Search & Analyze.

  5. Klik Enable. Di panel yang muncul di sebelah kanan, klik Automatic Index Generation.

  6. Sistem secara otomatis mengidentifikasi struktur log dan menghasilkan konfigurasi bidang yang direkomendasikan. Tinjau konfigurasi dan klik OK.

  7. Setelah pengindeksan diaktifkan, tunggu sekitar satu menit agar indeks berlaku. Anda kemudian dapat mengkueri log.

Ingest tanpa autentikasi

Metode ini mengaktifkan WebTracking pada Logstore untuk memberikan akses tulis publik. Klien mengunggah log langsung tanpa kredensial melalui SDK, permintaan HTTP, atau tag HTML.

Penting

Setelah mengaktifkan WebTracking, pengunggahan log tidak memerlukan autentikasi. Jika informasi project atau logstore Anda dikompromikan, penyerang dapat mencemari data Anda. Gunakan fitur ini hanya di lingkungan pengujian.

Setelah Anda mengaktifkan WebTracking, antarmuka ACL Logstore mengembalikan HTTP 200 untuk permintaan tulis anonim. Ini adalah perilaku yang diharapkan untuk ingest log anonim dan tidak menunjukkan kerentanan keamanan tingkat tinggi. Namun, ini membawa risiko kontaminasi data tingkat rendah. Untuk layanan dengan persyaratan integritas data ketat, aktifkan mode autentikasi STS. Untuk menonaktifkan akses tulis anonim, matikan sakelar WebTracking di properti Logstore. Setelah menonaktifkan WebTracking, pastikan aplikasi frontend Anda telah mengintegrasikan metode autentikasi, seperti plugin STS.

Langkah 1: Aktifkan WebTracking

  1. Masuk ke Konsol SLS.

  2. Di bagian Projects, klik project target.

  3. Di tab Log Storage > Logstores, temukan logstore target dan pilih icon > Modify.

  4. Di halaman Logstore Attributes, klik Modify.

  5. Aktifkan WebTracking dan klik Save.

Langkah 2: Konfigurasikan ingest tanpa autentikasi dan unggah log

SLS mendukung empat metode integrasi berikut:

  • Integrasikan SDK WebTracking: Impor SDK WebTracking ke kode frontend Anda dan panggil metode send() untuk mengirim log terstruktur. Metode ini ideal untuk aplikasi web dan program mini modern.

  • Permintaan HTTP GET: Tambahkan data log ke parameter URL dan unggah langsung dengan permintaan GET. Metode ini mudah diimplementasikan dan ideal untuk debugging atau pengumpulan ringan sejumlah kecil log.

  • Tag HTML (img): Gunakan atribut <img> src untuk memulai permintaan, dengan informasi log dikodekan dalam URL. Metode ini tidak memerlukan JavaScript, secara inheren mendukung permintaan lintas domain, dan ideal untuk halaman statis atau pelacakan email.

  • Tulisan batch OpenAPI: Panggil OpenAPI SLS dengan mengirim permintaan POST. Metode ini ideal untuk mengunggah data dalam jumlah besar dari server.

SDK WebTracking

Dalam mode ingest tanpa autentikasi, Anda tidak perlu mengonfigurasi plugin STS. Anda dapat menginisialisasi SDK secara langsung.

Instal dependensi

# Untuk browser
npm install --save @aliyun-sls/web-track-browser

# Untuk program mini
npm install --save @aliyun-sls/web-track-mini

Konfigurasikan informasi SLS dasar

import SlsTracker from '@aliyun-sls/web-track-browser'

const opts = {
  host: '${host}', // Titik akhir SLS untuk wilayah Anda. Contoh: cn-hangzhou.log.aliyuncs.com
  project: '${project}', // Nama project.
  logstore: '${logstore}', // Nama logstore.
  time: 10, // Interval waktu pengiriman log, dalam detik. Nilai default: 10.
  count: 10, // Jumlah log yang dikirim dalam satu batch. Nilai default: 10.
  topic: 'topic',// Topik log kustom.
  source: 'source',
  tags: {
    tags: 'tags',
  },
}

const tracker = new SlsTracker(opts)  // Buat objek SlsTracker

Unggah log

Saat Anda mengunggah satu log, log tersebut direpresentasikan sebagai satu object. Saat Anda mengunggah beberapa log, struktur datanya adalah array dari object.

Log tunggal

tracker.send({
  eventType:'view_product',
  productName: 'Tablet',
  price: 500
})

Unggah satu log segera (parameter time dan count diabaikan):

tracker.sendImmediate({
  eventType:'view_product',
  productName: 'Tablet',
  price: 500
})

Log batch

tracker.sendBatchLogs([
  {
    eventType: 'view_product',
    productName: 'Tablet',
    price: 500
  },
  {
    eventType: 'view_product',
    productName: 'Laptop',
    price: 1200
  }
])

Unggah batch log segera (parameter time dan count diabaikan):

tracker.sendBatchLogsImmediate([
  {
    eventType:'view_product',
    productName: 'Tablet',
    price: 500
  },
  {
    eventType:'view_product',
    productName: 'Laptop',
    price: 1200
  }
])

Permintaan HTTP GET

Kirim permintaan GET langsung ke titik akhir ingest SLS dengan data log dikodekan sebagai parameter URL.

curl --request GET 'https://${project}.${host}/logstores/${logstore}/track?APIVersion=0.6.0&key1=val1&key2=val2'
  • host: Titik akhir SLS untuk wilayah Anda. Titik akhir yang tersedia tercantum di Endpoints.

  • key1=val1&key2=val2: Nama bidang dan nilai (pasangan kunci-nilai) yang akan diunggah ke SLS. Anda dapat mengatur beberapa bidang. Panjang total harus kurang dari 16 KB.

Tag HTML (img)

Sisipkan tag <img> tidak terlihat di halaman frontend. Browser secara otomatis memuat gambar, yang memicu pengunggahan log.

<!-- Kumpulkan bidang kustom -->
<img src='https://${project}.${host}/logstores/${logstore}/track.gif?APIVersion=0.6.0&key1=val1&key2=val2'/>
<!-- Juga kumpulkan User-Agent dan Referer -->
<img src='https://${project}.${host}/logstores/${logstore}/track_ua.gif?APIVersion=0.6.0&key1=val1&key2=val2'/>
Catatan

Menggunakan track_ua.gif secara otomatis mengumpulkan informasi User-Agent dan Referer. Untuk mencegah caching browser, tambahkan parameter timestamp.

OpenAPI: Tulisan batch

Untuk mengunggah log dalam jumlah besar, panggil API PutWebtracking.

Langkah 3: Verifikasi ingest log

Verifikasi bahwa log frontend mencapai Logstore SLS.

  1. Masuk ke Konsol SLS.

  2. Di daftar Projects, klik project target.

  3. Di halaman logstore, klik image di sebelah nama logstore target untuk memperluasnya.

  4. Klik image untuk membuka halaman Search & Analyze.

  5. Klik Enable. Di panel yang terbuka di sebelah kanan, klik Automatic Index Generation.

  6. Sistem secara otomatis mengidentifikasi struktur log dan menghasilkan konfigurasi bidang yang direkomendasikan. Konfirmasi konfigurasi dan klik OK.

  7. Setelah pengindeksan diaktifkan, tunggu sekitar satu menit untuk memastikan indeks berlaku. Anda kemudian dapat mengkueri log.

Kuota dan batasan

Untuk memastikan stabilitas layanan, SLS WebTracking menerapkan kuota berikut untuk pengunggahan log dari browser:

  • Ukuran data maksimum per permintaan: 3 MB

  • Jumlah entri log maksimum per permintaan: 4.096

WebTracking tidak mendukung daftar putih alamat IP atau pembatasan sumber akses. Fitur ini dirancang untuk mengumpulkan data perilaku dan tidak mencakup mekanisme penyaringan IP sumber atau daftar putih bawaan. Jika Anda memerlukan kontrol akses, gunakan mode autentikasi STS atau arahkan pengunggahan log melalui server proxy backend.

Persyaratan jaringan: WebTracking mengharuskan browser dapat mengakses langsung titik akhir publik SLS Alibaba Cloud melalui internet. Jika kebijakan jaringan atau pembatasan lintas asal mencegah klien terhubung langsung ke titik akhir SLS, WebTracking tidak dapat digunakan. Dalam kasus seperti itu, pertimbangkan untuk mengarahkan pengunggahan log melalui server proxy backend.

Batas QPS: WebTracking memberlakukan batas QPS pada ingest log. Untuk nilai spesifik, lihat dokumentasi produk SLS atau konsol. Untuk skenario pelaporan lintas batas, ketidakstabilan jaringan dapat menyebabkan kegagalan pengunggahan. Evaluasi kelayakan dan risiko stabilitas pengunggahan frekuensi tinggi dari satu alamat IP (misalnya, 300 permintaan per detik) sebelum deployment ke produksi.

Penagihan

Fitur WebTracking gratis, tetapi operasi penulisan log, penyimpanan, dan kueri dikenai biaya.

1. Mode penagihan

Saat Anda membuat Logstore, Anda dapat memilih mode penagihan:

  • Pay-by-ingested-data: Cocok untuk kasus penggunaan kompleks yang memerlukan penyimpanan log jangka panjang, analisis, pemrosesan, dan konsumsi di berbagai skenario.

  • Pay-by-feature: Cocok untuk kasus penggunaan ringan atau bertahap yang memerlukan kontrol biaya fleksibel.

2. Item yang dapat ditagih inti

Pay-by-ingested-data

  • Volume data mentah yang diingest: Ini adalah biaya utama, ditagih berdasarkan ukuran (dalam GB) log mentah yang tidak dikompresi. Biaya ini mencakup penulisan data, pengindeksan, panggilan API, dan penyimpanan panas bulan pertama (30 hari).

  • Biaya penyimpanan: Penyimpanan lebih dari 30 hari dikenai biaya tambahan.

Pay-by-feature

  • Trafik indeks: Biaya satu kali berlaku saat data ditulis, berdasarkan ukuran tidak dikompresi dari log mentah. Ini adalah prasyarat agar log dapat dicari.

  • Biaya penyimpanan: Ditagih sejak hari pertama berdasarkan ukuran data yang dikompresi.

  • Trafik baca dan tulis, jumlah baca dan tulis, Shard aktif, dan lainnya.

FAQ

Impor CDN

Ya. Metode ini ideal untuk project frontend ringan, halaman statis, atau skenario validasi cepat tanpa proses build npm.

Risiko versi usang: Versi terbaru yang tersedia di CDN adalah 0.3.5. Versi ini mungkin tidak memiliki fitur yang tersedia di versi terbaru di npm.

Cara mengimpor:

  1. Tambahkan referensi skrip berikut ke tag <head> atau <body> file HTML Anda.

    <script src="https://g.alicdn.com/sls/sls-js-sdk/0.3.5/web-track-browser.js"></script>
  2. Setelah SDK dimuat, inisialisasi instance pelacak dengan objek global window.SLS_Tracker:

    if (window.SLS_Tracker) {
      const tracker = new SLS_Tracker({
        host: 'your-project.cn-hangzhou.log.aliyuncs.com',
        project: 'your-project',
        logstore: 'your-logstore',
        time: 10,
        count: 10
      });
    }
    

Apa perbedaan antara @aliyun-sls/web-browser dan @aliyun-sls/web-track-browser?

@aliyun-sls/web-browser

@aliyun-sls/web-track-browser

Format log

LogGroup (format log SLS terstruktur)

JSON bebas (pasangan kunci-nilai fleksibel)

Pengumpulan otomatis

Tidak didukung

Tidak didukung

Kedua SDK tidak secara otomatis mengumpulkan error JavaScript atau data permintaan jaringan. Anda harus menulis kode secara manual untuk menangkap dan melaporkan event ini.

Pilih @aliyun-sls/web-browser jika kasus penggunaan Anda memerlukan format LogGroup untuk kompatibilitas dengan pipeline pemrosesan log SLS. Pilih @aliyun-sls/web-track-browser jika Anda lebih suka format JSON bebas yang fleksibel dengan overhead pengembangan lebih rendah.

Dokumentasi terkait

Lampiran 1: Contoh STS multibahasa

Alibaba Cloud menyediakan contoh layanan STS open-source dalam Java, Node.js, PHP, dan Ruby. Setiap contoh memanggil API AssumeRole untuk menerbitkan kredensial sementara ke aplikasi frontend.

Project contoh: Java, Node.js, PHP, Ruby

Untuk menggunakan contoh, modifikasi file config.json, lalu ikuti instruksi untuk bahasa Anda untuk memulai layanan.

Bahasa

Port

Java

7080

Node.js

3000

PHP

8000

Ruby

4567

Lampiran 2: Contoh project frontend

Browser: simple-web-tracking-sts.zip.