オープンソースプロジェクト
pinpoint-apm/pinpoint avatar
pinpoint-apm/pinpoint

Pinpointで分散トランザクションの経路を追う

APM、大規模分散システム用の (アプリケーション パフォーマンス管理) ツール。

スター 13,871フォーク 3,750JavaApache-2.0

ひと目でわかる

これは何?
Javaを中心にPHPとPythonにも対応するAPMについて、トポロジー表示、コードレベルの追跡、プラグイン互換性、導入条件を整理します。
誰に向いている?
向いているのは、複数サービスをまたぐJava系アプリケーションで、リクエストの経路とコードレベルの遅延を同じ画面で調べたいチームです。プラグインの対応版とコレクターの互換性を管理できない環境には導入しにくいでしょう。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に Java です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

Dapperに着想を得たAPMの位置

Pinpointは大規模な分散システム向けのApplication Performance Managementツールです。READMEは、分散アプリケーション間のトランザクションを追跡し、システム全体の構造とコンポーネント間の接続を分析すると説明しています。Javaで書かれ、PHPとPythonのアプリケーションは別のエージェントリポジトリで対応します。GoogleのDapper論文に着想を得た設計です。

READMEは、アプリケーションのトポロジーを把握し、リアルタイムに監視し、各トランザクションをコードレベルで見る用途を挙げています。エージェントをコード変更なしで導入でき、リソース使用量の増加は約3%という記述もありますが、これはプロジェクト側の主張です。自分のサービス構成と負荷で検証してから運用値として扱います。

ServerMapからCallStackまでの観測面

ServerMapは分散システムのコンポーネント間接続を可視化し、ノードの状態やトランザクション数を表示します。リアルタイムアクティブスレッドチャートではアプリケーション内のスレッドを追跡でき、リクエストとレスポンスの散布図では時間ごとの件数と応答パターンを見ます。グラフ上をドラッグしてトランザクションを選択する操作もREADMEにあります。

CallStackは個々の処理のコードレベルの経路を表示し、InspectorはCPU、メモリ、GC、TPS、JVM引数を示します。URIメトリクス、インフラストラクチャ、エラー分析も項目として案内されています。障害調査では、まずServerMapで影響範囲を絞り、散布図から対象時間を選び、CallStackとInspectorで遅延箇所を確認する順が資料の機能構成に沿います。

エージェントプラグインの広い対応表

対応一覧にはJDK 8以上、Tomcat、Jetty、JBoss EAP、Websphere、Vertx、Weblogic、Undertow、Akka HTTPが含まれます。Spring、Spring Boot、Spring WebFlux、Ktorなどのフレームワーク、Apache HttpClient、JDK HttpClient、OkHttpClient、NettyなどのHTTPクライアントも対象です。Thrift、DUBBO、GRPC、Apache CXF、ActiveMQ、RabbitMQ、Kafka、RocketMQ、Pulsarなども列挙されています。

データストア側はMySQL、Oracle、MSSQL、PostgreSQL、MariaDB、ClickHouseなど、キャッシュや検索ではRedis、Cassandra、MongoDB、HBase、Elasticsearchなどが案内されています。正確な対応版はREADMEの一覧ではなく`agent-module/plugins`にあります。名前が一致するだけで連携できると考えず、対象フレームワークの版とエージェントのプラグインを照合します。

Java、HBase、Pinotの版をそろえる

互換性表では、Pinpoint 3.1.xのエージェントはJava 8から25、コレクター、Web UI、バッチはJava 17を必要とします。過去の2.0.xではエージェントがJava 6から13、その他がJava 8という違いがあります。HBaseは3.0.xと3.1.xで2.xが必要で、2.x系の対応は別の条件です。

Pinotも版によって可否が分かれ、3.1.xは1.3.0をサポートし、0.11.0、0.12.0、1.0.0、1.2.0は対象外と表に記載されています。エージェントとコレクターの通信互換性表もあります。導入時はJava、ストレージ、エージェント、コレクターの4つを同時に記録し、まず一つのサービスでトレースがServerMapに出ることを確認します。

GitBookのクイックスタートとKubernetes

READMEはコマンドを並べた手順ではなく、GitBookのクイックスタートとインストールガイドへ誘導しています。Kubernetesへ配置する場合は`pinpoint-kubernetes`リポジトリが別にあります。ライブデモではSpring BootのApiGatewayを含む画面を確認できますが、これは自分のサービスを監視した結果ではありません。

現在の安定版としてREADMEが示すのはv3.1.0で、リリース日は2026年5月21日です。環境を作る前に、採用するPinpoint版とエージェント版、Javaの実行版、コレクターの保存先を決めます。外部公開されたデモURLを運用監視の根拠にせず、検証環境でトレースの欠落、サンプリング、エラー表示を確認するのが具体的な入口です。

Apache 2.0と未記載の運用保証

PinpointはApache License 2.0です。複製、派生物の作成、公開表示、実演、サブライセンス、頒布を許す著作権ライセンスと特許ライセンスを含みますが、ソフトウェアはAS ISで提供され、保証や商用サポートの記載はありません。

READMEにはGitHub issue、Gitter、各種コミュニティへの入口とリリース履歴があります。これらは相談と更新の窓口であって、本番性能の保証ではありません。採用記録には、監視対象のJava版、エージェントのプラグイン一覧、コレクターとの互換性、トレースが欠落した時の調査手順を残し、READMEの約3%という自報値を自環境の測定値と混同しないことが必要です。

Spring Boot一つで最初の経路を確かめる

検証はSpring Bootの小さなサービスを一つ選び、Pinpoint v3.1.0のクイックスタートに沿ってエージェントとコレクターを接続します。HTTPリクエストを一度通し、ServerMapにApiGateway相当のノードが現れるか、CallStackにコントローラーから外部呼び出しまでの経路が出るかを確認します。

同じ負荷でInspectorのCPU、メモリ、GC、TPSを接続前後に比較し、READMEの約3%という自報値とは別に自環境の数値を保存します。Java 17のコレクターと、対象アプリのJava 8以上のエージェントを分けて記録し、プラグインの版を`agent-module/plugins`で照合します。

編集部の結論

向いているのは、複数サービスをまたぐJava系アプリケーションで、リクエストの経路とコードレベルの遅延を同じ画面で調べたいチームです。プラグインの対応版とコレクターの互換性を管理できない環境には導入しにくいでしょう。最初にクイックスタートで単一の検証サービスを接続し、ServerMap、CallStack、エージェント負荷を実測してください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート