Generated at build time from
charts/racora-smo/README.md(helm-docs:values.yaml+README.md.gotmpl); edit the source, not this page.
racora-smo
The SMO functions Racora ships, in the racora-smo namespace. Today that is
one: the O1 collector, the receiver of what the elements' O1 adapters send
north. It is the smallest useful SMO-side piece: fault notifications and
performance data become rows an operator can query and chart, with no
orchestration (the controller stays the only thing that deploys and changes
the network) and nothing from a full SMO stack.
What this installs
| Component | Image | Role |
|---|---|---|
| O1 collector | o1-collector (global.components.o1Collector) | Accepts VES 7.x events on /eventListener/v7 (and /eventBatch) and the O1 adapters' PM stream on /pm/stream; stores them in the monitoring ClickHouse, database o1: events (every event, verbatim), alarms (the 3GPP FaultSupervision notifications, typed) with the view current_alarms, and pm (one row per metric sample). /status reports what it accepted, stored and dropped. |
The collector is ready as soon as it listens: the adapters do not retry a failed delivery, so it accepts first and inserts when the store answers, from a bounded in-memory queue.
Identity
The adapters send one fixed identity in the event body today; the element name
Racora wants on every row is the VES basic-auth username the controller gives
each adapter (collector.ves.auth: identity). An element name in the body wins
once the upstream identity flags land. A PM envelope's element is the
?element= query parameter, else its nfInstanceId.
Requires
racora-base(theracora-smonamespace)racora-monitoring's ClickHouse, for the rows to land (without it the collector accepts and drops aftercollector.buffer.maxRows)
Install
helm install racora-smo ./charts/racora-smo
Values
| Key | Type | Default | Description |
|---|---|---|---|
| namespace | string | "racora-smo" | Namespace the SMO functions deploy into. Must already exist (racora-base creates it). |
| collector.enabled | bool | true | Render the O1 collector. |
| collector.image.pullPolicy | string | "IfNotPresent" | Image pull policy — IfNotPresent, because the images ship with the distribution. The image itself is the umbrella's global.components.o1Collector. |
| collector.port | int | 8080 | The port the collector listens on: /eventListener/v7 (VES), /pm/stream (the PM stream), /status. |
| collector.resources | object | {"limits":{"cpu":"500m","memory":"512Mi"},"requests":{"cpu":"50m","memory":"128Mi"}} | Pod resources for the collector. |
| collector.store.clickhouseUrl | string | "http://clickhouse.monitoring.svc.cluster.local:8123" | The ClickHouse HTTP endpoint the rows go to (the monitoring chart's ClickHouse). |
| collector.store.database | string | "o1" | The database the collector creates and writes (tables events, alarms, pm; view current_alarms). |
| collector.store.user | string | "default" | ClickHouse user; no password — the store is in-cluster only. |
| collector.store.ttl.events | string | "1 DAY" | Retention of o1.events (every VES event, verbatim), a ClickHouse INTERVAL. |
| collector.store.ttl.alarms | string | "30 DAY" | Retention of o1.alarms (the fault notifications, typed). |
| collector.store.ttl.pm | string | "7 DAY" | Retention of o1.pm (the PM stream, one row per metric sample). |
| collector.buffer.maxRows | int | 100000 | Rows kept in memory while the store is unreachable; beyond this the oldest are dropped and counted (/status). |
| collector.buffer.flushSeconds | int | 2 | Seconds between batch inserts. |
| collector.pm.ignorePrefixes | list | ["cells.ue_list."] | PM metric name prefixes the collector drops (the per-UE rows carry no key the dashboards can use). |
| collector.ves.auth | string | "identity" | How the VES basic-auth header is treated: identity records the username as the element's name and does not check the password; verify also requires the password in secretName (key password); off ignores the header. |
| collector.ves.secretName | string | "" | Secret in this namespace holding the VES password (key password) when auth is verify. |
| nodeSelector | object | {} | Node selector for the SMO workloads. |
| tolerations | list | [] | Tolerations for the SMO workloads. |
| affinity | object | {} | Affinity rules for the SMO workloads. |
Verify
kubectl -n racora-smo rollout status deploy/o1-collector
kubectl -n racora-smo exec deploy/o1-collector -- python -c \
"import urllib.request; print(urllib.request.urlopen('http://127.0.0.1:8080/status').read().decode())"
# {"accepted": {"ves": N, "pm": M}, ..., "store": {"ok": true, ...}}
kubectl -n monitoring exec deploy/clickhouse -- clickhouse-client -q \
"SELECT element, alarm_id, alarm_name, perceived_severity FROM o1.current_alarms"