Projet open source
pinpoint-apm/pinpoint avatar
pinpoint-apm/pinpoint

Pinpoint : tracer les transactions dans les systèmes distribués

APM, (Application Performance Management) outil pour les systèmes distribués à grande échelle.

13 871 étoiles3 750 forksJavaApache-2.0

En bref

De quoi s’agit-il ?
Un APM pour Java, PHP et Python avec une visibilité au niveau du code pour chaque transaction.
À qui s’adresse-t-il ?
Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
En quel langage est-il écrit ?
Principalement Java, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Tracer les transactions dans les systèmes distribués

Pinpoint est un outil de gestion des performances des applications (APM) pour les systèmes distribués à grande échelle. Le README indique qu'il est écrit en Java et prend également en charge les applications écrites en PHP et Python via un référentiel d'agents séparé. Son design est inspiré de l'article Dapper de Google. L'outil vise à aider à analyser la structure globale du système et l'interconnexion des composants en traçant les transactions à travers les applications distribuées. Le README prétend également que les agents peuvent être installés sans modifier une seule ligne de code et que l'impact sur les performances est d'environ une augmentation de 3% de l'utilisation des ressources ; ce sont des affirmations du projet, non vérifiées indépendamment ici. Les métadonnées du référentiel montrent que le langage principal est Java et un nombre d'étoiles de 13 852, avec 3 752 forks.

Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant. Notez la version et la configuration, car une trace absente peut venir de n importe quel maillon. Repere 1: pinpoint utilise la branche master pour ce contrôle.

Les vues de surveillance dans l'interface utilisateur

L'interface de Pinpoint offre plusieurs vues. ServerMap visualise la topologie des systèmes distribués en montrant comment les composants sont interconnectés ; cliquer sur un nœud révèle des détails tels que l'état actuel et le nombre de transactions. Le graphique des threads actifs en temps réel surveille les threads actifs dans les applications en temps réel. Le graphique de dispersion demande/réponse trace le nombre de demandes et les modèles de réponse au fil du temps, et les transactions peuvent être sélectionnées en faisant glisser le graphique. La vue CallStack offre une visibilité au niveau du code pour chaque transaction, identifiant les goulots d'étranglement et les points de défaillance. L'inspecteur affiche des détails supplémentaires sur l'application tels que l'utilisation du CPU, la mémoire, le ramasse-miettes, le TPS et les arguments JVM. Le README répertorie également les vues URI-metric, Infrastructure et Error-Analysis avec des captures d'écran.

Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant. Notez la version et la configuration, car une trace absente peut venir de n importe quel maillon. Repere 2: pinpoint utilise la branche master pour ce contrôle.

Modules pris en charge et plugins d'agents

Le README liste un large ensemble de modules et plugins pris en charge. Pour Java, il prend en charge JDK 8 et plus. Les serveurs Web incluent Tomcat, Jetty, JBoss EAP, Websphere, Vertx, Weblogic, Undertow et Akka HTTP. Les frameworks incluent Spring, Spring Boot, Spring WebFlux, Spring TX, Spring Cloud Sleuth, RestTemplate et Ktor. Les clients HTTP couvrent Apache HttpClient versions 3, 4 et 5, JDK HttpConnector et HttpClient, GoogleHttpClient, OkHttpClient, NingAsyncHttpClient et Netty. Les frameworks RPC incluent Thrift, DUBBO, GRPC et Apache CXF. Les systèmes de messagerie incluent ActiveMQ, RabbitMQ, Kafka, RocketMQ, Pulsar et Paho MQTT. Les bases de données incluent MySQL, Oracle, MSSQL, JTDS, CUBRID, POSTGRESQL, MariaDB, Informix, DB2, ClickHouse, Dameng et Spring Data R2DBC. Les caches incluent Arcus, Memcached, Redis (Jedis, Lettuce, Redisson), Cassandra, MongoDB, Hbase et Elasticsearch. L'ORM et autres bibliothèques incluent iBATIS, MyBatis, DBCP, DBCP2, HIKARICP, DRUID, Gson, Jackson, Json Lib, Fastjson, log4j, Logback, log4j2, Hystrix, Resilience4j, RxJava, Reactor, AWS SDK S3, OpenWhisk et Kotlin Coroutines. Les plages de versions exactes pour chaque plugin sont répertoriées dans le répertoire agent-module/plugins.

Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant. Notez la version et la configuration, car une trace absente peut venir de n importe quel maillon. Repere 3: pinpoint utilise la branche master pour ce contrôle.

