$30 off During Our Annual Pro Sale. View Details »

Prometheus / Grafana ハンズオン

Prometheus / Grafana ハンズオン

More Decks by NearMeの技術発表資料です

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 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

    View Slide

  6. 5
    ハンズオン⼿順1
    https://github.com/kakky-hacker/sandbox/tree/main/prometheus_sample
    README.mdの”Run servers”までを順に実⾏する。

    ブラウザから http://localhost:9090/targets にアクセス

    View Slide

  7. 6
    ハンズオン⼿順2
    ブラウザから http://localhost:3000 にアクセス

    username: admin,password: adminでログイン

    Home > connectionsからPrometheus検索

    右上の”Add new data source”をクリック

    View Slide

  8. 7
    ハンズオン⼿順3
    Nameを適当な名前に設定

    Prometheus server URLを
    http://host.docker.internal:9090
    に設定

    “Save & test”をクリック

    View Slide

  9. 8
    ハンズオン⼿順4
    Home > Dashboards > NewDashboardへと進む

    “Add Visualization”から作成したdata sourceを選択し,dashboardを作成

    QueryタブのMetricから指標を選び
    “Run queries”をクリック

    curlでリクエストを送信して,
    グラフの変化を確認する
    (リクエストの例はREADME参照)

    View Slide

  10. 9
    ハンズオン⼿順5
    job.pyを実⾏する

    メトリクス “job_random_number” を選択

    id毎にグラフが描画される(計2つ)

    Transformタブから左上の”Add”を選択

    全てのidの和のグラフも描画される

    View Slide

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

    View Slide

  12. 11
    Thank you

    View Slide