翻訳しながらPrometheusを触ってみる~概要編~
はじめに
今回はPrometheusを触ってみます。とりあえず目標としてざっと概念と使える機能・実際の使い方を軽く理解できたら良いと思っています。
Prometheusを触る目的ですが研究の検証時に使用したいからです。主なユースケースとしてはGoやTypeScirptで書かれたrestやgRPC, GraphQLサーバーの負荷検証及びアプリケーションが与えるサーバーへの負荷の確認です。
いつもの翻訳しながら触ってみた記事とは比べ物にならないほど不確定な情報が多い気がします。Prometheusのチュートリアルをやってみるときに参考程度にしてください。
Overviewのところから始めます!
Overview
Prometheusはオープンソースで公開されている監視とアラートのツールキット
メトリックを時系列で収集・保存する←メリトリックスとは?
主な機能(最初の2つだけまとめておきます)
データモデルを時系列持ちのキーバリューペアで表せる
PromQLでデータを操作
メトリックスとは←書いてました
そのアプリケーションがなぜそのように動いているかわかるようになるよ
よくわからなかったです。時系列を持ったデータのことですかね?
コンポーネント
サーバー→データの取得・保存を行う
クライアントライブラリー→アプリケーションの操作を行う
プッシュゲートウェイ→短い処理をサポート
エクスポーター→特殊なサービス?
アラートマネージャー→アラートの処理を行う
コンポーネントはほとんどがGoで書かれているらしいです!
下にアーキテクチャの図がありました。クライアントライブラリーはどこですかね?ただ図とその説明・先ほどのコンポーネントの説明からすればPrometheus serverに直接 or Pushgatewayからデータが取れるみたいです。このPrometheus targetsがそうかな?
何に向いている?
時系列の記録
信頼性
何に向いていない?
厳密にリクエストがいくつあったか収集したいとき
何となくわかりました、、、
First steps
インストールと設定について押してくれるみたいです。
ダウンロードの方法が書いていますが自分のPCを汚したくないのでこちらに従ってDockerで起動してみます。
設定などはFirst stepsに書いてあるものに沿っていきます
設定ファイル
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
global→グローバルな設定
rule_files→追加のルール
Prometheusが監視するリソース
現状はjob_name prometheusと書いていて自分自身を監視しているみたいです。
とりあえずDocker上で立ち上げてみます。prometheus.ymlと同じディレクトリにいることを想定しています。長いので実践で使うならdocker composeで全て書いた方がいいですね。
docker run \
-p 9090:9090 \
-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
localhostの9090にダッシュボードが立ち上がっている(/graphにリダイレクトされます)みたいで9090/metricsでmetricsデータの取得ができるみたいです。
なるほど。
ドキュメントに従ってステータスコードの回数表示の確認ができてグラフの表示にも対応しているみたいです。
このときに書き込んだもの(虫眼鏡の横に書いてあるコード)がその表現方法らしいです。
表現方法のドキュメント
このクエリの知識は必要になりそうですが必要なときに都度調べます。
説明を見てもIntroductionの章はこんな感じで終わって良さそうです。
次はパソコンの自体の監視を行ってみるのが良いみたいです。
長くなりそうなのでここで一度切ります。
まとめ
今回は翻訳をしながらPrometheusを触ってみました。今のところクエリや設定は都度調べるとして特別難しい印象は持っていないです。ただコンポーネントもおそらくサーバーを触ってみただけなので実践で使うのは難しいかもしれないです。
次回は公式のチュートリアルをやってから先ほどおすすめされていたGuidesの中を確認してみたいと思います!次回も翻訳をしつつ進めていきます。
この記事が気に入ったらサポートをしてみませんか?