ćććÆććŖć«ććććć¦ęøćććć®ļ¼
Prometheusć®ć¹ćć¬ć¼ćøć¾ććć®ććåå¼·ć«ććØć
Prometheusのデータ(TSDB)のSnapshotを取得して、リストアまで - CLOVER🍀
ćć”ćć®ē¶ćć§ćä»åŗ¦ćÆć¹ćć¬ć¼ćøć®ććć„ć”ć³ććčŖćæććŖćć·ć§ć³ć«ć¤ćć¦č¦ć¦ććććØęćć¾ćć
対豔ćØććPrometheusć®ćć¼ćøć§ć³ćÆć2.9.2ćØćć¾ćļ¼ććć„ć”ć³ććÆ2.9ļ¼ć
ć”ćć£ćØčŖæć¹ć¦ćæććØćéå»ć®ę
å ±ćØē¾åØć®ććć„ć”ć³ćć®å
容ćÆćććŖćć«ē°ćŖćē®ęćå¤ćććŖć®ć§ććć®ęē¹ć®
ćć¼ćøć§ć³ć®ććć„ć”ć³ććć”ćććØē¢ŗčŖććę¹ćčÆććØęćć¾ćć
ććć¾ć§ćē¾ęē¹ļ¼2.9.2ļ¼ć§ć®č©±ćØćć¦ć
Prometheusć®ć¹ćć¬ć¼ćø
Prometheusć®ć¹ćć¬ć¼ćøć¾ććć®ććć„ć”ć³ććÆććć”ćć§ćć
č¦ć¦ćććØććć£ćććććŖęćć®ććØćęøććć¦ćć¾ćć
- Prometheusć«ćÆććć¼ć«ć«ćć£ć¹ćÆäøć«ęć¤ęē³»åćć¼ćæćć¼ć¹ćå«ć¾ćć¦ćć
- ćŖćć·ć§ć³ć§ććŖć¢ć¼ćć®ć¹ćć¬ć¼ćøć·ć¹ćć ćØēµ±åććććØćć§ćć
ćŖć¢ć¼ććØć®ć¹ćć¬ć¼ćøć·ć¹ćć ćØēµ±åććććØć«ć¤ćć¦ćÆćć¾ćę©ä¼ćę¹ćć¦č¦ć¦ććć¾ćććć
ćććććÆććć¼ć«ć«ć¹ćć¬ć¼ćøć«ć¤ćć¦č¦ć¦ććć¾ćć
ćć¼ć«ć«ć¹ćć¬ć¼ćøć«ć¤ćć¦
Prometheusć®ćć¼ć«ć«ć®ęē³»åćć¼ćæćć¼ć¹ćÆććć¼ćæćē¬čŖć®ćć©ć¼ćććć§ćć£ć¹ćÆć«äæåćć¾ćć
ćć£ć¹ćÆäøć®ć¬ć¤ć¢ć¦ćć«ć¤ćć¦ć§ććć仄äøć®ćććŖč¦ē“ ć§ę§ęćććććć§ćć
- åå¾ćććć¼ćæćÆć2ęéććØć®ććććÆć«ć¾ćØćććć
- 2ęéććØć®åććććÆćÆć仄äøć®å
容ćå«ć
- ćć®ęéć®ćć¹ć¦ć®ćć¼ćæćå«ćććć£ć³ćÆćć£ć¬ćÆććŖļ¼1ć¤ä»„äøć®ćć£ć³ćÆćć”ć¤ć«ćå«ćļ¼
- ć”ćæćć¼ćæćć”ć¤ć«
- ć¤ć³ćććÆć¹ćć”ć¤ć«ļ¼ć”ććŖćÆć¹åćØććć£ć³ćÆćć”ć¤ć«å ć®ęē³»åć«ć©ćć«ćä»äøćććć®ćć¤ć³ćććÆć¹ćććļ¼
- Tombstonećć”ć¤ć«
- APIć使ēØćć¦ćęē³»åćć¼ćæćåé¤ććå “åć«ć§ćććć”ć¤ć«
- ćć£ć³ćÆćć”ć¤ć«ććććć«ćć¼ćæćåé¤ćććććć§ćÆćŖć
ć¾ććPrometheusćÆåéćććć¼ćæćććć«ę°øē¶åććć®ć§ćÆćŖććć¾ćć”ć¢ćŖäøć«äæęććć¦ćć¾ćć
PrometheusććÆć©ćć·ć„ććććć¦åčµ·åććå “åćÆćWALļ¼Write Ahead Logļ¼ć使ćććØć§ćÆć©ćć·ć„ććäæč·ććć¦ćć¾ćć
WALćÆć仄äøć®ē¹å¾“ćęć”ć¾ćć
- ćwalććć£ć¬ćÆććŖć«128MBććØć«äæåććć¦ćć
- ćwalććć£ć¬ćÆććŖć«å«ć¾ćććć”ć¤ć«ćÆćć¾ć å§ēø®ććć¦ććŖćRawćć¼ćæćå«ć¾ćć¦ćć
- ćć®ćććéåøøć®ććććÆćć”ć¤ć«ććććŖć大ćć
- PrometheusćÆęä½3ć¤ć®WALćć”ć¤ć«ćäæęćć¦ćć
- é«ćć©ćć£ććÆćŖćµć¼ćć¼ć§ćÆćå°ćŖććØć2ęéåć®Rawćć¼ćæćäæåććåæ č¦ćććććć3ć¤ćč¶ ććWALćć”ć¤ć«ćć§ććććØććć
ć§ćććć„ć”ć³ćć«ęøććć¦ćććć£ć¬ćÆććŖę§é ććć”ććććć¾ć§ē»å “ććč¦ē“ ćęøććć¦ććęćć§ććć
./data/01BKGV7JBM69T2G1BGBGM6KB12 ./data/01BKGV7JBM69T2G1BGBGM6KB12/meta.json ./data/01BKGTZQ1SYQJTR4PB43C8PD98 ./data/01BKGTZQ1SYQJTR4PB43C8PD98/meta.json ./data/01BKGTZQ1SYQJTR4PB43C8PD98/index ./data/01BKGTZQ1SYQJTR4PB43C8PD98/chunks ./data/01BKGTZQ1SYQJTR4PB43C8PD98/chunks/000001 ./data/01BKGTZQ1SYQJTR4PB43C8PD98/tombstones ./data/01BKGTZQ1HHWHV8FBJXW1Y3W0K ./data/01BKGTZQ1HHWHV8FBJXW1Y3W0K/meta.json ./data/01BKGV7JC0RY8A6MACW02A2PJD ./data/01BKGV7JC0RY8A6MACW02A2PJD/meta.json ./data/01BKGV7JC0RY8A6MACW02A2PJD/index ./data/01BKGV7JC0RY8A6MACW02A2PJD/chunks ./data/01BKGV7JC0RY8A6MACW02A2PJD/chunks/000001 ./data/01BKGV7JC0RY8A6MACW02A2PJD/tombstones ./data/wal/00000000 ./data/wal/00000001 ./data/wal/00000002
ćć詳瓰ćŖå 容ćē„ććććć°ćTSDBć®ććć„ć”ć³ććøć
tsdb/README.md at v0.7.1 · prometheus/tsdb · GitHub
ć”ćŖćæć«ćčµ·åē“å¾ć®dataćć£ć¬ćÆććŖć®äøčŗ«ćÆććććŖęćć§ćć
$ find data -type f data/wal/00000000 data/lock
lockćØćććć”ć¤ć«ćÆåŗć¦ćć¦ćć¾ććć§ćććć
$ ls -l data/lock -rw-r--r-- 1 xxxxx xxxxx 0 May 2 10:51 data/lock
0ćć¤ćć®ćć”ć¤ć«ć§ćć
ćć®ćć”ć¤ć«ćÆćęåéćęä»ć«ä½æććć”ć¤ć«ć®ććć§ććć§ć«Prometheusćčµ·åććē¶ę
ć§ććŖćć¹ć³ćć¼ćć
å¤ćć¦čµ·åćććććććØćććØććććÆćåććć«čµ·åć«å¤±ęćć¾ćć
$ ./prometheus --web.listen-address="0.0.0.0:9091" ... level=error ts=2019-05-02T10:53:06.753Z caller=main.go:717 err="opening storage failed: lock DB directory: resource temporarily unavailable"
å ć«é²ćæć¾ćććć
ęåć®2ęéć®ććććÆćÆćęēµēć«ćÆćććÆć°ć©ć¦ć³ćć§ććé·ćććććÆć«å§ēø®ććć¾ćć
ćć¼ć«ć«ć¹ćć¬ć¼ćøć®å¶é
ćć¼ć«ć«ć¹ćć¬ć¼ćøć®å¶éćÆććÆć©ć¹ćæåćććć¦ććććć¾ćć¬ććŖć«ćęććŖćććØć§ćć
ćŖć®ć§ććć£ć¹ćÆććć¼ćé害対ćć¦ćčę§ćććć¾ćććć¹ć±ć¼ć©ćć«ć§ćčä¹
ę§ććŖććē“čæć®ēå½ćŖ
ć¹ć©ć¤ćć£ć³ć°ć¦ć£ć³ćć¦ćć¼ćæćØćć¦ę±ćććć¹ćć§ćć
čä¹
ę§ć®č¦ä»¶ćå³ćććŖććć°ććć¼ć«ć«ć¹ćć¬ć¼ćøć§ćę大ę°å¹“ć®ćć¼ćæćäæåć§ćććććććŖćććććć®ććØć
ęøććć¦ćć¾ćā¦ć
ćć®ćććć®ććØććććć¼ć«ć«ć¹ćć¬ć¼ćøć®ć¹ć±ć¼ć©ććŖćć£ćØčä¹
ę§ć«ć¤ćć¦ć®čŖ²é”ć解決ććććć«ććŖć¢ć¼ćć®
ć¹ćć¬ć¼ćøć·ć¹ćć ćØēµ±åććä»ēµćæćććććØććććØćæććć§ćć
ćć¼ć«ć«ć¹ćć¬ć¼ćøć«é¢ćććŖćć·ć§ć³
ć¹ćć¬ć¼ćøć«é¢ććććć„ć”ć³ćć®ä»„äøć®éØåć«ćć¹ćć¬ć¼ćøć«é¢ćć¦ęå®ć§ćććŖćć·ć§ć³ćęøććć¦ćć¾ćć
PrometheusčŖčŗ«ć®ćć«ćććććstorageććå«ććŖćć·ć§ć³ć蔨示ćć¦ćæććØć
$ ./prometheus -h 2>&1 | grep storage
--storage.tsdb.path="data/"
Base path for metrics storage.
--storage.tsdb.retention=STORAGE.TSDB.RETENTION
storage. This flag has been deprecated, use
"storage.tsdb.retention.time" instead
--storage.tsdb.retention.time=STORAGE.TSDB.RETENTION.TIME
How long to retain samples in storage. When
"storage.tsdb.retention". If neither this flag
nor "storage.tsdb.retention" nor
"storage.tsdb.retention.size" is set, the
--storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZE
--storage.tsdb.no-lockfile
--storage.tsdb.allow-overlapping-blocks
--storage.remote.flush-deadline=<duration>
--storage.remote.read-sample-limit=5e7
--storage.remote.read-concurrent-limit=10
ć--storage.remote.ććć«ć¤ćć¦ćÆććŖć¢ć¼ćć¹ćć¬ć¼ćøć·ć¹ćć ćØć®ēµ±åć«é¢ćććŖćć·ć§ć³ćŖć®ć§ćććć§ćÆåÆ¾č±”å¤ć
ćć®ä»ć®ćŖćć·ć§ć³ć«ć¤ćć¦ćčŖ¬ęćč¦ć¦ćæć¾ćć
--storage.tsdb.path="data/"
Base path for metrics storage.
--storage.tsdb.retention=STORAGE.TSDB.RETENTION
[DEPRECATED] How long to retain samples in storage. This flag has been deprecated, use "storage.tsdb.retention.time" instead
--storage.tsdb.retention.time=STORAGE.TSDB.RETENTION.TIME
How long to retain samples in storage. When this flag is set it overrides "storage.tsdb.retention". If neither this flag nor
"storage.tsdb.retention" nor "storage.tsdb.retention.size" is set, the retention time defaults to 15d.
--storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZE
[EXPERIMENTAL] Maximum number of bytes that can be stored for blocks. Units supported: KB, MB, GB, TB, PB. This flag is experimental and can be
changed in future releases.
--storage.tsdb.no-lockfile
Do not create lockfile in data directory.
--storage.tsdb.allow-overlapping-blocks
[EXPERIMENTAL] Allow overlapping blocks which in-turn enables vertical compaction and vertical query merge
ćć§ć«DeprecatedćŖćŖćć·ć§ć³ćÆē”č¦ćć¾ćć
- --storage.tsdb.path ⦠Prometheusććć¼ćæćäæåććéć®ćć¼ć¹ćć¹ćććć©ć«ććÆććdatać
- --storage.tsdb.retention.time ⦠å¤ććć¼ćæććć¤åé¤ććććęå®ćććććć©ć«ććÆćć15dć
- --storage.tsdb.retention.size ⦠ļ¼å®éØēļ¼ć¹ćć¬ć¼ćøććććÆćę大ć§ä½æēØć§ćććµć¤ćŗćęå®ćć
- --storage.tsdb.no-lockfile ⦠dataćć£ć¬ćÆććŖå ć«ććććÆćć”ć¤ć«ćä½ęććŖć
- --storage.tsdb.allow-overlapping-blocks ⦠ļ¼å®éØēļ¼ćŖć¼ćć¼ć©ććććććććÆć許åÆćććå§ēø®ććÆćØćŖć¼ć®ēø¦ę¹åć®ćć¼ćøćåÆč½ć«ćŖć
ć--storage.tsdb.retention.timećć®ććć©ć«ćå¤ćÆ15ę„ć§ććć©ć¼ćććć«ćÆyćwćdćhćmćsćmsćå©ēØć§ćć¾ćć
prometheus/db.go at v2.9.2 · prometheus/prometheus · GitHub
ćć¼ćæć®äæęęéć«é¢ćććŖćć³ć·ć§ć³ććŖć·ć¼ćÆęéćØćµć¤ćŗć®2ć¤ćććć¾ććć使ćććć®ćÆęåć«åä½ććę¹ć ćØćć
ā»ćµć¤ćŗćÆć¾ć å®éØēćŖć®ć§ćć¹ć«ć¼ćć¾ććć
ć--storage.tsdb.allow-overlapping-blocksćć«ć¤ćć¦ćÆćć¾ć å®éØēćŖęććććć®ć§ćć¹ć«ć¼ćć¾ćā¦ć
Implement vertical query merging and compaction · Issue #90 · prometheus/tsdb · GitHub
ćŖćć2ęéććØć«ććććÆć«ć¾ćØććććććØććć®ćÆććć®ćććććę„ć¦ććę°ććć¾ćć
https://github.com/prometheus/prometheus/blob/v2.9.2/vendor/github.com/prometheus/tsdb/db.go#L51
ćØććć§ć§ćććPrometheusć®Web ConsolećććStatusćāćCommand-Line Flagsććč¦ććØćććå°ćęå®ć§ććććŖ
ćŖćć·ć§ć³ćå¤ćććć«č¦ććć®ć§ććā¦ć

