« ^ »

Prometheusを使う

所要時間: 約 2分

インストールする

今回はlocalで動作させることが目的であるのでHomebrewを用いてインストールする。もちろん他の方法でインストールもできる。Dockerを用いたほうが楽な場合もあるだろう。

brew install prometheus

起動する

起動には設定ファイルが必要となる。デフォルトではカレントディレクトリのprometheus.ymlを探す。ただし起動するためだけであればファイルさえ存在していれば起動できる。そのため空のファイルとしてprometheus.ymlを作成する。

touch prometheus.yml

空の設定ファイルを作成したらprometheusを起動する。デフォルトだとカレントディレクトリにdataディレクトリを作成し、その中にいくつかのファイルを作成する。今回はprometheusのデータは/var/ng/prometheus配下に保持したいので --storage.tsdb.path オプションでディレクトリへのパスを指定する。

prometheus --storage.tsdb.path /var/ng/prometheus
起動

prometheusが起動したらローカルホストの9090ポート(http://localhost:9090)にアクセスできるようになる。ブラウザでアクセスするとダッシュボードが表示される。

https://res.cloudinary.com/symdon/image/upload/v1649984215/blog.symdon.info/1649983850/prometheus-screenshot.png

データを確認する

起動するとprometheusは保持するデータをファイルシステム上に作成する。

data
|-- chunks_head
|-- lock
|-- queries.active
`-- wal
    `-- 00000000
データディレクトリの中身
名前タイプ
chunks_headディレクトリ
lockファイル
queries.activeファイル
walディレクトリ
wal/00000000ファイル

Exporterを起動する

メトリクスを登録していくにはExporterを起動して、prometheus自身にその情報を回収させる必要がある。ここではGithub Exporterを用いて、メトリクスを登録する設定を行う。構成としては次のようになる。

https://res.cloudinary.com/symdon/image/upload/v1649991631/blog.symdon.info/1649983850/prometheus-exporter-github_rsbkjf.png

Github Exporterは手間を省くためにDockerで起動することにした。

このExporterが提供するメトリクスをprometheusが回収できるようにprometheus.ymlを変更する。


scrape_configs:
  - job_name: "github"
    scrape_interval: 24h
    static_configs:
    - targets:
      - "host.docker.internal:9171"

scrape_interval: 24h としている箇所は24時間に1回メトリクスを回収するという設定だ。prometheusを再起動するとメトリクスが回収される。例として回収したメトリクスを元にGithubにあるリポジトリのスター数(github_repo_stars)をグラフ化した。

https://res.cloudinary.com/symdon/image/upload/v1649990399/blog.symdon.info/1649983850/github-exporter.png