mirror of
https://github.com/hanzoai/o11y.git
synced 2026-10-15 12:58:33 +00:00
* debrand: signoz/SigNoz/SIGNOZ -> o11y/O11y/O11Y across the tree Rename all SigNoz *branding* to O11y in file contents, file/dir names, package names, env vars, config keys, comments, docs, SDK code, and the ClickHouse schema identifiers the querier reads. Collector dependency: - Repoint github.com/hanzoai/signoz-otel-collector -> github.com/hanzoai/otel-collector and bump v0.144.6 -> v0.144.7 (go.mod + go.sum reconciled via go mod tidy). Internal package paths also debranded upstream: signozschemamigrator -> o11yschemamigrator, signozlogspipelineprocessor -> o11ylogspipelineprocessor. - Fix: v0.144.7 dropped otelconst.DistributedFieldKeysTable from the collector's public constants; pin FieldKeysTable = "distributed_field_keys" locally in pkg/telemetrymetadata/tables.go. Package/dir renames (package decl + all importers): pkg/apiserver/signozapiserver -> o11yapiserver, plus signozalertmanager, signozauthzapi, signozglobal, signozquerier, signozruler, and pkg/signoz -> pkg/o11y. Schema (read plane): signoz_traces/metrics/logs/metadata/analytics/meter and signoz_index_v3/index_v2/error_index_v2/spans (+ distributed_*) -> o11y_*. Data-preserving cutover migration added: deploy/clickhouse/migrations/0001_rename_signoz_to_o11y.sql (metadata-only RENAME DATABASE/TABLE, no drop/recreate). Preserved (attribution / external / wire contracts): - LICENSE + NOTICE verbatim (incl. "software from SigNoz", "Copyright ... SigNoz Inc."). - Upstream github.com/SigNoz/* repo URLs + @SigNoz/* CODEOWNERS teams. - Billing resource-attribute regex "signoz.workspace.*" (external wire contract). go build ./pkg/... ./cmd/... = 0; gofmt clean; renamed+schema pkg tests pass. * o11y: bump collector to v0.144.8 (o11y_* physical schema writer) + lockstep deploy plan Collector v0.144.8's schema-migrator + exporters now CREATE/WRITE the same o11y_* physical databases/tables the querier reads and the RENAME migration (0001_rename_signoz_to_o11y.sql) targets. Cross-checked byte-identical: writer DB set == migration target DB set (6); writer prefixed-table set == migration target table set (8); o11y querier reads and cloud reads are subsets of that set. Zero table-name mismatches between writer, readers, and migration. Collector go.mod unchanged between v0.144.7 and v0.144.8 (identical go.mod hash) — pure source rename, no module-graph change. Adds deploy/clickhouse/DEPLOY_signoz_to_o11y_cutover.md: the lockstep order (collector v0.144.8 -> RENAME migration -> o11y+cloud readers) with a fresh/scratch-ClickHouse pre-flight (create via migrator, emit trace+metric, query back) and rollback. Ships together or telemetry blackholes. go build ./pkg/... ./cmd/community = 0.
87 lines
3.3 KiB
Docker
87 lines
3.3 KiB
Docker
# syntax=docker/dockerfile:1
|
|
#
|
|
# Hanzo O11y — standalone community server image.
|
|
#
|
|
# Builds the real server binary `./cmd/community` (NOT `./cmd/server`, which does
|
|
# not exist). `cmd/community` does not import github.com/hanzoai/cloud, so the
|
|
# go.mod `replace github.com/hanzoai/cloud => ../cloud` is inert for this build
|
|
# and no sibling checkout is required — cloud lives only in the root `mount.go`
|
|
# cloud-embed adapter, which `cmd/community` never pulls in.
|
|
#
|
|
# All external modules in cmd/community's graph are public (hanzoai/* forks of
|
|
# otel-collector, govaluate, clickhouse-go-mock, expr), so the module
|
|
# fetch needs no private git auth — only GOPRIVATE + GOSUMDB=off.
|
|
#
|
|
# The browser SPA is served at the edge by hanzoai/static (house-native static
|
|
# plugin), not bundled here, so the server runs headless (O11Y_WEB_ENABLED=false).
|
|
# The frontend/ tree is a separate concern — its pnpm-lock.yaml is mid-migration
|
|
# and not build-ready; bundle it back once that is resolved.
|
|
|
|
########################################
|
|
# Stage 1 — Go build (./cmd/community)
|
|
########################################
|
|
FROM golang:1.26.4-alpine AS backend
|
|
RUN apk add --no-cache git ca-certificates
|
|
WORKDIR /src
|
|
|
|
# hanzoai/* modules are fetched via direct git (all public); trust go.sum.
|
|
ENV GOPRIVATE=github.com/hanzoai/* \
|
|
GOSUMDB=off \
|
|
CGO_ENABLED=0 \
|
|
GOOS=linux
|
|
|
|
COPY . .
|
|
|
|
# Version metadata is injected via build-args (the build context excludes .git,
|
|
# so we must not shell out to `git` here).
|
|
ARG VERSION=dev
|
|
ARG COMMIT_HASH=unknown
|
|
ARG BUILD_TIME=unknown
|
|
ARG BRANCH=unknown
|
|
ARG VARIANT=community
|
|
|
|
# Build ONLY ./cmd/community. A bare `go mod download` would fail because
|
|
# github.com/hanzoai/cloud is a direct require replaced to ../cloud (absent
|
|
# here); building the single package resolves only its pruned graph, which does
|
|
# not include cloud.
|
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=cache,target=/root/.cache/go-build \
|
|
VERPKG=github.com/hanzoai/o11y/pkg/version && \
|
|
go build -trimpath -tags timetzdata \
|
|
-ldflags "-s -w \
|
|
-X ${VERPKG}.version=${VERSION} \
|
|
-X ${VERPKG}.variant=${VARIANT} \
|
|
-X ${VERPKG}.hash=${COMMIT_HASH} \
|
|
-X ${VERPKG}.time=${BUILD_TIME} \
|
|
-X ${VERPKG}.branch=${BRANCH}" \
|
|
-o /out/o11y ./cmd/community
|
|
|
|
########################################
|
|
# Stage 2 — Runtime (minimal)
|
|
########################################
|
|
FROM alpine:3.20
|
|
LABEL org.opencontainers.image.source="https://github.com/hanzoai/o11y" \
|
|
org.opencontainers.image.title="hanzo-o11y" \
|
|
org.opencontainers.image.description="Hanzo O11y — OTLP-native observability (O11y fork), standalone community server" \
|
|
maintainer="hanzoai"
|
|
|
|
RUN apk add --no-cache ca-certificates && \
|
|
mkdir -p /var/lib/o11y
|
|
|
|
WORKDIR /root
|
|
|
|
# Server binary.
|
|
COPY --from=backend /out/o11y /usr/local/bin/o11y
|
|
# Alert/email templates (emailing default dir = /root/templates/email).
|
|
COPY templates/ /root/templates/
|
|
|
|
# The browser SPA is served by hanzoai/static at the edge; run headless. When a
|
|
# deployment bundles/mounts web assets, set O11Y_WEB_ENABLED=true and
|
|
# O11Y_WEB_DIRECTORY to their path.
|
|
ENV O11Y_WEB_ENABLED=false
|
|
|
|
# Public query-service HTTP + query API (constants.HTTPHostPort = 0.0.0.0:8080).
|
|
EXPOSE 8080
|
|
|
|
ENTRYPOINT ["/usr/local/bin/o11y", "server"]
|