全部产品
Search
文档中心

Simple Log Service:Kumpulkan log frontend dengan WebTracking

更新时间:Oct 31, 2025

WebTracking mengumpulkan dan menganalisis perilaku pengguna di peramban, seperti tampilan halaman, riwayat pembelian, atau durasi sesi. Data aktivitas ini disalurkan ke Layanan Log Sederhana (SLS) untuk analisis perilaku dan optimasi bisnis, hanya memerlukan perubahan minor pada kode aplikasi Anda.

WebTracking menawarkan dua metode ingest, dengan ingest terotentikasi sebagai metode utama dan direkomendasikan.

  • Ingest terotentikasi (direkomendasikan)
    Aplikasi frontend mendapatkan kredensial sementara dari layanan backend. Layanan ini memanggil Layanan Token Keamanan Alibaba Cloud (STS) untuk menghasilkan token yang berisi ID AccessKey jangka pendek, Rahasia AccessKey, dan kebijakan dengan izin terbatas. Aplikasi menggunakan kredensial ini untuk menandatangani permintaan dan mengunggah log ke SLS. Kombinasi kredensial jangka pendek dan prinsip hak istimewa minimal secara efektif mengurangi risiko seperti pemalsuan log dan kontaminasi data, bahkan jika konfigurasi frontend terpapar.

  • Ingest anonim
    Aplikasi frontend mengunggah log langsung ke titik akhir WebTracking publik tanpa otentikasi. Meskipun mudah dikonfigurasi, pendekatan ini memerlukan pemberian izin tulis publik ke logstore. Paparan apa pun dari detail proyek atau logstore dapat menyebabkan penyalahgunaan dan kontaminasi data. Oleh karena itu, metode ini cocok hanya untuk lingkungan pengujian.

Siapkan sumber daya cloud

Sebelum memulai, buat sumber daya yang diperlukan untuk penyimpanan dan manajemen log.

Langkah 1: Buat proyek

Proyek adalah unit utama manajemen sumber daya di SLS. Ini membantu Anda mengisolasi sumber daya untuk aplikasi yang berbeda.

Untuk membuat proyek, masuk ke Konsol SLS dan klik Buat Proyek.

Konfigurasi:

  • Region: Pilih wilayah berdasarkan sumber log Anda. Anda tidak dapat mengubahnya setelah dibuat.

  • Project Name: Harus unik secara global dalam Alibaba Cloud dan tidak dapat diubah setelah dibuat.

  • Simpan nilai default untuk parameter lainnya dan klik Create.

Langkah 2: Buat logstore

Logstore adalah unit dasar untuk penyimpanan log. Ini berfungsi sebagai tujuan untuk semua log frontend yang diunggah.

Untuk membuat logstore, buka proyek target. Di panel navigasi sisi kiri, pilih imageLog Storage, lalu klik +.

Konfigurasi:

  • Logstore Name: Nama tersebut harus unik dalam proyek. Nama ini tidak dapat diubah setelah logstore dibuat. Sebagai contoh, web-tracking-logstore.

  • Logstore Type: Pilih Standard atau Query.

  • Billing Mode:

    • Pay-by-feature: Cocok untuk volume log kecil atau kasus penggunaan pengembangan dan pengujian.

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

  • Data Retention Period: Default adalah 30 hari (mendukung 1 hingga 3650 hari).

  • Simpan nilai default untuk parameter lainnya dan klik OK.

Ingest terotentikasi (direkomendasikan)

Pendekatan ini mengurangi risiko keamanan paparan kunci di sisi klien dengan menggunakan layanan backend untuk menerbitkan kredensial sementara. Ini adalah solusi yang direkomendasikan untuk lingkungan produksi.

Cara kerjanya

