テーマ: observability
-
本番環境での継続的プロファイリング: 常時稼働のサンプリングプロファイルが何に答えるか
継続的プロファイリングはCPUやメモリのプロファイルを時系列で体系的に取得し、ラベル付きの系列として保存する。これにより、昨日フリート全体でどの関数が最もCPUを消費したか、2つのバージョンの間で何が変わったかといった問いに答えられるようになる。サンプリングプロファイラであれば常時稼働させても十分に低コストで済み、Goの`/debug/pprof/`のようなランタイムエンドポイントやeBPFエージェントがプロファイルを供給する。
-
低トラフィックのサービスで、まれな失敗を見えるままにしておけるトレースサンプリング戦略はどれか
未解決の問い: サンプリングに関する指針は、1秒間に数千件のトレースがあり1%でも代表的なサンプルになるようなサービスを前提に書かれている。1秒間に数件のリクエストしかないサービスでは、ヘッドサンプリング、テイルサンプリング、ルートごとのレート、保持期間のどの組み合わせが、週に1件だけ発生する失敗トレースをチームの受け入れられるコストで確保し続けてきたのか。
-
原因ではなく症状で呼び出すアラート
エラー率、レイテンシー、可用性、データの鮮度など、利用者が体験するものを監視する。しきい値を目標に結び付け、緊急度で通知先を分け、ノイズの多いアラートは必ず修正または削除する。
-
Which observability signals should a JVM or .NET service emit by default, and at what overhead?
Open question: both runtimes ship built-in telemetry (Flight Recorder and GC logging on the JVM; EventPipe counters and dotnet-trace on .NET) and both have OpenTelemetry auto-instrumentation, but there is little shared evidence on which of these should be always-on in production, what they cost, and which ones actually shortened incidents.
-
Log sampling for high-volume events: keep every error, sample the repetitive lines
Sampling drops a fraction of similar log events on purpose; the useful forms are one-in-N, burst-then-rate per period, per-level rules that leave warnings and errors untouched, and pipeline sampling keyed on a request ID so a whole request is kept or dropped together, with the applied rate written into the surviving events.
-
Verteiltes Tracing in Umrissen: Spans, Eltern-Kennungen und W3C Trace Context
Ein Trace ist ein Baum aus Spans, jeder mit Trace-Kennung, eigener Span-Kennung, Eltern-Span-Kennung, Zeitstempeln, Attributen und Status; der W3C-Header traceparent trägt Trace-Kennung, Eltern-Kennung und ein Sampled-Flag über Prozessgrenzen, und ein Dienst, der beide Header nur weiterreicht, hält Traces trotzdem zusammen.
-
journald forwarding and remote collection: ForwardToSyslog, systemd-journal-upload/-remote, and rate limits
journald can hand its entries to a local syslog daemon with ForwardToSyslog=, or ship them directly over HTTPS with systemd-journal-upload to a systemd-journal-remote listener that writes its own journal files. Both paths are subject to journald's own per-service rate limiting, which drops excess messages once a burst threshold is crossed and records only a count of what it dropped.
-
運用ダッシュボードの設計:パネルごとに1つの問い、対象者ごとに1画面
対応者が答えなければならない問いから始め、各問いに1つのパネルを割り当てる。全体から詳細へ並べ、単位と軸をそろえ、複製の代わりにテンプレート変数を使い、呼び出しを伴う各アラートを必要なダッシュボードに結び、定義をバージョン管理する。
-
Windows Event Forwarding: a source-initiated subscription, wecutil, and the EventLog Readers group
In a source-initiated WEF subscription, each source computer pulls its configuration from a collector via Group Policy and pushes matching events to it; wecutil manages the subscription on the collector, and forwarding the Security log needs the NETWORK SERVICE account added to the EventLog Readers group on every source.
-
エージェントのタスク全体で相関 ID を使う
タスクの識別、個々の試行、分散トレースのコンテキストを分け、機微なペイロードをログに残さずに再試行を追えるようにする。
-
Alarme sinnvoll gestalten: wenige Meldungen, jede mit einem nächsten Schritt
Ein Alarm, der jemanden weckt, muss dringend, handlungsleitend und für Nutzer spürbar sein; alles andere ist ein Ticket. Symptome an der Nutzerkante alarmieren, Schwellen an Ziele und die Verbrauchsrate des Fehlerbudgets binden, eine Wartezeit gegen Flackern setzen, das Runbook verlinken und jeden Alarm ohne Handlung wöchentlich abschaffen oder nachjustieren.
-
Alert hygiene for host monitoring: rate over threshold, failed units, and duration windows
A page should mean a human must act now; a host disk approaching full should page on its fill rate, not a fixed percentage that a slow-growing partition can sit near for months, and a threshold crossed for an instant should not page at all. Google's SRE materials on paging discipline and multiwindow alerting give the reasoning; this article applies it to the host signals covered in this series.
-
エージェントの再生可能な実行ログ:モデルとツールの呼び出しをすべて記録する
エージェントの実行をデバッグするには、モデルへの各要求、応答、ツール呼び出し、ツール結果を識別子とパラメーター付きで順番に記録する必要がある。OpenTelemetry GenAI のセマンティック規約がフィールド名を定め、再生可能なログがあれば新たな実行に料金を払わずに障害を再現できる。
-
Metric naming and label cardinality: units in the name, bounded values in the labels
Prometheus naming conventions put an application prefix, a base unit and a _total suffix for counters into the metric name and reserve labels for bounded dimensions; every distinct label combination is its own time series, so user IDs, raw URLs and error messages in labels multiply storage until the server degrades.
-
Forwarding syslog with rsyslog over TCP behind a disk-assisted queue
A drop-in file under /etc/rsyslog.d/ can forward every message to a central collector over TCP while a disk-assisted action queue buffers messages locally, so a collector outage or network blip does not drop logs. rsyslogd -N1 validates the syntax before the change is applied.
-
Correlation versus causation in incident and operations data
A correlation coefficient measures how two series move together; it says nothing about which one drives the other, whether a third factor such as traffic drives both, or whether the data were selected by the outcome. Plot first, condition on the obvious common causes, check timing, and confirm with an intervention such as a flag or canary before acting.
-
The RED method for request-driven services, with exemplars that link a slow bucket to a trace
Instrument every request-handling service identically with rate, errors and duration: one counter with route, method and status labels and one duration histogram; when tracing exists, attach exemplars (a trace ID with a recorded value) to the histogram so a slow bucket on the dashboard opens the trace that landed there.
-
ログローテーションと保持期間の制限
アプリケーション、コンテナーランタイム、プロキシ、システムジャーナルの各層で、ログの容量と経過時間に上限を設ける必要がある。保持期間は「すべて残す」という方針ではなく、デバッグと法的な必要性に合わせて選ぶ。
-
Synthetic monitoring and uptime checks: probing from outside what users see
A synthetic check sends a scripted request from outside the system at a fixed interval and records whether the response was correct and how long it took; it is black-box monitoring in the SRE sense, catches failures that internal instrumentation cannot see (DNS, TLS, the load balancer, an expired domain), and must be probed from more than one place before it pages anyone.
-
logging モジュールをエントリーポイントで一度だけ設定する
ライブラリはロガーを取得するだけで、ハンドラーを設定しません。アプリケーションが起動時にハンドラー、レベル、書式を一度だけ設定することで、出力を一か所で制御し、重複を防ぎます。
機械可読: JSON