ä»åćÆććØćććć深追ćććŖćā¦ć
ćć¼ć«ć«ć¹ćć¬ć¼ćøć§åæ č¦ćØćććć£ć¹ćÆå®¹é
PrometheusćÆćć²ćØć¤ć®ćµć³ćć«ćććć1ć2ćć¤ćć»ć©ć使ēØććććć§ćć
ćŖć®ć§ćPrometheusćč¦ę±ćććµć¼ćć¼ć®ćć£ć¹ćÆå®¹éćÆć仄äøć®čØē®å¼ć§ē®åŗć§ćć¾ćććØć
needed_disk_space = retention_time_seconds * ingested_samples_per_second * bytes_per_sample åæ č¦ćŖćć£ć¹ćÆćµć¤ćŗ = äæęęéļ¼ē§ļ¼ Ć ē§ćććć®åå¾ćµć³ćć«ę° * ćµć³ćć«ćććć®ćć¤ćę°
1ē§ćććć«åå¾ćććµć³ćć«ćå°ććććć«ćÆćåå¾ććęē³»åćć¼ćæć®ę°ćęøććļ¼åéćććæć¼ć²ćććęøććć
ćæć¼ć²ćććććć®åå¾é
ē®ćęøććļ¼ććåå¾ééćé·ćčØå®ćććć®ć©ć”ććć§ćć
ććć„ć”ć³ćć«ćććØćåå¾ćććć¼ćæćÆå§ēø®ććććććåå¾ććé ē®ę°ćęøććę¹ćå¹ęēć ćØćć
ćŖćććć¼ć«ć«ć¹ćć¬ć¼ćøćē “ęććå “åćÆć仄äøć®åƾå¦ć«ćŖććØćć
- Prometheusćć·ć£ćććć¦ć³ćć¦ććć¼ćæćć£ć¬ćÆććŖćåé¤ććļ¼ćććęåćććļ¼
- å½ē¶ćå Øćć¼ćæć失ć
- åć
ć®ććććÆćć£ć¬ćÆććŖćåé¤ćć
- åé¤ććććććÆć«å«ć¾ććć2ęéć®ćć¼ćæćÆå¤±ć
ć©ć”ćć«ćććPrometheusć®ćć¼ć«ć«ć¹ćć¬ć¼ćøćÆé·ęéć®ćć¼ćæäæåćęå³ćć¦ććŖćććØćććć„ć”ć³ćć§ćÆå¼·čŖæććć¦ćć¾ćć
ćć¼ćæć®äæęęéćęå®ćć¦ćæć
ććć§ćÆććć¼ćæć®äæęęéćēćć«ćć¦ćåä½ć確čŖćć¦ćæć¾ćććć
仄äøć®ćććŖććć¼ćæć®åå¾ééćēćć«ććPrometheusć®čØå®ćć”ć¤ć«ćēØęććčµ·åć
prometheus.yml
global: scrape_interval: 1s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 1s # Evaluate rules every 15 seconds. The default is every 1 minute. scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
ćć¼ćæć®åå¾åÆ¾č±”ćÆćććć©ć«ćļ¼čŖåčŖčŗ«ļ¼ć®ć¾ć¾ć§ćć
čµ·åćŖćć·ć§ć³ćØćć¦ćę©ćć«ę¶ććććØć確čŖćććć¦ć--storage.tsdb.retention.timećć3åć«čØå®ćć¾ććć
ććØćć--storage.tsdb.min-block-durationććęå®ćć¦ćć¾ććććŖćć§ćććä»ććććÆć¾ćå¾ć§ā¦ć
$ ./prometheus --storage.tsdb.retention.time 3m --storage.tsdb.min-block-duration 1m level=info ts=2019-05-02T14:09:07.183Z caller=main.go:321 msg="Starting Prometheus" version="(version=2.9.2, branch=HEAD, revision=d3245f15022551c6fc8281766ea62db4d71e2747)"
Web Consoleć§ćčµ·åćŖćć·ć§ć³ćčŖčćć¦ććććØć確čŖć

