フランス拠点の障害対応で使う日付入りログ、現地時刻のままgrepするときの検索キー設計
パリのチームが運用しているAPIの障害で、ログを現地時刻のまま追う必要があった。対象はアプリ3台、1日あたり約400万行、ログは`app-YYYY-MM-DD.log`で日付ごとにローテーション、各行の先頭は`2024-03-12 14:03:21,447`のような現地時刻(Europe/Paris)。UTCに寄せるとパリの当直メンバーが送ってくる「14時過ぎから500が出てる」という連絡と1時間
普段はコードを書いています。気になる議論には顔を出します。
パリのチームが運用しているAPIの障害で、ログを現地時刻のまま追う必要があった。対象はアプリ3台、1日あたり約400万行、ログは`app-YYYY-MM-DD.log`で日付ごとにローテーション、各行の先頭は`2024-03-12 14:03:21,447`のような現地時刻(Europe/Paris)。UTCに寄せるとパリの当直メンバーが送ってくる「14時過ぎから500が出てる」という連絡と1時間
フランス拠点の障害対応で、アプリのログを1日分まとめて`app-2024-06-12.log.gz`の形で受け取ることが多い。日本語のキーワードで検索しようとして`zgrep`ではなく通常の`grep`をかけてしまい、何もヒットしないまま10分ほど溶かした経験がある。環境はUbuntu 22.04、ロケールは`fr_FR.UTF-8`、ファイルサイズは1日あたり400MB前後、圧縮後で40MB程度
フランス拠点のリポジトリで、障害対応中に原因コミットを探そうとして詰まった経験がある。環境はGitLab 16系、ブランチは数百、直近3ヶ月のコミットが約4000件。開発者はフランス語でコミットメッセージを書く人が多く、`git log --grep` に英語のキーワードを入れてもほぼヒットしない状態だった。
パリ郊外の小規模拠点で、監視アラートから踏み台経由で対象ホストに入る運用をしていた。構成は ClientAliveInterval 60 / ClientAliveCountMax 3 のまま、踏み台は踏み台で別のセッションを張る二段構成。障害時、一次対応の担当が「接続が切れる」と言い、復旧に毎回10分以上かかっていた。切り分けのため、まず踏み台側の sshd_config とクライアント側の ~
パリ郊外の小規模チーム(開発5人、運用2人)で、障害対応用のログ集約ツールを自前でホストしている。ツールはFluentd+Elasticsearch+Kibanaで、各サーバのタイムゾーンはEurope/Paris。先月、障害対応中にログの時刻が1時間ずれて見える現象が起きた。原因は、Fluentdの設定で`time_key`を指定していたが、パース後のタイムゾーン変換をしていなかったこと。具体的
フランスの小規模チーム(開発5人、運用兼務)で、障害対応の記録に使う社内ツールのラベルを現地語(フランス語)にしていた時期がある。対象はインシデントのステータスと重要度の2箇所だけ。ツール自体は自前の小さなWebフォームで、DBはPostgreSQL、ステータスはenumで持っていた。件数は月40〜60件、同時に開いているインシデントが多くて10件程度の規模。
PHP 8.3、FPM 8.3.6、Debian 12 のコンテナ。依存パッケージは 180 個ほど、アプリ側のクラスが約 1,400。PSR-4 のまま `composer dump-autoload -o` で運用していたが、リクエストごとに `vendor/composer/autoload_psr4.php` の配列を引き、存在しないクラス名のたびに `file_exists` が走るのが
フランスの小規模チーム(自分を含めて5人、パリとリヨンで2拠点)で、障害対応の記録を共有する運用を回している。ツールはSlackとNotionで、障害メモはNotionのデータベースに1件1ページで残す形にしている。対象は月に2〜4件程度の軽微な障害で、影響範囲は数百ユーザー規模。以前はSlackのスレッドに時系列で書き込んでいたが、翌週には「結局なにが原因だったか」を探すのに10分以上かかってい
PHP 8.3.4、nginx 1.24 + PHP-FPM(pm=dynamic、pm.max_children=24)、DB は MySQL 8.0。120 万行の注文テーブルに対して月次集計を走らせる管理画面があり、フロントの nginx は `fastcgi_read_timeout 60s`、PHP 側は `max_execution_time=30`。ところが実行すると 30 秒で P
パリ郊外の小規模チームで、Rails 7.0 のAPIを運用していたときのこと。CI(GitLab Runner)はUTC、アプリのコンテナは Europe/Paris、DBはPostgreSQL 14でタイムスタンプは timestamptz 保存。ある週から、日本時間の深夜にだけ走るバッチの日付境界テストがCIでだけ1日ずれて落ちるようになった。データ量は日次2万行程度、再現はCI上のみ、ロー