かゆいところに手が届く実践「Prometheus」「Grafana」――PromQL、スクレイプ、Exporter、運用のためのポイント:Cloud Nativeチートシート(15)
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する連載。今回は、Observabilityのシグナル「メトリクス」について紹介し、「Prometheus」「Grafana」を使う上でのポイントを解説します。
※岡本、正野、宇都宮はNTTデータ所属
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する本連載「Cloud Nativeチートシート」。第13回から「Observability(オブザーバビリティ)」「可観測性」にフォーカスしています。第13回ではObservabilityの概要と、その構成要素や考慮点を、第14回ではそれを活用したトラブルシューティングフローを紹介しました。
第15回となる今回は、最もベーシックなObservabilityのシグナルであるメトリクスにフォーカスして、デファクトスタンダードなオープンソースソフトウェア(OSS)「Prometheus」「Grafana」に関連したポイントを紹介します。
1章:Prometheusの概要
連載第13回で説明したように、「メトリクス」は、サーバのリソース状況(CPU使用率など)やサービス状況(レイテンシ、トランザクション量、エラーレートなど)といった、指標となる数値データで、これまでも古くから監視されてきた項目です。このメトリクスの監視ツールとして、急速に利用されてきているのが、Prometheusです。
Prometheusでは次のような特徴から、コンポーネント数が多くなりがちなKubernetesを中心としたクラウドネイティブなアーキテクチャにおいて、監視OSSとしてはデファクトスタンダードといえます。
- 多次元データモデル
時系列のメトリクスデータにラベルを付与することでKey-Value形式で取得できる - メトリクス公開のしやすさ
決められたフォーマットでメトリクスデータをHTTP公開するだけで、Prometheusにメトリクスを収集できる - サービスディスカバリ
Kubernetesリソースなどのコンポーネントのモニタリングターゲットを検出する仕組みで、Kubernetesをデフォルトでサポートしている - スクレイプ
サービスディスカバリで提供される情報を使って「どういったターゲットのメトリクスを収集するのか」を設定できる - 多くのインテグレーション
各言語で利用できるライブラリ、さまざまなミドルウェアやソフトウェアで利用できるメトリクスを収集、公開するエージェント「Exporter」の開発が盛ん - クエリ言語「PromQL」
シンプルな記法で時系列データを探索できる
PrometheusのダッシュボードとしてはGrafanaが一般的といえます。GrafanaからPromQLを呼び出せるので、Prometheus上に収集した各種コンポーネントのメトリクスをラベルでうまくフィルタリング、集計しながらさまざまな表示形式で可視化できます。
本稿では、PrometheusとGrafanaについて以下の流れでポイントを紹介します。
- 2章:PromQL
PromQLを活用してシンプルな記法で時系列データを扱う方法 - 3章:スクレイプ
Prometheusによるメトリクス収集時のポイント(サービスディスカバリを活用したKubernetesリソース検出、ラベリング) - 4章:Exporter、Dashboard
ターゲットのメトリクスを公開するExporterを使った多様なミドルウェアやメトリクスとの連携 - 5章:運用のためのポイント
Prometheusを運用する際のよくある課題とその解決策
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- New Relicがアプリの問題解決で開発者を助ける新機能、「開発者は本来の仕事に集中できる」
New Relicの日本法人が可観測性プラットフォームで新機能「New Relic CodeStream」を発表した。 開発ツールを離れることなくソースコードの問題箇所を特定し、チーム内で情報を共有して迅速に解決できるという。 - AWS、障害注入試験に向くフルマネージドサービス「AWS Fault Injection Simulator」を正式リリース
AWSはシステムに意図的に障害を発生させる障害注入試験に向いたフルマネージドサービス「AWS Fault Injection Simulator」の一般提供を開始した。CPUやメモリの使用量の急増といった破壊的なイベントを発生させてアプリケーションに負荷をかけ、システムの反応を監視して、改善できる。 - ユーザーの幸福度を定量化――SLI、SLO実践の4ステップ
SREは計測、自動化など取り組むことが多く、求められる知識量も少なくない。また周囲の理解が得られなければ、組織でSLI、SLOを定義してSREを実践するのも容易ではない。組織でSREに取り組む最初の一歩をどう踏み出せばいいのか。