GH GambleHub

Нигоҳдории силсилаи вақт

1) Чаро як меъмории алоҳида барои силсилаи вақт

Силсилаи вақтҳо пайдарпаии ҷуфтҳо (вақт, арзиш) бо барчасбҳо (тамғакоғазҳо) мебошанд, ки бо:
  • Суръати баланди сабт (воридшавӣ) ва басомад.
  • Аз рӯи диапазони вақт (скан + агрегатҳо/функсияҳои тиреза) хонда мешавад.
  • Кардинализатсияи тарканда аз сабаби таркиби барчасбҳо.
  • Зарурати нигоҳдорӣ (маҳдудиятҳои мӯҳлати нигоҳдорӣ) ва коҳиш (фишурдани вақт).
  • Ҳамин тавр - модели махсуси нигаҳдорӣ, форматҳои фишурдасозӣ ва протоколҳои дархост.

2) Модели маълумот ва ченакҳои шартнома

2. 1 Номгузорӣ ва барчаспҳо

metric_name: феълҳои феълӣ/исм ('http _ дархостҳо _ total', 'cpu _ usage _ seconds _ total').
тамғакоғазҳо: калидҳои атрибут ('кор', 'мисол', 'dc', 'pod', 'status', 'усул').
Инвариантҳо: семантикаи номро тағир надиҳед, версияҳоро ('metric _ v2') бо тағироти номувофиқ илова кунед.

2. 2 Намудҳои сатрҳо

Gauge, Counter, Histogram/Хулоса, Чорабинӣ/Span.
Барои молия/зичӣ - Воҳиди ислоҳот ва маҷмӯӣ (ҷамъбаст/миёна).

2. 3 Сиёсати нигоҳдорӣ ва rollup

Тафсилоти гарм (сония/1-10 дақиқа) → агрегатҳои гарм (5m/1h) → хунук (1d/1w).
Барои counter - агрегатҳои сатҳи/deriv.

3) Роҳи сабт: қабул, буферӣ, паймон

3. 1 Вуруди қубур

Scrape (кашед, Prometheus) ё тела (OTLP/Statsd/Graphite), аксар вақт тавассути дарвоза/агент.
Буферкунӣ дар WAL (сабти пешакӣ), пас фишурдан ба сегментҳо/блокҳо (меъмории ба монанди LSM).
Ҷойгиркунӣ ва ҷобаҷогузории вақт фишурдасозӣ ва суръатро зиёд мекунад.

3. 2 Коркарди фармоишӣ ва мегирад

Равзанаи таҳаммулпазирӣ (равзанаи паҳлӯӣ, масалан 5-15 дақиқа) + сиёсат: 'партофтан | боло рафтан | нигоҳ доштан'.
Такрори аз ҷониби '(series_id, timestamp)' бо таҳрир ё "сабти охирин пирӯз мешавад".

3. 3 Фишурдасозӣ

Delta-of-delta барои вақтсанҷҳо, Gorilla/XOR барои шино, RLE ва varint барои бутунҳо, луғат барои барчаспҳо.
Андозаи оптималии блок ("chunk") -и нуқтаҳои 1-8K як созиш байни IOPS ва CPU мебошад.

4) Схемаҳои нигоҳдорӣ: TSDB vs SQL/сутунҳо

4. 1 TSDB бахшидашуда

Прометей (маҳал, нигаҳдории кӯтоҳ, PromQL, remote_write).
VictoriaMetrics/M3/InfluxDB - миқёси уфуқӣ, нигоҳдории дароз, мутолиаи дурдаст.
Форматҳои блок барои сканкунии диапазон + агрегатҳои тендерӣ оптимизатсия карда шудаанд.

4. 2 Муҳаррикҳои relational/сутун

Timescale .DB (Postgre ​ ​ SQL): гипертабелҳо, қисмҳо аз рӯи вақт/фазо, агрегатҳои доимӣ.
Click-House: Merge .Tree/TTL/назари моддӣ, фишурдани аъло ва ҷамъбасти вақт.