ćØćććććWeb Consoleć§CPU使ēØęéļ¼process_cpu_seconds_totalļ¼ć蔨示ć10åéć®č”Øē¤ŗć§č¦ć¦ćć¾ćć

1åēµéćććØććććŖćć°ćåŗåćć
level=info ts=2019-05-02T14:10:44.219Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806153112 maxt=1556806200000 ulid=01D9WE45RQ73CF18Y6J2BPMN1Q duration=100.343317ms level=info ts=2019-05-02T14:10:44.237Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.785374ms
ććććÆćć§ćć¾ćć
$ find data -type f data/wal/00000000 data/lock data/01D9WE45RQ73CF18Y6J2BPMN1Q/meta.json data/01D9WE45RQ73CF18Y6J2BPMN1Q/index data/01D9WE45RQ73CF18Y6J2BPMN1Q/tombstones data/01D9WE45RQ73CF18Y6J2BPMN1Q/chunks/000001
ćć®ćć°ć4ååŗåćććć¾ć§ćÆćććććÆćć£ć¬ćÆććŖćčæ½å ććć¦ććć¾ćć
level=info ts=2019-05-02T14:10:44.219Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806153112 maxt=1556806200000 ulid=01D9WE45RQ73CF18Y6J2BPMN1Q duration=100.343317ms level=info ts=2019-05-02T14:10:44.237Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.785374ms level=info ts=2019-05-02T14:11:30.196Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806200000 maxt=1556806260000 ulid=01D9WE5JP7Y6FFGZMKKS1KK2AD duration=77.507689ms level=info ts=2019-05-02T14:11:30.217Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.549613ms level=info ts=2019-05-02T14:12:30.229Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806260000 maxt=1556806320000 ulid=01D9WE7D97CMB7R8RS12G9E9YW duration=109.711593ms level=info ts=2019-05-02T14:12:30.251Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.421509ms level=info ts=2019-05-02T14:13:30.197Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806320000 maxt=1556806380000 ulid=01D9WE97W9WEKZCQ0957KVH2GX duration=75.948389ms level=info ts=2019-05-02T14:13:30.215Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.492116ms
ćććŖęćć«ć
$ find data -type f data/wal/00000000 data/01D9WE7D97CMB7R8RS12G9E9YW/meta.json data/01D9WE7D97CMB7R8RS12G9E9YW/index data/01D9WE7D97CMB7R8RS12G9E9YW/tombstones data/01D9WE7D97CMB7R8RS12G9E9YW/chunks/000001 data/lock data/01D9WE45RQ73CF18Y6J2BPMN1Q/meta.json data/01D9WE45RQ73CF18Y6J2BPMN1Q/index data/01D9WE45RQ73CF18Y6J2BPMN1Q/tombstones data/01D9WE45RQ73CF18Y6J2BPMN1Q/chunks/000001 data/01D9WE5JP7Y6FFGZMKKS1KK2AD/meta.json data/01D9WE5JP7Y6FFGZMKKS1KK2AD/index data/01D9WE5JP7Y6FFGZMKKS1KK2AD/tombstones data/01D9WE5JP7Y6FFGZMKKS1KK2AD/chunks/000001 data/01D9WE97W9WEKZCQ0957KVH2GX/meta.json data/01D9WE97W9WEKZCQ0957KVH2GX/index data/01D9WE97W9WEKZCQ0957KVH2GX/tombstones data/01D9WE97W9WEKZCQ0957KVH2GX/chunks/000001

