Getting started with Raven (Compact)

Prerequisites

Raven should be always installed into kubernetes cluster (it's distributed as a helm chart), that's why you should have it set up. If you want to try it locally, you can use minikube or similar tools

Compact version of Raven needs 3 types of persistence - Postgres, Redis and Clickhouse. To quickly install all of them, add those repositories:

helm repo add cnpg https://cloudnative-pg.github.io/charts
helm repo add altinity https://altinity.github.io/helm-charts
helm repo update

And then simply install corresponding charts with some additional configs:

helm upgrade --install raven-setup-dragonfly oci://ghcr.io/dragonflydb/dragonfly/helm/dragonfly --version v1.33.1

helm install raven-setup-postgresql cnpg/cloudnative-pg
helm install raven-ch altinity/altinity-clickhouse-operator

cat <<EOF | kubectl apply -f -
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
  name: raven-setup
spec:
  instances: 3
  storage:
    size: 1Gi
EOF

cat <<EOF | kubectl apply -f -
apiVersion: clickhouse-keeper.altinity.com/v1
kind: ClickHouseKeeperInstallation
metadata:
  name: ch-keeper
spec:
  configuration:
    clusters:
      - name: default
        layout:
          replicasCount: 2
  templates:
    podTemplates:
      - name: keeper-template
        spec:
          containers:
            - name: clickhouse-keeper
              image: clickhouse/clickhouse-keeper:25.9.2
              imagePullPolicy: IfNotPresent
              ports:
                - name: keeper
                  containerPort: 2181
---
apiVersion: clickhouse.altinity.com/v1
kind: ClickHouseInstallation
metadata:
  name: raven-clickhouse
  annotations:
    "helm.sh/hook": pre-install
spec:
  defaults:
    templates:
      podTemplate: default
      dataVolumeClaimTemplate: default
  configuration:
    zookeeper:
      nodes:
        - host: chk-ch-keeper-default-0-0.default.svc.cluster.local
          port: 2181
        - host: chk-ch-keeper-default-0-1.default.svc.cluster.local
          port: 2181
    clusters:
      - name: default
        layout:
          replicasCount: 2
    users:
      default/networks/ip:
        - 0.0.0.0/0
  templates:
    podTemplates:
      - name: default
        spec:
          containers:
            - name: clickhouse
              image: clickhouse/clickhouse-server:25.9.2
    volumeClaimTemplates:
      - name: default
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 3Gi
EOF

Those release names are default for Raven, but you can use any other names, it just means you will need to override some defaults in the Raven helm chart. You can use your own existing persistence, but we recommend to always create a separate raven-specific ones.

Installation

Configuration file

First, you need to have a config file (values.yaml), here's a minimal content you need (with latest versions):

raven:
  licenseKey: {YOUR LICENCE KEY}
  compact:
    image:
      tag: 1.0.0
  dashboard:
    image:
      tag: 1.0.0

Available versions can be found here: raven-compact, raven-ui

For details about all available config options, see configuration docs

Installing helm chart

Assuming you have kubernetes cluster and persistence set up, you can install Raven (compact) via Helm:

helm repo add raven https://dragonisle.github.io/raven-helm
helm repo update
helm install raven-compact raven/raven-compact -f values.yaml

Verifying installation

You will get 2 basic services: raven-compact-service - service for application itself, and raven-dashboard-service - service for monitoring dashboard. To access for example dashboard from outside, just run:

    kubectl port-forward svc/raven-dashboard-service 5173:5173

and open http://localhost:5173 (for dashboard) in your browser

Usage

To send AI model logs, you need to use this endpoint: http://{RAVEN HOST}/input/ai/log/insert. you can just port-forward:

    kubectl port-forward svc/raven-compact-service 8080:8080

and run this curl (PLS NOTE that 'timestamp' should not be older than current UTC time - 2 minutes, if it's older - log will be ignored), this will trigger an alert which you can see on dashboard (check Verifying Installation section above to access it)

curl -X 'POST' \
  'http://localhost:8080/input/ai/log/insert' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "modelId": "model1",
    "confidenceScore": 0.69,
    "responseTimeMs": 50,
    "timestamp": "2025-09-01T09:50:00.413Z",
    "numericFeatures": {
      "additionalProp1": 0.21
    },
    "categoricalFeatures": {
      "additionalProp2": "value1"
    }
  }
]'

For more details pls check usage docs