Интихоб - аз рӯи экосистемаи дархостӣ (SQL vs Prom

5) Нақша ва намунаҳо

5. 1 Timescale .DB: агрегати гипертоналӣ + агрегати доимӣ

sql
CREATE TABLE metrics_cpu(
ts timestamptz NOT NULL,
host text NOT NULL,
dc text NOT NULL,
usage double precision NOT NULL,
PRIMARY KEY (ts, host, dc)
);
SELECT create_hypertable('metrics_cpu', by_range('ts'), chunk_time_interval => interval '1 day');

-- Continuous unit (5 minutes)
CREATE MATERIALIZED VIEW cpu_5m
WITH (timescaledb. continuous) AS
SELECT time_bucket('5 minutes', ts) AS ts5m, host, dc, avg(usage) AS avg_usage
FROM metrics_cpu GROUP BY 1,2,3;

-- Politicians
SELECT add_retention_policy('metrics_cpu', INTERVAL '14 days');
SELECT add_retention_policy('cpu_5m',   INTERVAL '180 days');

5. 2 Клик: Ҷамъбасти анбор

sql
CREATE TABLE metrics_cpu (
ts DateTime,
host LowCardinality(String),
dc LowCardinality(String),
usage Float32
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(ts)
ORDER BY (host, dc, ts)
TTL ts + INTERVAL 14 DAY
SETTINGS index_granularity = 8192;

-- Rollup in hourly detail
CREATE MATERIALIZED VIEW cpu_1h
ENGINE = SummingMergeTree()
PARTITION BY toYYYYMM(ts)
ORDER BY (host, dc, ts)
POPULATE AS
SELECT toStartOfHour(ts) AS ts, host, dc, avg(usage) AS usage
FROM metrics_cpu GROUP BY ts, host, dc;

5. 3 Прометей/Виктория Метрика: remote_write

yaml global:
scrape_interval: 15s remote_write:
- url: http://vminsert:8480/insert/0/prometheus/api/v1/write

6) Кардинализм: чӣ гуна анборро "таркондан" мумкин нест

6. 1 Қоидаҳо

Маҳдудияти кардиналии тамғакоғазҳо (шумораи арзишҳои беназир). 'User _ id', 'request _ id', 'trace _ id' -ро дар бар намегиред.
Барчаспҳои "бисёрарзиш" -ро муқаррар кунед (категорияҳо → рамзҳо).
Истифода бурдани намудҳои Lower-Cardinality (дар CH), луғатҳо/дарахтони тамғакоғазҳо (дар TSDB).

6. 2 Назорат ва огоҳиҳо

Нишондиҳандаҳо: 'series _ count', 'label _ values {label}', сатрҳои top-N "гарон".
Ҳангоми навиштани маҳдудияти кардиналӣ аз як иҷорагир/кор, сиёсати нокомиро нависед.

6. 3 Таърих/Гистограмма

Барои кардиналии баланд, беҳтар аст, ки агрегатҳо (сатилҳои гистограмма) ва пеш аз роллро нигоҳ доред; миқдор барои ҳисоб кардани онлайн дар агрегатҳо.

7) Нигоҳдорӣ, нигоҳдорӣ ва нигоҳдории сатҳӣ

7. 1 Сиёсат

Гарм: 3-30 рӯз тафсилоти дуюм/дақиқа.
Гарм: 90-365 рӯз аз агрегатҳои 5m/1h.
Хунук: солҳои агрегатҳои рӯзона, бойгонӣ дар нигаҳдории объект (S3/Glacier) бо Parquet.

7. 2 Техникҳо

Агрегатҳои муттасил (Timescale), нуқтаи назари моддӣ (CH), нигоҳдорӣ + супоришҳо (Виктория/M3/Таъсир).
Захираи сатҳӣ: "блокҳои гарм" дар маҳал, "хунук" дар ашё бо кэши маҳаллӣ.

8) Саволҳо ва забонҳо

