Appearance
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
RequiredAll deployments require the following environment variables:
ELSAI_ARMS_API_KEYarms-1234567890abcdef
API_BASE_URLhttp://localhost:8001
ARMS_MASTER_KEYyour-master-key
Database Configuration
Choose OneSelect 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
ReactA 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
FastAPIA 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.pyStart the Frontend
In a new terminal, start the React dashboard:
bash
npm startAccess Dashboard
Open your browser and navigate to:
bash
http://localhost:3000Dashboard 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
View Detailed Configuration Information▶
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_dbMongoDB Atlas (Cloud):
python
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority
MONGO_DB_NAME=elsai_arms_dbDocker MongoDB:
bash
MONGO_URI=mongodb://mongodb:27017
MONGO_DB_NAME=elsai_arms_dbDynamoDB 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-metricsWith 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-metricsCognito Identity (Method 2):
bash
AWS_COGNITO_IDENTITY=us-east-1:12345678-1234-1234-1234-123456789012
AWS_REGION=us-east-1
DYNAMODB_TABLE_NAME=arms-metricsClickHouse 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=300Docker 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=300Docker 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=300Next Steps
- Choose your database backend (MongoDB, DynamoDB, or ClickHouse)
- Set up your environment variables in a
.envfile - Start the backend server with
python app.py - Launch the frontend dashboard with
npm start - Access your dashboard at
http://localhost:3000
For detailed setup instructions, see the Installation guide.