A platform-agnostic tracing library for Elixir applications, enabling granular runtime monitoring and distributed tracing across microservices.
Spandex is a tracing library for Elixir applications that enables detailed monitoring of system runtime and distributed request flows across microservices. It captures granular span data to help developers diagnose performance issues and understand request lifecycles. The library is designed to be platform-agnostic, initially supporting Datadog but built to integrate with other trace viewers like Open Zipkin.
Elixir developers building microservices or distributed systems who need observability into request performance and system behavior. It's particularly useful for teams using Phoenix web frameworks and Ecto for database operations.
Developers choose Spandex for its platform-agnostic design, allowing flexibility in trace visualization tools, and its deep integration with the Elixir ecosystem through Phoenix plugs and decorator-based tracing. Its focus on distributed tracing across asynchronous processes sets it apart for microservices architectures.
A platform agnostic tracing library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built to support multiple trace viewers, starting with Datadog and planned for Open Zipkin and Stackdriver, allowing flexibility in visualization tools as stated in the README's philosophy.
Offers seamless Phoenix integration via plugs and community extensions like spandex_ecto and spandex_phoenix for specialized database and web tracing, reducing setup effort.
Supports both manual span management with macros and decorator-based annotations, enabling granular control or reduced boilerplate, as illustrated in the General Usage section.
Enables tracking requests across services and asynchronous processes with examples on continuing traces in new processes, crucial for microservices architectures.
Currently only supports Datadog as an adapter; support for other platforms like Open Zipkin is planned but not yet available, restricting immediate tool choice.
The storage strategy is not atomic and unsafe for concurrent use across processes, potentially leading to trace inconsistencies in highly concurrent applications, as admitted in the Strategies section.
Undergoing active development with breaking changes, such as the 2.0 and 3.0 releases requiring upgrade guides, posing risks for production stability.
Decorator support relies on an optional dependency that can conflict with other libraries, requiring explicit management and adding setup complexity, as noted in the Decorators section.
spandex is an open-source alternative to the following products: