Lokiの構造化メタデータ:運用上の悪夢

2025-03-19

Grafana Lokiは「ログのためのPrometheus」と呼ばれることがありますが、当初はPrometheusに似たデータモデルを採用していました。しかし、これはシステムログ(syslogまたはsystemd journal)に対して壊滅的な結果をもたらしました。Prometheusとは異なり、Lokiは各ラベル値のセットを別々に保存し、ログストレージを圧縮しません。そのため、カーディナリティの爆発が発生します。これを解決するために、Lokiは「構造化メタデータ」を導入しましたが、バージョン3.0.0時点ではまだ未完成の状態です。構造化メタデータラベルは通常のLokiラベルとは扱われず、異なるクエリ構文が必要です。既存ラベルからの移行は複雑で、予期せぬ高カーディナリティラベルの作成リスクがあります。アップグレードには注意が必要で、既存データの移行は非常にコストがかかります。新しいプロジェクトで使用する場合、その制約を十分に考慮する必要があります。