Skip to content

Storage And GraphStore Providers

中文:Storage 与 GraphStore

UModel separates modeled storage from runtime GraphStore providers.

Storage Definitions

Storage definitions are UModel elements. They describe where telemetry datasets live.

Supported storage kinds include:

KindTypical target
sls_logstoreSLS logs, traces, events.
sls_metricstoreSLS metric stores.
sls_entitystoreSLS entity data.
aliyun_prometheusPrometheus-compatible metric data.
external_storageStorage outside built-in providers.

Example:

yaml
kind: sls_metricstore
metadata:
  name: "devops.metric_set.core.storage"
  domain: devops
spec:
  region: "cn-hangzhou"
  project: "proj-devops-demo"
  store: "metricstore-devops-metrics"

GraphStore Providers

GraphStore providers are runtime implementations behind the local UModel service.

ProviderRole
memoryFast in-memory provider for tests and disposable local work.
file.memoryJSON-backed local provider; default for make dev, Docker, and Compose.
local.ladybugLadybug-backed provider when built with -tags ladybug.

Start the service with a specific provider:

bash
go run ./cmd/umodel-server --addr :8080 --data data --graphstore file.memory

Separation Rule

Storage definitions define domain telemetry organization. GraphStore providers persist and query UModel's own model graph, entity records, and relation records.

Operational Notes

  • Use file.memory for local documentation, demos, and contribution workflows.
  • Use memory for short tests when persistence is not needed.
  • Use local.ladybug only when the local Ladybug runtime and build tags are available.
  • Do not run multiple writers against the same file.memory directory.

Provider layout and smoke tests: GraphStore Providers.

Released under the Apache-2.0 License.