入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング

Book description

本書はPrometheusモニタリングシステムを使って、インフラストラクチャとアプリケーションのパフォーマンスをモニタリングしてグラフ化したり、アラートを送る方法を解説する書籍です。簡単な構成のPrometheusを実行して概要を理解した後、インストルメンテーションの追加や利用方法、Grafanaによるダッシュボード作成などアプリケーションの監視について学びます。Node exporterなどの各種exporter、他のモニタリングシステムとの連携やコンテナとKubernetesなどインフラストラクチャのモニタリングを解説し、さらにクエリ言語のPromQLやアラートについて詳述。最後に本番システムにPrometheusをデプロイする方法を学びます。

Table of contents

  1.  大扉
  2.  原書大扉
  3.  クレジット
  4.  監訳者まえがき
  5.   企業事例
  6.   最後に
  7.  はじめに
  8.   既知を広げる
  9.   凡例
  10.   コード例の利用について
  11.   問い合わせ先
  12.   謝辞
  13. 第Ⅰ部 イントロダクション
  14.  1章 Prometheusとは何か
  15.   1.1 モニタリングとは何か
  16.    1.1.1 簡単で不完全なモニタリング小史
  17.    1.1.2 モニタリングのカテゴリ
  18.   1.2 Prometheusのアーキテクチャ
  19.    1.2.1 クライアントライブラリ
  20.    1.2.2 exporter
  21.    1.2.3 サービスディスカバリ
  22.    1.2.4 スクレイピング
  23.    1.2.5 ストレージ
  24.    1.2.6 ダッシュボード
  25.    1.2.7 レコーディングルールとアラート
  26.    1.2.8 アラート管理
  27.    1.2.9 長期記憶ストレージ
  28.   1.3 Prometheusは何ではないか
  29.  2章 初めてのPrometheus
  30.   2.1 Prometheusの実行
  31.   2.2 式ブラウザの使い方
  32.   2.3 Node exporterの実行
  33.   2.4 アラート
  34. 第Ⅱ部 アプリケーションのモニタリング
  35.  3章 インストルメンテーション
  36.   3.1 単純なプログラム
  37.   3.2 カウンタ
  38.    3.2.1 例外のカウント
  39.    3.2.2 サイズのカウント
  40.   3.3 ゲージ
  41.    3.3.1 ゲージの使い方
  42.    3.3.2 コールバック
  43.   3.4 サマリ
  44.   3.5 ヒストグラム
  45.    3.5.1 バケット
  46.   3.6 インストルメンテーションのユニットテスト
  47.   3.7 インストルメンテーションへのアプローチ
  48.    3.7.1 何をインストルメントすべきか
  49.    3.7.2 どの程度の量のインストルメンテーションをすべきか
  50.    3.7.3 メトリクスにはどのような名前を付けるべきか
  51.  4章 開示
  52.   4.1 Python
  53.    4.1.1 WSGI
  54.    4.1.2 Twisted
  55.    4.1.3 Gunicornによるマルチプロセス
  56.   4.2 Go
  57.   4.3 Java
  58.    4.3.1 HTTPServer
  59.    4.3.2 Servlet
  60.   4.4 Pushgateway
  61.   4.5 ブリッジ
  62.   4.6 パーサ
  63.   4.7 メトリクスの開示形式
  64.    4.7.1 メトリクスタイプ
  65.    4.7.2 ラベル
  66.    4.7.3 エスケープ
  67.    4.7.4 タイムスタンプ
  68.    4.7.5 メトリクスのチェック
  69.  5章 ラベル
  70.   5.1 ラベルとは何か
  71.   5.2 インストルメンテーションラベルとターゲットラベル
  72.   5.3 インストルメンテーション
  73.    5.3.1 メトリクス
  74.    5.3.2 複数のラベル
  75.    5.3.3 子
  76.   5.4 集計
  77.   5.5 ラベルのパターン
  78.    5.5.1 列挙
  79.    5.5.2 info
  80.   5.6 ラベルを使うべきとき
  81.    5.6.1 カーディナリティ
  82.  6章 Grafanaによるダッシュボードの作成
  83.   6.1 インストール
  84.   6.2 データソース
  85.   6.3 ダッシュボードとパネル
  86.    6.3.1 グラフの壁を避けよう
  87.   6.4 グラフパネル
  88.    6.4.1 時間の設定
  89.   6.5 シングルスタットパネル
  90.   6.6 テーブルパネル
  91.   6.7 テンプレート変数
  92. 第Ⅲ部 インフラストラクチャのモニタリング
  93.  7章 Node exporter
  94.   7.1 cpuコレクタ
  95.   7.2 filesystemコレクタ
  96.   7.3 diskstatsコレクタ
  97.   7.4 netdevコレクタ
  98.   7.5 meminfoコレクタ
  99.   7.6 hwmonコレクタ
  100.   7.7 statコレクタ
  101.   7.8 unameコレクタ
  102.   7.9 loadavgコレクタ
  103.   7.10 textfileコレクタ
  104.    7.10.1 textfileコレクタの使い方
  105.    7.10.2 タイムスタンプ
  106.  8章 サービスディスカバリ
  107.   8.1 サービスディスカバリのメカニズム
  108.    8.1.1 静的設定
  109.    8.1.2 ファイル
  110.    8.1.3 Consul
  111.    8.1.4 EC2
  112.   8.2 リラベル
  113.    8.2.1 スクレイプするものの選択
  114.    8.2.2 ターゲットラベル
  115.   8.3 スクレイプの方法
  116.    8.3.1 metric_relabel_configs
  117.    8.3.2 ラベルの衝突とhonor_labels
  118.  9章 コンテナとKubernetes
  119.   9.1 cAdvisor
  120.    9.1.1 CPU
  121.    9.1.2 メモリ
  122.    9.1.3 ラベル
  123.   9.2 Kubernetes
  124.    9.2.1 Kubernetes内でのPrometheusの実行
  125.    9.2.2 サービスディスカバリ
  126.    9.2.3 kube-state-metrics
  127.  10章 よく使われるexporter
  128.   10.1 Consul exporter
  129.   10.2 HAProxy exporter
  130.   10.3 Grok exporter
  131.   10.4 Blackbox exporter
  132.    10.4.1 ICMP
  133.    10.4.2 TCP
  134.    10.4.3 HTTP
  135.    10.4.4 DNS
  136.    10.4.5 Prometheusの設定
  137.  11章 ほかのモニタリングシステムとの連携
  138.   11.1 その他のモニタリングシステム
  139.   11.2 InfluxDB
  140.   11.3 StatsD
  141.  12章 exporterの書き方
  142.   12.1 Consulのtelemetry
  143.   12.2 カスタムコレクタ
  144.    12.2.1 ラベル
  145.   12.3 ガイドライン
  146. 第Ⅳ部 PromQL
  147.  13章 PromQL入門
  148.   13.1 集計の基礎
  149.    13.1.1 ゲージ
  150.    13.1.2 カウンタ
  151.    13.1.3 サマリ
  152.    13.1.4 ヒストグラム
  153.   13.2 セレクタ
  154.    13.2.1 マッチャ
  155.    13.2.2 インスタントベクトル
  156.    13.2.3 範囲ベクトル
  157.    13.2.4 オフセット
  158.   13.3 HTTP API
  159.    13.3.1 query
  160.    13.3.2 query_range
  161.  14章 集計演算子
  162.   14.1 グルーピング
  163.    14.1.1 without
  164.    14.1.2 by
  165.   14.2 演算子
  166.    14.2.1 sum
  167.    14.2.2 count
  168.    14.2.3 avg
  169.    14.2.4 stddevとstdvar
  170.    14.2.5 minとmax
  171.    14.2.6 topkとbottomk
  172.    14.2.7 quantile
  173.    14.2.8 count_values
  174.  15章 二項演算子
  175.   15.1 スカラの操作
  176.    15.1.1 算術演算子
  177.    15.1.2 比較演算子
  178.   15.2 ベクトルマッチング
  179.    15.2.1 一対一対応
  180.    15.2.2 多対一対応とgroup_left
  181.    15.2.3 多対多対応と論理演算子
  182.   15.3 演算子の優先順位
  183.  16章 関数
  184.   16.1 型変換
  185.    16.1.1 vector
  186.    16.1.2 scalar
  187.   16.2 数学関数
  188.    16.2.1 abs
  189.    16.2.2 ln、log2、log10
  190.    16.2.3 exp
  191.    16.2.4 sqrt
  192.    16.2.5 ceilとfloor
  193.    16.2.6 round
  194.    16.2.7 clamp_maxとclamp_min
  195.   16.3 日時
  196.    16.3.1 time
  197.    16.3.2 minute、hour、day_of_week、day_of_month、days_in_month、month、year
  198.    16.3.3 timestamp
  199.   16.4 ラベル
  200.    16.4.1 label_replace
  201.    16.4.2 label_join
  202.   16.5 欠損値とabsent
  203.   16.6 sortとsort_descによるソート
  204.   16.7 histogram_quantileによるヒストグラム作成
  205.   16.8 カウンタ
  206.    16.8.1 rate
  207.    16.8.2 increase
  208.    16.8.3 irate
  209.    16.8.4 resets
  210.   16.9 変化するゲージ
  211.    16.9.1 changes
  212.    16.9.2 deriv
  213.    16.9.3 predict_linear
  214.    16.9.4 delta
  215.    16.9.5 idelta
  216.    16.9.6 holt_winters
  217.   16.10 経時的集計
  218.  17章 レコーディングルール
  219.   17.1 レコーディングルールの使い方
  220.   17.2 レコーディングルールはいつ使うべきか
  221.    17.2.1 カーディナリティの削減
  222.    17.2.2 範囲ベクトル関数の作成
  223.    17.2.3 APIのためのルール
  224.    17.2.4 ルールの禁じ手
  225.   17.3 レコーディングルールの名前の付け方
  226. 第V部 アラート
  227.  18章 アラート
  228.   18.1 アラートルール
  229.    18.1.1 for
  230.    18.1.2 アラートのlabels
  231.    18.1.3 アノテーションとテンプレート
  232.    18.1.4 優れたアラートとは何か
  233.   18.2 Alertmanagerの設定
  234.    18.2.1 外部ラベル
  235.  19章 Alertmanager
  236.   19.1 通知パイプライン
  237.   19.2 設定ファイル
  238.    19.2.1 ルーティングツリー
  239.    19.2.2 レシーバ
  240.    19.2.3 抑止
  241.   19.3 Alertmanagerのウェブインタフェイス
  242. 第Ⅵ部 デプロイ
  243.  20章 本番システムへのデプロイ
  244.   20.1 ロールアウトのプランの立て方
  245.    20.1.1 Prometheusの成長
  246.   20.2 フェデレーションでグローバルへ
  247.   20.3 長期記憶ストレージ
  248.   20.4 Prometheusの実行
  249.    20.4.1 ハードウェア
  250.    20.4.2 構成管理
  251.    20.4.3 ネットワークと認証
  252.   20.5 障害対策
  253.    20.5.1 Alertmanagerのクラスタリング
  254.    20.5.2 メタモニタリングとクロスモニタリング
  255.   20.6 パフォーマンスの管理
  256.    20.6.1 問題の発見
  257.    20.6.2 コストが高いメトリクスとターゲットの発見
  258.    20.6.3 負荷の軽減
  259.    20.6.4 水平シャーディング
  260.   20.7 変更管理
  261.   20.8 困ったときの助けの求め方
  262.  著者紹介
  263.  奥付

