1. Soalan
Sebuah platform menerima metrik siri masa yang dilabel mengikut perkhidmatan, penyewa (tenant) dan rantau. Penyahpepijatan jangka pendek memerlukan data peringkat saat, manakala laporan jangka panjang memerlukan trend minit atau jam. Pengingesan terus berkembang. Simpan 15 hari sampel mentah dan 2 tahun agregat sambil mengawal kos dan menghalang kekardinalan tinggi daripada membebani pertanyaan.
2. Kekangan dan penjelasan
- Sahkan selang carian (scrape interval), bilangan dan kekardinalan label, julat pertanyaan, SLO, kelewatan data yang boleh diterima dan keperluan pemadaman.
- Asingkan sampel mentah, agregat tetingkap tetap, hasil peraturan rakaman (recording rules) dan arkib jangka panjang.
- Jangan gantikan pembilang (counters), histogram atau kuantil dengan purata mudah; pengagregatan mesti mengekalkan semantik metrik.
- Tentukan pengingesan sekurang-kurangnya sekali (at-least-once), sampel pendua, cap masa tidak mengikut urutan dan pengasingan penyewa.
3. Seni bina teras
Lapisan pengingesan menggunakan senarai izin label, belanjawan kekardinalan dan pemampatan kelompok sebelum menulis ke storan panas terpisah masa. Lapisan pertanyaan menghala mengikut julat dan langkah (step): julat pendek membaca blok mentah, julat panjang membaca blok pra-agregat, dan julat bercampur digabungkan dengan metadata resolusi. Tugas tetingkap boleh ulang tayang membaca data mentah, menulis blok agregat berversi, mengesahkannya, dan hanya selepas itu memadam blok mentah yang telah tamat tempoh.
4. Aliran rujukan
ingest(sample):
series = canonicalize(metric_name, sorted_labels)
enforce_cardinality_budget(series)
append_to_time_partition(series, sample)
downsample(window):
raw = read_raw(window)
agg = aggregate_by_metric_semantics(raw, resolution=5m)
write_versioned_block(window, agg, source_watermark)
verify_counts_checksums_and_watermark(agg)
query(range, step):
blocks = choose_resolution(range, step)
return merge_with_gap_and_resolution_metadata(blocks)Bagi pembilang, kekalkan kenaikan dan set semula; bagi tolok (gauges), kekalkan min/maks/purata; bagi histogram, gabungkan baldi (buckets) atau struktur histogram natif. Kembalikan resolusi sebenar, liputan dan jurang supaya pengguna tidak tersilap menganggap data yang melalui downsampling sebagai ketepatan mentah.
5. Pertukaran konsistensi dan kos
Sampel lewat atau pelaksanaan berulang boleh mengubah agregat, jadi tugas memerlukan tera air (watermarks), versi dan penulisan idempoten, serta tempoh pembetulan yang ditentukan selepas tetingkap ditutup. Label berkekardinalan tinggi menggandakan kos memori, indeks dan pertanyaan; hadkan label pengguna sewenang-wenangnya dengan kuota penyewa atau pra-pengagregatan. Resolusi yang lebih tinggi, pengekalan yang lebih lama dan kependaman pertanyaan yang lebih rendah mempunyai kos storan dan pengiraan langsung.
6. Pengesahan dan kebolehcerapan
- Sahkan bilangan sampel input/output, kenaikan pembilang, jumlah baldi, checksum dan tera air bagi setiap tetingkap.
- Ulang tayang tetingkap yang sama berulang kali dan sahkan keidempotenan serta versi hasil yang boleh diganti.
- Pantau kadar penolakan pengingesan, bilangan siri, sampel pertanyaan, kelewatan downsampling, kadar jurang dan kos storan.
- Bandingkan hasil mentah dan agregat bagi insiden sebenar untuk memastikan lonjakan, set semula dan keabnormalan tidak hilang akibat pemurataan.
7. Kesilapan lazim
- Memuratakan setiap metrik mengikut masa dan merosakkan semantik pembilang, kuantil atau histogram.
- Menggunakan rentetan label tidak tersusun sebagai kunci siri, menghasilkan siri pendua dan kekardinalan yang salah.
- Memadam blok mentah sebelum downsampling disahkan, menjadikan ulang tayang atau pembetulan data lewat mustahil.
- Menghala hanya mengikut julat masa dan mengabaikan langkah, jurang serta metadata resolusi.
8. Mata pemarkahan temu duga
Menakrifkan model data bertingkat
Calon mengasingkan data mentah, data pra-agregat dan data diarkibkan serta menyatakan resolusi, pengekalan dan tujuan pertanyaan bagi setiap peringkat.
Mengekalkan semantik metrik
Calon mengendalikan pembilang, tolok, histogram dan kuantil secara berbeza dan bukannya menggunakan satu fungsi purata untuk semua jenis.
Mengawal kekardinalan dan kos
Calon mencadangkan peraturan label, kuota penyewa, penolakan pengingesan dan belanjawan storan, kemudian menerangkan hubungan pertanyaan-kos.
Mereka bentuk pengesahan boleh ulang tayang
Calon menggunakan tera air, versi, penulisan idempoten dan semakan ulang tayang sambil memantau jurang, kelewatan dan ketepatan anomali.