a10y runs on Kubernetes (production) or Docker Compose (local development).
After deployment, the Data Layer components provide built-in dashboards out of the box. These are the primary interfaces for day-to-day operations.
Logs, metrics, traces — all in one UI. Build dashboards, run SQL/PromQL queries, set up alerts. The primary observability interface.
admin@a10y.local / changeme http://localhost:5080Alert management console. View correlated alerts, create workflows, configure integrations with external monitoring tools.
http://localhost:3001Vector DB dashboard. Browse collections, inspect stored embeddings, run similarity searches, monitor cluster health.
http://localhost:6333/dashboardMessaging health. Active connections, JetStream streams/consumers, message rates, subscription details.
http://localhost:8222| Service | Port | Role | UI |
|---|---|---|---|
| OpenObserve | 5080 | Logs, metrics, traces | Dashboard |
| Keep (frontend) | 3001 | Alert management | Dashboard |
| Keep (backend) | 8082 | Alert API | — |
| Qdrant | 6333 | Vector DB | Dashboard |
| NATS | 4222 / 8222 | Messaging / Monitor | Monitor |
| Vector | 9000 / 6514 | Syslog / Vector protocol | — |
| correlation-engine | 8000 | AI engine API | — |
| active-inventory | 8081 | Topology API | — |
| aether-ide | 8080 | Web IDE (planned) | — |
| aether-term | 3000 | Terminal (planned) | — |
# Add the a10y chart repo
helm repo add a10y https://autonomously-io.github.io/charts
helm repo update
# Create namespace and secret
kubectl create namespace a10y
kubectl -n a10y create secret generic correlation-engine-secrets \
--from-literal=ANTHROPIC_API_KEY=sk-ant-...
# Install
helm install a10y a10y/autonomously -n a10y # values-prod.yaml
components:
correlation-engine:
env:
AI_MODEL: "claude-sonnet-4-20250514"
resources:
requests:
cpu: "1"
memory: 2Gi
aether-ide:
ingress:
enabled: true
host: ide.a10y.example.com
openobserve:
auth:
ZO_ROOT_USER_EMAIL: "admin@example.com"
ZO_ROOT_USER_PASSWORD: "your-secure-password"
persistence:
size: 500Gi
qdrant:
persistence:
size: 50Gi
# Install with custom values
# helm install a10y a10y/autonomously -n a10y -f values-prod.yaml # Minimal install (engine + data layer only, no UI)
helm install a10y a10y/autonomously -n a10y \
--set components.aether-ide.enabled=false \
--set components.aether-term.enabled=false # Clone
git clone https://github.com/autonomously-io/autonomously-io.github.io.git a10y
cd a10y
# Configure
cp .env.example .env
# Edit .env and set ANTHROPIC_API_KEY
# Start all services
docker compose up -d
# Check status
docker compose ps
# View logs
docker compose logs -f correlation-engine services:
# -- Core
correlation-engine:
image: ghcr.io/autonomously-io/correlation-engine:latest
ports: ["8000:8000"]
environment:
AI_MODEL: claude-sonnet-4-20250514
OPENOBSERVE_URL: http://openobserve:5080
OPENOBSERVE_USER: admin@a10y.local
KEEP_API_URL: http://keep-backend:8080
NATS_URL: nats://nats:4222
QDRANT_URL: http://qdrant:6333
QDRANT_COLLECTION: incidents
INVENTORY_URL: http://active-inventory:8080
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
depends_on: [openobserve, keep-backend, nats, qdrant]
active-inventory:
image: ghcr.io/autonomously-io/active-inventory:latest
ports: ["8081:8080"]
# -- UI
aether-ide:
image: ghcr.io/autonomously-io/aether-ide:latest
ports: ["8080:8080"]
environment:
CORRELATION_ENGINE_URL: http://correlation-engine:8000
aether-term:
image: ghcr.io/autonomously-io/aether-term:latest
ports: ["3000:3000"]
environment:
CORRELATION_ENGINE_URL: http://correlation-engine:8000
# -- Data layer
openobserve:
image: public.ecr.aws/zinclabs/openobserve:latest
ports: ["5080:5080"]
environment:
ZO_ROOT_USER_EMAIL: admin@a10y.local
ZO_ROOT_USER_PASSWORD: changeme
ZO_LOCAL_MODE: "true"
volumes: ["openobserve-data:/data"]
keep-backend:
image: us-central1-docker.pkg.dev/keephq/keep/keep-api:latest
ports: ["8082:8080"]
keep-frontend:
image: us-central1-docker.pkg.dev/keephq/keep/keep-ui:latest
ports: ["3001:3000"]
environment:
API_URL: http://keep-backend:8080
nats:
image: nats:2-alpine
ports: ["4222:4222", "8222:8222"]
command: ["--js", "--sd", "/data", "-m", "8222"]
volumes: ["nats-data:/data"]
qdrant:
image: qdrant/qdrant:latest
ports: ["6333:6333"]
volumes: ["qdrant-data:/qdrant/storage"]
vector:
image: timberio/vector:0.41.1-alpine
ports: ["9000:9000", "6514:6514"]
volumes: ["./vector.yaml:/etc/vector/vector.yaml:ro"]
depends_on: [openobserve]
volumes:
openobserve-data:
nats-data:
qdrant-data: ANTHROPIC_API_KEY=sk-ant-your-key-here a10y ingests logs via Vector. Two input protocols are supported:
Send syslog from network devices, perfSONAR, etc.
# rsyslog
*.* @@vector-host:9000
# syslog-ng
destination d_a10y {
tcp("vector-host" port(9000));
}; Deploy Vector agent on hosts to forward structured logs.
# vector.yaml (agent)
sinks:
a10y:
type: vector
address: "vector-host:6514"
version: "2" | Source | Protocol | Transform |
|---|---|---|
| free5GC | Vector agent | parse_free5gc (auto-tagged) |
| perfSONAR | Syslog TCP | parse_perfsonar (auto-tagged) |
| Network devices | Syslog TCP | Custom VRL transforms |
| Kubernetes | Vector agent | Pod metadata enrichment |