Trackio documentation

Peringatan

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Peringatan

Alert Trackio memungkinkan Anda menandai peristiwa penting selama sebuah run. Ketika alert dipicu, ia akan:

  1. Dicetak ke terminal dengan label tingkat keparahan yang diberi kode warna
  2. Disimpan di database sehingga dapat ditanyakan kemudian melalui CLI, API Python, atau endpoint HTTP
  3. Tampil di dasbor melalui panel peringatan mengambang dan halaman Laporan
  4. Dikirim ke webhook (opsional) — dengan format asli untuk Slack dan Discord

Memicu Peringatan

Gunakan alert() di mana saja setelah memanggil init():

import trackio

trackio.init(project="my-project")

# ... inside your training loop ...
if val_loss > 2.0:
    trackio.alert(
        title="Validation loss spike",
        text=f"val_loss={val_loss:.4f} exceeded threshold 2.0",
        level=trackio.AlertLevel.ERROR,
    )

Parameter

ParameterTipeDefaultDeskripsi
titlestr(wajib)Judul singkat untuk peringatan.
textstr \| NoneNoneDeskripsi opsional yang lebih panjang dengan detail.
levelAlertLevelAlertLevel.WARNTingkat keparahan: INFO, WARN, atau ERROR.
webhook_urlstr \| NoneNoneTimpa URL webhook global hanya untuk peringatan ini.

Tingkat Peringatan

from trackio import AlertLevel

AlertLevel.INFO   # Informational — nothing is wrong
AlertLevel.WARN   # Warning — something may need attention
AlertLevel.ERROR  # Error — something is definitely wrong

Output Terminal

Setiap peringatan dicetak ke terminal secara langsung, dengan label yang diberi kode warna:

[TRACKIO WARN] Validation loss spike: val_loss=2.3412 exceeded threshold 2.0 (step 42)
  • INFO dicetak dalam warna biru
  • WARN dicetak dengan warna kuning
  • ERROR dicetak dalam warna merah

Ini berarti peringatan berfungsi langsung tanpa perlu konfigurasi — jika Anda dapat melihat log pelatihan Anda, Anda juga dapat melihat peringatan Anda.

Dasbor

Alerts muncul di dua tempat di dasbor Trackio:

  1. Panel peringatan — Panel mengambang di sudut kanan bawah setiap halaman dasbor. Panel ini menampilkan semua peringatan (di seluruh proyek) yang diterima sejak dasbor dibuka, dengan peringatan terbaru di bagian bawah. Anda dapat memfilter berdasarkan tingkat keparahan dan memperluas/menutup panel. Panel akan berkedip saat peringatan baru diterima.

  2. Halaman Laporan — Halaman Laporan mencakup tabel peringatan lengkap di bawah bagian laporan. Anda dapat memfilter peringatan berdasarkan run (melalui dropdown di bilah sisi) dan berdasarkan tingkat keparahan (melalui grup kotak centang di bilah sisi).

Untuk meluncurkan dasbor:

trackio show --project "my-project"

Mengkueri Peringatan

CLI

# List all alerts for a project
trackio get alerts --project "my-project"

# Filter by run
trackio get alerts --project "my-project" --run "brave-sunset-0"

# Filter by level
trackio get alerts --project "my-project" --level error

# Only alerts after a specific timestamp (useful for polling)
trackio get alerts --project "my-project" --since "2025-06-01T00:00:00"

# JSON output for programmatic consumption
trackio get alerts --project "my-project" --json

Mengevaluasi Metrik Sekitar Peringatan

Saat peringatan dipicu, Anda sering ingin melihat bagaimana semua metrik pada titik tersebut. Gunakan trackio get snapshot untuk mendapatkan setiap metrik pada/ sekitar langkah atau timestamp peringatan:

# An alert fired at step 200 — get all metrics in a ±5 step window
trackio get snapshot --project "my-project" --run "brave-sunset-0" --around 200 --window 5 --json

# Or inspect a single metric around the alert's timestamp
trackio get metric --project "my-project" --run "brave-sunset-0" --metric "loss" --at-time "2025-06-01T12:05:30" --window 60 --json

Lihat halaman Perintah CLI untuk daftar lengkap opsi penyaringan.

API Python

import trackio

api = trackio.Api()

# All alerts in a project
alerts = api.alerts("my-project")

# Filter by run and level
alerts = api.alerts("my-project", run="brave-sunset-0", level="error")

# Only new alerts since a timestamp
alerts = api.alerts("my-project", since="2025-06-01T12:00:00")

# From a Run object
runs = api.runs("my-project")
run_alerts = runs[0].alerts(level="warn")

HTTP API

Jika dashboard Trackio sedang berjalan (lokal atau di Space), Anda dapat menanyakan peringatan melalui endpoint /get_alerts:

import httpx2

alerts = httpx2.post(
    "http://127.0.0.1:7860/api/get_alerts",
    json={
        "project": "my-project",
        "run": None,
        "level": "error",
        "since": "2025-06-01T00:00:00",
    },
).json()["data"]

Webhooks

