Skip to main content

Clarvynn OpenTelemetry Adapters

Policy-based governance for OpenTelemetry telemetry.

PyPI version License Python OpenTelemetry SDK


What is Clarvynn?

Clarvynn provides Deferred Head Sampling for OpenTelemetry. It acts as a Control Plane that enforces Purposeful Observability, ensuring you capture high-fidelity signal without the high-volume noise.

Result: Keep 100% of critical signals (errors, slow requests) while sampling out the noise that distracts your team and bloats your storage. This strategic reduction saves 60-80% on ingestion and indexing costs, reallocating budget back to engineering capacity.


Language Support

Language Status Adapter
Python Production Ready adapters/opentelemetry-python/
Java Planned -
Node.js Planned -
Go Planned -

Quick Start (Python)

1. Install

pip install clarvynn

2. Create Policy

# policy.yaml
sampling:
  base_rate: 0.01  # 1% of routine traffic

conditions:
  - name: errors
    when: "status_code >= 400"
  - name: slow_requests
    when: "duration_ms > 1000"

3. Run

export CLARVYNN_ENABLED=true
export CLARVYNN_POLICY_PATH=policy.yaml
opentelemetry-instrument python app.py

That's it. Clarvynn is now intelligently sampling your telemetry.


Key Features

  • Deferred Head Sampling - Decisions made after request completion
  • Policy-driven - Simple YAML configuration
  • Minimal overhead - < 50µs per span evaluation
  • Drop-in - Works with existing OTEL instrumentation
  • Distributed tracing - W3C TraceContext Level 2 support
  • Signal Improvement - High-Fidelity Signal, Low-Volume Noise
  • Log correlation - Logs automatically follow trace sampling

How It Works

Traditional sampling makes decisions before execution:

HEAD-BASED:  [Sample?] → Execute → [Don't know if it failed!]
                - Might drop errors

Clarvynn uses Deferred Head Sampling to decide after execution:

DEFERRED HEAD:  Execute → [Error? Slow?] → [Sample!]
                - Never miss critical signals

Example:

# Your policy
conditions:
  - name: errors
    when: "status_code >= 500"
  
# What happens:
Request → Execute → Status: 500 → Exported (error captured)
Request → Execute → Status: 200 → 1% chance (base_rate)

Documentation

Getting Started:

Python Adapter Docs:

Shared Documentation:


Architecture

clarvynn/
├── core/                          # Shared CPL engine (all languages)
│   ├── cpl_engine/                # Policy evaluation logic
│   ├── policies/                  # Example policies
│   └── specs/                     # Language-agnostic specs
│
└── adapters/                      # Language-specific adapters
    ├── opentelemetry-python/      # Production ready
    ├── opentelemetry-java/        # Planned
    ├── opentelemetry-nodejs/      # Planned
    └── opentelemetry-go/          # Planned

Design Philosophy:

  • core/ = Language-agnostic policy engine and specifications
  • adapters/ = Language-specific OpenTelemetry integrations

Each adapter uses the same CPL policy format, ensuring consistent behavior across languages.

Non-Blocking Architecture (Python)

Clarvynn operates as a Lightweight Adapter that ensures minimal impact on application performance by using a fully non-blocking export pipeline:

Request Ends
  ↓
ClarvynnSpanProcessor (Sync, ~2µs)
  ├─ 1. Evaluate CPL Policy (Keep/Drop)
  └─ 2. Inject TraceState (W3C Level 2)
  ↓
BatchExporterAdapter (Async Queue)
  ↓
Background Thread (Async)
  ↓
OTLPSpanExporter (Network I/O)

This architecture ensures that governance decisions happen synchronously (to decide before queuing), but network I/O happens asynchronously (to avoid blocking the application).


Example: Multi-Service Deployment

Deploy the same policy across all services:

# policy.yaml (use everywhere)
sampling:
  base_rate: 0.01

  conditions:
    - name: errors
      when: "status_code >= 400"
    - name: slow_requests
    when: "duration_ms > 1000"

What happens:

API Gateway (Python):
  └─ Error (500) → Exported + marked critical

Auth Service (Java):       # Coming Soon
  └─ Sees critical trace → Exported

Database Service (Go):     # Coming Soon
  └─ Sees critical trace → Exported

Result: Complete trace captured end-to-end

Testing

Clarvynn has comprehensive test coverage (336 tests, 100% pass rate):

# Install test dependencies
pip install -r requirements-dev.txt

# Run all tests
pytest

# Run with coverage
pytest --cov=core --cov=clarvynn --cov-report=html

See tests/README.md for detailed testing guide.


Compatibility

Component Supported Versions
Python 3.9, 3.10, 3.11, 3.12, 3.13
OpenTelemetry SDK 1.25.0 - 1.39.0 (tested)
OpenTelemetry API 1.25.0 - 1.39.0

Compatibility is verified with automated testing. See scripts/test_otel_compatibility.py.


Contributing

We welcome contributions! See CONTRIBUTING.md.

Adding a new language adapter? See Adapter Development Guide.


License

Apache 2.0 - See LICENSE

Metadata

Release files for clarvynn 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clarvynn 0.3.1
File Size Uploaded
clarvynn-0.3.1.tar.gz 62.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for clarvynn 0.3.1
File Interpreter ABI Platform
clarvynn-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 123.9 kB

Release files / clarvynn-0.3.1.tar.gz

Download URL clarvynn-0.3.1.tar.gz
Size 62.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0443ca64837ca3e40e882fcbe4a47ad367ca1a71bd388b5beaf0d2e2090ac901
BLAKE2b-256 checksum
How to use checksums
41808125e772825485a8abafd4c14b1f29946247a9aa1a634d1f0ca9a26a871f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 26, 2025.

Transparency log

Release files / clarvynn-0.3.1-py3-none-any.whl

Download URL clarvynn-0.3.1-py3-none-any.whl
Size 61.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0adc03470612866dd664733a66bb3a1eb0ceb78a38b9343e1184fcebe7092634
BLAKE2b-256 checksum
How to use checksums
1da897f542dba2c611f12a34296051820e0beee6884e7773f0b6b6c75442ba68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 26, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page