mirror of
https://github.com/hanzoai/o11y-foundry.git
synced 2026-10-30 18:26:45 +00:00
239 lines
9.8 KiB
Go Template
239 lines
9.8 KiB
Go Template
name: {{ $.Metadata.Name }}
|
|
services:
|
|
{{- range $replicaIdx := until (int $.Spec.TelemetryKeeper.Spec.Cluster.Replicas) }}
|
|
{{ $.Metadata.Name }}-telemetrykeeper-{{ $.Spec.TelemetryKeeper.Kind }}-{{ $replicaIdx }}:
|
|
container_name: {{ $.Metadata.Name }}-telemetrykeeper-{{ $.Spec.TelemetryKeeper.Kind }}-{{ $replicaIdx }}
|
|
image: {{ $.Spec.TelemetryKeeper.Spec.Image }}
|
|
networks:
|
|
- {{ $.Metadata.Name }}-network
|
|
{{- if $.Spec.TelemetryKeeper.Spec.Env }}
|
|
environment:
|
|
{{- range $key, $value := $.Spec.TelemetryKeeper.Spec.Env }}
|
|
- {{ $key }}={{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
volumes:
|
|
- {{ $.Metadata.Name }}-telemetrykeeper-{{ $replicaIdx }}-data:/var/lib/clickhouse-keeper
|
|
- ./telemetrykeeper/{{ $.Spec.TelemetryKeeper.Kind }}/keeper-{{ $replicaIdx }}.yaml:/etc/clickhouse-keeper/keeper.yaml:ro
|
|
entrypoint:
|
|
- /usr/bin/clickhouse-keeper
|
|
- --config-file=/etc/clickhouse-keeper/keeper.yaml
|
|
healthcheck:
|
|
test:
|
|
- "CMD"
|
|
- "clickhouse-keeper-client"
|
|
- "-h"
|
|
- "localhost"
|
|
- "-p"
|
|
- "9181"
|
|
- "-q"
|
|
- "ls"
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
{{- end }}
|
|
{{- range $shardIdx := until (int $.Spec.TelemetryStore.Spec.Cluster.Shards) }}
|
|
{{- range $replicaIdx := until (int (add 1 (int $.Spec.TelemetryStore.Spec.Cluster.Replicas))) }}
|
|
{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-{{ $shardIdx }}-{{ $replicaIdx }}:
|
|
container_name: {{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-{{ $shardIdx }}-{{ $replicaIdx }}
|
|
depends_on:
|
|
{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-user-scripts:
|
|
condition: service_completed_successfully
|
|
{{- range $keeperIdx := until (int $.Spec.TelemetryKeeper.Spec.Cluster.Replicas) }}
|
|
{{ $.Metadata.Name }}-telemetrykeeper-{{ $.Spec.TelemetryKeeper.Kind }}-{{ $keeperIdx }}:
|
|
condition: service_healthy
|
|
{{- end }}
|
|
image: {{ $.Spec.TelemetryStore.Spec.Image }}
|
|
networks:
|
|
- {{ $.Metadata.Name }}-network
|
|
environment:
|
|
- CLICKHOUSE_SKIP_USER_SETUP=1
|
|
- CLICKHOUSE_CONFIG=/etc/clickhouse-server/config.yaml
|
|
{{- if $.Spec.TelemetryStore.Spec.Env }}
|
|
{{- range $key, $value := $.Spec.TelemetryStore.Spec.Env }}
|
|
- {{ $key }}={{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
volumes:
|
|
- {{ $.Metadata.Name }}-telemetrystore-{{ $shardIdx }}-{{ $replicaIdx }}-data:/var/lib/clickhouse
|
|
- {{ $.Metadata.Name }}-telemetrystore-user-scripts:/var/lib/clickhouse/user_scripts:ro
|
|
- ./telemetrystore/{{ $.Spec.TelemetryStore.Kind }}/config-{{ $shardIdx }}-{{ $replicaIdx }}.yaml:/etc/clickhouse-server/config.yaml:ro
|
|
- ./telemetrystore/{{ $.Spec.TelemetryStore.Kind }}/functions.yaml:/etc/clickhouse-server/functions.yaml:ro
|
|
healthcheck:
|
|
test:
|
|
- "CMD"
|
|
- "wget"
|
|
- "--spider"
|
|
- "-q"
|
|
- "http://localhost:8123/ping"
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
{{- end }}
|
|
{{- end }}
|
|
{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-user-scripts:
|
|
container_name: {{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-user-scripts
|
|
image: {{ $.Spec.TelemetryStore.Spec.Image }}
|
|
networks:
|
|
- {{ $.Metadata.Name }}-network
|
|
volumes:
|
|
- {{ $.Metadata.Name }}-telemetrystore-user-scripts:/var/lib/clickhouse/user_scripts
|
|
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/o11y/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/clickhouse/user_scripts/histogramQuantile
|
|
{{- if ne $.Spec.MetaStore.Kind.String "sqlite" }}
|
|
{{- range $replicaIdx := until (int $.Spec.MetaStore.Spec.Cluster.Replicas) }}
|
|
{{ $.Metadata.Name }}-metastore-{{ $.Spec.MetaStore.Kind }}-{{ $replicaIdx }}:
|
|
container_name: {{ $.Metadata.Name }}-metastore-{{ $.Spec.MetaStore.Kind }}-{{ $replicaIdx }}
|
|
image: {{ $.Spec.MetaStore.Spec.Image }}
|
|
networks:
|
|
- {{ $.Metadata.Name }}-network
|
|
{{- if $.Spec.MetaStore.Spec.Env }}
|
|
environment:
|
|
- POSTGRES_USER=o11y
|
|
- POSTGRES_PASSWORD=o11y
|
|
- POSTGRES_DB=o11y
|
|
volumes:
|
|
- {{ $.Metadata.Name }}-metastore-{{ $.Spec.MetaStore.Kind }}-{{ $replicaIdx }}-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test:
|
|
- "CMD-SHELL"
|
|
- "pg_isready -U o11y -d o11y"
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- $ingesterReplicas := int $.Spec.Ingester.Spec.Cluster.Replicas }}
|
|
ingester:
|
|
image: {{ $.Spec.Ingester.Spec.Image }}
|
|
networks:
|
|
{{ $.Metadata.Name }}-network:
|
|
aliases:
|
|
- {{ $.Metadata.Name }}-ingester
|
|
entrypoint:
|
|
- /bin/sh
|
|
command:
|
|
- -c
|
|
- |
|
|
/signoz-otel-collector migrate sync check &&
|
|
/signoz-otel-collector --config=/etc/otel-collector-config.yaml --manager-config=/etc/opamp-config.yaml --copy-path=/var/tmp/collector-config.yaml
|
|
volumes:
|
|
- ./ingester/ingester.yaml:/etc/otel-collector-config.yaml:ro
|
|
- ./ingester/opamp.yaml:/etc/opamp-config.yaml:ro
|
|
{{- if eq $ingesterReplicas 1 }}
|
|
ports:
|
|
- "4317:4317"
|
|
- "4318:4318"
|
|
{{- else }}
|
|
expose:
|
|
- "4317"
|
|
- "4318"
|
|
{{- end }}
|
|
environment:
|
|
{{ if and $.Spec.TelemetryStore.Spec.Enabled $.Spec.TelemetryStore.Status.Addresses.TCP (index $.Spec.TelemetryStore.Status.Addresses.TCP 0) }}
|
|
- SIGNOZ_OTEL_COLLECTOR_CLICKHOUSE_DSN={{ index $.Spec.TelemetryStore.Status.Addresses.TCP 0 }}
|
|
{{ end }}
|
|
{{- if $.Spec.Ingester.Spec.Env }}
|
|
{{- range $key, $value := $.Spec.Ingester.Spec.Env }}
|
|
- {{ $key }}={{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
deploy:
|
|
replicas: {{ int $.Spec.Ingester.Spec.Cluster.Replicas }}
|
|
{{- range $replicaIdx := until (int $.Spec.O11y.Spec.Cluster.Replicas) }}
|
|
{{ $.Metadata.Name }}-o11y:
|
|
image: {{ $.Spec.O11y.Spec.Image }}
|
|
networks:
|
|
- {{ $.Metadata.Name }}-network
|
|
{{- if $.Spec.O11y.Spec.Env }}
|
|
environment:
|
|
- HANZO_ALERTMANAGER_PROVIDER=o11y
|
|
- HANZO_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-0-0:9000
|
|
- HANZO_SQLSTORE_SQLITE_PATH=/var/lib/o11y/o11y.db
|
|
- DASHBOARDS_PATH=/root/config/dashboards
|
|
- STORAGE=clickhouse
|
|
- GODEBUG=netdns=go
|
|
- TELEMETRY_ENABLED=true
|
|
- DEPLOYMENT_TYPE=docker-standalone-amd
|
|
- DOT_METRICS_ENABLED=true
|
|
ports:
|
|
- "{{ add 8080 (mul $replicaIdx 1000) }}:8080"
|
|
{{- if eq $.Spec.MetaStore.Kind.String "sqlite" }}
|
|
volumes:
|
|
- {{ $.Metadata.Name }}-metastore-{{ $.Spec.MetaStore.Kind }}-{{ $replicaIdx }}-data:{{ dir (index $.Spec.O11y.Spec.Env "SIGNOZ_SQLSTORE_SQLITE_PATH") }}
|
|
{{- end }}
|
|
healthcheck:
|
|
test:
|
|
- "CMD"
|
|
- "wget"
|
|
- "--spider"
|
|
- "-q"
|
|
- "http://localhost:8080/api/v1/health"
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
deploy:
|
|
replicas: {{ int $.Spec.O11y.Spec.Cluster.Replicas }}
|
|
volumes:
|
|
- {{ $.Metadata.Name }}-o11y-{{ $replicaIdx }}-data:/var/lib/o11y
|
|
{{- end }}
|
|
{{ $.Metadata.Name }}-telemetrystore-migrator:
|
|
container_name: {{ $.Metadata.Name }}-telemetrystore-migrator
|
|
image: {{ $.Spec.Ingester.Spec.Image }}
|
|
networks:
|
|
- {{ $.Metadata.Name }}-network
|
|
entrypoint:
|
|
- /bin/sh
|
|
command:
|
|
- /o11y-otel-collector migrate bootstrap --clickhouse-dsn tcp://{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-0-0:9000
|
|
- /o11y-otel-collector migrate sync up --clickhouse-dsn tcp://{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-0-0:9000
|
|
- /o11y-otel-collector migrate async up --clickhouse-dsn tcp://{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-0-0:9000
|
|
depends_on:
|
|
{{- range $shardIdx := $.Spec.TelemetryStore.Spec.Cluster.Shards }}
|
|
{{- range $replicaIdx := add $.Spec.TelemetryStore.Spec.Cluster.Replicas 1 }}
|
|
{{ $.Metadata.Name }}-telemetrystore-{{ $.Spec.TelemetryStore.Kind }}-{{ $shardIdx }}-{{ $replicaIdx }}:
|
|
condition: service_healthy
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
networks:
|
|
{{ $.Metadata.Name }}-network:
|
|
name: {{ $.Metadata.Name }}-network
|
|
volumes:
|
|
{{- range $replicaIdx := until (int $.Spec.TelemetryKeeper.Spec.Cluster.Replicas) }}
|
|
{{ $.Metadata.Name }}-telemetrykeeper-{{ $replicaIdx }}-data:
|
|
name: {{ $.Metadata.Name }}-telemetrykeeper-{{ $replicaIdx }}-data
|
|
{{- end }}
|
|
{{- range $shardIdx := until (int $.Spec.TelemetryStore.Spec.Cluster.Shards) }}
|
|
{{- range $replicaIdx := until (int (add 1 (int $.Spec.TelemetryStore.Spec.Cluster.Replicas))) }}
|
|
{{ $.Metadata.Name }}-telemetrystore-{{ $shardIdx }}-{{ $replicaIdx }}-data:
|
|
name: {{ $.Metadata.Name }}-telemetrystore-{{ $shardIdx }}-{{ $replicaIdx }}-data
|
|
{{- end }}
|
|
{{- end }}
|
|
{{ $.Metadata.Name }}-telemetrystore-user-scripts:
|
|
name: {{ $.Metadata.Name }}-telemetrystore-user-scripts
|
|
{{- if ne $.Spec.MetaStore.Kind.String "sqlite" }}
|
|
{{- range $replicaIdx := until (int $.Spec.MetaStore.Spec.Cluster.Replicas) }}
|
|
{{ $.Metadata.Name }}-metastore-{{ $.Spec.MetaStore.Kind }}-{{ $replicaIdx }}-data:
|
|
name: {{ $.Metadata.Name }}-metastore-{{ $.Spec.MetaStore.Kind }}-{{ $replicaIdx }}-data
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- range $replicaIdx := until (int $.Spec.O11y.Spec.Cluster.Replicas) }}
|
|
{{ $.Metadata.Name }}-o11y-{{ $replicaIdx }}-data:
|
|
{{- end }}
|