8. 1 PromQL (мисол)

promql rate(http_requests_total{job="api",status=~"5.."}[5m])

Дар ҷустуҷӯи сатҳи хатои 5xx API.

8. 2 агрегатҳои SQL аз ҷониби тирезаҳо

sql
SELECT time_bucket('1h', ts) AS hour,
dc, avg(usage) AS avg, max(usage) AS pmax
FROM metrics_cpu
WHERE ts >= now() - interval '24 hours'
GROUP BY 1,2 ORDER BY 1;

8. 3 Аномалия (эскиз)

Z-хол/ESD аз рӯи омори тиреза, таҷзияи STL мавсимӣ; натиҷаҳоро дар сатри алоҳидаи 'аномалия = 1/0' нигоҳ доред.

9) Интегратсия ва протоколҳо

OTLP (Open: Telemetry): ченакҳо/роҳҳо/гузоришҳо, содиркунандагон ба агентҳо (otel-collector) → TSDB/clickhouse/объект.
Статистика/Графит: ҳисобкунакҳои оддӣ/таймерҳо; прокси ба канор, пас табдил ба формати ягона.
Kafka/NATS: буфер барои инфиҷор, дубора барои backfill; истеъмолкунандагон батчами менависанд.

Намунаи Kafka → ClicK House (псевдо):
text kafka(topic=metrics) -> stream processor (normalize/tags) -> CH INSERT INTO metrics_cpu FORMAT RowBinary

10) Дастрасӣ, HA ва Федератсия

Ҷуфтҳои нусхабардорӣ/TSDB HA ё Федератсияи Прометей (минтақа → сатҳи ҷаҳонӣ).
Барои нигаҳдории дарозмуддат ва панелҳои мутамарказ хондан/навиштан.
Shard-by-label/time: тақсимоти ягонаи воридшавӣ, маҳал аз ҷониби 'dc/иҷорагир'.

11) Риояи худи нигаҳдорӣ

11. 1 Ченак

Ворид кунед: 'намунаҳо/сек', 'замима _ ниҳонӣ', 'wal _ fsync _ ms'.
Хранение: 'blocks _ count', 'compaction _ queue _ len', 'chunk _ compression _ таносуб'.
Запросы: 'query _ qps', 'scan _ bytes', 'p95/p99 _ latency', 'alloc _ bytes'.
Кардинализм: 'series _ count', тамғакоғазҳо.

11. 2 SLO

"таъхири p99 барои диапазони 1h ≤ 200ms дар QPS ≤ 500".

"Indest-drop ≤ 0. 01% ҳангоми пеш аз X намунаҳо/сек"

"Қафои паймон <10 дақ".

11. 3 Огоҳӣ

Афзоиш 'series _ count'> Y %/соат.
Навбати фишурдасозӣ/оббозӣ> ҳадди ниҳоӣ.
Доля бе фармоиш> N%, dedup/дер-қатраҳо.

12) Бехатарӣ ва бисёрҳуҷрагӣ

Ҷудокунӣ аз ҷониби 'иҷорагир' (нишона дар калидҳо, ҷадвалҳои инфиродӣ/пойгоҳи додаҳо, квотаҳо).
Санитаризатсияи тамғакоғазҳо (манъи PII), назорати андоза/арзиш.
Рамзгузорӣ "дар истироҳат" ва нақлиёт, аудити дастрасӣ ба ченакҳои "ҳассос".

13) Амалияи амалиётӣ

Оғози гарм ва хунук: сӯзанаки блокҳои "гарм" дар кэш, prefetch соатҳои охирини N.
Backfill: қубурҳои инфиродӣ бо афзалияти паст, бо онлайн омехта нашавед.
Тарҷумаи схема: муҳоҷират бо навиштани мувозӣ (дугона-навиштан) ва гузариши минбаъда.
Буҷаи нигаҳдорӣ: назорати 'cost _ per _ TB _ month' + пешгӯии афзоиши кардиналӣ.

14) Анти-намунаҳо

