Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getbindu.com/llms.txt

Use this file to discover all available pages before exploring further.

Production is silent until it screams. At 2am you get the page: “agents/research is slow.” You log in. Which call is slow? Which downstream API? Was the LLM itself the bottleneck, or was it the vector DB? You scroll through unstructured logs hoping to spot the timestamp that explains everything. You shouldn’t have to do that. Bindu emits OpenTelemetry spans across the whole request path — HTTP in, queue, worker, handler, LLM call, tool calls, response out — with timing on every leg. Send them to Jaeger, Phoenix, Langfuse, Honeycomb, or any OTel-compatible backend and you find the slow span in 30 seconds instead of 30 minutes. Errors get the same treatment. Sentry integration means failed tasks land in your issue tracker with full stack trace, release tag, and environment label. No more “I think someone said it broke yesterday.”

How Bindu Observability Works

Bindu integrates with OpenTelemetry (OTEL) and Sentry to provide comprehensive observability and error tracking. Bindu splits observability into two complementary channels:
OpenTelemetry -> traces and execution flow
Sentry        -> errors, releases, and performance incidents
  • OpenTelemetry shows how work moved
  • Sentry shows where things failed and under what release or environment

Traceable

OpenTelemetry creates spans so developers can follow execution across the runtime.

Actionable

Sentry captures failures with context that helps teams respond faster.

Portable

OTLP-compatible telemetry can be sent to Langfuse or Arize without changing the agent model.

The Lifecycle: Instrument, Export, Diagnose

1

Instrument

On startup, Bindu checks whether telemetry and Sentry are enabled. If they are, it initializes the tracer provider, OTLP exporter, span processor, and Sentry SDK with the right environment and release metadata.Good observability starts before the first request, not after the first incident.
2

Export

Once the agent is running, spans are created and exported asynchronously to an OTEL-compatible backend, while Sentry captures exceptions and performance information through its own pipeline.One system explains flow. The other explains failure.
3

Diagnose

When something goes wrong, teams can inspect traces for path-level visibility and use Sentry for release-aware error context, stack traces, and performance events.Together, they shorten the distance between “something broke” and “we know why.”

OpenTelemetry Setup

Supported Platforms

Langfuse

Open-source LLM engineering platform with tracing and analytics.

Arize

AI observability platform for monitoring and debugging ML models.

Any OTEL Platform

Supports standard OTLP protocol — works with any compatible backend.

Configuration

Bindu uses the OLTP_ prefix (not OTEL_) for these variables in the codebase.
# Enable telemetry
TELEMETRY_ENABLED=true

# OTEL endpoint (platform-specific)
OLTP_ENDPOINT=https://cloud.langfuse.com/api/public/otel/v1/traces

# Service name for your agent
OLTP_SERVICE_NAME=research-agent

# Authentication headers (platform-specific)
OLTP_HEADERS={"Authorization":"Basic <base64-encoded-credentials>"}

# Optional
OLTP_VERBOSE_LOGGING=true
OLTP_SERVICE_VERSION=1.0.0
OLTP_DEPLOYMENT_ENVIRONMENT=production
OLTP_BATCH_MAX_QUEUE_SIZE=2048
OLTP_BATCH_SCHEDULE_DELAY_MILLIS=5000

Platform-Specific Setup

  1. Sign up at cloud.langfuse.com
  2. Navigate to Settings → API Keys and create a new key pair
  3. Base64-encode your credentials:
echo -n "pk-xxx:sk-xxx" | base64
  1. Configure environment:
TELEMETRY_ENABLED=true
OLTP_ENDPOINT=https://cloud.langfuse.com/api/public/otel/v1/traces
OLTP_SERVICE_NAME=your-agent-name
OLTP_HEADERS={"Authorization":"Basic <base64-encoded-credentials>"}
OLTP_VERBOSE_LOGGING=true
  1. Sign up at arize.com
  2. Navigate to Settings → API Keys and copy your Space ID and API Key
  3. Configure environment:
TELEMETRY_ENABLED=true
OLTP_ENDPOINT=https://otlp.arize.com/v1
OLTP_SERVICE_NAME=your-agent-name
OLTP_HEADERS={"space_id":"<your-space-id>","api_key":"<your-api-key>"}
OLTP_VERBOSE_LOGGING=true

Sentry Error Tracking

Configuration

Bindu reads SENTRY_ENABLED and SENTRY_DSN as flat variables. All detailed settings use a double-underscore (__) to map to internal nested configuration.
# Core setup (flat variables)
SENTRY_ENABLED=true
SENTRY_DSN=https://<key>@<org-id>.ingest.sentry.io/<project-id>

# Detailed configuration (double-underscore prefix)
SENTRY__ENVIRONMENT=production
SENTRY__RELEASE=1.0.0
SENTRY__TRACES_SAMPLE_RATE=1.0
SENTRY__PROFILES_SAMPLE_RATE=1.0
SENTRY__ENABLE_TRACING=true
SENTRY__SEND_DEFAULT_PII=false
SENTRY__DEBUG=false

Setup

  1. Sign up at sentry.io
  2. Create a project and select Python as the platform
  3. Copy the DSN from project settings
  4. Configure environment:
SENTRY_ENABLED=true
SENTRY_DSN=https://xxx@xxx.ingest.sentry.io/xxx
SENTRY__ENVIRONMENT=production
SENTRY__RELEASE=1.0.0
  1. Restart the agent — Sentry initializes on startup

Agent Configuration

No code changes are needed. Observability is configured entirely via environment variables:
config = {
    "author": "your.email@example.com",
    "name": "research_agent",
    "description": "A research assistant agent",
    "deployment": {"url": "http://localhost:3773", "expose": True},
    "skills": ["skills/question-answering"],
}

bindufy(config, handler)
The agent defines behavior. The environment defines how deeply that behavior should be observed.

Best Practices

Sampling for High-Traffic Agents

# Sample 10% of traces to reduce cost
SENTRY__TRACES_SAMPLE_RATE=0.1
SENTRY__PROFILES_SAMPLE_RATE=0.1

Environment Separation

# Development
SENTRY__ENVIRONMENT=development
OLTP_SERVICE_NAME=agent-dev

# Production
SENTRY__ENVIRONMENT=production
OLTP_SERVICE_NAME=agent-prod

Custom Sentry Context

import sentry_sdk

sentry_sdk.set_context("business", {
    "plan": "premium",
    "credits": 100
})

sentry_sdk.set_tag("feature", "pdf-processing")

Sunflower LogoBindu brings clarity to your agents —each one visible, traceable, and growing in trustacross the Internet of Agents.