Packages

Zero-dependency Elixir library for declarative telemetry instrumentation using compile-time decorators. Provides clean, efficient function instrumentation with automatic event name inference and multiple optimization modes.

Current section

Files

Jump to
tele_dec CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2025-11-01
### Added
- Initial release of TeleDec
- `@telemetry` decorator for instrumenting functions with telemetry events
- Auto-inferred event names using `@telemetry_service` module attribute and config
- Explicit event name support with `@telemetry {[:custom, :event], [opts]}`
- Multiple telemetry modes:
- `:span` mode - Full span with start/stop/exception events (~700ns overhead)
- `:one_shot` mode - Single event on completion (~300ns overhead, no exception tracking)
- Performance optimizations:
- Zero-arity function optimization (empty map literal)
- Direct map building from arguments (compile-time)
- Single-pass variable inclusion
- Metadata-free mode (`:metadata` option)
- Selective argument capture (`:args` option)
- Compile-time disable (`:enabled` option)
- Comprehensive test suite with 12 test cases
- Benchmark suite comparing decorator to manual telemetry code
- Documentation with usage examples and performance characteristics
### Features
- Zero runtime dependencies (except `:telemetry`)
- Compile-time code generation for minimal overhead
- Support for including intermediate variables in stop events
- Automatic exception tracking and reporting
- Global and per-function enable/disable flags
- Configuration-based event name inference
[0.1.0]: https://github.com/viragecloud/tele_dec/releases/tag/v0.1.0