Slide 1

Slide 1 text

0 Prometheus / Grafana ハンズオン 2023-10-13 第64回NearMe技術勉強会 Takuma Kakinoue

Slide 2

Slide 2 text

1 Prometheusとは 「Cloud Native Computing FoundationのプロジェクトであるPrometheusは、システムお よびサービス監視システムです。設定されたターゲットから所定の間隔でメトリクスを収 集し、ルール式を評価し、結果を表⽰し、指定された条件が観察されたときにアラートを トリガーすることができます。」 ※ 出典: https://github.com/prometheus/prometheus • 設定されたターゲット = APIサーバーやWebサーバーなど • メトリクス = アクセス回数,エラー回数,応答時間など • ルール式 = 「毎分のエラー回数がn回を超過したら」など • アラートは,slackやメールなどに送信することが可能

Slide 3

Slide 3 text

2 Grafanaとは https://github.com/grafana/grafana 監視およびビジュアライズのためのOSSプラットフォーム Prometheus同様,dockerイメージをpullするだけで簡単に使える Prometheusで監視対象から取得した モニタリング指標をGrafanaで可視化する

Slide 4

Slide 4 text

3 今回のハンズオンの到達⽬標 • 簡単なhttpサーバーに対して、アクセス回数およびエラー回数を Prometheus + Grafanaを⽤いて監視する • プログラムからPushした適当なメトリクスをビジュアライズする

Slide 5

Slide 5 text

4 ハンズオンで使う監視システムの構成 prometheus port : 9090 grafana port : 3000 push gateway port : 9091 my-server http port : 8080 metric port : 8000 job.py ※ PrometheusはPull型の監視システ ムなので、cronJobの様なサーバー機 能を持たないシステムの監視は push-gatewayを介して行う PromQL metrics Push metrics metrics metrics 背景が黄色のものが監視対象 request request

Slide 6

Slide 6 text

5 ハンズオン⼿順1 https://github.com/kakky-hacker/sandbox/tree/main/prometheus_sample README.mdの”Run servers”までを順に実⾏する。 ↓ ブラウザから http://localhost:9090/targets にアクセス

Slide 7

Slide 7 text

6 ハンズオン⼿順2 ブラウザから http://localhost:3000 にアクセス ↓ username: admin,password: adminでログイン ↓ Home > connectionsからPrometheus検索 ↓ 右上の”Add new data source”をクリック

Slide 8

Slide 8 text

7 ハンズオン⼿順3 Nameを適当な名前に設定 ↓ Prometheus server URLを http://host.docker.internal:9090 に設定 ↓ “Save & test”をクリック

Slide 9

Slide 9 text

8 ハンズオン⼿順4 Home > Dashboards > NewDashboardへと進む ↓ “Add Visualization”から作成したdata sourceを選択し,dashboardを作成 ↓ QueryタブのMetricから指標を選び “Run queries”をクリック ↓ curlでリクエストを送信して, グラフの変化を確認する (リクエストの例はREADME参照)

Slide 10

Slide 10 text

9 ハンズオン⼿順5 job.pyを実⾏する ↓ メトリクス “job_random_number” を選択 ↓ id毎にグラフが描画される(計2つ) ↓ Transformタブから左上の”Add”を選択 ↓ 全てのidの和のグラフも描画される

Slide 11

Slide 11 text

10 次回予告 • PrometheusのAlertManagerを使ってみる • PromQLを理解する

Slide 12

Slide 12 text

11 Thank you