Compatibilité Java et stockage

Le README inclut des tableaux de compatibilité pour les versions Java et les systèmes de stockage. Pour Pinpoint 3.1.x, l'agent nécessite Java 8-25, le collecteur Java 17, l'interface Web Java 17 et le composant batch Java 17. Les versions antérieures ont des exigences différentes ; par exemple, 2.0.x utilise Java 6-13 pour l'agent et Java 8 pour les autres. Support HBase : Pinpoint 3.0.x et 3.1.x nécessitent HBase 2.x, tandis que les versions 2.x prennent en charge HBase 1.x et éventuellement HBase 2.x via un module séparé. Il y a aussi un tableau de compatibilité Pinot : Pinpoint 3.1.x prend en charge Pinot 1.3.0 mais pas les versions antérieures comme 0.11.0, 0.12.0, 1.0.0 ou 1.2.0. Le README fournit également un tableau de compatibilité agent-collecteur indiquant quelles versions d'agent peuvent communiquer avec quelles versions de collecteur.

Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant. Notez la version et la configuration, car une trace absente peut venir de n importe quel maillon. Repere 4: pinpoint utilise la branche master pour ce contrôle.

Démarrage, déploiement et démo

Le README pointe vers un guide de démarrage rapide et un guide d'installation sur le site GitBook du projet. Pour le déploiement Kubernetes, il existe un référentiel séparé appelé pinpoint-kubernetes. Une démo en direct est disponible à une adresse IP, avec une URL montrant la vue principale pour un service nommé ApiGateway@SPRING_BOOT. Le README ne fournit pas de commandes d'installation en ligne de commande ; les guides de démarrage rapide et d'installation sont des liens externes. La page d'accueil du projet est https://pinpoint-apm.gitbook.io/ et la note de version pour la dernière version stable v3.1.0 a été annoncée le 2026/05/21.

Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant. Notez la version et la configuration, car une trace absente peut venir de n importe quel maillon. Repere 5: pinpoint utilise la branche master pour ce contrôle.

Communauté, historique des versions et licence

La version stable actuelle est v3.1.0, avec une note de version disponible sur GitHub. Le README fournit des liens vers les problèmes GitHub et un chat Gitter pour la discussion communautaire. Il mentionne également une communauté chinoise avec des groupes QQ et un groupe DingTalk, mais sans détails sur leur objectif ou leur activité. Le projet est sous licence Apache License 2.0, avec le droit d'auteur attribué à NAVER Corp. (2018). Le texte de licence accorde une licence de droit d'auteur perpétuelle, mondiale, non exclusive, gratuite, sans redevance et irrévocable pour reproduire, préparer des œuvres dérivées, afficher publiquement, exécuter, sous-licencier et distribuer l'œuvre. Il inclut également une licence de brevet, mais l'extrait ne couvre pas les garanties ou le support ; la licence stipule que le logiciel est fourni "AS IS" sans garanties. Le README ne mentionne aucun support commercial ni certification de sécurité.

Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant. Notez la version et la configuration, car une trace absente peut venir de n importe quel maillon. Repere 6: pinpoint utilise la branche master pour ce contrôle.

Conclusion éditoriale

Pour Pinpoint, vérifiez séparément l agent, le collecteur, le serveur et l interface selon l architecture du README. Lancez une application de démonstration, provoquez une requête connue et cherchez sa trace dans l écran correspondant. Notez la version et la configuration, car une trace absente peut venir de n importe quel maillon. Ce projet s adresse aux lecteurs dont le besoin correspond exactement à pinpoint ; il ne convient pas à une décision fondée sur des garanties absentes du dépôt.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté