<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Prometheus on kkato.dev</title>
    <link>https://kkato.dev/tags/prometheus/</link>
    <description>Recent content in Prometheus on kkato.dev</description>
    <image>
      <title>kkato.dev</title>
      <url>https://kkato.dev/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://kkato.dev/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.146.0</generator>
    <language>en</language>
    <lastBuildDate>Sat, 14 Mar 2026 12:00:00 +0900</lastBuildDate>
    <atom:link href="https://kkato.dev/tags/prometheus/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Prometheusリモートストレージの比較</title>
      <link>https://kkato.dev/posts/prometheus-remote-storage/</link>
      <pubDate>Sat, 14 Mar 2026 12:00:00 +0900</pubDate>
      <guid>https://kkato.dev/posts/prometheus-remote-storage/</guid>
      <description>&lt;p&gt;Prometheusはデフォルトでローカルディスクにメトリクスを保存しますが、長期保存やHA構成を実現するためにリモートストレージが必要になります。代表的な選択肢としてThanos・Cortex・Mimirの3つがあり、業務で検討する機会があったので比較してまとめました。&lt;/p&gt;
&lt;h3 id=&#34;比較表&#34;&gt;比較表&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;a href=&#34;https://github.com/thanos-io/thanos&#34;&gt;Thanos&lt;/a&gt;&lt;/th&gt;
          &lt;th&gt;&lt;a href=&#34;https://github.com/cortexproject/cortex&#34;&gt;Cortex&lt;/a&gt;&lt;/th&gt;
          &lt;th&gt;&lt;a href=&#34;https://github.com/grafana/mimir&#34;&gt;Mimir&lt;/a&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;開発元&lt;/td&gt;
          &lt;td&gt;コミュニティ (元Improbable)&lt;/td&gt;
          &lt;td&gt;コミュニティ (元Weaveworks)&lt;/td&gt;
          &lt;td&gt;Grafana Labs&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;GitHub Stars&lt;/td&gt;
          &lt;td&gt;~14,200&lt;/td&gt;
          &lt;td&gt;~5,900&lt;/td&gt;
          &lt;td&gt;~5,200&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ライセンス&lt;/td&gt;
          &lt;td&gt;Apache 2.0&lt;/td&gt;
          &lt;td&gt;Apache 2.0&lt;/td&gt;
          &lt;td&gt;AGPL-3.0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CNCF&lt;/td&gt;
          &lt;td&gt;Incubating&lt;/td&gt;
          &lt;td&gt;Incubating&lt;/td&gt;
          &lt;td&gt;-&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;データ取り込み&lt;/td&gt;
          &lt;td&gt;Sidecar (pull) / Receiver (push)&lt;/td&gt;
          &lt;td&gt;remote_write (push)&lt;/td&gt;
          &lt;td&gt;remote_write (push)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;マルチテナント&lt;/td&gt;
          &lt;td&gt;限定的 (Receiver経由)&lt;/td&gt;
          &lt;td&gt;ネイティブ対応&lt;/td&gt;
          &lt;td&gt;ネイティブ対応&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ダウンサンプリング&lt;/td&gt;
          &lt;td&gt;あり (ネイティブ)&lt;/td&gt;
          &lt;td&gt;なし&lt;/td&gt;
          &lt;td&gt;なし&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;オブジェクトストレージ&lt;/td&gt;
          &lt;td&gt;S3, GCS, Azure, Swift, COS&lt;/td&gt;
          &lt;td&gt;S3, GCS, Azure, Swift&lt;/td&gt;
          &lt;td&gt;S3, GCS, Azure, Swift&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;各プロジェクトの特徴&#34;&gt;各プロジェクトの特徴&lt;/h3&gt;
&lt;h4 id=&#34;thanos&#34;&gt;Thanos&lt;/h4&gt;
&lt;p&gt;コミュニティ主導でCNCF Incubatingプロジェクトになっています。最大の特徴はSidecarパターンで、既存のPrometheusに手を加えずに横に並べる形でデプロイできます。&lt;/p&gt;
&lt;p&gt;各コンポーネントの役割:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sidecar: PrometheusのPodに並べてデプロイするコンテナ。PrometheusがローカルにTSDBブロックをフラッシュするタイミング（2時間ごと）でオブジェクトストレージにアップロードします&lt;/li&gt;
&lt;li&gt;Store Gateway: オブジェクトストレージ上の過去データを読み出し、クエリに応答するコンポーネント&lt;/li&gt;
&lt;li&gt;Querier: PromQL互換のクエリエンドポイント。SidecarやStore Gatewayに問い合わせて結果を集約し、Grafanaに返します&lt;/li&gt;
&lt;li&gt;Compactor: オブジェクトストレージ上のブロックをダウンサンプリング・コンパクションするバックグラウンドプロセス&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&#34;mermaid&#34;&gt;graph LR
    A[Prometheus + Sidecar] --&amp;gt;|アップロード| B[オブジェクトストレージ]
    B --&amp;gt; C[Store Gateway]
    B --&amp;gt; D[Compactor]
    C --&amp;gt; E[Querier]
    E --&amp;gt; F[Grafana]
&lt;/pre&gt;

&lt;p&gt;ダウンサンプリング（5分・1時間粒度）をCompactorがネイティブでサポートしているため、数年分の長期データを扱う場合でも高速にクエリできます。マルチテナントはReceiverコンポーネント経由で実現できますが、CortexやMimirと比較すると後付けの印象が強いです。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
