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に感謝します。