Webhooks memungkinkan Anda mengirim peringatan ke layanan eksternal seperti Slack, Discord, atau endpoint HTTP apa pun.

Mengatur Webhook Global

Anda dapat mengatur URL webhook yang berlaku untuk setiap peringatan dalam satu run:

Opsi 1: Di dalam trackio.init()

trackio.init(
    project="my-project",
    webhook_url="https://hooks.slack.com/services/T.../B.../xxx",
)

Opsi 2: Variabel lingkungan

export TRACKIO_WEBHOOK_URL="https://hooks.slack.com/services/T.../B.../xxx"
# No webhook_url needed — picks up the env var automatically
trackio.init(project="my-project")

Variabel env sangat berguna ketika Anda ingin menggunakan webhook yang sama untuk semua proyek tanpa mengubah kode.

Mengirim Hanya Peringatan dengan Tingkat Keparahan yang Lebih Tinggi ke Webhook

Jika Anda hanya ingin webhook untuk peringatan penting, atur webhook_min_level di trackio.init():

trackio.init(
    project="my-project",
    webhook_url="https://hooks.slack.com/services/T.../B.../xxx",
    webhook_min_level=trackio.AlertLevel.WARN,
)

Dengan webhook_min_level=AlertLevel.WARN:

  • INFO alert masih dicetak/disimpan/ditampilkan di UI, tetapi tidak dikirim ke webhook
  • Alert WARN dan ERROR dikirim ke webhook

Anda juga dapat mengonfigurasi ini secara global dengan variabel lingkungan:

export TRACKIO_WEBHOOK_MIN_LEVEL="warn"

Menimpa Per-Alert

Lewati webhook_url langsung ke trackio.alert() untuk menimpa pengaturan global untuk satu peringatan, atau untuk mengirim peringatan tertentu ke saluran lain:

trackio.alert(
    title="Checkpoint saved",
    text="Saved model at step 5000",
    level=trackio.AlertLevel.INFO,
    webhook_url="https://discord.com/api/webhooks/123456/abcdef",
)

Payload Webhook

Trackio mendeteksi layanan secara otomatis dari URL dan memformat payload sesuai dengan itu.

Webhook generik menerima tubuh POST JSON:

{
    "level": "warn",
    "title": "Validation loss spike",
    "text": "val_loss=2.34 exceeded threshold 2.0",
    "project": "my-project",
    "run": "brave-sunset-0",
    "step": 42,
    "timestamp": "2025-06-15T14:30:00+00:00"
}

Slack dan Discord menerima pesan berformat kaya (lihat bagian di bawah).

Webhooks dikirim dalam thread latar belakang sehingga trackio.alert() tidak pernah memblokir loop pelatihan Anda.


Slack

Membuat Webhook Slack

  1. Buka https://api.slack.com/apps dan klik Create New App → From scratch.
  2. Beri nama aplikasi (misalnya, “Trackio Alerts”) dan pilih workspace Anda.
  3. Di bilah sisi kiri, klik Incoming Webhooks dan ubah statusnya menjadi On.
  4. Klik Tambahkan Webhook Baru ke Workspace, pilih channel tempat Anda ingin menerima peringatan, lalu klik Izinkan.
  5. Salin URL webhook. Tampilannya seperti ini:
    https://hooks.slack.com/services/TXXXXX/BXXXXX/XXXXXXXXXX

Menggunakannya dengan Trackio

trackio.init(
    project="my-project",
    webhook_url="https://hooks.slack.com/services/T.../B.../xxx",
)

trackio.alert(
    title="Training complete",
    text="Final val_accuracy: 0.94",
    level=trackio.AlertLevel.INFO,
)

Seperti apa penampilannya

Trackio mengirim pesan Slack Block Kit dengan:

  • Judul tebal dengan emoji dan tingkat keparahan (misalnya, “⚠️ [WARN] Lonjakan loss“)
  • Bagian deskripsi opsional dengan text Anda
  • Footer konteks yang menampilkan nama proyek, nama run, dan nomor langkah
image

Discord

Membuat Discord Webhook

  1. Buka Pengaturan Server → Integrasi → Webhook.
  2. Klik Webhook Baru.
  3. Beri nama (misalnya, “Trackio Alerts”), pilih saluran, dan klik Copy Webhook URL.
  4. URL-nya terlihat seperti:
    https://discord.com/api/webhooks/123456789/ABCDEFghijklmnop

Menggunakannya dengan Trackio

trackio.init(
    project="my-project",
    webhook_url="https://discord.com/api/webhooks/123456789/ABCDEFghijklmnop",
)

trackio.alert(
    title="GPU temperature critical",
    text="GPU 0 reached 95°C",
    level=trackio.AlertLevel.ERROR,
)

Seperti apa penampilannya

Trackio mengirim pesan Embed Discord dengan:

  • Bilah samping dengan kode warna (biru untuk INFO, kuning untuk WARN, merah untuk ERROR)
  • Judul dengan emoji dan tingkat keparahan
  • Deskripsi dengan text Anda
  • Footer dengan nama proyek, nama run, dan nomor langkah
Update on GitHub