Барчаспҳо бо кардинали баланд (user_id, ууид) → таркиши қаторҳо.
Сатрҳои "абадӣ" бидуни нигоҳдорӣ → афзоиши беназорат.
Сабти ғайри қассобӣ/навъбандӣ → фишурдани заиф ва тӯфони IOPS.
OLTP ва сканҳои дарозро дар ҳамон ҳавзи диск омехта кунед.
Набудани сиёсати фармоишӣ → нусхабардорӣ ва варамҳо.
Гистограмма бо садҳо сатил → арзиш дорад × 10 бе фоида.

15) Рӯйхати назорати амалисозӣ

  • Андозагирӣ, намудҳо ва воҳидҳои онҳоро муайян кунед; шартномаи ном/тамғакоғазро ислоҳ кунед.
  • Интихоб кардани муҳаррик (TSDB vs SQL/Сутун) ва забони дархостӣ (Prom
  • Тарҳрезии нигоҳдорӣ/ролик (гарм/гарм/хунук) ва ILM.
  • Танзими воридот: WAL/маҷмӯаҳо/навъбандӣ, тирезаҳои фармоишӣ.
  • Фурӯзон кардани фишурдасозӣ (delta-of-delta/XOR/RLE), қисмҳои оптималӣ.
  • Назорати кардиналӣ: квотаҳо, огоҳиҳо, сиёсати дасткашӣ.
  • Танзими HA/федератсия ва дурдаст навиштан/хондан.
  • панели панели SLO ва ченакҳои нигоҳдорӣ (ворид/дархост/нигоҳдорӣ).
  • Сиёсати ҷудокунии амният/иҷорагир ва набудани PII дар тамғакоғазҳо.
  • Мунтазам "рӯзи бозӣ": backfill, талафоти гиреҳ, суръатбахшӣ.

16) FAQ

Савол: Барои мониторинги инфрасохтор чиро интихоб кардан мумкин аст: Prometheus ё Click 'House/Timescale?

Ҷ: Барои мониторинги ватанӣ ва Prom-QL - Prometheus + нигоҳдории дарозмуддат (Виктория/M3). Барои сенарияҳои BI/анбор ва SQL - Timescale/Click

Савол: Чӣ гуна миқдорро бидуни хулосаи вазнин нигоҳ доштан мумкин аст?
A: Гистограммаро бо сатилҳои тозаву озода истифода баред ва ҳангоми дархост кардани миқдор ҳисоб кунед; ё t-digest/CKMS дар агрегатҳо.

Савол: Чӣ гуна бояд бо тартиботи ғайримуқаррарӣ муносибат кард?
Ҷ: Ба равзанаи таҳаммулпазирӣ (5-15 дақиқа) ва сиёсати детерминистӣ ворид шавед; барои телеметрия аз мобилӣ/канорӣ - тиреза васеътар аст.

Савол: Кай як ролик лозим аст?
A: Ҳамеша> 30-90 рӯз: агрегатҳо андозаи 10-100-ро кам мекунанд ва таҳлилро суръат мебахшанд.

Савол: Оё имкон дорад, ки гузоришҳо ва ченакҳоро омехта кунед?
A: Алоҳида нигоҳ доред (форматҳо/дархостҳо гуногунанд). Барои коррелятсия, Exemplar/Trace-ID ва панелҳои панелро истифода баред, аммо ҳама чизро ба як миз илова накунед.

17) Натиҷаҳо

Нигоҳдории самараноки силсилаи вақт ин ченакҳои шартнома + интизоми барчасп, воридкунандаи салоҳиятдор (WAL/фишурдасозӣ), фишурдасозӣ ва сиёсати нигоҳдорӣ/печондан мебошад. Назорати кардиналӣ, NA/федератсия ва мушоҳидаи худи мағозаро илова кунед - ва шумо p95 пешгӯишаванда, арзиши оқилона барои моҳҳо ва солҳо ва муқовимати шадидро ба даст меоред.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.