Skip to content

Configuration

elsai ARMS supports MongoDB, DynamoDB, and ClickHouse as database backends, giving you flexibility in choosing the storage solution that best fits your infrastructure and requirements.

Required Configuration

Common Configuration

Required

All deployments require the following environment variables:

ELSAI_ARMS_API_KEYarms-1234567890abcdef
API_BASE_URLhttp://localhost:8001
ARMS_MASTER_KEYyour-master-key

Database Configuration

Choose One

Select either MongoDB, DynamoDB, or ClickHouse as your database backend:

MongoDB
MONGO_URImongodb://localhost:27017
MONGO_DB_NAMEelsai_arms_db
DynamoDB

Choose one authentication method:

Method 1: AWS Credentials

AWS_ACCESS_KEY_IDAKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEYwJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKENAQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE2OPTk=

Method 2: Cognito Identity

AWS_COGNITO_IDENTITYus-east-1:12345678-1234-1234-1234-123456789012
AWS_REGIONus-east-1
DYNAMODB_TABLE_NAMEarms-metrics
ClickHouse
CLICKHOUSE_HOSTclickhouse
CLICKHOUSE_PORT8123
CLICKHOUSE_USERNAMEdefault
CLICKHOUSE_PASSWORDclickhouse123
CLICKHOUSE_DATABASEarms
CLICKHOUSE_CONNECT_TIMEOUT10
CLICKHOUSE_SEND_RECEIVE_TIMEOUT300

Frontend Dashboard & Application

Frontend Dashboard

React

A modern React-based dashboard that provides real-time monitoring, analytics, and management capabilities for your elsai ARMS deployment.

  • Real-time Metrics
  • Interactive Charts
  • User Management
  • Custom Dashboards

Backend API

FastAPI

A high-performance FastAPI backend that handles all monitoring operations, data processing, and provides RESTful APIs for the frontend dashboard.

  • RESTful APIs
  • Real-time Processing
  • Data Validation
  • Authentication

Quick Start

Start the Backend

Run the FastAPI backend server:

bash
python app.py

Start the Frontend

In a new terminal, start the React dashboard:

bash
npm start

Access Dashboard

Open your browser and navigate to:

bash
http://localhost:3000

Dashboard Features

Real-time Monitoring

Live updates of all system metrics and operations

Performance Analytics

Comprehensive analysis of LLM, RAG, and system performance

Cost Tracking

Monitor and optimize your AI infrastructure costs

Alert Management

Configure and manage system alerts and notifications

User Management

Role-based access control and user permissions

Custom Reports

Generate and schedule custom reports for stakeholders

Customization Options

Branding

Customize logos, colors, and themes to match your brand

Dashboard Layouts

Create different dashboard views for executives, developers, and operations teams

Automated Reporting

Schedule automated reports and notifications for stakeholders and management

Configuration Details

elsai ARMS API Key
  • Purpose: Authenticates your application with elsai ARMS services
  • Format: String token provided during account setup
  • Example: ELSAI_ARMS_API_KEY=arms-1234567890abcdef
API Base URL
  • Purpose: Specifies the base URL for the elsai ARMS API services
  • Format: URL
  • Example: API_BASE_URL=http://localhost:8001
ARMS Master Key
  • Purpose: Master key for administrative access and authentication
  • Format: String token
  • Example: ARMS_MASTER_KEY=your-master-key
MongoDB Configuration
  • MONGO_URI: Connection string for your MongoDB instance
  • MONGO_DB_NAME: Name of the database to store elsai ARMS data
Example MongoDB configurations:
Local MongoDB:
bash
MONGO_URI=mongodb://localhost:27017
MONGO_DB_NAME=elsai_arms_db
MongoDB Atlas (Cloud):
python
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority
MONGO_DB_NAME=elsai_arms_db
Docker MongoDB:
bash
MONGO_URI=mongodb://mongodb:27017
MONGO_DB_NAME=elsai_arms_db
DynamoDB Configuration
  • AWS_ACCESS_KEY_ID: Your AWS access key for authentication (Method 1)
  • AWS_SECRET_ACCESS_KEY: Your AWS secret access key (Method 1)
  • AWS_SESSION_TOKEN: Temporary session token (Method 1, if using temporary credentials)
  • AWS_COGNITO_IDENTITY: Your Cognito Identity Pool ID (Method 2, alternative to credentials)
  • AWS_REGION: AWS region where your DynamoDB table is located
  • DYNAMODB_TABLE_NAME: Name of the DynamoDB table to store elsai ARMS data
Authentication Methods:
  • Method 1: Use AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and optionally AWS_SESSION_TOKEN
  • Method 2: Use AWS_COGNITO_IDENTITY for Cognito-based authentication
Example DynamoDB configurations:
Standard AWS Credentials (Method 1):
bash
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_REGION=us-east-1
DYNAMODB_TABLE_NAME=arms-metrics
With Session Token (Method 1, for temporary credentials):
bash
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE2OPTk=
AWS_REGION=us-east-1
DYNAMODB_TABLE_NAME=arms-metrics
Cognito Identity (Method 2):
bash
AWS_COGNITO_IDENTITY=us-east-1:12345678-1234-1234-1234-123456789012
AWS_REGION=us-east-1
DYNAMODB_TABLE_NAME=arms-metrics
ClickHouse Configuration
  • CLICKHOUSE_HOST: Hostname or IP of the ClickHouse server
  • CLICKHOUSE_PORT: HTTP interface port (default: 8123)
  • CLICKHOUSE_USERNAME: Username for authentication
  • CLICKHOUSE_PASSWORD: Password for authentication
  • CLICKHOUSE_DATABASE: Database name to store elsai ARMS data
  • CLICKHOUSE_CONNECT_TIMEOUT: Connection timeout in seconds (optional)
  • CLICKHOUSE_SEND_RECEIVE_TIMEOUT: Send/receive timeout in seconds (optional)