Pendekatan ini menghindari penyimpanan kunci jangka panjang di sisi klien. Sebaliknya, aplikasi frontend mendapatkan kredensial sementara dari layanan backend Anda, yang pada gilirannya memanggil API STS untuk menghasilkannya. SDK WebTracking kemudian menggunakan kredensial ini untuk mengunggah log. Kredensial ini secara otomatis kedaluwarsa setelah durasi tertentu (60 menit secara default), memastikan akses aman dan terbatas waktu.

  1. Klien Meminta Kredensial: Aplikasi frontend meminta kredensial akses sementara dari server aplikasi untuk mengunggah log.

  2. Server Memvalidasi Permintaan dan Mendapatkan Kredensial Sementara: Setelah memvalidasi permintaan, server aplikasi menggunakan identitas Pengguna RAM yang telah dikonfigurasi sebelumnya untuk memanggil API AssumeRole untuk mengasumsikan Peran RAM yang memiliki izin untuk menulis ke SLS.

  3. STS Menerbitkan Kredensial Sementara: Setelah memverifikasi izin peran, STS menghasilkan kredensial sementara yang berisi ID AccessKey, Rahasia AccessKey, dan token STS.

  4. Server Mengirim Kredensial ke Klien: Server aplikasi mengembalikan kredensial sementara ke aplikasi frontend.

  5. Klien Mengunggah Log: Klien menggunakan kredensial sementara untuk mengunggah log yang dikumpulkan ke logstore yang ditentukan melalui SDK WebTracking.

Langkah 1: Konfigurasikan izin RAM

Langkah ini menciptakan identitas dan izin yang aman untuk layanan kredensial backend dan SDK frontend, mengikuti prinsip hak istimewa minimal.

1. Buat peran RAM untuk aplikasi frontend untuk diasumsikan

Peran ini adalah identitas virtual tanpa kunci jangka panjang, yang aplikasi Anda asumsikan sementara untuk mendapatkan izin mengunggah log.

1.1 Buat peran RAM

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

Konfigurasi:

  • Principal Type: Pilih Cloud Account.

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

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

1.2 Buat kebijakan yang memberikan izin tulis saja

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

Di panel navigasi sisi kiri, pilih Permissions > Policies, lalu klik Create Policy.

Konfigurasi:

  • Di tab JSON, tempel skrip berikut. Ganti <ProjectName> dan <LogstoreName> dengan nama proyek dan nama logstore aktual Anda.

    {
      "Version":"1",
      "Statement":[
        {
          "Effect":"Allow",
          "Action":[
            "log:PostLogStoreLogs",
            "log:PutLogs"
          ],
          "Resource":[
            "acs:log:*:*:project/<ProjectName>/logstore/<LogstoreName>"
          ]
        }
      ]
    }
  • Klik OK. Masukkan nama kebijakan post-logs-policy dan klik OK.

1.3 Berikan izin kepada peran RAM untuk mengunggah log

Lampirkan kebijakan izin tulis yang dibuat pada langkah sebelumnya ke peran yang akan diasumsikan oleh frontend.

Di panel navigasi sisi kiri, pilih Identities > Roles. Klik nama peran target untuk masuk ke halaman detail peran. Di halaman Permissions, klik Grant Permission.

Konfigurasi:

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

  • Klik Grant Permissions.

2. Buat pengguna RAM untuk layanan backend

Layanan backend Anda akan menggunakan pengguna ini dengan AccessKey jangka panjang untuk memanggil layanan STS dan mengasumsikan peran.

2.1 Buat pengguna RAM

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

Konfigurasi:

  • Logon Name: Hanya mendukung huruf, angka, titik (.), tanda hubung (-), dan garis bawah (_), hingga 64 karakter. Sebagai contoh, sls-token-service.

  • Access Mode: Pilih Using permanent AccessKey to access.

  • Simpan nilai default untuk parameter lainnya. Klik OK untuk membuat pengguna. Simpan ID AccessKey dan Rahasia AccessKey.

    Rahasia AccessKey hanya ditampilkan sekali saat pembuatan dan tidak dapat diambil nanti. Pastikan menyimpannya di lokasi yang aman segera.
2.2 Berikan izin kepada pengguna RAM untuk mengasumsikan peran

Klik nama pengguna target untuk masuk ke halaman detail pengguna. Beralih ke tab Permissions dan klik Grant Permission.

Konfigurasi:

  • Di bagian Policy, pilih kebijakan AliyunSTSAssumeRoleAccess.

  • Simpan nilai default untuk parameter lainnya. Klik Grant Permissions.

Ringkasan: Layanan backend menggunakan Pengguna RAM (dengan AccessKey-nya) untuk mengasumsikan peran sls-web-tracking, menghasilkan kredensial keamanan sementara yang dikembalikan ke aplikasi frontend. SDK WebTracking kemudian menggunakan kredensial sementara ini untuk mengunggah log secara aman.

Langkah 2: Bangun layanan kredensial STS sementara backend

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

