| marp | theme | class | 
|---|---|---|
| true | gaia | invert | 
Java 25 リリース記念!南町通りデ部で学ぶ Java 25
株式会社はてな
Mackerel CRE チーム CRE
Java? との関わり
- 前々職: Android アプリ (Kotlin)
- 前職: 某 EC サービス末端 (Java)
- 現職: Mackerel (Scala)
システムの中で何が起きているかを、外部から観測して理解できるようにすること
- 問題の原因を追えるようにする → 「何が起きた?」だけじゃなく「なぜ起きた?」を知る
- 未知の障害やパフォーマンス問題にも対応できる → あらかじめ想定していなかった異常も分析できる
| 種類 | 内容 | 例 | 
|---|---|---|
| ログ | 何が起きたかの記録 | 例外・メッセージ・イベント情報など | 
| メトリクス | 状態を数値で表したもの | CPU 使用率、リクエスト数、レイテンシなど | 
| トレース | 処理の流れを可視化するデータ | 各リクエストがどのサービス・関数を通ったか | 
| 観点 | 監視 | オブザーバビリティ | 
|---|---|---|
| 目的 | 既知の異常を検知する | 未知の問題を理解・分析する | 
| アプローチ | ルールや閾値で「異常を見つける」 | システム内部を観測して「原因を探る」 | 
| 主な手段 | メトリクス+アラート | ログ・メトリクス・トレースの組み合わせ | 
| イメージ | 「壊れたことに気づく」 | 「なぜ壊れたかを理解する」 | 
オブザーバビリティを実現するための、オープンな標準仕様とライブラリ群
- ログ・メトリクス・トレースを一貫した形で収集・送信できる
- 各言語・各サービスで共通の仕組みを使える
- さまざまなモニタリングツール (Grafana、Datadog、Mackerel など) へ同じ形式でデータ送信できる
| 種類 | 特徴 | メリット | 主な用途 | 
|---|---|---|---|
| ゼロコード計装 | Java Agent を実行時に付与して自動で計装 | コード変更なしで即導入 | 既存アプリの観測・お試し導入 | 
| 自動計装 | 対応ライブラリ (Spring, gRPC など) を自動検出して計装 | ライブラリごとのスパンが自動生成 | Web アプリや API サーバで一般的 | 
| 手動計装 | コード内でテレメトリーの扱いを明示的に計装 | 柔軟・詳細な制御が可能 | 独自処理・ビジネスロジックの可視化 | 
(時間があれば)
- 10/27 (月) Observability Conference Tokyo 2025 (中野)
- 11/15 (土) JJUG CCC 2025 Fall (新宿)
