Appearance
TIP
ARMS automatically instruments VectorDBs alongside LLMs, MCP, and frameworks by default.
This guide demonstrates production-ready VectorDB observability setup with OpenTelemetry-native auto-instrumentations. Get enterprise-grade AI monitoring with zero code changes using our CLI or minimal SDK integration for complete vector database performance tracking.
Learn how to implement real-time vector operations monitoring, embedding performance tracking, similarity search optimization, and cost analysis for your VectorDB applications with OpenTelemetry traces and metrics.
Connect to ARMS
Ensure ARMS is running. Send telemetry to https://<arms-host>/api/ingest with an x-api-key header — not collector port 4318. For on-prem access, see On-prem ARMS.
Install ARMS SDK
shell
pip install --extra-index-url https://arms-packages.elsaifoundry.ai/root/elsai-arms/ elsai-arms==3.0.3Instrument your application
TIP
Not sure which method to choose? Check out Instrumentation Methods to understand the differences.
Zero-Code instrumentation
bash
# Install ARMS
pip install --extra-index-url https://arms-packages.elsaifoundry.ai/root/elsai-arms/ elsai-arms==3.0.3
# Start VectorDB monitoring instantly
elsai-arms-instrument --service-name my-vectordb-app python your_vectordb_app.py
# With custom settings for VectorDB applications
elsai-arms-instrument \
--otlp-endpoint http://127.0.0.1:4318 \
--service-name my-vectordb-app \
--environment production \
python your_vectordb_app.pybash
# Install ARMS
pip install --extra-index-url https://arms-packages.elsaifoundry.ai/root/elsai-arms/ elsai-arms==3.0.3
# Set environment variables
export OTEL_EXPORTER_OTLP_ENDPOINT="http://127.0.0.1:4318"
export OTEL_SERVICE_NAME=my-vectordb-app
export OTEL_DEPLOYMENT_ENVIRONMENT=production
# Run your VectorDB application
elsai-arms-instrument python your_vectordb_app.pyManual instrumentation
Via function parameters
Add the following two lines to your VectorDB application code:
python
import elsai_arms
elsai_arms.init(
otlp_endpoint="https://<arms-host>/api/ingest",
otlp_headers={"x-api-key": "<api-key>"},
service_name="my-vectordb-app",
environment="production"
)
# Your existing VectorDB code works the same
# Vector operations are traced automaticallyVia environment variables
Configure your OTLP endpoint using environment variables:
shell
export OTEL_EXPORTER_OTLP_ENDPOINT="http://127.0.0.1:4318"
export OTEL_SERVICE_NAME=my-vectordb-app
export OTEL_DEPLOYMENT_ENVIRONMENT=productionAdd the following two lines to your VectorDB application code:
python
import elsai_arms
elsai_arms.init()Monitor, debug and test the quality of your vector database
Navigate to ARMS at 127.0.0.1:3000 to start monitoring your VectorDB applications.
You should see VectorDB-specific traces and metrics including:
- Vector Operations: Track insert, update, delete, and query operations performance
- Similarity Search Metrics: Monitor search latency, relevance scores, and result quality
- Embedding Performance: Analyze embedding generation and storage efficiency
- Index Operations: Monitor index building, updates, and optimization processes
- Resource Utilization: Track memory usage, disk I/O, and computational costs
- Database Performance: Monitor connection pooling, query optimization, and throughput
Send Observability telemetry to other OpenTelemetry backends
If you wish to send telemetry directly from the SDK to another backend, you can stop the current Docker services by using the command below. For more details on sending the data to your existing OpenTelemetry backends, checkout our Supported Destinations guide.
sh
docker compose downIf you have any questions or need support, reach out to our community.