Untuk informasi tentang cara mengimplementasikan layanan dalam bahasa lain, seperti Java atau Node.js, berdasarkan tumpukan teknologi Anda, lihat Lampiran 1: Contoh STS dalam beberapa bahasa.

1. Siapkan lingkungan server

Dalam lingkungan produksi, layanan kredensial STS dapat diintegrasikan ke dalam server aplikasi yang ada atau diterapkan sebagai titik akhir mandiri. Terlepas dari pendekatan yang digunakan, server host harus memenuhi persyaratan berikut:

  • Aplikasi frontend dapat mengakses server melalui HTTP atau HTTPS.

  • Python 3 diinstal. Versi 3.8 atau lebih baru direkomendasikan.

Jalankan perintah berikut untuk menginstal dependensi yang diperlukan untuk memanggil API STS Alibaba Cloud.

# Instal framework web Flask dan dependensi SDK Alibaba Cloud
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 STS sementara.

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

Tempel kode berikut ke dalam file main.py. Ganti <YOUR_ROLE_ARN> dengan ARN dari peran RAM sls-web-tracking. 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. Pengidentifikasi unik untuk sumber permintaan direkomendasikan.
role_session_name = '<YOUR_ROLE_SESSION_NAME>'  # Misalnya, sls-web-session-001

# Wilayah tempat layanan STS berada, misalnya, ap-southeast-1.
region_id = 'ap-southeast-1'
# ==============================================

