# pg_stats_reporter 1.0

1. pg_stats_reporter とは？
2. 機能概要
3. インストール
   1. 動作環境
   2. pg_stats_reporter のインストール
   3. 初期設定
   4. 動作確認
4. 操作方法
5. アンインストール
6. 設定ファイル
7. 使用上の注意と制約
8. よくあるQ&A
9. 関連項目
10. 謝辞

## pg_stats_reporter とは?

pg_statsinfo-2.4で収集した統計情報(以降、スナップショットと呼びます)を使って、グラフィカルな出力が可能になります。
レポート例はこちらを参照してください。

## 機能概要

pg_stats_reporter はブラウザから利用し、pg_statsinfo が PostgreSQL に格納したスナップショットからグラフィカルなレポートを作成し、表示します。

## インストール

pg_stats_reporter のインストールについて説明します。インストールパッケージはこちらからダウンロードしてください。
ソースセットからインストールする場合は、ソースセットに同梱されている INSTALL.ja ファイルを参照してください。

### 動作環境

pg_statsinfo が監視対象とする PostgreSQL
  バージョン 8.3 以降
pg_statsinfo
  バージョン 2.4 以降
動作確認済みPHP (OS同梱のもの)
  バージョン 5.3.3
動作確認済みOS
  RHEL 5.x, 6.x, CentOS 5.x, 6.x
動作確認済みブラウザ
  Firefox : 3.6.9, 16.0.2
  Google Chrome : 23.0.1271.64 m
動作確認済みHTTP Server (OS同梱のもの)
  Apache HTTP Server : 2.2.15
利用ライブラリ(pg_stats_reporter の RPM に同梱)
  - jQuery : 1.8.2
  - jQuery UI : 1.9.1
  - jquery-ui-timepicker-addon : 0.9.9
  - dygraphs JavaScript Visualization Library : 4d3672f
  - jqPlot : 1.0.4 r1121
  - tablesorter : 2.0.3
  - Superfish : 1.4.8
  - Smarty : 3.1.12
解像度
  1024x786(SXGA)以上推奨

### pg_stats_reporterのインストール

依存するパッケージ、および入手した rpm ファイルを、rpm コマンドでインストールします。以下はインストール例です。

    $ su
    # rpm -ivh httpd-2.2.15-15.el6_2.1.x86_64.rpm
    # rpm -ivh php-5.3.3-3.el6_2.8.x86_64.rpm
    # rpm -ivh php-common-5.3.3-3.el6_2.8.x86_64.rpm
    # rpm -ivh php-pgsql-5.3.3-3.el6_2.8.x86_64.rpm
    # rpm -ivh php-intl-5.3.3-3.el6_2.8.x86_64.rpm
    # rpm -ivh pg_stats_reporter-1.0.0-1.el6.noarch.rpm

### 初期設定

#### 設定ファイルの作成

サンプルから設定ファイルを作成します。設定ファイルの説明はこちらを参照してください。
「database connection」の各項目を、pg_statsinfo のスナップショット格納DB(以降、リポジトリDBと呼びます)への接続情報に修正します。
以下は作成例です。

    # cd /var/www/pg_stats_reporter
    # vi pg_stats_reporter.ini
    ----- リポジトリDBへの接続情報に修正します -----
    host = localhost
    port = 5432
    dbname = postgres
    username = postgres
    password =

### 動作確認

HTTP Server を起動し、操作方法の手順に従いアクセスします。

    # service httpd start

## 操作方法

pg_stats_reporter は pg_statsinfo のリポジトリを表示させるためのものです。
前もって pg_statsinfo のリポジトリを準備してください。

### レポート表示

ブラウザから pg_stats_reporter.php にアクセスします。
以下は pg_stats_reporter 実行環境でブラウザからアクセスするとき時のURLの例です。

    http://localhost/pg_stats_reporter/pg_stats_reporter.php

起動時は、以下のレポートを表示します。

- 対象リポジトリDB : 設定ファイルの先頭に記述された項目
- レポート期間の開始日時 : pg_stats_reporter実行日前日の0時
- レポート期間の終了日時 : pg_stats_reporter実行日時

pg_stats_reporterを「2013年1月9日 10:52:21」に実行した場合の表示例をこちらに示します。

### 操作方法詳細

画面の操作方法を以下に示します。

#### レポート画面

① : Create report range ボタン
  レポート作成期間を変更します。詳細はレポート作成期間指定ダイアログを参照してください。
② : リポジトリDB選択メニューのリポジトリ選択
  選択すると、アコーディオン形式でリポジトリDBで管理している監視対象DBの情報を表示/非表示します。
③ : リポジトリDB選択メニューの監視対象DB
  選択すると、現在表示中のレポートと同じ期間で該当の監視対象DBのレポートを表示します。
④ : Reload pg_stats_reporter.ini ボタン
  設定ファイルの再読み込みを行います。読み込み後は起動時と同様の条件でレポートを表示します。
⑤ : ヘッダメニュー
  選択すると、レポートの該当項目へ移動します。