Example ClickHouse configurations:
Local ClickHouse:
bash
CLICKHOUSE_HOST=localhost
CLICKHOUSE_PORT=8123
CLICKHOUSE_USERNAME=default
CLICKHOUSE_PASSWORD=clickhouse123
CLICKHOUSE_DATABASE=arms
CLICKHOUSE_CONNECT_TIMEOUT=10
CLICKHOUSE_SEND_RECEIVE_TIMEOUT=300
Docker ClickHouse:
bash
CLICKHOUSE_HOST=clickhouse
CLICKHOUSE_PORT=8123
CLICKHOUSE_USERNAME=default
CLICKHOUSE_PASSWORD=clickhouse123
CLICKHOUSE_DATABASE=arms
CLICKHOUSE_CONNECT_TIMEOUT=10
CLICKHOUSE_SEND_RECEIVE_TIMEOUT=300

Docker Setup

If you're using Docker, you can choose between MongoDB, DynamoDB, or ClickHouse:

MongoDB Docker Setup

yaml
# docker-compose.yml
version: '3.12'
services:
  mongodb:
    image: mongo:latest
    container_name: elsai-arms-mongodb
    ports:
- "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: password
    volumes:
- mongodb_data:/data/db

  elsai-arms:
    build: .
    container_name: elsai-arms-app
    depends_on:
- mongodb
    environment:
- MONGO_URI=mongodb://admin:password@mongodb:27017
- MONGO_DB_NAME=arms-metrics
- ELSAI_ARMS_API_KEY=${ELSAI_ARMS_API_KEY}

volumes:
  mongodb_data:

DynamoDB Docker Setup

yaml
# docker-compose.yml
version: '3.12'
services:
  dynamodb-local:
    image: amazon/dynamodb-local:latest
    container_name: elsai-arms-dynamodb
    ports:
- "8000:8000"
    command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data"

  elsai-arms:
    build: .
    container_name: elsai-arms-app
    depends_on:
- dynamodb-local
    environment:
- AWS_ACCESS_KEY_ID=dummy
- AWS_SECRET_ACCESS_KEY=dummy
- AWS_REGION=us-east-1
- DYNAMODB_TABLE_NAME=arms-metrics
- ELSAI_ARMS_API_KEY=${ELSAI_ARMS_API_KEY}

ClickHouse Docker Setup

yaml
# docker-compose.yml
version: '3.12'
services:
  clickhouse:
    image: clickhouse/clickhouse-server:latest
    container_name: elsai-arms-clickhouse
    ports:
- "8123:8123"
- "9000:9000"
    environment:
      CLICKHOUSE_DB: arms
      CLICKHOUSE_USER: default
      CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
      CLICKHOUSE_PASSWORD: clickhouse123
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    volumes:
- clickhouse_data:/var/lib/clickhouse
- clickhouse_logs:/var/log/clickhouse-server

  elsai-arms:
    build: .
    container_name: elsai-arms-app
    depends_on:
- clickhouse
    environment:
- CLICKHOUSE_HOST=clickhouse
- CLICKHOUSE_PORT=8123
- CLICKHOUSE_USERNAME=default
- CLICKHOUSE_PASSWORD=clickhouse123
- CLICKHOUSE_DATABASE=arms
- CLICKHOUSE_CONNECT_TIMEOUT=10
- CLICKHOUSE_SEND_RECEIVE_TIMEOUT=300
- ELSAI_ARMS_API_KEY=${ELSAI_ARMS_API_KEY}

volumes:
  clickhouse_data:
  clickhouse_logs:

Environment Variables

Create a .env file in your project root with the required configuration:

bash
# Common Configuration
ELSAI_ARMS_API_KEY=arms-1234567890abcdef
API_BASE_URL=http://localhost:8001
ARMS_MASTER_KEY=your-master-key

# MongoDB Configuration (choose one)
MONGO_URI=mongodb://localhost:27017
MONGO_DB_NAME=arms-metrics

# OR DynamoDB Configuration (choose one)
# Method 1: AWS Credentials
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE2OPTk=

# Method 2: Cognito Identity
# AWS_COGNITO_IDENTITY=us-east-1:12345678-1234-1234-1234-123456789012

AWS_REGION=us-east-1
DYNAMODB_TABLE_NAME=arms-metrics

# OR ClickHouse Configuration (choose one)
CLICKHOUSE_HOST=clickhouse
CLICKHOUSE_PORT=8123
CLICKHOUSE_USERNAME=default
CLICKHOUSE_PASSWORD=clickhouse123
CLICKHOUSE_DATABASE=arms
CLICKHOUSE_CONNECT_TIMEOUT=10
CLICKHOUSE_SEND_RECEIVE_TIMEOUT=300

Next Steps

  1. Choose your database backend (MongoDB, DynamoDB, or ClickHouse)
  2. Set up your environment variables in a .env file
  3. Start the backend server with python app.py
  4. Launch the frontend dashboard with npm start
  5. Access your dashboard at http://localhost:3000

For detailed setup instructions, see the Installation guide.

Copyright © 2026 elsai foundry.