mkdir -p ~/cueobserve
wget https://raw.githubusercontent.com/cuebook/CueObserve/latest_release/docker-compose-prod.yml -q -O ~/cueobserve/docker-compose-prod.yml
wget https://raw.githubusercontent.com/cuebook/CueObserve/latest_release/.env -q -O ~/cueobserve/.env
cd ~/cueobserve
docker-compose -f docker-compose-prod.yml --env-file .env up -d
Now visit localhost:3000 in your browser.
SQLite is the default storage database for CueObserve. However, it might not be suitable for production. To use Postgres instead, do the following:
Uncomment given variable in .env
file:
POSTGRES_DB_SCHEMA=cueobserve
POSTGRES_DB_USERNAME=postgres
POSTGRES_DB_PASSWORD=postgres
POSTGRES_DB_HOST=localhost
POSTGRES_DB_PORT=5432
CueObserve comes with built-in authentication (powered by Django). By default authentication is disabled, to enable authentication uncomment given variables.
DJANGO_SUPERUSER_USERNAME=<USER_NAME>
DJANGO_SUPERUSER_PASSWORD=<PASSWORD>
DJANGO_SUPERUSER_EMAIL=<YOUR_EMAIL@DOMAIN.COM>
IS_AUTHENTICATION_REQUIRED=True
If authentication is enabled you can access the Django Admin console to do the database operations with a nice UI. To access Django Admin go to http://localhost:3000/admin and enter the username and password provided in the .env
file.
CueObserve comes with built-in email alert notification system(powered by Django). By default email notifications are disabled, to enable notifications uncomment given variables.
EMAIL_HOST="smtp.gmail.com"
EMAIL_HOST_USER=<YOUR_EMAIL@gmail.com>
EMAIL_HOST_PASSWORD=<YOUR_EMAIL_PASSWORD>
Allow less secure apps: ON for your given EMAIL_HOST_USER email Id, click on enable access to less secure app
Unlock Captcha for your gmail account, click on Unlock Captcha
By default Anomaly Detection tasks run on a celery workers, which are limited by CPU cores hence, limiting the parallelisation. For running 1000's of anomaly detection tasks simultaneously one available option is AWS Lambda. For configuring CueObserve to use AWS Lambda follow the steps:
- AWS ECR - Image Registry for lambda service
- AWS Lambda
Ensure you have aws-cli
installed
Run below script after installing aws-cli
and updating variable values
aws_region=<your-region>
aws_account_id=<your-aws-account-id>
git clone https://github.com/cuebook/cueobserve
cd cueobserve
./aws_lambda_setup.sh
- Open the Functions page of the Lambda console.
- Choose Create function.
- Choose the Container image option.
- Under Basic information,
- For function name, enter "cueObserveAnomalyDetection".
- For Container image URI select "cueobserve-lambda-image" repository & 'latest" tag.
- Choose Create function.
- Go to "cueObserveAnomalyDetection" function's details page & in Function Overview select + Add Trigger.
- Select API Gateway
- Select Create an API > "Rest API" with "open" security.
- Choose Add.
- In function details page, select Configuration > General Configuration and update Memory to "512 MB" & Timeout to "30 sec".
Update variables in .env and .env.dev file
DETECTION_SERVICE_PLATFORM=AWS
AWS_LAMBDA_URL=<lambda function API gateway endpoint>
To install CueObserve on kubernetes you need helm installed. To install follow these steps
git clone https://github.com/cuebook/cueobserve
cd cueobserve/k8s/
kubectl create namespace cue-observe
helm install cue-observe cue-observe -n cue-observe
Scaling is only supported only in Kubernetes deployment and you need Keda 2.0.0 installed. It is enabled by default, to disable scaling, update following variables in k8s/cue-observe/values.yml
before installing CueObserve on kubernetes.
autoscaling:
enabled: false
Whenever an anomaly detection is ran it scales up celery-workers & scales down in some time when finished.
The minimum infrastructure requirement for CueObserve is 1 GB RAM/ 1 CPU. If Multiple CPUs(cores) are provided, they can be utilized by tasks like Anomaly Detection & Root Cause Analysis for faster processing.