Topik temu duga representatif

Bagaimanakah anda mereka bentuk perkhidmatan pengekalan dan pensampelan bawah (downsampling) metrik siri masa?

Reka bentuk sistemSukar
Pasukan Editorial Offer.ccDiterbitkan Dikemas kini

Soalan

Sebuah platform pemantauan menginges berbilion-bilion sampel siri masa berlabel setiap hari. Reka bentuk sistem yang menyimpan 15 hari data beresolusi tinggi dan 2 tahun data beresolusi rendah, merangkumi downsampling, penghalaan pertanyaan, kekardinalan label dan pengesahan.

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

text
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.

Sumber awam

Soalan berkaitan

Alat temu duga berkaitan

Gunakan Jawab untuk jawapan reka bentuk sistem

Jelaskan keperluan terlebih dahulu, kemudian teruskan dengan skala, seni bina, pilihan komponen dan pertukaran (trade-off).

Lihat alat