Sobre el proyecto

Zipkin es un sistema de rastreo distribuido para recopilar datos de temporización necesarios para solucionar problemas de latencia en arquitecturas de servicios. Admite tanto la recopilación como la consulta de datos de trazas. Los usuarios pueden abrir una traza directamente por ID desde registros o consultar por servicio, nombre de operación, etiquetas, duración y otros atributos. La interfaz de usuario resume información como el tiempo invertido en servicios y fallos de operaciones, y muestra un diagrama de dependencias que visualiza el volumen de solicitudes rastreadas entre aplicaciones, incluyendo rutas de error agregadas. Las aplicaciones deben estar instrumentadas con un trazador o biblioteca de instrumentación para informar tramos. Zipkin puede recibir datos a través de HTTP y Kafka, con opciones de transporte adicionales que incluyen ActiveMQ, gRPC, RabbitMQ y Pulsar. El servidor sirve la interfaz web y las API, mientras que los datos de tramos pueden mantenerse en memoria para pruebas o almacenarse en backends persistentes compatibles. Las opciones de despliegue incluyen un JAR ejecutable autónomo que requiere JRE 17 o superior, imágenes Docker, Homebrew y gráficos Helm. Una compilación reducida es más pequeña y se inicia más rápido, compatible con almacenamiento en memoria y Elasticsearch, pero omite transportes de mensajería como Kafka y RabbitMQ. Los componentes de almacenamiento incluyen almacenamiento en memoria para pruebas, Cassandra y Elasticsearch/OpenSearch. Los enlaces de dependencia de Cassandra y Elasticsearch se agregan a través del trabajo separado zipkin-dependencies. Un componente de almacenamiento MySQL v1 heredado permanece para la transición, aunque el README señala que su esquema no fue diseñado para alto rendimiento. Los endpoints de búsqueda pueden desactivarse para reducir el costo de almacenamiento o aumentar el rendimiento de escritura, dejando solo la recuperación de trazas por ID. El repositorio también contiene la biblioteca central mínima de Java utilizada por el código de instrumentación y servidor, incluidos códecs para modelos de tramos JSON de Zipkin v1 y v2. La biblioteca central está dirigida a Java 8+, mientras que los componentes de almacenamiento y el servidor actual requieren Java 17+. Los artefactos del servidor se publican bajo el grupo Maven io.zipkin, los artefactos de la biblioteca bajo io.zipkin.zipkin2, y las imágenes de contenedor están disponibles en Docker Hub y GitHub Container Registry.