これはセクションの複数ページ印刷用ビューです。 .
pgBadger 13.2ドキュメント
- 1: ダウンロードとインストール
- 2: コマンドラインリファレンス
- 3: PostgreSQLのログ設定
- 4: 並列処理
- 5: 増分レポート
- 6: 出力形式
- 7: サンプルレポート
-
8: リリース履歴
- 8.1: pgBadger 13.xリリースノート
- 8.2: pgBadger 12.xリリースノート
- 8.3: pgBadger 11.xリリースノート
- 8.4: pgBadger 10.xリリースノート
- 8.5: pgBadger 9.xリリースノート
- 9: サポートと貢献
- 10: ライセンスとクレジット

pgBadgerは、Perlで書かれた高速な単体動作のPostgreSQLログアナライザーです。PostgreSQLまたはPgBouncerのログを読み取り、詳細なHTML、テキスト、バイナリ、JSON、または生のCSVを出力します。HTMLレポートは自己完結型で、操作や拡大縮小が可能です。閲覧に必要なのはウェブブラウザーだけです。
pgBadgerを選ぶ理由
pgBadgerは、大きなログの解析と運用での利用を想定して設計されています。
- 単一のPerlプログラムであり、Perlコア以外の必須モジュールはありません。
stderr、syslog、csvlog、jsonlog、RDS、Cloud SQL、logplex、Redshift、PgBouncerの入力を自動検出します。- ローカルファイル、標準入力、SSH経由のリモートファイル、HTTP・FTP・SFTPのURLを直接読み取ります。
- gzip、bzip2、lz4、xz、zip、zstdの圧縮入力に対応します。
- 単一の大きなファイル、または多数の小さなファイルを並列に解析します。
- 日次、週次、および必要に応じた月次の増分レポートを生成します。
- 時刻、データベース、ユーザー、クライアント、アプリケーション、プロセス、セッション、クエリーパターンで絞り込めます。
レポートの内容
PostgreSQLのレポートには次の内容が含まれます。
- 全体の動作とクエリー統計。
- 低速、高頻度、時間消費の多い、待機中、キャンセルされたクエリー。
- 一時ファイル、チェックポイント、ロック、セッション、接続。
- テーブルごとのautovacuumとautoanalyzeの動作。
- 重大度と分類ごとのエラーとイベント。
- データベース、ユーザー、クライアント、アプリケーション、ステートメント種別ごとの分布。
PgBouncerを入力とする場合は、スループット、平均クエリー実行時間、同時セッション数、接続とセッションの分布、予約プールの使用量、および頻発するエラーとイベントのレポートが加わります。
ドキュメントの構成
次の順序でマニュアルを読むか、サイドバーから目的の作業へ直接移動してください。
- pgBadgerとオプションモジュールをダウンロードしてインストール します。
- 完全なコマンドラインリファレンス を確認します。
- 解析可能なプレフィックスを使ってPostgreSQLのログ出力 を設定します。
- 適切な並列処理 モードを選択します。
- 増分レポート を安全に生成します。
- 出力形式 を選び、ローカルのサンプル を確認します。
- リリース履歴 、サポート 、ライセンス を確認します。
アップストリームへのリンク
1 - ダウンロードとインストール
配布経路を選ぶ
| 配布経路 | 用途 | 場所 |
|---|---|---|
| 公式リリース | ソースのtarballとリリースノート | GitHub Releases |
| RPMパッケージ | RPMを使用するLinuxディストリビューション | PostgreSQL Yum Repository |
| Debian/Ubuntuパッケージ | APTを使用するLinuxディストリビューション | PostgreSQL Apt Repository |
| 開発用ソース | 未リリースの最新コード | darold/pgbadger |
以下のインストール例ではpgBadger 13.2を使用します。ダウンロード前にリリースページで利用するバージョンを確認してください。
要件
HTMLレポートを使用する場合に必要なのは、次のものだけです。
- 新しいPerlディストリビューション。
- 埋め込みJavaScriptグラフを描画するウェブブラウザー。
オプション機能には、次の依存関係が追加で必要です。
| 機能 | 依存関係 |
|---|---|
| PostgreSQLのCSVログを解析 | Text::CSV_XS |
| JSON出力を書き出す | JSON::XS |
.gz、.bz2、.lz4、.xz、.zip、.zstの入力を読む |
対応するzcat、bzcat、lz4cat、xz、unzip、zstdcatユーティリティー |
DebianまたはUbuntuでJSONサポートをインストールします。
RPMベースのシステムの場合:
展開プログラムのパスを変更するには、--zcatを使用します。独自のコマンドを1つ指定すると、同じ実行内で異なる圧縮形式を混在させることはできなくなります。
pgBadgerがアーカイブのメタデータを読み取れるよう、xzユーティリティーは--robotに対応している必要があります。lz4ログは--content-sizeを指定して圧縮してください。これにより、pgBadgerが非圧縮時のサイズを判断できます。
公式tarballからインストールする
リリースアーカイブをダウンロードし、Perlの標準ツールチェーンでビルドしてインストールします。
デフォルトのsiteレイアウトでは、プログラムを/usr/local/bin/pgbadger、マニュアルページを/usr/local/share/man/man1/pgbadger.1にインストールします。
ディストリビューションと同様に/usr配下にインストールする場合は、次のようにMakefileを生成します。
INSTALLDIRS=perlも、アップストリームでサポートされているレイアウトです。管理下のシステムにインストールする前に、生成されるパスを確認してください。
開発版のコードをインストールする
開発版のコードには、リリースノートにまだ記載されていない変更が含まれる場合があります。本番環境向けのパッケージを再現可能に作成するには、タグ付きのアーカイブを使用してください。
インストールを確認する
続いて、コマンドラインリファレンス とPostgreSQLのログ設定 を参照してください。
2 - コマンドラインリファレンス
使い方とオプション
使用法: pgbadger [options] logfile […]
引数:
オプション:
pgBadgerは、パスワードなしのSSH接続でリモートログファイルを解析できます。-rまたは –remote-host でホストのIPアドレスまたはホスト名を指定します。SSH接続を細かく制御する追加オプションもあります。
--ssh-sudoは、リモートでファイルを一覧表示・読み取りするコマンドの先頭にsudoを付けます。リモートのSSHユーザーは、対話的な入力なしでこれらのコマンドをsudo経由で実行できる必要があります。
解析するログファイルは、URIを使用して指定することもできます。サポートされているプロトコルはhttp[s]および [s]ftpです。ファイルのダウンロードにはcurlコマンドが使用され、ダウンロード中にファイルが解析されます。 sshプロトコルもサポートされており、リモートホストの使用と同様にsshコマンドを使用します。以下の例を参照してください。
終了コード:
例:
リモートログファイルにはURI表記を使用します。
ローカルPostgreSQLログファイルとリモートpgbouncerログファイルを一緒に使用して解析できます。
cronジョブで毎週エラーをレポートします。
増分動作を使用して毎週レポートを生成します。
これは、ログファイルとHTMLレポートも毎週ローテーションされることを前提としています。
あるいは、自動生成された増分レポートを使用することをお勧めします。
日ごとおよび週ごとにレポートが生成されます。
増分モードでは、レポートに保存する週数を指定することもできます。
毎日30分間、23:00および13:00にpg_dumpがある場合、次のようにpgBadgerを使用して、これらの期間をレポートから除外できます。
この式は、該当する時間帯の1時間全体を除外するため、30分のダンプ処理以外の時間も除外されます。ダンプの実行時間だけを除外する場合は、分のパターンを絞り込んでください。
これにより、pg_dumpによって生成されたCOPYステートメントが最も遅いクエリーのリストの上位に表示されるのを避けることができます。 –exclude-appname “pg_dump” を使用して、この問題をより簡単な方法で解決することもできます。
また、journalctl出力をログファイルであるかのように解析することもできます。
リモートホストから呼び出すこともできます。
コマンドラインでログファイルを指定する必要はありませんが、解析する他のPostgreSQLログファイルがある場合は、通常どおり追加できます。
すべての増分HTMLレポートを後で再構築するには、次の手順を実行します。
また、すべてのリソースファイル(JSおよびCSS)も更新されます。このオプションを使用してレポートが作成された場合は、-Eまたは –explode を使用します。
pgBadgerは、logplex形式を使用したHeroku PostgreSQLログもサポートしています。
これにより、標準入力を介してHeroku PostgreSQLログがpgbadgerにストリーミングされます。
pgBadgerは、rds形式を使用してRDSおよびCloudWatch PostgreSQLログを自動検出できます。
各Cloud SQL PostgreSQLログはごく普通のPostgreSQLログですが、JSON形式でカプセル化されています。これはpgBadgerによって自動検出されますが、ログ形式を強制する必要がある場合には jsonlogを使用します。
jsonlog拡張機能のログとはJSONの構造が異なりますが、pgBadgerは両方を解析できます。
pgBadgerは、KubernetesのCloudNativePG Postgresオペレーターによって生成されたログもサポートします。
1か月にわたる累積レポートを作成するには、次のコマンドを使用します。
これにより、増分レポートのカレンダービューに月名へのリンクが追加され、2019年5月のレポートが表示されます。このオプションを使用してレポートが作成された場合は、-Eまたは –explode を使用します。
3 - PostgreSQLのログ設定
pgBadgerでレポートできるのは、PostgreSQLがログに書き出した情報だけです。まず解析可能なプレフィックスと、目的に応じたステートメントのログ出力方針を設定し、次に分析したい運用イベントを追加してください。
クエリーログの最小構成
クエリー本文と実行時間を記録するには、実行時間に基づくステートメントのログ出力を有効にします。
0を指定すると、完了したすべてのステートメントが記録されます。負荷の高いサーバーでは、ログ量を抑えるためにミリ秒単位のしきい値を高く設定してください。本番環境で低いしきい値を有効にする前に、処理負荷とストレージ使用量の増加を測定してください。
クエリー本文が不要で、実行時間とクエリー数だけが必要な場合は、次を使用します。
最も遅いクエリーやクエリーの合計実行時間のレポートが必要な場合は、log_min_duration_statementを使用してください。
必須のプレフィックスフィールド
独自のlog_line_prefixには、次の両方を含める必要があります。
- 時刻フィールド:
%t、%m、または%n。 - プロセスまたはセッションのフィールド:
%pまたは%c。
最小限のstderr用プレフィックスは次のとおりです。
ユーザー、データベース、アプリケーション、クライアントも記録すると、より有用なプレフィックスになります。
出力先がsyslogの場合、同等のプレフィックスでは、syslog自身が付与するタイムスタンプとプロセスのフィールドを省略します。
次のキーの順序もサポートされています。
プレフィックスがpgBadgerで認識される形式に該当しない場合は、正確な値を--prefixで渡してください。簡略化したり、postgresql.confと異なる値を入力し直したりしないでください。
推奨するイベント設定
レポートに含めたいイベントの種類を有効にします。
これらの設定により、大量のログが出力される場合があります。特にlog_temp_files = 0とlog_autovacuum_min_duration = 0では、該当するすべてのイベントを記録します。ワークロードと保持容量に合わせて調整してください。
サーバーメッセージを英語にする
パーサーは英語のPostgreSQLサーバーメッセージを認識します。次のいずれかを使用してください。
または:
fr_FR.UTF-8などのロケールは、アップストリームのパーサーではサポートされていません。
ステートメント設定の競合を避ける
log_min_duration_statement、log_duration、log_statement = 'all'を同時に有効にしないでください。同じ実行が複数回記録されると、pgBadgerのカウンターが過大になり、ログ量も大幅に増加します。
| 目的 | 推奨設定 |
|---|---|
| クエリー本文と実行時間 | log_min_duration_statement = 0または目的に応じたしきい値 |
| 実行時間と件数のみ | log_min_duration_statement = -1、log_duration = on |
| 幅広いステートメント監査 | log_statementを独立したログ方針として扱い、pgBadgerの統計のために3つの設定をすべて組み合わせないでください |
PostgreSQLの設定を再読み込みした後、大規模な解析を実行する前に実際のログを数件確認してください。タイムスタンプ、プロセス・セッション識別子、ユーザー、データベース、アプリケーション、クライアントの各フィールドが選択した形式と一致することを確認します。
4 - 並列処理
pgBadgerには相互に補完する2つのマルチプロセスモードがあります。単にCPU数だけでなく、入力の構成に応じて選択してください。
| オプション | 並列処理の単位 | 適する入力 | 主な制約 |
|---|---|---|---|
-j N / --jobs N |
単一ログファイルの分割片 | 大きなシーク可能なログ1つ | 分割境界で少数のクエリーが重複または欠落する場合があります |
-J N / --Jobs N |
ログファイル全体 | 多数の独立したログ | ワーカーを稼働させ続けるだけのファイル数がある場合にのみ効果があります |
-jで大きなファイルを分割する
アップストリームのアルゴリズムは、各ファイルをN個のバイト範囲に分割し、範囲ごとにパーサーをフォークして一時的なバイナリ統計を書き出した後、その統計を最終レポートに統合します。
ログレコードや複数行のステートメントはバイトオフセットと完全には一致しないため、分割境界では、ファイルごとに最大でおよそN個のクエリーが途中で切れたり、欠落したり、より一般的には二重に数えられたりする場合があります。このモードは非常に大きなファイルの集計分析に使用し、すべてのレコードを厳密に数える必要がある調査には使用しないでください。
-Jで多数のファイルを処理する
各ワーカーがファイル全体を担当するため、このモードでは分割境界での欠落を回避できます。数百の小さなファイルと十分なCPU・I/O能力がある場合に特に有効です。アップストリームのドキュメントでは、独立した圧縮ファイルに対しても-Jを使用できます。-jによる単一ファイルの分割には、シーク可能な非圧縮入力が必要です。
アップストリームのベンチマーク
アップストリームのマニュアルでは、8 CPUのホストで測定した次の結果が報告されています。現在のハードウェアの性能予測ではなく、2つのアルゴリズムの比較として参照してください。
9.5 GBのファイル1つ:
| オプション | 1 CPU | 2 CPU | 4 CPU | 8 CPU |
|---|---|---|---|---|
-j |
1h41m18 | 50m25 | 25m39 | 15m58 |
-J |
1h41m18 | 54m28 | 41m16 | 34m45 |
10 MBのファイル200個、合計2 GB:
| オプション | 1 CPU | 2 CPU | 4 CPU | 8 CPU |
|---|---|---|---|---|
-j |
20m15 | 9m56 | 5m20 | 4m20 |
-J |
20m15 | 9m49 | 5m00 | 2m40 |
実用上の基本は、少数の大きなファイルには-j、多数の小さなファイルには-Jです。入力とプラットフォームが対応していれば両モードを組み合わせられますが、その組み合わせでベンチマークを実施してください。ログ解析は、CPUより先にストレージのスループットが制約になる場合があります。
制限と一時ファイル
-jは圧縮入力やCSV入力には使用できません。また、プロセスのフォークに依存するため、Windows向けのモードではありません。- アップストリームのリモート入力機能では、リモートCSVの解析はサポートされていません。
- 並列解析では、選択した一時ディレクトリ(デフォルトではシステムの一時ディレクトリ)に
tmp_pgbadgerXXXX.binのような名前の一時ファイルを作成します。 - pgBadgerの実行中はこれらのファイルを削除しないでください。
--tempdirを使用して、十分な容量のあるストレージに配置します。 - 最初は控えめなワーカー数で開始し、CPU、読み取りスループット、一時領域の使用量、経過時間を監視してください。
5 - 増分レポート
増分モードでは、解析した統計をバイナリ形式で保存し、1日ごとのHTMLレポート、1週間ごとの累積レポート、およびそれらを結ぶカレンダー形式の目次を生成します。同じログエントリーを重複して数えずに、ローテーションされたログを繰り返し処理するための機能です。
日次・週次レポートを生成する
日次のログローテーション後にpgBadgerを実行し、永続的な出力ディレクトリを指定します。
-Iは増分モードを有効にし、-Oはバイナリ状態、カレンダーの目次、生成したレポートを保持するディレクトリを指定します。pgBadgerはそのディレクトリに増分処理の状態を維持するため、状態ファイルを意図的に別の場所に置きたい場合を除き、--last-parsedは不要です。
バイナリ状態を元のディレクトリに保持しつつ、HTMLには別のディレクトリを使用できます。
バイナリファイルは、将来の再生成に使用する元データとして扱ってください。レポートの再生成が重要な場合は、これらをバックアップするか、元のログを保持してください。
保持期間
指定した週数分だけを保持します。
それより古い週や日のディレクトリは自動的に削除されます。唯一のレポート履歴にこの方針を適用する前に、本番以外のコピーでテストしてください。
共通アセットを別ファイルに書き出す
デフォルトでは、HTMLレポートにJavaScriptとCSSが埋め込まれます。多数の増分レポートを含むディレクトリでは、-X / --extra-filesを指定すると共通アセットを別に書き出し、出力の重複を減らせます。
すべてのレポートと、バージョン別のリソースディレクトリを一緒に移動する必要があります。
既存レポートを再生成する
pgBadgerのアップグレード後、またはレポート生成の修正を適用した後は、保持しているバイナリデータからHTMLを再生成します。
元のレポートをデータベースごとに生成した場合は、再度-E / --explodeを指定してください。
長いオプション名の
--rebuildを使用してください。現在のコマンドリファレンスでは、-Rは--retentionを意味します。-Rを再生成の短縮オプションとして扱うと、誤ったオプションが適用されます。
月次レポートを追加する
日次・週次レポートは自動的に生成されます。月次集計は、履歴が大きいと処理コストが高くなるため、明示的に実行します。
生成した月がカレンダーの目次に追加されます。同じコマンドを再実行すると、利用可能なバイナリデータからその月を再生成します。データベース別の履歴を対象とする場合は、再度-Eを指定してください。
完全なコマンドリファレンスには、より特殊なスケジュールに対応する--day-report YYYY-MM-DD、--no-week、--noreport、--start-monday、--iso-week-numberも記載されています。
同梱の増分レポートのサンプル を開くと、ネットワーク接続なしでカレンダー、週へのリンク、日次レポートの階層を確認できます。
6 - 出力形式
pgBadgerは、ファイル名の拡張子または-x / --extensionから出力形式を選びます。-o / --outfileを複数回指定すると、1回の解析から複数形式を生成できます。
| 形式 | 一般的な拡張子 | 主な用途 |
|---|---|---|
| HTML | .html |
グラフ付きで、人が読みやすく操作可能なレポート |
| テキスト | .txt |
ターミナルでの確認とプレーンテキストによる保存 |
| バイナリ | .bin |
統合可能な中間統計とレポートの再生成 |
| JSON | .json |
他のソフトウェアとの連携。JSON::XSが必要 |
| 生のCSV | 選択した出力ファイル | --dump-raw-csvによる行単位の抽出 |
HTMLとテキスト
デフォルトの出力先はout.htmlです。
通常、HTMLには単独での閲覧に必要なスクリプト、スタイル、フォント、レポートデータが埋め込まれます。-X / --extra-filesを指定すると、共通のJavaScriptとCSSを増分レポートの外に配置します。これらのアセットはHTMLのディレクトリツリーとともに保持してください。
テキスト出力を明示的に生成します。
出力ファイル名に-を指定すると、対応する形式を標準出力に書き出せます。
バイナリの中間データ
バイナリ出力では、解析と表示を分離します。追記され続ける1日分のログから、1時間ごとの差分を生成できます。
1つ以上のバイナリファイルを統合して、新しいレポートを生成します。
サーバーが1時間ごとにログファイルを作成する場合は、ローテーションごとにバイナリファイルを作成し、必要に応じて累積HTMLを再生成します。
互換性のあるpgBadgerバージョンのバイナリファイルをまとめて保持してください。長期間使用しているレポートディレクトリをアップグレードする前に、リリースノートで増分形式の互換性を確認してください。
JSON
JSON出力は、監視やレポート処理パイプラインなどのプログラムによる利用を想定しています。
まずJSON::XSをインストールしてください。ファイルサイズや生成時間より読みやすさを優先する場合は、--prettify-jsonを追加します。
生データとクエリーのエクスポート
コマンドリファレンスでは、専用のエクスポート機能も提供されています。
--dump-raw-csvはログを解析し、レポートを生成せずに行単位のCSVを書き出します。--csv-separatorは生のCSVの区切り文字を変更します。13.2のデフォルトはカンマです。--dump-all-queriesはバインドパラメーターを置換した後のすべてのクエリーを出力します。--normalized-onlyは正規化したクエリーを書き出します。--query-numberingはクエリーのテキスト出力に番号を付けます。
これらのモードの出力には、アプリケーションのSQL、識別子、ユーザー、クライアントアドレス、リテラル値が含まれる場合があります。共有前に出力を確認し、目的の分析にリテラルが不要であれば--anonymizeを使用してください。
7 - サンプルレポート
サンプルの内容は2022年5月にpgBadger 11.8で生成されました。レポートのナビゲーション、グラフ、スタイル、スクリプトはオフラインで利用できます。
| サンプル | 紹介する内容 | ローカルコピー |
|---|---|---|
| 完全版レポート | PostgreSQLの動作とPgBouncerの統計 | 完全版レポートを開く |
| 増分レポート | カレンダー形式の目次、週次集計、日次ページ | 増分レポートの目次を開く |
| エラーとイベント | エラーと運用イベントに限定したレポート | エラーレポートを開く |
完全版レポート
完全版レポートは自己完結型のHTMLドキュメントです。上部のナビゲーションから、全体統計、クエリー、セッション、接続、一時ファイル、チェックポイント、autovacuumの動作、ロック、PgBouncer専用のグラフを確認できます。
このデータはデモ用であり、現在のベンチマークではありません。値、PostgreSQLのバージョン、埋め込まれたpgBadgerのUIは、レポート生成時点のものです。
増分レポートの階層
増分レポートのサンプルでは、リンク構造を完全に保持しています。
最上位の目次は2つの週次レポートと7つの日次レポートにリンクしています。相対リンクをすべて保持しているため、index.htmlだけを移動するとサンプルが壊れます。ディレクトリツリー全体をまとめて保持してください。
セキュリティとプライバシー
実際のレポートには、SQLテキスト、バインド値、データベース名やユーザー名、アプリケーション名、クライアントアドレス、エラーの詳細、ワークロードのパターンが含まれる場合があります。レポートを公開する前に、次を実施してください。
- リテラルが不要な場合は
--anonymizeを使用します。 - レポート生成前に対象の包含・除外フィルターを適用します。
- コマンドラインだけでなく、最終的なHTMLやエクスポートしたデータを確認します。
- レポートの保存場所を、運用ログと同じように慎重に保護します。
8 - リリース履歴
pgBadger 9.xから13.xまでのリリース履歴を、メジャーシリーズ別に新しいリリースから順にまとめています。
これらのエントリーは、各リリース時点の動作を説明しています。過去のデフォルト値、設定名、アップグレード手順は13.2と異なる場合があります。運用設定には、現在のコマンドラインリファレンスとPostgreSQLのログ設定ガイドを参照してください。
| シリーズ | 含まれるバージョン | 最初–最後のリリース | ページ |
|---|---|---|---|
| 13.x | 13.0–13.2 | 2024-12-08 – 2025-12-29 | 13.xを読む |
| 12.x | 12.0–12.4 | 2022-09-13 – 2023-12-25 | 12.xを読む |
| 11.x | 11.0–11.8 | 2019-06-25 – 2022-04-08 | 11.xを読む |
| 10.x | 10.0–10.3 | 2018-09-09 – 2019-02-14 | 10.xを読む |
| 9.x | 9.0–9.2 | 2016-09-02 – 2017-07-27 | 9.xを読む |
アーカイブやリリースファイルはGitHub Releases からダウンロードできます。
8.1 - pgBadger 13.xリリースノート
v13.2 · 2025-12-29
前回のリリース以降にユーザーから報告された問題を修正し、提供されたパッチを適用するpgBadgerのメンテナンスリリースです。
- 対応する一重引用符で囲まれ、内部にエスケープされた引用符を含む文字列を正しく処理できなかった正規化を修正しました。報告してくださったBertrand Bourgierに感謝します。
- ドキュメントのプレースホルダーの要件を修正しました。
- エラーのサンプルログエントリーがレポートされない場合があった問題を修正しました。報告してくださったjohn doeに感謝します。
- !と%sの間で生じる可能性がある優先順位の問題を修正しました。報告してくださったLuca SantarelliとPhilipp Trulsonに感謝します。
- pgFormatterのコードをv5.9に更新しました。
- コミットのプッシュ時にテストを実行するGitHub CIアクションを追加しました。
- log_line_prefixの%rプレースホルダーの解析を修正しました。報告してくださったnike7o0に感謝します。
- 未初期化の値に関する警告を修正しました。報告してくださったAles Zelenyに感謝します。
- PostgreSQLログの解析に使用するssh-optionsのドキュメントに例を追加して充実させました。パッチを提供してくださったUlrich Konradに感謝します。
- ssh経由でsudoとしてコマンドを実行する –ssh-sudo コマンドを追加しました。パッチを提供してくださったAndrew Jacksonに感謝します。
- !と文字列のeqの間で生じる可能性がある優先順位の問題を修正しました。報告してくださったAdrien Nayratに感謝します。
- pgbouncer統計の解析を修正しました。報告してくださったmrgttに感謝します。
v13.1 · 2025-03-16
前回のリリース以降にユーザーから報告された問題を修正し、新機能をいくつか追加するpgBadgerのメンテナンスリリースです。
- vacuumのスループットに関する新しいレポートを追加しました。CPU消費が最も大きいテーブルのvacuumを示すグラフが含まれます。表形式の出力では、テーブルごとの読み取り・書き込みI/O時間と、そのテーブルに費やしたCPU時間を表示します。機能を要望してくださったAles Zelenyに感謝します。このパッチは、テーブル別vacuumレポートに凍結済みページとタプルも追加しました。
- デバッグ用に、プロセスを一切フォークしない –no-fork オプションを追加しました。機能を要望してくださったAles Zelenyに感謝します。
- 生のCSV出力にミリ秒を追加しました。機能を要望してくださったHenrietta Dombrovskayaに感謝します。
- 複数ファイルを処理する場合、サンプルレポートにログファイル名を追加しました。機能を要望してくださったAdrien Nayratに感謝します。
変更と謝辞の完全な一覧は次のとおりです。
- バインドパラメーターの解析を修正しました。パッチを提供してくださったThomas Kotzianに感謝します。
- 複数行のクエリーにクエリーフィルターを適用するようにしました。パッチを提供してくださったBenjamin Jacobsに感謝します。
- ログファイル名の保存方法の変更に合わせてテスト結果を更新しました。
- JSON出力でERRORとLOGのメッセージレベルを修正しました。報告してくださったPhilippe Viegasに感謝します。
- File::Tempから、エクスポートされていないtmpdirメソッドのインポートを削除しました。報告してくださったkmoradhaに感謝します。
v13.0 · 2024-12-08
前回のリリース以降にユーザーから報告された問題を修正し、新機能をいくつか追加するpgBadgerのメジャーリリースです。
- クエリー時間とセッション時間のヒストグラムの境界値を再定義できる、2つの新しいオプションを追加しました。 –histogram-query VAL : クエリー実行時間ヒストグラムの境界値を指定します。 デフォルトの境界値(ミリ秒): 0,1,5,10,25,50,100,500,1000,10000 –histogram-session VAL : セッション時間ヒストグラムの境界値を指定します。 デフォルトの境界値(ミリ秒): 0,500,1000,30000,60000,600000,1800000,3600000,28800000 機能を要望してくださったJosefMachytkaNetAppに感謝します。
- CSVとJSONログ形式でauto_explainのプランをサポートしました。報告してくださったzxwsbgとAlexander Rumyantsevに感謝します。
- イベントとしてレポートされていなかった3つのLOGメッセージ、unexpected EOF、incomplete startup packet、detected deadlock while waiting forを追加しました。報告してくださったdottleに感謝します。
後方互換性に関する問題:
- イベントレポートに表示されるLOGレベルのイベントの保存方法を変更しました。一部はLOGレベルのエントリーではなく、引き続きエラーとしてレポート・集計されていました。クエリーと区別するため、EVENTLOGとして保存してレポートするように修正しました。この変更は、pgbadgerを増分モードで使用する場合に後方互換性を損ないます。アップグレードを行った週には、2つの動作が混在します。報告してくださったMatti Linnanvuoriに感謝します。
バグ修正:
- statement_timeoutによるキャンセルが最も多いクエリーがレポートされない問題を修正しました。
- 回帰テストを更新しました。
- CSVログ形式から抽出した実行計画の整形を修正しました。
- jsonlogでautovacuumのデータがレポートから欠落する問題を修正しました。対象はautovacuum動作レポートの平均Autovacuum実行時間、テーブルごとの削除タプル数、時間帯別vacuum数です。パッチを提供してくださったAles Zelenyに感謝します。
- 時間を消費するバインドクエリーに関連付けられていない孤立した行の問題を修正しました。報告してくださったHenrietta Dombrovskayaに感謝します。パターンマッチで未初期化の値を使用する問題を修正しました。パッチを提供してくださったJunior Diasに感謝します。
- 生データのCSVエクスポートに –csv-separator オプションを適用しました。デフォルトの区切り文字はセミコロン(;)です。機能を要望してくださったHenrietta Dombrovskayaに感謝します。
- 生のCSV出力で、パラメーターやアプリケーション名が空の場合に二重引用符を追加しないようにしました。
- 生のCSV出力でクエリーにセミコロンが含まれる場合、二重引用符を追加するようにしました。報告してくださったHenrietta Dombrovskayaに感謝します。
8.2 - pgBadger 12.xリリースノート
v12.4 · 2023-12-25
前回のリリース以降にユーザーから報告された問題を修正するpgBadgerのメンテナンスリリースです。
- pgbouncerバージョン1.21のレポートを修正しました。パッチを提供してくださったAles Zelenyに感謝します。
- ファイル単位の並列度がファイル数を超えないようにしました。報告してくださったmaliangzhuに感謝します。
- v12.3以降で壊れていた回帰テストを修正しました。報告してくださったieshinに感謝します。
- LOGエントリーがERRORログレベルのエントリーとして数えられる場合があった問題を修正しました。報告してくださったMatti Linnanvuoriに感謝します。
v12.3 · 2023-11-27
前回のリリース以降にユーザーから報告された問題を修正するpgBadgerのメンテナンスリリースです。次の新機能も追加されています。
- セッションのpid(%p)に関連するイベントだけをレポートする –include-pid オプションを追加しました。複数回指定できます。機能を要望してくださったHenrietta Dombrovskayaに感謝します。
- セッションID(%c)に関連するイベントだけをレポートする –include-session オプションを追加しました。複数回指定できます。機能を要望してくださったHenrietta Dombrovskayaに感謝します。
- ログを解析して情報をCSV形式に出力するだけの –dump-raw-csv オプションを追加しました。それ以上の処理は行わず、レポートも生成しません。機能を要望してくださったHenrietta Dombrovskayaに感謝します。
変更と謝辞の完全な一覧は次のとおりです。
- pgFormatterをバージョン5.5に更新しました。
- jsonlog形式で解析の終了日時を修正しました。報告してくださったjw1u1に感謝します。
- 「Sessions per application」の誤記を修正しました。パッチを提供してくださったfairyfarに感謝します。
- 「INSERT/UPDATE/DELETE Traffic」グラフのバグを修正しました。パッチを提供してくださったfairyfarに感謝します。
- バインドクエリーを含む孤立行の解析を修正しました。報告してくださったyouxqに感謝します。
- 新しいPGバージョンで、テーブル別Analyzeレポートを修正しました。パッチを提供してくださったJean-Christophe Arnuに感謝します。
- syslogのタイムスタンプにミリ秒が含まれる場合のエントリーパーサーを修正しました。報告してくださったPavel Rabelに感謝します。
v12.2 · 2023-08-20
前回のリリース以降にユーザーから報告された問題を修正するpgBadgerのメンテナンスリリースです。次の2つの新機能も追加されています。
- autovacuum実行時間の最大値、平均値、最小値をサポートしました。パッチを提供してくださったFrancisco Reinoldsに感謝します。
- pgbouncerの平均待機時間をサポートしました。パッチを提供してくださったFrancisco Reinoldsに感謝します。
変更と謝辞の完全な一覧は次のとおりです。
- アプリケーション名に<…>が含まれるとHTML出力が壊れる問題を修正しました。報告してくださったFabio Geissに感謝します。
- データベースのフィルターを適用した場合に、孤立行が誤って関連付けられる問題を修正しました。報告してくださったjcasanovに感謝します。
- logplexのプレフィックス解析を修正しました。
- logplexの孤立行検出を修正しました。
autovacuumのsystem usage: CPU: ...行の解析を修正しました。パッチを提供してくださったFrancisco Reinoldsに感謝します。- 出力先が標準出力の場合、出力ディレクトリを前に付けないようにしました。
- 平均クエリー実行時間のラベルを統一しました。パッチを提供してくださったFrancisco Reinoldsに感謝します。
- pgbadgerの新しいオプションについてドキュメントを更新しました。パッチを提供してくださったFrancisco Reinoldsに感謝します。
- ファイルハンドルを1つも開けない場合に解析が中断されない問題を修正しました。報告してくださったvpに感謝します。
- 必須プレースホルダー%p/%tのログ情報を追加してヘルプを修正しました。パッチを提供してくださったChristophe Courtoisに感謝します。
- –retention パラメーターを修正しました。パッチを提供してくださったBertrand Bourgierに感謝します。
- HTML出力ディレクトリが設定されている場合、コミット0e5c7d5で削除されていた出力ディレクトリのクリーンアップを修正しました。報告してくださったBertrand Bourgierに感謝します。
- 出力先ディレクトリに正規表現でエスケープが必要な文字が含まれる場合の出力拡張子を修正しました。パッチを提供してくださったBertrand Bourgierに感謝します。
- Windows移植版で、POSIX::strftime("%s", ….)の呼び出しをlocaltimeの呼び出しに置き換えました。パッチを提供してくださったBertrand Bourgierに感謝します。
- HTML出力ディレクトリのクリーンアップを修正しました。パッチを提供してくださったBertrand Bourgierに感謝します。
- 実行計画用URLにデフォルトでhttpsを使用するようにしました。パッチを提供してくださったPhilipp Trulsonに感謝します。
v12.1 · 2023-03-20
過去6か月間にユーザーから報告された問題を修正するpgBadgerのメンテナンスリリースです。
変更と謝辞の完全な一覧は次のとおりです。
- 複数行パラメーターの解析を修正しました。報告してくださったBekir Niyazに感謝します。
- ::tsrangeを含むクエリーの正規化に失敗する問題を修正しました。報告してくださったPhilippe Gribovalに感謝します。
- 論理デコードの整合点とスロットの開始に関するログエントリーをイベントレポートに追加しました。
- タイムスタンプにおける他のナノ秒+タイムゾーン形式に対応しました。報告してくださったRonan Dunklauに感謝します。
- Tを使用した表記で%mの検出を修正しました。報告してくださったRonan Dunklauに感謝します。
- CloudNativePGが生成するログの解析を追加しました。パッチを提供してくださったcodrut paneaに感謝します。
- レポート生成で –outdir オプションが使用されない問題を修正しました。報告してくださったFrederic Guietに感謝します。
- 最新のドキュメント変更をREADMEに反映しました。報告してくださったManisankarに感謝します。
- pgbadgerの例の誤記を修正しました。パッチを提供してくださったShinichi Hashibaに感謝します。
v12.0 · 2022-09-13
このpgBadgerのメジャーリリースでは、過去5か月間にユーザーから報告された問題をいくつか修正しました。通常どおり、新機能と改善も含まれています。
- Tsung出力のサポートを削除しました。
- 置換対象のバインドパラメーターが数百個ある場合のpgbadgerの性能を改善しました。
- pgFormatter 4へのアップグレード以降使用されなくなった-n | –nohighlight オプションを削除しました。
- GETパラメーターの長さ制限を避けるため、auto_explainのプランをexplain.depesz.comに送信する際にPOSTメソッドを使用するようにしました。
- バインド・解析のトレースに –exclude-query と –include-query を適用しました。
- ドキュメントにpgBadgerのレポートサンプルへのリンクを追加しました。
変更と謝辞の完全な一覧は次のとおりです。
- 「log file … must exists」で失敗していた月次レポートを修正しました。報告してくださったJaume Sabaterに感謝します。
- 入力が標準入力の場合、pgbouncerの解析開始時のデバッグメッセージを修正しました。報告してくださったaleszelenyに感謝します。
- Tsung出力のサポートを削除しました。
- バインドパラメーターの置換に関するpgbadgerの性能を大幅に改善しました。パラメーターが数百個ある場合、pgbadgerが無限に実行され続けることがありました。報告してくださったMonty Mobileに感謝します。
- pgBadgerの終了コードに関するドキュメントと、いくつかの箇所の誤った終了コードを修正しました。報告してくださったJaume Sabaterに感謝します。
- 複数の誤記を修正しました。パッチを提供してくださったDavid Gilmanに感謝します。
- pgFormatter 4へのアップグレード以降使用されなくなった-n | –nohighlight オプションを削除しました。報告してくださったElena Indrupskayaに感謝します。
- pgbadgerのドキュメントを多数修正しました。パッチを提供してくださったPostgres ProのElena Indrupskayに感謝します。
- –log-timezone と –timezone で30分単位を使用可能にしました。値は2のような整数、または2.5のような小数を指定できます。機能を要望してくださったMujjamil-Kに感謝します。
- –exclude-app と –exclude-client で正規表現を使用可能にしました。機能を要望してくださったrdnkrkmzに感謝します。
- 前のコミットとともに –explain-url を使用可能にし、実行計画をテキスト形式に限定する制限を復元しました。
- GETパラメーターの長さ制限を避けるため、auto_explainのプランをexplain.depesz.comに送信する際にPOSTメソッドを使用するようにしました。報告してくださったhvisageに感謝します。
- バインド・解析のトレースに –exclude-query と –include-query を適用しました。報告してくださったAlec Lazarescuに感謝します。
- RDSログのautovacuum統計の解析を修正しました。報告してくださったDavid Gilmanに感謝します。
- リモートログを解析する際のログ形式の受け渡しを修正しました。報告してくださったspookypeanutに感謝します。
- ドキュメントにpgBadgerのレポートサンプルへのリンクを追加しました。
- ユーザーごとのセッションレポートを修正しました。報告してくださったvitalcaに感謝します。
- PG15の出力に対するjsonlogの解析を修正しました。
- テキスト形式でのエラー・イベントのレポートを修正しました。パッチを提供してくださったMichael Banckに感謝します。
- normalize_error()の正規表現の誤記を修正しました。パッチを提供してくださったMichael Banckに感謝します。
8.3 - pgBadger 11.xリリースノート
v11.8 · 2022-04-08
pgBadgerのこのリリースでは、過去3か月間にユーザーから報告されたいくつかの問題が修正され、特に増分モードでの新しいログエントリーの検出に関する2つの修正が行われています。
- log_line_prefixでミリ秒(%m)またはエポック(%n)が使用された場合のタイムスタンプ付きの新しいログエントリーの検出を修正しました。
- マルチプロセスが使用されていない場合のローカルファイル内の新しいログエントリーの検出を修正しました。
変更と謝辞の完全な一覧は次のとおりです。
- ログファイルの変更検出を完全に見直し、簡素化しました。
- イベントレポートに「could not (receive|send) data (from|to) client」メッセージを表示するようにしました。報告してくださったAdrien Nayratに感謝します。
- 準備されたクエリーの名前に「:」文字が含まれている場合の解析の問題を修正しました。 報告してくださったaleszelenyに感謝します。
- ミリ秒(%m)またはエポック(%n)のタイムスタンプを持つ新しいログエントリーの検出を修正しました。 報告してくださったaleszelenyに感謝します。
- マルチプロセスが使用されていない場合のローカルファイル内の新しいログエントリーの検出を修正しました。 報告してくださったaleszelenyに感謝します。
- SSHを介したリモートファイル内の新しいログエントリーの検出を修正しました。報告してくださったLuca Ferrariに感謝します
- 「ユーザーごとの接続数」レポートのユーザー名の文字化けを修正しました。 報告してくださったcaseyandginaに感謝します。
- URIを使用するときにsshオプションが欠落していたsshコマンドを修正しました。報告してくださったLuca Ferrariに感謝します。
- クエリーID %Qプレースホルダーを処理するようにしました。パッチを提供してくださったAdrien Nayratに感謝します。
- エラー文のタイプミスを修正しました。パッチを提供してくださったLuca Ferrariに感謝します
- イベントレポートに「server process was terminated by signal」メッセージを表示するようにしました。報告してくださったAvi Vallarapuに感謝します。
- doc: 毎週増分コマンドのファイル名を修正しました。パッチを提供してくださったTheophile Helleboidに感謝します。
- t/04_advanced.t: syslogテストを修正しました。パッチを提供してくださったChristoph Bergに感謝します。
v11.7 · 2022-01-23
pgBadgerのこのリリースでは、過去5か月間にユーザーから報告されたいくつかの問題が修正され、いくつかの改善が行われています。
- 新しい –no-progressbar オプションを追加して、プログレスバーを表示せずに他の出力を保持します。
- 指定した日のHTMLレポートを再構築するために使用できる新しいオプション –day-report を追加しました。オプション –month-report と似ていますが、1日のみです。これには、増分出力ディレクトリと、必要なすべてのバイナリデータファイルが存在することが必要です。値は、YYYY-MM-DD形式の日付です。
- Heroku logplexおよびCloudSQL jsonログの解析を改善します。
変更と謝辞の完全な一覧は次のとおりです。
- コントリビューションガイドラインとMakefile.PLを更新して、一貫性、明確さ、依存関係を改善します。パッチを提供してくださったdiffuseに感謝します。
- バイナリモードでの最後に解析した位置を記録するファイル(–last-parsed)の使用を修正しました。報告してくださったwibrtさんに感謝します。
- –last-parsed 使用の回帰テストを追加し、一時ファイルのみのレポートの回帰テストを修正しました。
- ホストごとのセッションのグラフのタイトルを修正しました。 報告してくださったNorbert Bedeに感謝します。
- –iso-week-number および –incremental オプションが有効になっている場合に週レポートを計算するときの週番号を修正しました。 報告してくださったhansgvに感謝します。
- –no-progressbar オプションを追加して、プログレスバーを表示せずに他の出力を保持します。機能を要望してくださったseidlmicさんに感謝します。
- 複数行のjsonlogのデバッグモードで不明な形式の行が大量に出力されるのを防ぎます。
- 単一行のcloudsql jsonログの解析を修正しました。報告してくださったThomas Leclaireに感謝します。
- log_temp_filesのみを使用して一時ファイルの概要を修正しました。
- -qまたは –quiet が使用されている場合でも、-vを使用してデバッグメッセージを出力します。
- jsonlogファイルの自動検出を修正しました。
- cloudsqlログファイルの解析を修正しました。 報告してくださったLuc Lamarleに感謝します。
- parse_json_inputでのPID抽出を修正しました。パッチを提供してくださったFrancois Scalaに感謝します。
- 新しいオプション –day-report を追加し、値をYYYY-MM-DD形式の日付として指定します。これは、指定した日のHTMLレポートを再構築するために使用できます。機能を要望してくださったThomas Leclaireに感謝します。
- プログレスバーのクエリーカウンターを修正しました。報告してくださったGuillaume Lelargeに感謝します。
- 実行時間の長いbindおよびprepareのレポート用に保存したクエリーが不完全になる問題を修正しました。
- オブジェクト識別子の正規化を修正しました。数値が?に置き換えられる場合がありました。
- 先頭にコメントがある場合の、フォーマットされていない正規化されたクエリーを修正しました。
- –dbname を使用する場合の標準エラー出力形式の複数行を修正しました。報告してくださったGuillaume Lelargeに感謝します。
- –dbname の使用時に増分モードでレポートが生成されない問題を修正しました。報告してくださったDudley Perkinsに感謝します。
- バイナリファイルに互換性がない場合でも終了せず、次のファイルへ進むようになりました。提案してくれたThomas Leclaireに感謝します。
- pgbadgerパーサーにおけるHeroku logplex形式の変更を修正しました。報告してくださったFrançois Pietkaに感謝します。
v11.6 · 2021-09-04
pgBadgerのこのリリースでは、過去7か月間にユーザーから報告されたいくつかの問題が修正され、いくつかの改善が加えられています。
- PG14の新しいlog_line_prefixにクエリーIDの検出を追加しました。 報告してくださったFlorent Jardinに感謝します。
- データベースの除外とデータベース別レポート機能を対象とする高度な回帰テストを追加しました。パッチを提供してくださったMigOps Incに感謝します。
- –explode を使用する場合、レポート生成にマルチプロセスを適用するようにしました。パッチについてはMigOps Inc、機能リクエストについてはThomas Leclaireに感謝します。
- 増分モードで –iso-week-number を追加しました。カレンダーの週は月曜日から始まり、ISO 8601の週番号が考慮されます。範囲は01から53までです。ここで、第1週は新年の日が少なくとも4日含まれる最初の週です。機能を要望してくださったAlex Muntadaに感謝します。
- コマンドラインオプション –keep-comments を追加して、正規化されたクエリーからコメントを削除しないようにします。同じ正規化されたクエリーを区別したい場合に便利です。機能を要望してくださったStefan Corneliu Petreaに感謝します。
- サードパーティソフトウェアによってPostgreSQLログファイルに導入されたINFO行をスキップします。報告してくださったDavid Piscitelliに感謝します。
- ステートメント実行時間に続く行数とバイト単位のサイズを含むPostgresProログファイルとの互換性を追加しました。 報告してくださったpanatamannに感謝します。
- Tを使用して時間を解析し、journalctlからのタイムスタンプを使用できるようにします。パッチを提供してくださったGraham Christensenに感謝します。
- Windowsポートを改善します。パッチを提供してくださったBertrand Bourgierに感謝します。
重要な注意事項:
- 次のメジャーリリースでは –iso-week-number がデフォルトになり、週は常に月曜日から始まるため、–start-monday オプションが削除されることが予想されます。コードを簡素化するために、週レポートを日曜日から開始する可能性は削除されます。
変更と謝辞の完全な一覧は次のとおりです。
- 次の警告メッセージの重複を修正しました。 “database … must be vacuumed within … transactions”. 報告してくださったChristophe Courtoisに感謝します。
- 初期化されていない変数の使用を修正しました。レポートしてくれたphireskyに感謝します。
- クエリーIDの検出を改善しました。クエリーIDは、csvlogから読み取るだけでなく、負の値になる場合もあります。
- 増分モードの最後のファイルが、すでに解析されている場合でも常に解析されるケースを修正しました。報告してくださったThomas Leclaireに感謝します。
- syslog形式の正規表現を更新して、セッション行インジケーターに1つのintのみが含まれる場合と、ダッシュで区切られた2つのintが含まれる場合を処理するようにしました。パッチを提供してくださったTimothy Alexanderに感謝します。
- –exclude-db オプションを修正して、JSONログでも対応するレポートが生成されるようにしました。パッチについてはMigOps Inc、レポートについてはThomas Leclaireに感謝します。
- Storableのバグのあるバージョンに関する回帰テストを追加。
- 週レポート生成中の増分モードの置換イテレータでの初期化されていない値の使用を修正しました。報告してくださったThomas Leclaire、Michael Vitale、Sumeet Shukla、Stefan Corneliu Petreaに感謝します。
- ‘g’ オプションを追加して、すべてのバインドパラメーターを置き換えました。パッチを提供してくださったNicolas LuticとSebastien Lardiereに感謝します。
- ドキュメントの改善。パッチを提供してくださったStefan Petreaに感謝します。
- ログのタイムゾーン計算の変更を修正しました。パッチを提供してくださったStefan Petreaに感謝します。
- 開始/終了時間によるログフィルターを修正しました。
- データベース上のフィルターを使用した複数行クエリーの孤立行の誤った関連付けを修正しました。報告してくださったAbhishek Mehtaに感謝します。
- “explode"オプション(-E)により –dbname パラメーターが部分的に無視される場合の、増分モードのレポートを修正しました。 報告してくださったlrevestに感謝します。
- JavaScriptリソースを更新しました。
- 画面縮小時にハンバーガーモードに切り替わる前のメニュー表示を修正しました。報告してくださったGuillaume Lelargeに感謝します。
- 十分にサポートされていなかった、ログ内の複数行にわたるバインドパラメーター値を修正しました。
- 前のパッチに、pgFormatterと同じ修正を適用するようにしました。
- pgFormatterコードの置換イテレータでの初期化されていない値の他の使用を修正しました。報告してくださったChristophe Courtoisに感謝します。
- クエリーの正規化を修正しました。パッチを提供してくださったJeffrey Bealeに感謝します。
- –dump-all-queries を使用する場合は、すべてのステートメントがセミコロンで終わるようにしました。報告してくださったChristianに感謝します。
- 複数のログファイルでのEOLタイプのタイプミスと初期化を修正しました。
- EOLが2バイトの場合(Windowsの場合)、EOLタイプの自動検出を追加して、LAST_PARSEDオフセットを修正しました。パッチを提供してくださったBertrand Bourgierに感謝します。
- strftime %uがサポートされていないWindowsのget_day_of_week()ポートを修正しました。パッチを提供してくださったBertrand Bourgierに感謝します。
- pgbadgerでの DATA の読み取り方法に起因して、pl2bat.bat perlユーティリティを呼び出して破損したpgbadger.batを作成するWindowsポートを修正しました。パッチを提供してくださったBertrand Bourgierに感謝します。
- 開始/終了時刻フィルターを修正し、タイムスタンプフィルターの回帰テストを追加しました。報告してくださったAlexis Lahouzeとplmayekarに感謝します。
- pgFormatter更新によって導入されたパターン一致における初期化されていない値の使用を修正しました。報告してくださったarltさんに感謝します。
v11.5 · 2021-02-18
pgBadgerのこのリリースでは、過去3か月間にユーザーから報告されたいくつかの問題が修正され、いくつかの改善が加えられています。
- セッションのアイドル時間のレポートを追加しました。次の式で計算します。 “(total sessions time - total queries time) / number of sessions” 正確な値を得るには、接続と切断のログ出力を有効にし、log_min_duration_statement = 0としてすべてのクエリーを記録する必要があります。これにより、どれだけのアイドル時間が失われているか、プーラーのトランザクションモードが有用かどうかを判断できます。このレポートは「Global Stats」の「Sessions」タブと、「General Activity」レポートの「Sessions」タブ(時間帯別)で利用できます。
- 数値の匿名化を追加し、4桁の乱数に置き換えました。
- pgFormatter 5.0に基づいてSQLビューティファイアーを更新しました。
変更と謝辞の完全な一覧は次のとおりです。
- cloudsqlの複数行ステートメントの解析を修正しました。報告してくださったJon Youngに感謝します。
- 匿名化のための回帰テストを追加しました。
- maxlength truncateによって壊れた匿名化を修正しました。 報告してくださったartlに感謝します。
- 実行時間の長いprepareおよびbindのレポートにパラメーターの匿名化を追加しました。報告してくださったarltさんに感謝します。
- logplexログ行プレフィックスにマイクロ秒のサポートを追加しました。報告してくださったRoss Gardinerに感謝します。
- セッションのアイドル時間に関するレポートを追加しました。機能を要望してくださったGuillaume Lelargeに感謝します。
- jsonlog形式の複数行をサポートするための完全なパッチ。
v11.4 · 2020-11-24
pgBadgerのこのリリースでは、過去4か月間にユーザーから報告されたいくつかの問題が修正されています。 PostgreSQL 13ログ情報のサポートを改善し、いくつかの新機能を追加しました。
- 「Vacuums per table」レポートに、バッファ使用量(ヒット、ミス、ダーティ)、ピンによるスキップ、凍結スキップ、およびWAL使用量(レコード、フルページイメージ、バイト)に関する完全な自動バキューム情報を追加しました。 「Tuples removed per table」レポートでは、追加の自動バキューム情報として、残っているタプル、まだ削除できないタプル、および残っているページが表示されます。これらの情報は「Table」タブでのみ利用できます。
- チェックポイント開始原因に関する新しい分布レポートを追加しました。
- 接続許可トレースからアプリケーション名の検出を追加しました。
変更と謝辞の完全な一覧は次のとおりです。
- エラーメッセージのタイプミスを修正しました。パッチを提供してくださったVidar Tyldumに感謝します。
- Windows移植版で「can not load incompatible binary data」エラーが発生する問題を修正しました。報告してくださったEric Brawnerに感謝します。
- pgbadgerの使用法とドキュメントのオプション –html-outdir のタイプミスを修正しました。パッチを提供してくださったVidar Tyldumに感謝します。
- jsonlog/cloudsql形式の自動検出を修正しました。報告してくださったJon Youngに感謝します。
- PG v13によるCSVログ解析を修正しました。レポートについてはKanwei Li氏、パッチについてはKaarel Moppelに感謝します。
- 最も多くの一時ファイルを生成するクエリーのレポートの並べ替えを修正しました。報告してくださったSebastien Lardiereに感謝します。
- デバッグモードでpgbadgerバージョントレースを追加しました。
v11.3 · 2020-07-26
pgBadgerのこのリリースでは、過去4か月間にユーザーから報告されたいくつかの問題が修正されています。また、いくつかの新機能と新しいコマンドラインオプションも追加されます。
- グラフにタイムゾーンが適用されないように、UTCタイムスタンプの自動検出を追加しました。
- GCP CloudSQL jsonログ形式へのサポートを追加しました。
- 新しいオプション –dump-all-queries を追加して、pgBadgerを使用してすべてのクエリーをテキストファイルにダンプします。レポートは生成されず、PostgreSQLログで見つかったステートメントの完全なリストのみが生成されます。バインドパラメーターはクエリーのそれぞれの位置に挿入されます。
- 新しいオプション-Q | –query-numbering を追加しました。–dump-all-queries または –normalized-only の使用時に、出力にクエリーの番号を付けます。
- 新しいコマンドラインオプション –tempdir を追加して、一時ファイルが書き込まれるディレクトリを設定します。 /tmpへの書き込みが許可されていないシステムで役立ちます。
- デフォルトの22以外のSSHポートを設定する –ssh-port コマンドラインオプションを追加しました。URI表記でも、次の形式でSSHポートを指定できます。 ssh://192.168.1.100:2222//var/log/postgresql-11.log
変更と謝辞の完全な一覧は次のとおりです。
- jsonlog/cloudsqlログ形式の増分レポートを修正しました。報告してくださったRyan DeShoneに感謝します
- UTCタイムスタンプの自動検出を追加して、自動検出されたタイムゾーンがグラフに適用されないようにします。 UTC時間を使用すると、JavaScriptはローカルタイムゾーンを適用するようにしました。報告してくださったBrett Staunerに感謝します。
- journalctlログの増分解析が2回目の実行以降機能しない問題を修正しました。パッチを提供してくださったPaweł Koziolに感謝します。
- -Xおよび -Eを使用する場合のリソースファイルへのパスを修正しました。報告してくださったRyan DeShoneに感謝します。
- 読み取り/書き込みクエリーに関する一般アクティビティレポートを修正しました。 報告してくださったalexandre-sk5に感謝します。
- パラレルモードが使用されていない場合のデバッグメッセージを追加しました。
- ファイルサイズ検出のelsifロジックと、–since オプションが追加されたときにjournalctlコマンドに導入される追加スペースを修正しました。パッチを提供してくださったPawel Koziolに感謝します。
- 「not a valid file descriptor」エラーを修正しました。報告してくださったPawel Koziolに感謝します。
- RDSファイルによる増分モードを修正しました。報告してくださったIldefonso Camargo、nodje、John Walshに感謝します。
- 新しいオプション-Q | –query-numbering を追加しました。–dump-all-queries または –normalized-only の使用時に、出力にクエリーの番号を付けます。これは、外部スクリプトから出力ファイル内の複数行のクエリーを抽出するのに役立ちます。機能を要望してくださったShantanu Oakに感謝します。
- log_min_duration_statementが有効な場合のCloudsql JSONログの解析を修正しました。 報告してくださったalexandre-sk5に感謝します。
- RDSログ内のユーザーの間違ったハッシュキーを修正しました。 報告してくださったvosmaxに感謝します。
- 作成不可能な配列値の変更に関連するエラーを修正しました。報告してくださったJohn WalshとMark Fletcherに感謝します。
- GCP CloudSQL jsonログ形式のサポートを追加しました。ログ形式(-f)はjsonlogです。機能を要望してくださったThomas Poindessousに感謝します。
- 新しいオプション –dump-all-queries を追加して、pgBadgerを使用してすべてのクエリーをテキストファイルにダンプします。レポートは生成されず、PostgreSQLログで見つかったステートメントの完全なリストのみが生成されます。バインドパラメーターはクエリーのそれぞれの位置に挿入されます。一意のクエリーに対する並べ替えはなく、すべてのクエリーがログに記録されます。機能を要望してくださったShantanu Oakに感謝します。
- –dump-all-queries オプションのドキュメントを追加しました。
- 新しいPGバージョンのバキュームレポートを修正しました。 報告してくださったAlexey Timanovskyに感謝します。
- 新しいコマンドラインオプション –no-process-info を追加して、pgbadgerプロセスを識別しやすくするためにプロセスタイトルの変更を無効にします。一部のシステムではこれが許可されていません。 報告してくださったAkshay2378に感謝します。
- 一時ファイルの書き込み先ディレクトリを設定する –tempdir コマンドラインオプションを追加しました。デフォルトは次のとおりです。 File::Spec->tmpdir() || ‘/tmp’ /tmpへの書き込みが許可されないシステムで役立ちます。報告してくださったAkshay2378に感謝します。
- スペースや括弧を含むサポートされていない圧縮ファイル名を修正しました。 報告してくださったAlexey Timanovskyに感謝します。
- デフォルトの22以外のSSHポートを設定する –ssh-port コマンドラインオプションを追加しました。URI表記でも、次の形式でSSHポートを指定できます。 ssh://192.168.1.100:2222//var/log/postgresql-11.log 機能を要望してくださったAugusto Murriに感謝します。
v11.2 · 2020-03-11
pgBadgerのこのリリースでは、過去6か月間にユーザーから報告されたいくつかの問題が修正されています。また、いくつかの新機能も追加されています。
-
AWS redshiftログ形式のサポートと自動検出を追加しました。
-
pgbouncer 1.11の新しいログ形式へのサポートを追加しました。
-
zstdおよびlz4圧縮形式を処理します
-
ログファイルを読み取ることなく、増分モードで統計のビルドとHTMLレポートのビルドを完全に分離できます。たとえば、次のようにpgbadgerを1時間ごとに実行することができます。 pgbadger -I -O “/out-dir/data” –noreport /var/log/postgresql*.log
これにより、"/out-dir/data"にデータバイナリファイルが作成されるだけです。その後、たとえば毎晩、別のディレクトリ
/out-dir/reportsに処理済みの日のレポートを作成できます。 pgbadger -I -l “/out-dir/data/LAST_PARSED” -H “/out-dir/reports” /out-dir/data/2020/02/19/*.binこれには、最後に解析された情報へのパス、HTMLレポートが書き込まれるパス、およびその日のバイナリデータファイルを設定する必要があります。
新しいコマンドラインオプションもあります。
-
グラフィカルExplainツールのURLをオーバーライドするために使用される新しいコマンドラインオプション –explain-url を追加しました。デフォルトのURLは次のとおりです。 http://explain.depesz.com/?is_public=0&is_anon=0&plan=
PgExplainや他のツールをローカルにインストールして使用する場合に利用できます。 pgBadgerは、URLの最後にエスケープされたテキスト形式でプランを追加しました。
-
新しいオプション –no-week を追加して、増分モードで週次レポートを作成しないようにpgbadgerに指示します。時間とリソースがかかりすぎる場合に役立ちます。
-
新しいコマンドラインオプション –command を追加して、pgBadgerが標準入力のログエントリーを取得するために実行するコマンドを設定できるようにします。 pgBadgerはコマンドへのパイプを開き、コマンドによって生成されたログエントリーを解析します。たとえば: pgbadger -f stderr –command ‘cat /var/log/postgresql.log’
これは、ログファイルを引数として直接指定してpgbadgerを実行するのと同じです。このオプションの利点は、ログファイルをオンザフライで変更する必要がある場合、またはログエントリーがプログラムから抽出されるかデータベースから生成される場合に明らかです。例えば:
pgbadger -f csv –command ‘psql dbname -c “COPY jrn_log TO STDOUT (FORMAT CSV)”’
-
新しいコマンドラインオプション –noexplain を追加して、pgBadgerがauto_explain拡張機能によってログに書き込まれたExplainプランを解析して報告しないようにします。これは、PostgreSQLバージョン < 9.0で、ログに説明プランがあるときにpgBadgerが壊れたレポートを生成する場合に便利です。
後方互換性:
- デフォルトでは、pgBadgerはクエリーを100000文字まで切り捨てます。この任意の値は、–maxlength オプションを使用して調整できます。以前の動作ではクエリーが切り捨てられませんでしたが、これにより過剰なリソースが使用される可能性がありました。デフォルトのサイズを制限する方が安全であり、サイズ制限により、ほとんどの場合切り捨ては不要になります。ただし、クエリーが25000文字を超える場合、クエリーは整形されません。
変更と謝辞の完全な一覧は次のとおりです。
- 機能しない –exclude-client オプションを修正しました。報告してくださったJohn Walshに感謝します。
- RDSログ解析と –exclude-client の回帰テストを追加しました。
- pgbouncerログファイルのプログレスバーを修正しました。 pgbouncerログでは、“queries” ラベルを “stats” に変更しました。
- グラフィカルExplainツールのURLをオーバーライドするために使用されるコマンドラインオプション –explain-url を追加しました。機能を要望してくださったChristophe Courtoisに感謝します。
- pgbouncer 1.11の新しいログ形式へのサポートを追加しました。報告してくださったDan Aksenovに感謝します。
- zstdおよびlz4圧縮形式を処理するようにしました。パッチを提供してくださったAdrien Nayratに感謝します。
- AWS redshiftログ形式のサポートと自動検出を追加しました。機能を要望してくださったBhuvaneshに感謝します。
- redshiftログ形式に関するドキュメントを更新しました。
- 新しいオプション –no-week を追加して、増分モードで週次レポートを作成しないようにpgbadgerに指示します。機能を要望してくださったcleverKermit17に感謝します。
- Windows上のpgBadgerを破壊するファイルパスのパターンマッチを修正しました。
- 独自の文字セットを使用しても、キリル文字やその他のエンコーディングのステートメントパラメーターがHTMLレポートに正しく表示されない問題#554を修正しました。このリグレッションは、よく知られたPerlの「Wide character in print」エラーメッセージへの修正で導入されました。そのパッチを取り消し、以前の動作に戻すための新しいコマンドラインオプション –wide-char を追加しました。「Wide character in print」が表示される場合は、このオプションをpgbadgerコマンドに追加してください。キリル文字とフランス語のエンコーディングの回帰テストも追加しました。報告してくださった4815162342lostとyetheeに感謝します。
- ドキュメントを更新して、lc_messages = ’en_US.UTF-8’ も有効であることを通知します。 報告してくださったnodjeに感謝します。
- –maxlength に関するドキュメントを更新しました。デフォルトの切り捨てサイズは100000となり、デフォルトで切り捨てしない動作はなくなりました。 報告してくださったnodjeに感謝します。
- 年の重複時の保持計算を修正しました。パッチを提供してくださったFabio Pereiraに感謝します。
- rdsログファイル形式の解析を修正しました。報告してくださったKadaffy Talaveraに感謝します。
- 新しいログエントリーがない場合に、増分モードで空のインデックスファイルを生成しないようにします。報告してくださったKadaffy Talaveraに感謝します。
- 最新ではないドキュメントを修正しました。パッチを提供してくださったEric Hansonに感謝します。
- コマンドラインパラメーターを-no-explainから-noexplainに修正しました。パッチを提供してくださったIndrek Toomに感謝します。
- totalsizeが見つからない場合は、デフォルトのファイルサイズに戻ります。パッチを提供してくださったAdrien Nayratに感謝します。
- 例内のいくつかの日付を修正しました。パッチを提供してくださったGreg Cloughに感謝します。
- 残りのテストでは圧縮ファイル拡張子regexpを使用し、別の条件で .bin拡張子を抽出します。
- zstdおよびlz4圧縮形式を処理するようにしました。パッチを提供してくださったAdrien Nayratに感謝します。
- Windows上のSIGUSR2の残りの呼び出しを修正しました。 報告してくださったinrapに感謝します。
- サイズが不明なログファイルのプログレスバーを修正しました。
- 新しいコマンドラインオプション –command を追加して、pgBadgerが標準入力のログエントリーを取得するために実行するコマンドを設定できるようにします。機能を要望してくださったJustin Pryzbyに感謝します。
- 新しいコマンドラインオプション –noexplain を追加して、pgBadgerがauto_explain拡張機能によってログに書き込まれたExplainプランを解析して報告しないようにします。これは、PostgreSQLバージョン < 9.0で、ログに説明プランがあるときにpgBadgerが壊れたレポートを生成する場合に便利です。機能を要望してくださったMassimo Salaに感謝します。
- コマンドラインでプレフィックスが設定されている場合のRDSログ解析を修正しました。 報告してくださったBing Zhaoに感謝します。
- rdsログ形式の増分モードを修正しました。 報告してくださったBing Zhaoに感謝します。
- RDSログ解析の潜在的な問題を修正しました。報告してくださったJames van LommelとSimon Dobnerに感謝します。
- ステートメントの分類を修正し、回帰テストを追加しました。 報告してくださったalexanderlawに感謝します。
- IN句内の単一文字の匿名化を修正しました。 報告してくださったMassimo Salaに感謝します。
- client/user/db情報のない行のRDSログ解析を修正しました。 報告してくださったKonradに感謝します。
v11.1 · 2019-09-16
pgBadgerのこのリリースでは、過去3か月間にユーザーから報告されたいくつかの問題が修正されています。また、いくつかの新機能とレポートも追加されます。
- 準備または解析段階で最も時間を消費する上位Nクエリーのレポートを追加しました。
- バインド段階で最も時間を消費する上位Nクエリーのレポートを追加しました。
- クエリーのprepare/bind/execute各処理の時間レポートを追加しました。全体統計レポートの新しい「Duration」タブに表示します。例: Total query duration: 6m16s Prepare/parse total duration: 45s564ms Bind total duration: 4m46s Execute total duration: 44s71m これにより、以前の「Total query duration」がexecuteの合計時間しか表示していなかった問題も修正されます。
- RDSおよびCloudWatchログ形式へのサポートを追加しました。これらは自動的に検出されます。 pgbadgerがログ形式を自動検出できない場合は、-f rdsを使用できます。
- 新しい構成オプション –month-report を追加して、月次増分レポートを作成できるようにします。
- Windowsオペレーティングシステムのサポートを復元しました。
いくつかのバグ修正と機能強化もあります。
- ツールpod2markdownを使用して、自動生成されたMarkdownドキュメントをREADME.mdに追加しました。コマンドが存在しない場合、ファイルは生成されません。パッチを提供してくださったDerek Yangに感謝します。
- WITHアクションをCTEに分類するように修正しました。これは、前回のリリースで導入された回帰への対応です。
- Windowsオペレーティングシステムのサポートを修正
- RDSおよびCloudWatchログ形式へのサポートを追加しました。pgbadgerがこのログ形式を自動検出できない場合は、-f rdsを使用します。機能を要望してくださったperuuparkarに感謝します。
- -f | –format オプションを修正しました。このオプションは、パラメーターリストから取得したすべてのファイルに適用されておらず、ログ形式の自動検出に失敗した場合には、形式が最初に解析されたファイルから取得されていました。 報告してくださったLevente Birtaに感謝します。
- ソースドキュメントファイルを更新して、pgBadger v7.xへの参照をv11に置き換えました。パッチを提供してくださったWill Bucknerに感謝します。
- ページ全体が巨大なクエリーで占められるのを避けるために、上位クエリーの高さ表示サイズを制限します。パッチを提供してくださったilias ilisepe1に感謝します。
- クエリーのオーバーフローと「最も遅い個々のクエリー」の詳細を修正しました。
- ファイル、ディレクトリ、ワイルドカードのSSH URIを修正しました。パッチを提供してくださったtbussmannに感謝します。
- ドキュメント内のURIサンプルを修正しました。パッチを提供してくださったtbussmannに感謝します。
- –rebuild が使用されている場合、デフォルト出力ファイルの使用メッセージを非表示にします。
- make時にPODドキュメントが壊れないように、usage()出力に余分な改行を追加しました。
- ドキュメントの –exclude-client オプションの説明を再適用するようにしました。報告してくださったChristoph Bergに感謝します。
v11.0 · 2019-06-25
pgBadgerのこのリリースでは、いくつかの主要な新機能が追加され、過去4か月間にユーザーから報告されたいくつかの問題が修正されています。新機能:
-
カーソル関連のクエリー(DECLARE、CLOSE、FETCH、MOVE)を新しいクエリータイプCURSORに再グループ化します。
-
より多くの一時ファイルを生成する上位バインドクエリーを追加しました。 log_connectionとlog_disconnectionをアクティブにする必要があります。
-
–exclude-client コマンドラインオプションを追加して、指定したクライアントIPのログエントリーを除外できるようにします。複数回使用できます。
-
–begin および –end フィルターで、日付を省略して時刻だけを指定できるようにしました。
-
-H、–html-dir オプションを追加すると、HTMLレポートを増分モードで書き込む必要がある別のパスを設定できるようになります。バイナリファイルは、-O、–outdir オプションで定義されたディレクトリに残ります。
-
-E | –explode オプションを追加し、メインレポートをデータベースごとに1つのレポートに展開します。データベースに関係しないグローバル情報がpostgresデータベースレポートに追加されます。
-
データベースごとのレポートを増分モードに追加しました。このモードでは、データベースごとに専用の増分レポートを含むサブディレクトリが存在します。
-
HerokuのPostgreSQL logplex形式へのサポートを追加しました。ログは以下を使用して解析できます。
heroku logs -p postgres | pgbadger -f logplex -o heroku.html -
-
クエリーが10Kbを超える場合、まずすべての定数文字列パラメーターのサイズを30文字に制限し、その後クエリーは10Kbに切り詰められます。これにより、たとえばbyteaを挿入するときに、pgbadgerが非常に長いクエリーで時間を無駄にしたりハングしたりすることがなくなります。 10Kb制限は、–maxlength コマンドラインパラメーターで制御できます。クエリーは、この最初のサイズ制限試行後にのみ、maxlength値に正規化または切り詰められます。
この新しいリリースでは、古いバイナリファイルまたはJSONファイルとの後方互換性が失われます。これは、増分モードでは古いバイナリファイルを読み取ることができないことも意味します。 pgBadgerを更新して古いレポートを保持したい場合は、新しい週の初めにアップグレードするように注意してください。そうしないと、週次レポートが壊れてしまいます。 pgBadgerは警告を出力し、古いバイナリファイルをスキップするだけです。
いくつかのバグ修正と機能強化もあります。
- バージョンに関する警告を追加し、互換性のないバイナリファイルのロードをスキップします。
- コードフォーマッタをpgFormatter 4.0に更新しました。
- Windows OSでのpgbadgerのハングを修正しました。報告してくださったJMLessardに感謝します。
- pgBadger v11の新しいバイナリファイル形式と互換性があるようにtools/pgbadger_toolsスクリプトを更新しました。
- より多くの一時ファイルを生成する上位バインドクエリーを追加しました。この収集は、postgresql.confでlog_connectionとlog_disconnectionがアクティブ化されている場合にのみ可能です。機能を要望してくださったIldefonso Camargoに感謝します。
- タイムゾーンの自動検出を修正しました。修正してくれたmassimosalaに感謝します。
- –nograph が使用されている場合は、残りのグラフを一部削除します
- –normalized-only を使用する場合、.txt拡張子の使用を強制します。
- logplex形式での自動バキューム/分析のレポートを修正しました。 報告してくださったKonrad zichulに感謝します。
- Windowsオペレーティングシステムでのプログレスバーの使用を修正しました。報告してくださったJMLessardに感謝します。
$prefix_vars{'t_time'}を使用してログ時間を保存します。パッチを提供してくださったLuca Ferrariに感謝します。- 使用方法とドキュメントを更新して、pgbadger呼び出しからperlコマンドを削除しました。パッチを提供してくださったLuca Ferrariに感謝します。
- 日付なしで開始時刻と終了時刻を使用します。パッチを提供してくださったLuca Ferrariに感謝します。
- Readmeファイルに非常に小さなスペルと文法の修正を追加しました。パッチを提供してくださったofni yratilimに感謝します。
- SSHを使用してリモートパスを修正しました。パッチを提供してくださったLuca Ferrariに感謝します。
- データベースごとのレポート機能で導入された新しい構造で動作するように回帰テストを更新しました。
- すべての開始パラメーターと終了パラメーターの小数秒を修正しました。パッチを提供してくださったLuca Ferrariに感謝します。
- ドキュメントURLを修正しました。報告してくださったKara Manselに感謝します。
- auto_explainの解析を修正しました。複数回使用できる -Uオプションに関する詳細情報を追加しました。報告してくださったDouglas J Hunleyに感謝します。
- HTML/CSSレポートの多くの改善を行いました。パッチを提供してくださったPierre Giraudに感謝します。
- リソースファイルを更新しました。
- logplex形式の回帰テストを追加しました。
- HerokuのPostgreSQL logplex形式に対応しました。次のようにログを解析できます。 heroku logs -p postgres | pgbadger -f logplex -o heroku.html - 出力をすでにファイルに保存している場合は、次のように実行します。 pgbadger heroku.log logplex形式は、他のサポートされている形式と同様に自動検出されます。pgBadgerは、次のデフォルトのlog_line_prefixを認識します。 database = %d connection_source = %r sql_error_code = %e または、次の簡略化した形式も認識します。 sql_error_code = %e 他にもデフォルトのlog_line_prefixがあればお知らせください。プレフィックスは常にpgbadgerの-p | –prefix オプションで設定できます。例: pgbadger –p ‘base = %d source = %r sql_state = %e’ heroku.log 機能を要望してくださったAnthony Sossoに感謝します。
- URIの使用に関するpgbadgerヘルプを修正しました。
- 以前のパッチで導入されたURI sshでの壊れたワイルドカードの使用を修正しました。報告してくださったTobias Bussmannに感謝します。
- ログファイルへのパスにスペースを含むURIを許可しました。報告してくださったTobias Bussmannに感謝します。
- ドキュメント内のURIサンプルを修正しました。パッチを提供してくださったTobias Bussmannに感謝します。
- syslogテストに10sを超える時間がかかる場合でも失敗しないようにt/02_basics.tを修正しました。パッチを提供してくださったChristoph Bergに感謝します。
8.4 - pgBadger 10.xリリースノート
v10.3 · 2019-02-14
pgBadgerのこのリリースは、ログ形式の自動検出の問題とユーザーから報告された別のpgBouncerログ解析の問題を修正するメンテナンスリリースです。新しい機能もあります。
-o | --outfile オプションを複数回指定し、一つのコマンドで複数の形式を出力できるようになりました。例:
pgbadger -o out.html -o out.json /log/pgsql-11.log
HTMLとJSONの二つのレポートが生成され、対応する二つのファイルに保存されます。
いくつかのバグ修正と機能強化もあります。
- データベース、ユーザー、クライアント、またはアプリケーションに関するフィルターが要求された場合の統計レポートを修正しました。一部のクエリーは報告されませんでした。
- pg>=10のデフォルトのログ行プレフィックスの自動検出を修正しました。
- 「非標準」ログ行プレフィックスを持つログファイルの自動検出を修正しました。 –prefix で時刻(%t、%m、%nのいずれか)とプロセス(%pまたは%c)を指定する場合は、形式をstderrに設定します。報告してくださったAlex Danvyに感謝します。
- 行末の余分なスペースを削除しました。
- syslogパーサーに最小限のテストを追加しました。
- autodetect_format()の呼び出しを修正しました。
- maxlengthが使用されている場合にステートメントを切り詰めます。パッチを提供してくださったThibaud Madelaineに感謝します。
- 複数の出力形式のテストを追加しました。
- -o | –outfile オプションを複数回指定し、1つのコマンドで複数の形式を出力できるようになりました。例: pgbadger -o out.txt -o out.html -o - -x json /log/pgsql-11.log この例では、pgbadgerはテキストとHTMLの2つのレポートを生成し、対応する2つのファイルに保存します。さらに、標準出力にJSONレポートを出力します。機能を要望してくださったNikolayに感謝します。
- 出力フォーマットの検出と出力ファイル名の設定を専用関数set_output_extension()に移動しました。
- 別のpgBouncerログ解析の問題を修正しました。報告してくださったDouglas J. Hunleyに感謝します。
v10.2 · 2018-12-27
pgBadgerのこのリリースは、過去3か月間にユーザーから報告された問題を修正するメンテナンスリリースです。いくつかの新機能もあります。
- pgbouncer 1.8統計ログ形式のサポートを追加しました。
- JavaScriptグラフのタイムゾーンを自動調整します。
新しいコマンドラインオプションがあります。
-
–exclude-db オプションを追加して、指定したデータベース以外のすべてに関するレポートを計算します。
-
httpまたはftpリモートPostgreSQLログファイルのダウンロードのサポートを追加しました。ログファイルは、curlコマンドを使用したダウンロード中に解析され、ディスクには保存されません。 SSHリモートログ解析では、コマンドライン引数としてuriを使用して、PostgreSQLログファイルを指定できます。 ssh://localhost/postgresql-10-main.log http://localhost/postgresql-10-main.log.gz ftp://localhost/postgresql-10-main.log
httpおよびftpプロトコルでは、uriの最後にログファイル形式を指定する必要があります。
http://localhost/postgresql-10-main.log:stderr解析するログファイルに対して複数のURIを指定できます。これは、リモートホストにpgbouncerログファイルがあり、ローカルホストにPostgreSQLログがある場合に便利です。
sshプロトコルでは、リモートモードと同様にワイルドカードも使用できます。例: ssh://localhost/postgresql-10-main.log*
-rオプションを使用してリモートログファイルを解析する古い構文は引き続き動作しますが、非推奨となっており、将来のバージョンでは削除される可能性があります。
いくつかのバグ修正と機能強化もあります。
- 推定サイズのファイル(bz2圧縮ファイルおよびリモート圧縮ファイル)でプログレスバーの終わりを調整します。
- 著作権の年を更新しました。
- リモートログファイルを解析するためのURI表記に関する情報を追加しました。
- 圧縮されたリモートファイルの解析の終了時に進行状況が100%に到達するように強制します。
- 一時ファイルレポートのクエリー内のPL/pgSQL関数呼び出しに関する情報を抽出します。情報は詳細表示ブロックに追加されます。
- csvファイルのプログレスバーを修正しました。
- ログファイルではなく入力ファイルとしてバイナリファイルを読み取る問題を修正しました。
- クエリーのHTML出力をUTF8にエンコードし、「Wide character in print」メッセージが出ないようにしました。報告してくださったColin ’t Hartに感謝します。
- チェックポイント距離のキー/値を距離ピーク用に追加しました。
- pgbouncerの解析とリクエストスループットレポートを修正しました。 報告してくださったLevente Birtaに感謝します。
- 入力形式としてcsvではなくcsvlogの使用を修正しました。
- pgbouncer 1.8統計ログ形式のサポートを追加しました。 報告してくださったLevente Birtaに感謝します。
- csvlogで無効になっている並列処理に関する警告を追加しました。 報告してくださったcstdenisに感謝します。
- -jおよび -Jオプションのcsvlog形式による単一プロセスの強制に関する使用状況出力に情報を追加しました。 報告してくださったcstdenisに感謝します。
- SSH経由の増分分析中の複数行ログに関する「unknown line format」エラーを修正しました。 報告してくださったWooyoung Choに感謝します。
- -k (–insecure)オプションをcurlコマンドに追加して、自己署名証明書を使用してサーバーからログをダウンロードできるようにします。
- JavaScriptグラフのタイムゾーンを自動調整します。機能を要望してくださったMassimino Salaに感謝します。
- pgBadgerによるHTTP経由のログファイルのダウンロードに対応しました。例: /usr/bin/pgbadger http://www.mydom.com/postgresql-10.log
- curlコマンドを使用してダウンロード中にファイルを解析します。
- ドキュメントを修正しました。パッチを提供してくださった0xflotusに感謝します。
- 追加のコードをクリーンアップした後、バインドパラメーターの置換が欠落している問題の修正を再適用するようにしました。報告してくださったBernhard J. M. Grunに感謝します。
- –exclude-db オプションを追加して、指定したデータベース以外のすべてに関するレポートを計算します。このオプションは複数回使用できます。
v10.1 · 2018-09-12
pgBadgerのこのリリースは、増分モードおよび -jオプションを使用したマルチプロセスでのレポートを修正するメンテナンスリリースです。標準入力からのログ解析も壊れていました。 v10.0を使用している場合は、今すぐアップグレードしてください。
- pgbouncerログパーサーにテストを追加しました。
- いくつかの小さなパフォーマンスの改善。
- 「not a valid file descriptor at pgbadger line 12314」の問題を修正しました。
- 起動時のプログレスバーにある不要な改行を修正しました。
- circleciファイルをプロジェクトから削除しました。
- テストスイートのBatsとjqの依存関係を削除し、Test::SimpleとJSON::XSに置き換えました。
- リリース10.0で壊れた増分モードと標準入力からの入力に特にテストを追加しました。
- pgbadger、POD、およびREADMEを同期し、いくつかの構文エラーを修正しました。パッチを提供してくださったChristoph Bergに感謝します。
- PerlモジュールJSON::XSをaptおよびyumリポジトリからインストールする方法に関するドキュメントを追加しました。
- 増分モードでCSSのURIを修正しました。報告してくださったFloris van Neeに感謝します。
- STDINからログを検索する際の致命的なエラーを修正しました。報告してくださったJacek Szpotに感謝します。
- OSXビルドで使用されるSEDを修正しました。パッチを提供してくださったSteve Newsonに感謝します。
- 増分モードでの「illegal division by zero」エラーを修正しました。 報告してくださったaleszelenyに感謝します。
- SQL::BeautifyをpgFormatter::Beautifyのv3.1に置き換えました。
v10.0 · 2018-09-09
pgBadgerのこのリリースは、いくつかの新機能を追加し、前回のリリース以降にユーザーから報告されたすべての問題を修正するメジャーリリースです。
- pgbouncer syslogログファイル形式のサポートを追加しました。
- すべてのauto_explain形式(text、xml、json、yaml)へのサポートを追加しました。
- log_line_prefixの%qプレースホルダーへのサポートを追加しました。
- Michael Paquier拡張機能のjsonlog形式を追加しました。pgbadgerに-f jsonlogを指定すると、ログを解析できるようになります。
- SQLフォーマッタ/整形をpgFormatterのv3.0に置き換えました。
新しいコマンドラインオプションがいくつかあります。
- JSON出力を整形するために –prettify-json コマンドラインオプションを追加しました。
- –log-timezone +/-XXコマンドラインオプションを追加して、解析される前にログファイルから読み取られる日付/時刻を調整するために使用する必要があるタイムゾーンのGMTからの時間数を設定します。クライアントのタイムゾーンが同じでない場合でも、-Zを使用してグラフのタイムゾーンを調整する必要がある場合があることに注意してください。
- –include-time オプションを追加すると、表示したくない時間をすべて除外するのではなく、表示したい時間を選択できるようになります(–exclude-time)。
pgBadgerプロジェクトと著作権は、Daliboからプロジェクトの作成者および公式メンテナーに譲渡されました。リンクを更新してください:
- Webサイト: http://pgbadger.darold.net/
- ソースコード: https://github.com/darold/pgbadger
ここ数年間、pgBadgerに投資してくれたDaliboの素晴らしい皆さん、特にpgBadgerの推進に協力してくれたDamien ClochardとJean-paul argudoに感謝したいと思います。
- 増分モードでレポートされないチェックポイント距離と推定値を修正しました。 報告してくださったaleszelenyに感謝します。
- pgbouncer同時セッションレポートのタイトルを修正しました。報告してくださったJehan Guillaume De Rorthaisに感謝します。
- pgbouncer syslogログファイル形式のサポートを追加しました。機能を要望してくださったdjesterに感謝します。
- リモートログが空の場合のエラーを修正しました。報告してくださったParasit Henderssonに感謝します。
- バイナリ形式でテストを修正しました。バイナリファイルはプラットフォームに依存するため、生成する必要があります。報告してくださったMichal Nowakに感謝します。
- 空のExplainプランが生成されるケースを修正しました。
- コマンドラインでプレフィックスを使用して自動検出されたデフォルト形式の解析を修正しました。
- Makefile.PL内のgitコマンドへの依存を削除しました。
- オプションの変更に関するドキュメントを更新し、必須のプレフィックスの [%l-1]部分を削除しました。
- バキュームの解析を修正し、PostgreSQL 10のvacuum・analyzeのリソース使用状況の解析を修正しました。パッチを提供してくださったAchilleas Mantziosに感謝します。
- 一時ファイルアクティビティテーブルを修正しました。
- インストール中にgitへの依存関係を削除しました。
- –log-timezone +/-XXコマンドラインオプションを追加して、解析される前にログファイルから読み取られる日付/時刻を調整するために使用する必要があるタイムゾーンのGMTからの時間数を設定します。このオプションを使用すると、ログ内の時間が同じにならないため、日付/時刻を使用したログ検索がより困難になります。クライアントのタイムゾーンが同じでない場合でも、-Zを使用してグラフのタイムゾーンを調整する必要がある場合があることに注意してください。機能リクエストのxdexterとパッチのJulien Tachoireに感謝します。
- auto_explain json出力形式へのサポートを追加しました。 報告してくださったdmiusに感謝します。
- auto_explainパーサーと2回カウントされていたクエリーを修正しました。 報告してくださったzam6akに感謝します。
- PostgreSQL 10ログメッセージと一致するようにチェックポイント正規表現を修正しました。パッチを提供してくださったEdmund Hornerに感謝します。
- -f | –format オプションの説明に、jsonlog形式に関する情報を追加して更新しました。
- バインドクエリーと重複しないようにクエリーの正規化を修正しました。値の正規化は単一の?に変換されるようになりました。数値の0や文字列の2つの一重引用符は使用しなくなりました。 報告してくださったvadvに感謝します。
- ログレベル数を修正しました。報告してくださったJean-Christophe Arnuに感謝します
- pgbadgerをB::Lintのベアサブ名との互換性を高めました。
- perlcriticの指摘に対応しました。
- JSON出力を整形するために –prettify-json コマンドラインオプションを追加しました。デフォルトの出力はすべて1行です。
- イベント分布レポートを修正しました。
- log_line_prefixに複数の%%が含まれる場合の –prefix のバグを修正しました。 報告してくださったsvb007に感謝します。
- –log-timezone +/-XXコマンドラインオプションを追加して、解析される前にログファイルから読み取られる日付/時刻を調整するために使用する必要があるタイムゾーンのGMTからの時間数を設定します。このオプションを使用すると、ログ内の時間が同じにならないため、日付/時刻を使用したログ検索がより困難になります。クライアントのタイムゾーンが同じでない場合でも、-Zを使用してグラフのタイムゾーンを調整する必要がある場合があることに注意してください。機能を要望してくださったxdexterに感謝します。
- キーワードリストからINDEXESを削除し、このリストにBUFFERSを追加しました。
- カーソルを使用したクエリーの正規化を修正しました。
- Dockerfileとdocker runに関するドキュメントを削除しました。 pgBadgerは依存関係のない単一のPerlスクリプトとして提供され、任意のプラットフォームで使用できます。 dockerを使用してpgbadgerを実行するのはナンセンスです。何もインストールしたくない場合は、ファイルpgbadgerを必要な場所にコピーして実行するだけです。
- 一時ファイルのアクティビティがないときに壊れたグリッドを修正しました。パッチを提供してくださったPierre Giraudに感謝します
- log_min_duration_statementとlog_duration + log_statementに関するドキュメント警告を追加しました。パッチを提供してくださったJulien Tachoireに感謝します。
- タイムゾーンオフセットを棒グラフに適用するようにしました。パッチを提供してくださったJulien Tachoireに感謝します。
- 同じPIDのエラーが発生した場合は、現在の一時ファイル情報を削除しました。パッチを提供してくださったJulien Tachoireに感謝します。
- 例では一貫してapp= を使用し、appname= をサポートします。使用例の一部ではプレフィックスにappname= が使用されていましたが、コードはそのトークンを認識しませんでした。すべての例でapp= を使用し、プレフィックスパーサーにappname= を追加しました。パッチを提供してくださったChristoph Bergに感謝します
- オプション-Jの誤った長い名前を修正しました。正しくは –job_per_file ではなく –Jobs です。報告してくださったChad Trabantとパッチを提供してくださったEtienne Bersacに感謝します。
- blibファイルを無視するようにしました。パッチを提供してくださったEtienne Bersacに感謝します。
- 整合性テストを追加しました。パッチを提供してくださったdamien clochardに感謝します。
- ドキュメント更新: stderrは-fのデフォルトではありません。パッチを提供してくださったChristophe Courtoisに感謝します。
- PODとREADMEを常に更新しました。パッチを提供してくださったEtienne Bersacに感謝します。
- いくつかの回帰テストを追加しました。パッチを提供してくださったEtienne Bersacに感謝します。
- editorconfig構成を追加しました。パッチを提供してくださったEtienne Bersacに感謝します。
- gitignoreからvi一時ファイルを削除しました。パッチを提供してくださったEtienne Bersacに感謝します。
- –include-time オプションを追加すると、表示したくない時間をすべて除外するのではなく、表示したい時間を選択できるようになります。これは、1週間分のログから1日または2日だけを表示したい場合に便利です(複数の –exclude-time オプションから1つの –include-time に簡素化されます)。パッチを提供してくださったWesley Bowmanに感謝します。
- PODの構文を確認します。パッチを提供してくださったEtienne Bersacに感謝します。
- ドキュメントテストにHACKINGを追加しました。パッチを提供してくださったEtienne Bersacに感謝します。
- 廃止された –bar-graph オプションを削除しました。パッチを提供してくださったEtienne Bersacに感謝します。
- 誤解を招く.perltidyrcを削除しました。このファイルは2012年のものであり、pgbadgerコードはその規則にほど遠い状態です。perltidyのunified diffは10k行に及ぶため、削除しました。パッチを提供してくださったEtienne Bersacに感謝します。
- SQL形式での初期化されていない値の使用を修正しました。報告してくださったJohn Kruggerと、報告してくださったJean-paul Argudoに感謝します。
8.5 - pgBadger 9.xリリースノート
v9.2 · 2017-07-27
pgBadgerのこのリリースは、いくつかの新機能を追加するメンテナンスリリースです。
- チェックポイントの距離と推定値のレポートを追加しました。
- AWS RedshiftキーワードのサポートをSQLコード整形ツールに追加しました。
- リモートモードでのログ形式の自動検出を追加して、pgbouncerログファイルとPostgreSQLログファイルをリモートで解析できるようにします。
いくつかのバグ修正と機能強化もあります。
- 最後の範囲より上のデータが表示されなかったヒストグラムを含むレポートを修正しました。
- ログ行番号パターン([%l-n])を使用しないjournalctlの解析を修正しました。報告してくださったChristian Schmittに感謝します。
- チェックポイントの距離と推定値のレポートを追加しました。機能を要望してくださったjjsantamに感謝します。
- CSSおよびJavaScriptファイルを更新するスクリプトtools/updt_embedded_rsc.plが実行する内容の詳細情報を追加しました。
- すべてのログファイルが空の場合は警告を出さず、コード0で終了します。
- %regex_mapのルックアップとして%nを含まないbuild_log_line_prefix_regex()を修正しました。パッチを提供してくださったghosthoundに感謝します。
- 「FATAL: cannot use CSV」のエラーレベルをWARNINGに変更しました。報告してくださったkong1manに感謝します。
- 初期化されていない値の使用に関する警告を修正しました。 報告してくださったPayalに感謝します。
- 「permission denied」をエラー正規化に追加しました。
- pgbadgerをpgFormatterの最新のコミット5bdc018に更新しました。
- AWS Redshiftキーワードのサポートを追加しました。機能を要望してくださったcavanaugに感謝します。
- クエリーがキャンセルされたときに一時ファイルレポートに欠落していたクエリーを修正しました。報告してくださったFabrizio de Royes Melloに感謝します。
- バインドされたパラメーターを使用してクエリーを正規化し、?に置き換えました。
- 終了時刻が開始時刻より前になることを避けるための健全性チェック。パッチを提供してくださったChristophe Courtoisに感謝します。
- 多数の誤記と文法を修正しました。バイナリファイルではなくプログラムを指す場合は、「pgBadger」を使用します。また、PgBouncer、GitHub、CSSなどの正式な表記を使用しました。 PODファイルはREADMEと同期されました。パッチを提供してくださったEuler Taveiraに感謝します。
- –disable-type 使用時にメニューが壊れる問題を修正しました。top_cancelled_infoテストとリストの終了部はdisable_typeテストの内側にある必要があります。ついでに、disable_lockテストのインデントを整えました。パッチを提供してくださったEuler Taveiraに感謝します。
- 初期化されていない値の使用を修正しました。 報告してくださったjohnkruggerに感謝します。
- ファイルがリモートでホストされている場合、ログ形式の自動検出中にログファイルを読み取るテストを削除しました。 報告してくださったclomddに感謝します。
- リモートモードでのログ形式の自動検出を追加して、pgbouncerログファイルとPostgreSQLログファイルをリモートで解析できるようにします。
- ログ行の検証後に誤って増加したセッション数を修正しました。報告してくださったAchilleas Mantziosに感謝します。
- pgBadger説明の小規模な再フォーマット。
- ドキュメント内の繰り返しの情報を修正。パッチを提供してくださったcscatoliniに感謝します。
v9.1 · 2017-01-24
pgBadgerのこのリリースは、いくつかの新機能を追加するメンテナンスリリースです。
- SQLStateがlog_line_prefixで利用可能な場合のエラークラス分布のレポートを追加します(%eプレースホルダーを参照)。
- SQLビューティファイアをpgFormatter v1.6コードに更新しました。
- エラーメッセージの正規化を改善します。
- –normalized-only オプションを追加して、カウント付きのログ内で見つかったすべての正規化されたクエリーを含むテキストファイルを生成します。
- 一意のセッションIDとして%c (セッションID)が%p (pid)を置き換えることを許可しました。
- イベントレポートにロック待機メッセージを追加しました。
- –start-monday オプションを追加して、暦週をデフォルトの日曜日ではなく月曜日から開始します。
いくつかのバグ修正と機能強化もあります。
- SQLStateがログ行プレフィックスで使用可能な場合のエラークラス分布のレポートを追加しました。機能を要望してくださったjacks33に感謝します。
- サイズ変更時の増分グローバルインデックスを修正しました。 報告してくださったclomddに感謝します。
- コマンドタグlog_line_prefixプレースホルダー%iを修正してスペース文字を許可しました。
- –exclude-line オプションを修正し、保持期間が設定され、–noreport が使用されている場合に古いディレクトリを削除しました。
- 「バキュームアクティビティテーブル」のタイプミスを修正。パッチを提供してくださったNicolas Golletに感謝します。
- 自動バキュームレポートを修正しました。パッチを提供してくださったNicolas Golletに感謝します。
- pgbadgerのロゴの作者であるDamien Cazeilsとコメント内の英語を修正しました。パッチを提供してくださったThibaut Madelaineに感謝します。
- -fオプションにpgbouncerログ形式に関する情報を追加しました。 報告してくださったclomddに感謝します。
- ドキュメントに –normalized-only 情報を追加しました。
- 以前のパッチで導入された日付/時刻の壊れたレポートを修正しました。
- log_duration=onおよびlog_statement=allの場合の実行時間とクエリーの関連付けを修正しました。報告してくださったEric Jensenに感謝します。
- アドバイザリロックに関するメッセージの正規化を修正しました。報告してくださったThibaut Madelaineに感謝します。
- auto_explain出力のレポートを修正しました。 報告してくださったfch77700に感謝します。
- 標準入力からのログエントリーによる不要なログ形式の自動検出を修正しました。報告してくださったJesus Adolfo Parraに感謝します。
- 正規表現の停止文字に開き丸括弧を追加して、プレフィックス内のDBクライアントを検索し、ソースポートを含むPostgreSQLクライアント文字列形式を処理するようにしました。パッチを提供してくださったJon Nelsonに感謝します。
- いくつかのスペルミスを修正しました。パッチを提供してくださったJon Nelsonに感謝します。
- 一意のセッションIDとして%c (セッションID)が%p (pid)を置き換えることを許可しました。 報告してくださったJerryliukに感謝します。
- pgbadgerが、おそらく10.0で使用されるデフォルトのlog_line_prefixを解析できるようにします: ‘%m [%p] '
- インタープリター呼び出しで欠落している最初の行を修正しました。
- CSVレポートで欠落している平均値を修正しました。報告してくださったYosuke Tomitaに感謝します。
- autodetect_format()メソッドのエラーメッセージを修正しました。
- –start-monday オプションを追加して、暦週をデフォルトの日曜日ではなく月曜日から開始します。機能を要望してくださったJoosep Maeに感謝します。
- –histo-average オプションを修正しました。報告してくださったYves Martinに感謝します。
- ドキュメント内の –ssh-option の複数形を削除しました。 報告してくださったmark-a-sに感謝します。
- –exclude-time フィルターを修正し、不要な行をスキップするコードとプログレスバーを更新するコードを書き換えます。報告してくださったMichael Chestertonに感謝します。
- プレフィックス内の%hの代わりに%rプレースホルダーのサポートを修正しました。
v9.0 · 2016-09-02
pgBadgerのこのメジャーリリースは、Bootstrap 3への移植と、すべてのリソースファイル(CSSおよびJavaScript)のバージョンアップグレードです。いくつかのバグ修正と機能強化もあります。
古い増分レポートとの後方互換性が維持される場合があります。
-
リソースファイルのソースとライセンスは、専用のサブディレクトリに配置されるようになりました。 pgbadgerスクリプトに埋め込まれた縮小バージョンを更新するためのスクリプトが追加されました。ヘルプと機能リクエストを提供してくれたChristoph Bergに感謝します。
-
接続のログ出力が有効で、log_line_prefixにユーザー・データベース・ホストが含まれていない場合は、接続文字列からuser/database/hostの検出を試みます。 正規表現を拡張して、データベース名、ユーザー名、クライアントIPアドレス、およびアプリケーション名を自動検出します。現在の正規表現は次のとおりです。
db => qr/(?:db|database)=([^,]*)/; user => qr/(?:user|usr)=([^,]*)/; client => qr/(?:client|remote|ip|host)=([^,]*)/; appname => qr/(?:app|application)=([^,]*)/; -
新しいCSSおよびJavascriptファイル用のサブディレクトリを作成することにより、増分モードでの古いバージョンのpgbadgerとの後方互換性を追加しました。このサブディレクトリには、pgbadgerのメジャーバージョン番号が付けられています。
-
新しいフォントサイズでは小さすぎるpgbadgerロゴのサイズを大きくします。
-
すべてのレポートの詳細情報を正規化します。
-
ロックレポートの重複コピーアイコンを修正しました。
-
セッション時間のヒストグラムに欠落していたグラフを修正しました。報告してくださったGuillaume Lelargeに感謝します。
-
リソースファイルで使用されるライセンスを記録したLICENSEファイルを追加しました。パッチを提供してくださったChristoph Bergに感謝します。
-
jqplotライブラリにパッチを追加して、いくつかのチャートをダウンロードしようとしたときの無限ループを修正しました。この問題の解決に協力してくれたJulien Tachoiresに感謝します。
-
スクリプトtools/updt_embedded_rsc.plは、リソースファイルresources/jquery.jqplot.jsにパッチを適用しますが、すでに適用されている場合には警告を出しません。
-
円グラフデータセットの末尾にある最後のカンマを1つ削除しました。 報告してくださったJulien Tachoiresに感謝します。
-
正規化エラーの表示変更
-
未使用または自動生成されたファイルを削除します
-
すべてのリソースファイル(js+css)を更新し、pgbadgerで使用されるJavaScriptライブラリのソースを含めるディレクトリを作成するようにしました。新しいスクリプトtools/updt_embedded_rsc.plもあり、これらのファイルの縮小バージョンを生成し、pgbadgerに埋め込むために使用できます。 このスクリプトは、FontAwesome.otfオープンTrueTypeフォントをfontawesome.cssファイルに埋め込みます。
9 - サポートと貢献
pgBadgerはオープンプロジェクトとして維持されています。バグ報告、機能要望、ドキュメントの修正、パッチは、アップストリームのGitHubリポジトリ経由で処理されます。
バグおよび機能要望
- 最新リリース版にアップグレードし、問題が依然として発生するか確認してください。
- 既存の回答を検索するには、オープンな問題 および クローズされた問題 を確認してください。
- 問題を再現する最小限の安全なログサンプルおよびコマンドラインに簡略化してください。
- 認証情報、機密SQL、バインド値、ホスト名、アドレス、および業務データを削除します。
- pgBadgerのバージョン、オペレーティングシステム、入力形式、正確なオプション、観測結果、期待結果を含む 新しいIssue を開いてください。
クラッシュやパーサーの誤りの場合、機密情報を除去し、再現に必要な最小限に絞ったログ行のみを含めてください。完全な本番ログや生成されたレポートは、公開Issueへの添付にはほとんどの場合適していません。
パッチを提供する
プロジェクトには、インデントを統一するための.editorconfigファイルが含まれています。ユーザーに見える動作に影響を与える変更を行う際は、コマンドヘルプ、POD、および生成されたMarkdownドキュメントを同期させてください。
アップストリームドキュメントのワークフローは以下の通りです:
doc/pgBadger.podは詳細なドキュメントの主なソースです。pgbadger --helpは概要を提供し、READMEファイルはそこから生成されます。プルリクエストを提出する前に、関連するテストを実行してください。
商用サポート
pgBadgerプロジェクトは、ライセンス下で保守またはサポートを保証していません。PostgreSQLのログ処理、パフォーマンス分析、レポート自動化に関する有料サポートが必要な場合は、PostgreSQLプロフェッショナルサービスディレクトリ をご参照ください。
10 - ライセンスとクレジット
pgBadgerは、PostgreSQLライセンスに基づいて配布される無料のオープンソースソフトウェアです。著作権およびライセンス通知を保持することを条件として、無償で使用、コピー、変更、配布することができます。
PostgreSQLライセンス
Copyright (c) 2012-2026, Gilles Darold
Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.
IN NO EVENT SHALL Darold BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF Darold HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Darold SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN “AS IS” BASIS, AND Darold HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
著者とデザインのクレジット
- pgBadgerは、Gilles Daroldによるオリジナル作品です。
- pgBadgerロゴは、Damien Cazeilsによるオリジナルの作品です。
- pgBadger v4.xのデザインは、「Art is code」社が制作しました。
- このウェブサイトはGilles Daroldの作品です。
- 貢献者の名前は、アップストリームのChangeLog各所に記載されています。
埋め込みリソースとレポートリソース
SQL::Beautify Perlモジュールの修正バージョンがpgBadgerに埋め込まれています。この作品の著作権は © 2009 Jonas Kramerにあり、Artistic License 2.0に基づいて公開されています。
生成されたレポートリソースには、次のような独自の通知があります。
| コンポーネント | ライセンス |
|---|---|
| bean.js、Bootstrap、jQuery、Underscore | MIT |
| jqPlot | MITまたはGPL-2.0(ユーザーの選択) |
| Font Awesomeフォント | SIL Open Font License 1.1 |
| Font Awesome CSS | MIT |
リソースのライセンス条項全文はresources/LICENSEにあります。サンプルレポートには、生成時の著作権通知とリソースのバージョンが含まれます。