Carpe Diem

備忘録

Prometheus

Prometheusのrateを理解する

背景 Prometheusでメトリクスを可視化する際にPromQLを使います。その中で最もよく使うのがrate()関数ですが、 window, interval, resolutionの違い irate()関数との違い など疑問に思ったので一度きちんと整理してみます。 環境 Prometheus v2.40.5 range v…

FastAPIのメトリクスをマルチプロセスモードで収集する

背景 PythonはGILがあるためマルチコアの恩恵を受けづらいです。そのためGunicornのようなプロセスマネージャを利用してマルチプロセスで稼働させ、パフォーマンスを上げるといった手法があります。 しかしマルチプロセスにした場合、Prometheusのメトリクス…

PrometheusがStatsDより優れているところ

概要 新しい技術というのは既存の技術にある課題を解決するために生まれてきます。 入門 監視 ―モダンなモニタリングのためのデザインパターン作者:Mike Julianオライリー・ジャパンAmazon はStatsD&Graphiteを中心に説明されており、同時期に読んだ 入門 P…

Prometheus でカスタムコレクタを用意する

概要 以前↓の独自メトリクスを作る方法を紹介しました。 christina04.hatenablog.com これはdirect instrumentation(直接計装)というやり方で、アプリケーションサーバ自体がstatsを持ちprometheusにデータを渡すやり方です。 今回はそうではなく別プロセ…

Prometheus でNodeのモニタリング

概要 christina04.hatenablog.com でNode exporterを使った基本的な監視方法を説明しましたが、今回は具体的にどんな項目をどう監視すべきかを説明します。 USEメソッド サーバの監視すべき項目の指標としてUSEメソッドというものがあります。 項目 説明 Uti…

Prometheus の監視対象を ServiceDiscovery で動的に設定する

概要 PrometheusはPull型の監視ツールであるため、監視対象がどれかを教えてあげなければいけません。 これまでの記事は全てstatic_configsを用いた静的な値で、スケールした時やサービスが増減した時に柔軟性がありません。 PrometheusはServiceDiscoveryを…

Prometheus でAPIサーバの監視【gRPC】

概要 前回はHTTPのAPIサーバの監視の仕方を説明しました。 christina04.hatenablog.com 今回はgRPCでのメトリクスの作り方を説明します。 環境 Prometheus 2.11.1 Golang 1.12.7 Grafana 6.2.5 prometheus/client_golang 1.0.0 go-grpc-prometheus 1.2.0 メ…

Prometheus でAPIサーバの監視【HTTP】

概要 前回は既存のexporterを利用せず、自分でメトリクスを生成する方法を説明しました。 christina04.hatenablog.com その方法を使って実際にAPIサーバ(HTTP)のメトリクスを生成し、可視化してみます。 環境 Ubuntu 18.04 Prometheus 2.11.1 Golang 1.12.7 …

Prometheus で独自メトリクスを用意する

概要 Metric types | Prometheus で定義されているようにPrometheusでは大きく4つのメトリクスタイプがあります。 Counter Gauge Summary Histogram 今回はGoのPrometheusクライアントライブラリを用いて各メトリクスを独自で用意する方法を説明します。 環…

Grafanaのパネルの作り方

概要 Prometheus + GrafanaではPromQLを使って柔軟なパネルが作成できる一方、作り方が複雑になりがちです。 今回は基本的なパネルの作り方を説明します。 環境 Grafana 6.2.5 Prometheus 2.11.1 パネル Grafanaのダッシュボードのパネルは大きく10あります…

Prometheus の基本的な使い方【Grafana】

概要 christina04.hatenablog.com の続きです。 今回はGrafanaを使ってメトリクスの可視化をします。 環境 Ubuntu 18.04 Prometheus 2.11.1 Grafana 6.2.5 構成 引き続きVMで行います。 VM名 IP Prometheus 192.168.33.10 Node 192.168.33.11 Grafana 192.16…

Prometheus の基本的な使い方【Node exporter】

概要 Pull型の監視サービスであるPrometheusの使い方を説明します。 環境 Prometheus 2.11.1 Node exporter 0.18.1 アーキテクチャ Prometheusのアーキテクチャはこの様になっています。 ref: Overview | Prometheus 大まかな特徴としては以下です。 Pull型(…