ććć§ć5åē®ć®ć³ć³ććÆć·ć§ć³ćčµ·ćććØ
level=info ts=2019-05-02T14:10:44.219Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806153112 maxt=1556806200000 ulid=01D9WE45RQ73CF18Y6J2BPMN1Q duration=100.343317ms level=info ts=2019-05-02T14:10:44.237Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.785374ms level=info ts=2019-05-02T14:11:30.196Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806200000 maxt=1556806260000 ulid=01D9WE5JP7Y6FFGZMKKS1KK2AD duration=77.507689ms level=info ts=2019-05-02T14:11:30.217Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.549613ms level=info ts=2019-05-02T14:12:30.229Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806260000 maxt=1556806320000 ulid=01D9WE7D97CMB7R8RS12G9E9YW duration=109.711593ms level=info ts=2019-05-02T14:12:30.251Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.421509ms level=info ts=2019-05-02T14:13:30.197Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806320000 maxt=1556806380000 ulid=01D9WE97W9WEKZCQ0957KVH2GX duration=75.948389ms level=info ts=2019-05-02T14:13:30.215Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.492116ms level=info ts=2019-05-02T14:14:30.248Z caller=compact.go:499 component=tsdb msg="write block" mint=1556806380000 maxt=1556806440000 ulid=01D9WEB2F4SWD5FDP5EBV7BD0E duration=132.373486ms level=info ts=2019-05-02T14:14:30.270Z caller=head.go:540 component=tsdb msg="head GC completed" duration=1.201336ms
ććććÆćć£ć¬ćÆććŖćå¢ććŖććŖćć¾ććć01D9WE45RQ73CF18Y6J2BPMN1QććØććååć®ćć£ć¬ćÆććŖćććŖććŖćć¾ććć
$ find data -type f data/01D9WEB2F4SWD5FDP5EBV7BD0E/meta.json data/01D9WEB2F4SWD5FDP5EBV7BD0E/index data/01D9WEB2F4SWD5FDP5EBV7BD0E/tombstones data/01D9WEB2F4SWD5FDP5EBV7BD0E/chunks/000001 data/wal/00000000 data/01D9WE7D97CMB7R8RS12G9E9YW/meta.json data/01D9WE7D97CMB7R8RS12G9E9YW/index data/01D9WE7D97CMB7R8RS12G9E9YW/tombstones data/01D9WE7D97CMB7R8RS12G9E9YW/chunks/000001 data/lock data/01D9WE5JP7Y6FFGZMKKS1KK2AD/meta.json data/01D9WE5JP7Y6FFGZMKKS1KK2AD/index data/01D9WE5JP7Y6FFGZMKKS1KK2AD/tombstones data/01D9WE5JP7Y6FFGZMKKS1KK2AD/chunks/000001 data/01D9WE97W9WEKZCQ0957KVH2GX/meta.json data/01D9WE97W9WEKZCQ0957KVH2GX/index data/01D9WE97W9WEKZCQ0957KVH2GX/tombstones data/01D9WE97W9WEKZCQ0957KVH2GX/chunks/000001
ćć®ēµęćęåć®ęéć®ćć¼ćæććŖććŖćć¾ććć01D9WE45RQ73CF18Y6J2BPMN1QććØććć®ćÆćęåć«ä½ććć
ćć£ć¬ćÆććŖć§ććć