@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 AssumeRole STS untuk mendapatkan token keamanan sementara
    Mengembalikan: Objek Kredensial dalam format JSON
    """
    # Jika Anda tidak menentukan parameter saat menginisialisasi CredentialClient, rantai kredensial default digunakan.
    # Saat menjalankan program secara lokal, tentukan pasangan AccessKey menggunakan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
    # Saat menjalankan program di ECS, ECI, atau Container Service, tentukan peran instans menggunakan variabel lingkungan ALIBABA_CLOUD_ECS_METADATA. SDK secara otomatis mendapatkan kredensial STS sementara.
    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. Mulai layanan backend

Jalankan perintah berikut. Gunakan pasangan AccessKey dari pengguna RAM yang dibuat sebelumnya.

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

4. Verifikasi bahwa titik akhir berfungsi

Kirim permintaan uji:

curl http://<your_server_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 mencakup bidang AccessKeyId, AccessKeySecret, dan SecurityToken.

  • AccessKeyId dimulai dengan STS., yang menunjukkan kredensial sementara.

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

Langkah 3: Integrasikan SDK WebTracking ke dalam frontend Anda

Integrasikan SDK ke dalam aplikasi frontend Anda dan konfigurasikan plugin STS untuk otorisasi aman dan pengunggahan log. Untuk proyek sampel lengkap, lihat Lampiran II: Proyek Aplikasi Frontend Sampel.

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 otentikasi STS

Dalam proyek frontend Anda, buat file JavaScript, seperti index.js, untuk menginisialisasi kolektor log. File ini menginisialisasi instance SlsTracker dan mengonfigurasi plugin kredensial sementara 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 dasar

Isi parameter berikut berdasarkan informasi sumber daya aktual Anda:

const opts = {
  host: "${endpoint}", // Titik akhir wilayah layanan Anda. Misalnya, ap-southeast-1.log.aliyuncs.com
  project: "${project}", // Nama proyek
  logstore: "${logstore}", // Nama logstore
  time: 10, // Interval pengiriman log, dalam detik. Default adalah 10.
  count: 10, // Jumlah log yang dikirim dalam satu batch. Default adalah 10.
  topic: "topic", // Topik log kustom
  source: "source",
  tags: {
    tags: "tags",
  },
};
2.3 Konfigurasikan plugin STS untuk otorisasi aman

Untuk menghindari paparan AccessKey jangka panjang di sisi klien, aplikasi malah mendapatkan kredensial sementara (token STS) dari layanan backend. Plugin STS yang disediakan mengotomatiskan proses pembaruan dinamis kredensial ini sebelum kedaluwarsa.

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_ECS_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("Kode status salah.");
          }
        }
      };
    }),
   // (Opsional) Interval pembaruan kustom. Default adalah 5 menit (300,000 ms).
  // refreshSTSTokenInterval: 300000,
  
  // (Opsional) Tetapkan berapa lama sebelum kedaluwarsa token untuk memperbarui (dalam milidetik).
  // stsTokenFreshTime: undefined,
};
2.4 Inisialisasi instance 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. Kirim log dari kode aplikasi Anda

Di halaman web Anda, gunakan pengikatan acara Model Objek Dokumen (DOM) standar untuk menangkap tindakan pengguna dan panggil metode tracker.send() untuk mengirim log kustom.

3.1 Dengarkan acara interaksi pengguna

Contoh: Lacak acara login pengguna

document.getElementById("loginButton").addEventListener("click", () => {
  const username = document.getElementById("username").value;
  
  tracker.send({
    eventType: "login",
    username: username,
  });
  
  console.log("Acara login dilacak untuk:", username);
});
3.2 Referensi skrip dalam HTML

Pastikan file JavaScript dimuat dengan benar. Impor 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 nama pengguna" />
  <button id="loginButton">Masuk</button>

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

4. Jalankan dan uji aplikasi

Mulai dan akses halaman frontend, kemudian picu acara perilaku pengguna agar SDK WebTracking mulai mengumpulkan dan mengunggah log.

  1. Mulai layanan frontend dan akses halaman frontend di http://<your_server_public_IP_address>.

  2. Simulasikan tindakan pengguna, seperti mengklik tombol login.

  3. Buka alat pengembang di peramban Anda dengan menekan F12:

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

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

Langkah 4: Verifikasi ingest log

Pastikan bahwa SDK telah berhasil menulis log frontend ke logstore di SLS melalui saluran aman.

  1. Masuk ke Konsol SLS.

  2. Pada bagian Projects, klik proyek yang dituju.

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

  4. Klik ikon image untuk masuk ke halaman Pencarian & Analisis.

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

  6. Sistem secara otomatis mengenali struktur log dan merekomendasikan konfigurasi bidang. Konfirmasikan pengaturan, lalu klik OK.

  7. Setelah indeks diaktifkan, tunggu sekitar 1 menit agar perubahan efektif. Kemudian, lakukan kueri log.

Ingest anonim

Aktifkan opsi WebTracking untuk logstore, yang membuka akses tulis publik ke logstore tersebut. Ini memungkinkan klien mengunggah data log langsung menggunakan SDK WebTracking, permintaan HTTP, dan metode lainnya.

Penting

Jangan gunakan ingest anonim dalam produksi. Metode ini membuka logstore untuk penulisan tanpa otentikasi dari Internet. Ini dimaksudkan hanya untuk memverifikasi pipeline log dengan cepat dalam lingkungan pengujian.

Langkah 1: Aktifkan WebTracking

  1. Masuk ke Konsol SLS.

  2. Di bagian Projects, klik proyek target.

  3. Di tab Log Storage > Logstores, temukan logstore target dan klik 图标 > Modify.

  4. Di halaman Logstore Attributes, klik Modify.

  5. Aktifkan WebTracking, lalu klik Save.

Langkah 2: Konfigurasikan koleksi anonim dan unggah log

Metode integrasi berikut didukung:

  • SDK WebTracking: Impor SDK WebTracking ke dalam kode frontend Anda dan panggil metode send() untuk mengunggah log terstruktur. Metode ini cocok untuk aplikasi web modern.

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

  • Tag HTML (img): Gunakan atribut src dari tag <img> untuk memulai permintaan, dengan informasi log dikodekan dalam URL. Metode ini tidak memerlukan JavaScript, mendukung permintaan lintas domain secara alami, dan bekerja dengan baik untuk halaman statis atau pelacakan email di lingkungan tanpa JavaScript.

  • OpenAPI batch write: Panggil OpenAPI SLS melalui permintaan POST. Metode ini cocok untuk pengunggahan terpusat sejumlah besar data dari server.

SDK WebTracking

Dalam mode anonim, Anda tidak perlu mengonfigurasi plugin STS. Cukup inisialisasi SDK secara langsung.

Instal dependensi

# Untuk peramban
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 layanan di wilayah Anda. Misalnya, ap-southeast-1.log.aliyuncs.com
  project: '${project}', // Nama proyek.
  logstore: '${logstore}', // Nama logstore.
  time: 10, // Interval pengiriman log. Default adalah 10 detik.
  count: 10, // Jumlah log yang dikirim dalam satu batch. Default adalah 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, setiap log adalah objek tunggal. Saat Anda mengunggah beberapa log, struktur datanya adalah array objek.

Unggah satu log

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

Unggah Batch log

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

Unggah sekelompok 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 layanan log dengan data log sebagai parameter URL.

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

  • key1=val1&key2=val2: Nama bidang dan nilai (pasangan kunci-nilai) untuk diunggah ke SLS. Beberapa bidang didukung. Panjang total harus kurang dari 16 KB.

Tag HTML (img)

Tanamkan tag <img> tak terlihat di halaman frontend. Mekanisme peramban untuk memuat gambar secara otomatis 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 peramban, tambahkan parameter timestamp.

OpenAPI batch write

Panggil API PutWebtracking untuk mengunggah beberapa log.

Langkah 3: Verifikasi ingest log

Konfirmasikan bahwa log frontend telah berhasil ditulis ke logstore.

  1. Masuk ke Konsol SLS.

  2. Di bagian Projects, klik proyek target.

  3. Buka halaman Logstores. Klik ikon image di sebelah nama logstore target untuk memperluasnya.

  4. Klik image untuk masuk ke 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 merekomendasikan konfigurasi bidang. Konfirmasikan pengaturan dan klik OK.

  7. Setelah indeks diaktifkan, tunggu sekitar 1 menit agar efektif. Lalu kueri log.

Catatan Penggunaan

Untuk memastikan stabilitas layanan, SLS WebTracking memiliki kuota berikut untuk mengunggah log dari peramban:

  • Ukuran data maksimum per permintaan: 3 MB

  • Jumlah entri log maksimum per permintaan: 4.096

Penagihan

WebTracking itu sendiri gratis, tetapi operasi penulisan, penyimpanan, dan kueri log yang dihasilkan dapat dikenakan biaya.

1. Mode penagihan

Logstore mendukung mode penagihan berikut:

  • Bayar-per-data-diingest: Cocok untuk kasus penggunaan kompleks yang memerlukan penyimpanan jangka panjang, analisis, pemrosesan, dan konsumsi log.

  • Bayar-per-fitur: Cocok untuk kasus penggunaan ringan atau bertahap di mana kontrol biaya fleksibel diperlukan.

2. Item yang dapat ditagih inti

Bayar sesuai data yang di-ingest

  • Volume Data Mentah yang Diingest: Ini adalah pendorong biaya utama, ditagih berdasarkan ukuran tidak terkompresi (dalam GB) dari log mentah Anda. Biaya ini mencakup penulisan data, pengindeksan, panggilan API, dan penyimpanan panas selama sebulan pertama (30 hari).

  • Biaya Penyimpanan: Jika log disimpan lebih dari 30 hari, biaya penyimpanan tambahan akan berlaku.

Bayar-per-fitur

  • Traffic Indeks: SLS mengenakan biaya satu kali ini saat Anda menulis data, berdasarkan ukuran tidak terkompresi dari log mentah. Ini adalah prasyarat untuk membuat log dapat dicari.

  • Biaya Penyimpanan: Penyimpanan ditagih dari hari pertama, berdasarkan ruang aktual yang ditempati oleh data terkompresi.

  • Traffic Baca dan Tulis, Jumlah Pembacaan dan Penulisan, dan Shard Aktif.

FAQ

Apakah saya bisa mengimpor SDK WebTracking menggunakan CDN?

Ya. Pendekatan ini sangat cocok untuk proyek frontend ringan, halaman statis, atau untuk validasi cepat jika proses pembuatan berbasis npm tidak tersedia.

Risiko versi usang: Versi terbaru di CDN adalah 0.3.5. Versi ini mungkin memiliki lebih sedikit fitur dibandingkan dengan 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 menggunakan objek global window.SLS_Tracker:

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

Referensi

Lampiran 1: Contoh STS dalam beberapa bahasa

Untuk membantu pengembang dengan berbagai tumpukan teknologi membangun layanan kredensial STS backend secara cepat, Alibaba Cloud menyediakan contoh program sumber terbuka dalam beberapa bahasa, termasuk Java, Node.js, PHP, dan Ruby. Contoh-contoh ini menggunakan API AssumeRole untuk menerbitkan token akses sementara ke aplikasi frontend secara aman.

Alamat proyek contoh: Java, Node.js, PHP, Ruby

Ubah file konfigurasi config.json di proyek, lalu jalankan layanan sesuai instruksi untuk bahasa yang digunakan.

Bahasa

Port

Java

7080

Node.js

3000

PHP

8000

Ruby

4567

Lampiran II: Proyek aplikasi frontend sampel

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