Tsdb

Prometheusのデータはどのくらい溜まるのか

Prometheusのデータはどのくらい溜まるのか

今回は

eps32をにBME280温度湿度センサーを接続し、node exporterとして動かしています。 同じネットワーク上のpi4bにPrometheusをdockerで動かして、15s毎にデータを吸い出してます。1ヵ月(=30日)でどの程度のディスク容量が必要なのか調べました。

環境

esp32 node exporter

BME280を接続したesp32をnode exporterとして動かしています。提供しているmetricsは、参考リンク1のとおりです。12項目のデータ(BME280センサー関連3種類、esp32内部情報9種類)を提供しています。

その他のexporter

以下のマシンにexporterを動かしています。

  • pi4b: docker内
  • pi3b: octpi exporter plugin
  • pi zero:

Prometheusの設定

Prometheus側の設定は、```prometheus.yml``にて以下のようにjobを指定してます。 esp32の設定は以下のように、他のexporterは5s間隔で設定しています。

1
2
3
4
5
6
scrape_configs:
  - job_name: "exporter_esp32"
    scrape_interval: 10s
    metrics_path: "/metrics"
    static_configs:
      - targets: ["esp32 IP address:80"]

10s毎にmetircsデータを蓄積します。

/diskの中身は

Prometheusはdockerで動かしていて、/dataがデータ領域です。 以下のようなフォルダーができました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
/prometheus # ls
/prometheus # cd /data/
/data # ls
01FHQG4WN767261MPNBNAVYA8A  01FKQ7FQH38D8Y528X9VP1APAB
01FHX9HHXNGF6BHDV15ABDX16K  01FKX0WC00QATDZ1T701KKVFC7
01FJ32Y42RYQPB1BCZWREHV3S9  01FKYYNXDXXEJHF9J2E8Z33TCZ
01FJ8WASTEHH69BP47K2K9BFAB  01FKZCD91NHV3WFCD2TB17KQ4P
01FJENQD5QD5WYE7SQG8VNJZ3C  01FKZK909NRMBA80NHAJ1BWQ1C
01FJMF3ZCWCNA0SB1YKVGD9Z7H  01FKZK90T99PZPJP4SKW79XPJQ
01FJT8GMNR165VVTF370BNEK42  chunks_head
01FK01X6X041HF58NFR15FQWAB  lock
01FK5V9TMBFG6H7RK65MDZAEN5  queries.active
01FKBMPFZ8ZQ9R06MM2NABY73S  wal
01FKHE3249XK8CTBZPT0EV7BEW
/data # 

それぞれのフォルダーの中身の構成です。吸い出されたデータは、walというフォルダー内に128MBまで書き込まれて、溢れるとchunks内のファイルに書き込まれるそうです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
/data # ls -la 01FHQG4WN767261MPNBNAVYA8A/
total 3804
drwxr-xr-x    3 root     root          4096 Oct 11 11:00 .
drwxr-xr-x   21 root     root          4096 Nov  8 11:00 ..
drwxr-xr-x    2 root     root          4096 Oct 11 11:00 chunks
-rw-r--r--    1 root     root       3874622 Oct 11 11:00 index
-rw-r--r--    1 root     root          1494 Oct 11 11:00 meta.json
-rw-r--r--    1 root     root             9 Oct 11 11:00 tombstones
/data # ls -la 01FHQG4WN767261MPNBNAVYA8A/chunks/
total 79944
drwxr-xr-x    2 root     root          4096 Oct 11 11:00 .
drwxr-xr-x    3 root     root          4096 Oct 11 11:00 ..
-rw-r--r--    1 root     root      81849804 Oct 11 11:00 000001
/data # 

disk使用量は以下のとおりです。1ヵ月で約1.3GBとなりました。保存期間を30dに設定しているのでこれ以上増えることはないと思います。

1
2
3
/data # du -ks /data/
1312636 /data/
/data # 

今回のまとめ

4つのexporterの値をPrometheusで集めた結果、1ヵ月で約1.3GBのデータ量となることがわかりました。exporterの数やmetricsの数、scrape時間等によってデータ量がどのようになるのか追って分析していきたいと思います。

参考リンク

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# esp32_uptime
# TYPE esp32_uptime gauge
esp32_uptime 1987095848
# esp32_wifi_rssi
# TYPE esp32_wifi_rssi gauge
esp32_wifi_rssi -62
# esp32_heap_size
# TYPE esp32_heap_size gauge
esp32_heap_size 351932
# esp32_free_heap
# TYPE esp32_free_heap gauge
esp32_free_heap 112768
# esp32_cpu_frequency
# TYPE esp32_cpu_frequency gauge
esp32_cpu_frequency 240
# esp32_sketch_size
# TYPE esp32_sketch_size gauge
esp32_sketch_size 864128
# esp32_flash_size
# TYPE esp32_flash_size gauge
esp32_flash_size 1310720
# esp32_available_size
# TYPE esp32_available_size gauge
esp32_available_size 446592
# esp32_temperature
# TYPE esp32_temperature gauge
esp32_temperature 53.33
# BME280_temperature
# TYPE BME280_temperature gauge
BME280_temperature 24.92
# BME280_humidity
# TYPE BME280_humidity gauge
BME280_humidity 50.75
# BME280_atmospheric_pressure
# TYPE BME280_atmospheric_pressure gauge
BME280_atmospheric_pressure 1010.37

  1. esp32 node exporterのmetrics ↩︎

comments powered by Disqus