⑥ : メニュー表示/非表示ボタン
  ボタンを押すごとに、左側のメニューの表示/非表示が切り替わります。
⑦ : ヘルプボタン
  表やグラフの簡単な説明が表示されます。

#### レポート作成期間指定ダイアログ

⑧ : レポート期間開始日時指定ボックス
  レポート期間の開始年月日を入力します。選択すると、日時指定のダイアログボックスが表示されます。
⑨ : レポート期間終了日時指定ボックス
  レポート期間の終了年月日を入力します。選択すると、日時指定のダイアログボックスが表示されます。
⑩ : Create report ボタン
  入力した期間でレポートを作成します。
⑪ : Cancel ボタン
  レポート期間の指定をキャンセルします。

## アンインストール

rpm コマンドでアンインストールします。
ソースセットからインストールした場合のアンインストール手順は、ソースセットに同梱されている INSTALL.ja ファイルを参照してください。

    $ su
    # rpm -e pg_stats_reporter-1.0.0-1.el6.noarch

## 設定ファイル

設定ファイル(pg_stats_reporter.ini)は、データベース接続情報およびレポート表示に関する設定を行うファイルです。設定項目を以下に示します。
1つのリポジトリDBの設定は、[リポジトリDB名]から始まるこれらの項目全て(以降セクションと呼びます)となります。
複数のリポジトリDBを設定したい場合は、設定ファイルにセクションを複数記述してください。
記述例はこちらを参照してください。

設定項目 | 設定可能な値 | 項目省略時 | 設定値省略時 | 設定例 | 説明
--- | --- | --- | --- | --- | ---
[リポジトリDB名] | 文字列 | 省略不可 | 省略不可 | [repository1] | 左側のリポジトリ選択メニューに表示するリポジトリDBの名称を指定します。日本語を指定する場合はUTF-8で指定する必要がありますが、推奨しません。
host | ホスト名または IP アドレス | *1 | 空文字列 | host = localhost | 接続するリポジトリDBのホストを指定します。指定するホスト名は、PostgreSQLが受け付ける形式で指定する必要があります。
port | ポート番号 | *1 | 空文字列 | port = 5432 | 接続するリポジトリDBのポート番号を指定します。PostgreSQL の待ち受けポートを指定してください。
dbname | 文字列 | *1 | *1 | dbname = postgres | 接続するリポジトリDBのデータベース名を指定します。pg_statsinfo でリポジトリDBとして使用しているデータベースの名称を指定してください。
username | 文字列 | *1 | *1 | username = postgres | リポジトリDBに接続するDBユーザの名称を指定します。リポジトリDBに参照権限のあるDBユーザの名称を指定してください。
password | 文字列 | パスワード指定なし | パスワード指定なし | password = | リポジトリDBへの接続で使用するパスワードを指定します。PostgreSQL への接続パスワードを .pgpass を使用して設定する場合は、値を設定しないでください。
language | auto/ja/en | auto | en | language = ja | レポートの表示言語の言語タグを設定します。auto を設定した場合は、表示するブラウザの設定を使用します。指定した言語に対応するメッセージが存在しない場合は英語で表示します。
表示項目 (summary 〜 profiles) | true/false | true | false | summary = true | レポートに項目の表示/非表示を bool 値で設定します。

*1: 設定項目または設定値を省略した場合の挙動については、PostgreSQL日本語ドキュメントのこちらを参照してください。

## 使用上の注意と制約

pg_stats_reporter を使用する際には、以下の使用上の注意と制約があります。

- ディストリビューションによっては、HTTP Server のドキュメントルートのデフォルトが実行ユーザのホームディレクトリになっている場合があります。そのため、PostgreSQL の接続パスワードで .pgpass を使用する場合には、外部から参照されないように注意して配置してください。

## よくあるQ&A

#### Q1. pg_stats_reporter の画面が表示されません。

A1. ファイアウォール、および SELinux の設定が正しい設定となっているか見直してください。

#### Q2. データベース接続失敗のエラーが表示されて、pg_stats_reporter の画面が表示されません。

A2. 以下の2点を確認してください。

- pg_stats_reporter.ini に記述されている「database connection」の情報
- 接続先の PostgreSQL の設定 (postgresql.conf, pg_hba.conf)

#### Q3. ブラウザに Internet Explorer を使用してレポートを表示したところ、正しく表示されません。

A3. ブラウザに Internet Explorer を使用してレポートを作成した場合、Internet Explorer のバージョンによって正しく表示されない場合があります。ブラウザは Firefox を使用することを推奨します。

## 関連項目

pg_statsinfo

## 謝辞

pg_stats_reporter では、以下のライブラリを活用させていただいております。感謝いたします。

- jQuery : http://jquery.com/
- jQuery UI : http://jqueryui.com/
- jquery-ui-timepicker-addon : http://trentrichardson.com/examples/timepicker/
- dygraphs JavaScript Visualization Library : http://dygraphs.com/
- jqPlot : http://www.jqplot.com/
- tablesorter : http://tablesorter.ru/docs/
- Superfish : http://users.tpg.com.au/j_birch/plugins/superfish/
- Smarty : http://www.smarty.net/