This is an automated email from the ASF dual-hosted git repository.

shown pushed a commit to branch 1227-yuluo/chore
in repository https://gitbox.apache.org/repos/asf/hertzbeat-collector-go.git

commit ae787fe7f190742772369ff3534154e5c9583fd5
Author: yuluo-yx <[email protected]>
AuthorDate: Sat Dec 27 17:12:52 2025 +0800

    docs: add dev docs
    
    Signed-off-by: yuluo-yx <[email protected]>
---
 docs/dev.md                  |  52 +++++++++++++++++++++++++++++++++++++++++++
 docs/img/hcg.png             | Bin 0 -> 34168 bytes
 etc/hertzbeat-collector.yaml |   1 +
 tools/docker/hcg/Dockerfile  |   9 +++++---
 tools/make/golang.mk         |  22 +++++++++++++++---
 tools/make/image.mk          |  10 ++++-----
 6 files changed, 83 insertions(+), 11 deletions(-)

diff --git a/docs/dev.md b/docs/dev.md
new file mode 100644
index 0000000..525dce4
--- /dev/null
+++ b/docs/dev.md
@@ -0,0 +1,52 @@
+# HCG 调试
+
+## 启动 Hertzbeat Manager
+
+```shell
+wget 
https://github.com/apache/hertzbeat/releases/download/v1.7.3/apache-hertzbeat-1.7.3-docker-compose.tar.gz
+
+tar -zxvf apache-hertzbeat-1.7.3-docker-compose.tar.gz
+
+cd hertzbeat-postgresql-victoria-metrics
+
+docker compose up -d
+```
+
+##  启动 Java Collector(如有需要)
+
+```shell
+docker run -d \
+    -e IDENTITY=custom-collector-name \
+    -e MODE=public \
+    -e MANAGER_HOST=127.0.0.1 \
+    -e MANAGER_PORT=1158 \
+    --name hertzbeat-collector apache/hertzbeat-collector
+```
+
+-e IDENTITY=custom-collector-name : (可选) 设置采集器的唯一标识名称。注意多采集器时名称需保证唯一性。
+-e MODE=public : 配置运行模式(public or private), 公共集群模式或私有云边模式。
+-e MANAGER_HOST=127.0.0.1 : 重要, 配置连接的 HertzBeat Server 地址,127.0.0.1 需替换为 
HertzBeat Server 对外 IP 地址。
+-e MANAGER_PORT=1158 : (可选) 配置连接的 HertzBeat Server 端口,默认 1158.
+
+## 启动 Go Collector
+
+启动前检查 etc 目录下的配置文件 `etc/hertzbeat-collector-go.yml` 中的 Manager 地址是否正确。
+
+### 二进制启动
+
+`make dev-run`
+
+### 容器启动
+
+```shell
+make image-build
+
+docker run -d \
+  -v 
$(pwd)/etc/hertzbeat-collector.yaml:/var/hertzbeat/config/hertzbeat-collector.yaml\
+  --name hertzbeat-go-collector \
+  apache/hertzbeat-collector-go:4a6917188e31d153bddda6c03f2f2dd4057ef704
+```
+
+查看 go collector 是否注册到了 hertzbeat Manager:
+
+![hcg](img/hcg.png)
diff --git a/docs/img/hcg.png b/docs/img/hcg.png
new file mode 100644
index 0000000..2379435
Binary files /dev/null and b/docs/img/hcg.png differ
diff --git a/etc/hertzbeat-collector.yaml b/etc/hertzbeat-collector.yaml
index c9893c1..b47b1ee 100644
--- a/etc/hertzbeat-collector.yaml
+++ b/etc/hertzbeat-collector.yaml
@@ -26,6 +26,7 @@ collector:
 
   # Transport/Manager configuration
   manager:
+    # Tips, replace the host & port with the actual manager service address
     host: 127.0.0.1
     port: 1158
     protocol: netty
diff --git a/tools/docker/hcg/Dockerfile b/tools/docker/hcg/Dockerfile
index 2bb553d..14255ae 100644
--- a/tools/docker/hcg/Dockerfile
+++ b/tools/docker/hcg/Dockerfile
@@ -15,19 +15,22 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM 
docker.io/library/busybox@sha256:ab33eacc8251e3807b85bb6dba570e4698c3998eca6f0fc2ccb60575a563ea74
 AS builder
+FROM docker.m.daocloud.io/library/busybox AS builder
+# FROM busybox:latest AS builder
 
 # prepare hertzbeat data dir
 RUN mkdir -p /var/hertzbeat
 
 # Use distroless as minimal base image to package the manager binary
 # Refer to https://github.com/GoogleContainerTools/distroless for more details
-FROM 
gcr.io/distroless/base-nossl:nonroot@sha256:8981b63f968e829d21351ea9d28cc21127e5f034707f1d8483d2993d9577be0b
+FROM 
gcr.io/distroless/base-nossl:nonroot@sha256:907e776d3a92b2a4c82e02ee282a00bcb3a193dce3adc902e85b7beb7f3fd9dc
 
 COPY --from=builder /var/hertzbeat/ /var/hertzbeat/
 
 # copy binary to image, run make build to generate binary.
-COPY bin /usr/local/bin/
+# Use TARGETARCH to copy the correct binary for the target platform
+ARG TARGETARCH
+COPY bin/linux/${TARGETARCH}/collector /usr/local/bin/collector
 COPY etc /var/hertzbeat/config/
 
 USER 65532:65532
diff --git a/tools/make/golang.mk b/tools/make/golang.mk
index 1e9fe77..54f82e9 100644
--- a/tools/make/golang.mk
+++ b/tools/make/golang.mk
@@ -40,12 +40,28 @@ dev-run: ## Golang dev, run main by run.
 prod-run: ## Golang prod, run bin by run.
        bin/collector server --config etc/hertzbeat-collector.yaml
 
+# 默认使用当前系统平台,可以通过参数覆盖:make build GOOS=linux GOARCH=amd64
+GOOS ?= $(shell go env GOOS)
+GOARCH ?= $(shell go env GOARCH)
+
 .PHONY: build
 # build
-build: ## Golang build
+build: ## Golang build, support cross-compile: make build GOOS=linux 
GOARCH=amd64
        @version=$$(cat VERSION); \
-       # todo; 添加交叉编译支持
-       CGO_ENABLED=0 go build -o bin/collector -ldflags "$(GO_LDFLAGS)" 
cmd/main.go
+       echo "Building for $(GOOS)/$(GOARCH)..."; \
+       mkdir -p bin/$(GOOS)/$(GOARCH); \
+       CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build -o 
bin/$(GOOS)/$(GOARCH)/collector -ldflags "$(GO_LDFLAGS)" cmd/main.go
+
+.PHONY: all-platform-build
+all-platform-build: ## Build for all platforms (linux/amd64, linux/arm64, 
darwin/amd64, darwin/arm64, windows/amd64)
+       @echo "Building for all platforms..."
+       @$(MAKE) build GOOS=linux GOARCH=amd64
+       @$(MAKE) build GOOS=linux GOARCH=arm64
+       @$(MAKE) build GOOS=darwin GOARCH=amd64
+       @$(MAKE) build GOOS=darwin GOARCH=arm64
+       @$(MAKE) build GOOS=windows GOARCH=amd64
+       @echo "All platform builds completed. Binaries in bin/"
+       @find bin -type f -name collector | xargs ls -lh
 
 .PHONY: init
 init: ## install base. For proto compile.
diff --git a/tools/make/image.mk b/tools/make/image.mk
index fc37001..9456ac7 100644
--- a/tools/make/image.mk
+++ b/tools/make/image.mk
@@ -28,8 +28,7 @@ DOCKER_SUPPORTED_API_VERSION ?= 1.32
 
 IMAGES_DIR ?= $(wildcard tools/docker/hcg)
 
-IMAGES ?= hertzbeat-collector-go
-IMAGE_PLATFORMS ?= amd64 arm64
+IMAGES ?= apache/hertzbeat-collector-go
 
 BUILDX_CONTEXT = hcg-build-tools-builder
 
@@ -38,11 +37,12 @@ BUILDX_CONTEXT = hcg-build-tools-builder
 # todo: multi-platform build
 
 .PHONY: image-build
-image-build: ## Build docker image
-image-build: IMAGE_PLATFORMS = ${shell uname -m}
+image-build: ## Build docker image, support: make image-build 
IMAGE_PLATFORMS=arm64
+image-build: IMAGE_PLATFORMS ?= $(shell uname -m | head -n1 | awk '{print 
$$1}')
 image-build:
        @$(LOG_TARGET)
-       make build
+       @echo "Building for platform: $(IMAGE_PLATFORMS)"
+       make build GOOS=linux GOARCH=$(IMAGE_PLATFORMS)
        $(DOCKER) buildx create --name $(BUILDX_CONTEXT) --use; \
        $(DOCKER) buildx use $(BUILDX_CONTEXT); \
        $(DOCKER) buildx build --load \


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to