Appearance
Overview
The ARMS SDK is an OpenTelemetry-native AI observability platform that enables production-ready LLM application and agent monitoring without any code changes.
It includes upstream OpenTelemetry instrumentations for HTTP frameworks, clients, and system components, delivering complete visibility across your entire AI infrastructure.
Goals
Zero Code AI Observability - Enable production-ready LLM monitoring for your AI applications without any code changes.
OpenTelemetry Native - Built on OpenTelemetry standards for seamless integration with existing observability stacks like Grafana, Datadog, New Relic, and Dash0.
Drop-in Replacement - Simply replace
opentelemetry-instrumentwithelsai-arms-instrumentto get the same functionality plus comprehensive AI capabilities.Complete Stack Coverage - AI instrumentations + upstream OpenTelemetry instrumentations for full-stack observability.
End-to-End Distributed Tracing - Complete visibility: HTTP requests → framework routing → database queries → LLM calls → agent workflows → tool usage → responses
Advanced LLM Monitoring - Real-time cost tracking, token usage optimization, performance monitoring, and evaluations scoring.
Supported instrumentations
The ARMS SDK automatically instruments:
- LLM Providers — OpenAI, Anthropic, Google, Azure OpenAI, AWS Bedrock, Ollama, Groq, Cohere, Mistral, and more
- AI/Agentic Frameworks — LangChain, LlamaIndex, CrewAI, mem0, AG2, Agno, LangGraph, and more
- Vector Databases — ChromaDB, Pinecone, Qdrant, Milvus, Astra DB, and more
- GPUs — NVIDIA and AMD
- HTTP Frameworks and Clients — FastAPI, Flask, Django, Requests, HTTPX, aiohttp, urllib and more
Install
This SDK tab documents the Python elsai-arms package (3.0.3). It is not on public PyPI. There is no TypeScript package.
bash
pip install --extra-index-url https://arms-packages.elsaifoundry.ai/root/elsai-arms/ elsai-arms==3.0.3Use elsai-arms-instrument for zero-code instrumentation, or call elsai_arms.init() for manual setup. See Installation.
Send data to ARMS
| Use | URL | Authentication |
|---|---|---|
| Telemetry | https://<arms-host>/api/ingest | OTLP x-api-key via otlp_headers or OTEL_EXPORTER_OTLP_HEADERS |
| Vault / evals / platform HTTP | ARMS base URL (ELSAI_ARMS_URL) | Authorization: Bearer + ELSAI_ARMS_API_KEY |
ELSAI_ARMS_API_KEY does not authenticate OTLP by itself. For ARMS, see ARMS destination. Third-party backends (Datadog, a generic collector, Tempo) keep their own OTLP URLs.
If you set neither otlp_endpoint nor OTEL_EXPORTER_OTLP_ENDPOINT, the SDK uses the console exporter.
How it works
Option 1: Zero code instrumentation
bash
elsai-arms-instrument python your_app.pyOption 2: Manual instrumentation
python
elsai_arms.init() # Enables Automatic instrumentation for AI apps and agentsBoth approaches provide production-ready observability: distributed tracing, real-time cost tracking, latency monitoring, token usage optimization, and evaluation scoring.
Frequently asked questions
What is the ARMS SDK?
The ARMS SDK is an OpenTelemetry-native library that auto-instruments LLM providers, agent frameworks, and vector databases for AI observability - tracing, cost tracking, and evaluation - without code changes.
Does the SDK require changing my code?
No. Run elsai-arms-instrument python your_app.py for zero-code instrumentation, or call elsai_arms.init() once if you prefer manual setup - both produce the same OpenTelemetry traces.
Can I send data to my existing observability stack?
Yes. Since the SDK emits standard OpenTelemetry data, you can export to Datadog, Grafana, New Relic, Dash0, or any OTLP-compatible backend - see Destinations.