<ahref="https://www.taoensso.com/clojure"title="More stuff by @ptaoussanis at www.taoensso.com"><imgsrc="https://www.taoensso.com/open-source.png"alt="Taoensso open source"width="340"/></a>
**Telemere** is an [**upcoming**](https://www.taoensso.com/roadmap) next-generation observability toolkit for **capturing all kinds of un/structured information** in your running Clojure and ClojureScript programs.
It offers a **simple, clean, unified API** that covers: **logging**, **events**, **performance measurement**, **tracing**, etc.
Taking full advantage of Clojure's unique **macro and interop** capabilities, Telemere represents the **refinement and culmination** of ideas brewing for 10+ years in [Timbre](https://www.taoensso.com/timbre), [Tufte](https://www.taoensso.com/tufte), [Truss](https://www.taoensso.com/truss), etc.
- Simple, lightweight API that's **easy to use**, **easy to configure**, and **deeply flexible**.
- An **unmatched logging experience** designed to **scale comfortably** from the smallest disposable code, to the most massive production applications.
- **Easy integration** with the **tooling of your choice**, including first-class **out-the-box interop** with [OpenTelemetry](https://opentelemetry.io/), [SLF4J v2](https://www.slf4j.org/), [clojure.tools.logging](https://github.com/clojure/tools.logging), and [Tufte](https://www.taoensso.com/tufte).
- Hyper-optimized and **blazing fast**, see [performance](#performance).
- Expressive **per-call** and **per-handler** filtering at both **runtime** and **compile-time**.
- Easily filter by namespace and id pattern, level, **level by namespace pattern**, etc.
- Support for auto **sampling**, **rate-limiting**, and **back-pressure monitoring**.
- Support for **fully configurable a/sync dispatch** (blocking, dropping, sliding, etc.).
- **Sensible defaults** to make getting started **fast and easy**.
- Extensive **beginner-oriented** [documentation](#documentation), docstrings, examples, etc.
- Are **~nanoseconds per signal call** (= milliseconds per 1e6 calls)
- Taken on a 2020 Macbook Pro M1, running OpenJDK 21
- Exclude handler runtime (which depends on handler/s, is usually async)
**Tip**: Telemere offers extensive per-call and per-handler **filtering**, **sampling**, and **rate-limiting**. Use these to ensure that you're not capturing useless/low-value information in production. See [here](/TODO) for more tips!