Product information

  • Title: 入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング
  • Author(s): Brian Brazil, 須田 一輝, 長尾 高弘
  • Release date: May 2019
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118772

You might also like

book

実践 bashによるサイバーセキュリティ対策 ―セキュリティ技術者のためのシェルスクリプト活用術

by Paul Troncone, Carl Albing, 髙橋 基信

bashとLinuxの標準コマンドを活用したセキュリティ対策手法についての解説書。サイバーセキュリティの現場では、常にGUIの最新ツールを使えるとは限りません。CUIによるセキュリティ対策はセキュリティ技術者にとって必須の知識です。本書では、Linux/Mac/Windows環境でbashを含む標準的なLinuxのコマンドラインツール群を用いて、各種情報収集や収集した情報の解析、監視、侵入テスト(ペネトレーションテスト)など、サイバーセキュリティの具体的な手法を実践形式で説明します。

book

マッピングエクスペリエンス ―カスタマージャーニー、サービスブループリント、その他ダイアグラムから価値を創る

by James Kalbach, 武舎 広幸, 武舎 るみ

顧客は様々な体験を判断材料として製品やサービスを選びますが、一貫性がなく、場当たり的な対応は顧客体験を損う恐れがあります。それを避けるには組織内の部門間で連携が取れている必要があり、マップなどのダイアグラムが役に立ちます。本書はマップを作ることで顧客体験上の課題を可視化し、部門間の連携を促進させる方法を解説します。タッチポイントを通じてユーザ体験とビジネスプロセスを結びつけるマッピングについて解説する本書は、製品やサービスのプランニング、デザイン、開発に関わるすべての人に必携の一冊です。