ćØććććć§ćć--storage.tsdb.retention.timećć§ęå®ććäæęęéćč¶ćććć¼ćæćÆåé¤ććć¦ććććØć確čŖć§ćć¾ććć
ćØććć§ćä»åćčµ·åćŖćć·ć§ć³ć«ć--storage.tsdb.retention.timećć ćć§ćÆćŖćć¦ć--storage.tsdb.min-block-durationćć
ęå®ćć¾ććć
$ ./prometheus --storage.tsdb.retention.time 3m --storage.tsdb.min-block-duration 1m
ć--storage.tsdb.min-block-durationććęå®ććććØć§ćććććÆć®ēÆå²ć1åć«ćŖć£ć¦ćć¾ćć
ęåć仄äøć®ććć«ć--storage.tsdb.retention.timeććęå®ććć ćć ćØćć¼ćæćć¾ć£ććę¶ććććććććć¦WALć«ććéć®
ćć¼ćæćÆåÆ¾č±”ć«å
„ććŖćć®ć§ćÆļ¼ććØęććå¤ę“ć«č³ćć¾ććć
$ ./prometheus --storage.tsdb.retention.time 3m
ć¤ć¾ććé·ęéå¾ ć¤ć®ćå«ć§ć愵端ć«ēćęéćretentionć«čØå®ććć®ćå®å Øć«č£ē®ć«åŗćććć§ćć
å®éćåé¤åÆ¾č±”ćÆććććÆåä½ć®ććć§ćć
https://github.com/prometheus/prometheus/blob/v2.9.2/vendor/github.com/prometheus/tsdb/db.go#L670
ććććÆćć£ć¬ćÆććŖå
ć®meta.jsonćč¦ććØćminTimećØmaxTimeć§ćć©ć®ęéć®ēÆå²ć®ćć¼ćæćå«ć¾ćć¦ććć確čŖććććØć
ć§ćć¾ćć
data/01D9WEEQN5CH9F53GAFCN3G14E/meta.json
{ "ulid": "01D9WEEQN5CH9F53GAFCN3G14E", "minTime": 1556806500000, "maxTime": 1556806560000, "stats": { "numSamples": 27120, "numSeries": 452, "numChunks": 452, "numBytes": 77220 }, "compaction": { "level": 1, "sources": [ "01D9WEEQN5CH9F53GAFCN3G14E" ] }, "version": 1 }
ćććććććććØćÆćć--storage.tsdb.min-block-durationććčØå®ććććØćÆćććŖćććććć¾ćććć
ć--storage.tsdb.retention.timeććÆććććÆćć£ć¬ćÆććŖć§ęć¤ēÆå²ļ¼ććć©ć«ć2ęéļ¼ć®åę°ć§ćŖććć°ęå³ććŖć
ćØććććØć§ććć
č¦ćć¦ććć¾ćććć
ćć確čŖć«ćŖćć¾ććć