Files
o11y/.devenv/docker/datastore/compose.yaml
T
zooqueen e442dc6bd2 fix(deploy): the compose files name what the datastore image ships
Verified against ghcr.io/hanzoai/datastore:26.6.1.1, the image these files run:
config /etc/datastore-server, data /var/lib/datastore, config root <datastore>,
client /usr/bin/datastore-client, and an entrypoint that reads DATASTORE_* and
nothing else. The mounts pointed at /etc/clickhouse-server and
/var/lib/clickhouse, which the image does not have, and passed CLICKHOUSE_* the
entrypoint ignores.

.devenv bound ${PWD}/../../../deploy/common/clickhouse/custom-function.xml; that
directory is deploy/common/datastore.

Service, hostname, volume, anchor and swarm-config names follow, and the cluster
XML replicas match the compose hostnames again.

The eight built-in integrations credited [email protected] and o11y.io, which
does not resolve; ours is o11y.hanzo.ai. The datastore integration is titled
Hanzo Datastore. Its id stays — an installed integration references it.

data-collected.json and the dashboards keep ClickHouseProfileEvents_* and
ClickHouseAsyncMetrics_*: those are the names the server binary emits, checked
in the running pod.
2026-08-14 20:07:33 -07:00

96 lines
3.0 KiB
YAML

services:
init-datastore:
image: ghcr.io/hanzoai/datastore:26.6.1.1
container_name: init-datastore
command:
- bash
- -c
- |
version="v0.0.1"
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
cd /tmp
wget -O histogram-quantile.tar.gz "https://github.com/Hanzo O11y/observe/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
tar -xvzf histogram-quantile.tar.gz
mv histogram-quantile /var/lib/datastore/user_scripts/histogramQuantile
restart: on-failure
volumes:
- ${PWD}/fs/tmp/var/lib/datastore/user_scripts/:/var/lib/datastore/user_scripts/
datastore:
image: ghcr.io/hanzoai/datastore:26.6.1.1
container_name: datastore
volumes:
- ${PWD}/fs/etc/datastore-server/config.d/config.xml:/etc/datastore-server/config.d/config.xml
- ${PWD}/fs/etc/datastore-server/users.d/users.xml:/etc/datastore-server/users.d/users.xml
- ${PWD}/fs/tmp/var/lib/datastore/:/var/lib/datastore/
- ${PWD}/fs/tmp/var/lib/datastore/user_scripts/:/var/lib/datastore/user_scripts/
- ${PWD}/../../../deploy/common/datastore/custom-function.xml:/etc/datastore-server/custom-function.xml
ports:
- "127.0.0.1:8123:8123"
- "127.0.0.1:9000:9000"
tty: true
healthcheck:
test:
- CMD
- wget
- --spider
- -q
- 0.0.0.0:8123/ping
interval: 30s
timeout: 5s
retries: 3
depends_on:
init-datastore:
condition: service_completed_successfully
zookeeper:
condition: service_healthy
environment:
- DATASTORE_SKIP_USER_SETUP=1
networks:
- default
- o11y-devenv
zookeeper:
image: observe/zookeeper:3.7.1
container_name: zookeeper
volumes:
- ${PWD}/fs/tmp/zookeeper:/bitnami/zookeeper
ports:
- "127.0.0.1:2181:2181"
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
healthcheck:
test:
- CMD-SHELL
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
interval: 30s
timeout: 5s
retries: 3
telemetrystore-migrator:
image: observe/observe-otel-collector:v0.142.0
container_name: telemetrystore-migrator
environment:
- O11Y_OTEL_COLLECTOR_DATASTORE_DSN=tcp://datastore:9000
- O11Y_OTEL_COLLECTOR_DATASTORE_CLUSTER=cluster
- O11Y_OTEL_COLLECTOR_DATASTORE_REPLICATION=true
- O11Y_OTEL_COLLECTOR_TIMEOUT=10m
entrypoint:
- /bin/sh
command:
- -c
- |
/observe-otel-collector migrate bootstrap &&
/observe-otel-collector migrate sync up &&
/observe-otel-collector migrate async up
depends_on:
datastore:
condition: service_healthy
restart: on-failure
networks:
- default
- o11y-devenv
networks:
o11y-devenv:
name: o11y-devenv