book

マスタリング・イーサリアム ―スマートコントラクトとDAppの構築

by Andreas M. Antonopoulos, Gavin Wood, 宇野 雅晴, 鳩貝 淳一郎, 中城 元臣, 落合 渉悟, 落合 庸介, 小林 泰男, 土屋 春樹, 祢津 誠晃, 平山 翔, 三津澤 サルバドール将司, 山口 和輝

イーサリアムとは、分散型アプリケーションやスマートコントラクトのアプリケーション構築を可能にするオープンソースプロジェクトです。送金、決済などの金銭取引を行う機能に加えて、ゲーム、不動産取引、身分証明など、さまざまなサービスがイーサリアムから生まれています。本書は、ビットコインの定番書『Mastering Bitcoin』の著者と、イーサリアム共同設立者でありスマートコントラクト開発言語Solidityの開発者により執筆された、イーサリアムの技術解説書。イーサリアムについて詳しく知りたいすべての人必携の一冊です。

book

行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

by Stephen Wendel, 武山 政直, 相島 雅樹, 反中 望, 松村 草也

深津貴之氏推薦!「行動経済学、データ分析、サービス設計のエッセンスが高度に統合された行動変容デザインの良書です」 本書は、行動経済学と心理学をもとに、人々の行動、日常習慣を変える“行動変容”を促すプロダクトをデザインするための書籍です。主にヘルスケア(健康管理)、金融(資産管理)など、これまでITプロダクト(サービス、アプリなど)がなかなか使われてこなかった分野を対象に、ユーザーがやりたいと思っていたものの実行できなかった行動の実現を助けるプロダクトを作り出すための、実践的な視点や知識を提供します。