diff --git a/telemetry/DEPLOYMENT.md b/telemetry/DEPLOYMENT.md index dec46bff0..a1dd54907 100644 --- a/telemetry/DEPLOYMENT.md +++ b/telemetry/DEPLOYMENT.md @@ -1,6 +1,6 @@ # SeaweedFS Telemetry Server Deployment -This document describes how to deploy the SeaweedFS telemetry server to a remote server using GitHub Actions. +This document describes how to deploy the SeaweedFS telemetry server to a remote server using GitHub Actions, or via Docker. ## Prerequisites @@ -162,6 +162,48 @@ To deploy updates, manually trigger deployment: 4. Check "Deploy telemetry server to remote server" 5. Click "Run workflow" +## Docker Deployment + +You can build and run the telemetry server using Docker locally or on a remote host. + +### Build + +- Using Docker Compose (recommended): + +```bash +docker compose -f telemetry/docker-compose.yml build telemetry-server +``` + +- Using docker build directly (from the repository root): + +```bash +docker build -t seaweedfs-telemetry \ + -f telemetry/server/Dockerfile \ + . +``` + +### Run + +- With Docker Compose: + +```bash +docker compose -f telemetry/docker-compose.yml up -d telemetry-server +``` + +- With docker run: + +```bash +docker run -d --name telemetry-server \ + -p 8080:8080 \ + seaweedfs-telemetry +``` + +Notes: + +- The container runs as a non-root user by default. +- The image listens on port `8080` inside the container. Map it with `-p :8080`. +- You can pass flags to the server by appending them after the image name, e.g. `docker run -d -p 8353:8080 seaweedfs-telemetry -port=8353 -dashboard=false`. + ## Server Directory Structure After setup, the remote server will have: @@ -199,12 +241,19 @@ sudo systemctl start telemetry.service ## Accessing the Service -After deployment, the telemetry server will be available at: +After deployment, the telemetry server will be available at (default ports shown; adjust if you override with `-port`): + +- Docker default: `8080` + - **Dashboard**: `http://your-server:8080` + - **API**: `http://your-server:8080/api/*` + - **Metrics**: `http://your-server:8080/metrics` + - **Health Check**: `http://your-server:8080/health` -- **Dashboard**: `http://your-server:8353` -- **API**: `http://your-server:8353/api/*` -- **Metrics**: `http://your-server:8353/metrics` -- **Health Check**: `http://your-server:8353/health` +- Systemd example (if you configured a different port, e.g. `8353`): + - **Dashboard**: `http://your-server:8353` + - **API**: `http://your-server:8353/api/*` + - **Metrics**: `http://your-server:8353/metrics` + - **Health Check**: `http://your-server:8353/health` ## Optional: Prometheus and Grafana Integration diff --git a/telemetry/README.md b/telemetry/README.md index 8066a0f0d..f2d1f1ccf 100644 --- a/telemetry/README.md +++ b/telemetry/README.md @@ -75,11 +75,11 @@ message TelemetryData { ```bash # Clone and start the complete monitoring stack git clone https://github.com/seaweedfs/seaweedfs.git -cd seaweedfs/telemetry -docker-compose up -d +cd seaweedfs +docker compose -f telemetry/docker-compose.yml up -d # Or run the server directly -cd server +cd telemetry/server go run . -port=8080 -dashboard=true ``` @@ -183,7 +183,9 @@ GET /metrics version: '3.8' services: telemetry-server: - build: ./server + build: + context: ../ + dockerfile: telemetry/server/Dockerfile ports: - "8080:8080" command: ["-port=8080", "-dashboard=true", "-cleanup=24h"] @@ -208,18 +210,17 @@ services: ```bash # Deploy the stack -docker-compose up -d +docker compose -f telemetry/docker-compose.yml up -d # Scale telemetry server if needed -docker-compose up -d --scale telemetry-server=3 +docker compose -f telemetry/docker-compose.yml up -d --scale telemetry-server=3 ``` ### Server Only ```bash -# Build and run telemetry server -cd server -docker build -t seaweedfs-telemetry . +# Build and run telemetry server (build from repo root to include all sources) +docker build -t seaweedfs-telemetry -f telemetry/server/Dockerfile . docker run -p 8080:8080 seaweedfs-telemetry -port=8080 -dashboard=true ``` diff --git a/telemetry/server/Dockerfile b/telemetry/server/Dockerfile index 27fc3e86d..76fcb54cc 100644 --- a/telemetry/server/Dockerfile +++ b/telemetry/server/Dockerfile @@ -3,10 +3,6 @@ FROM golang:1.25-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ -COPY telemetry/server/go.mod telemetry/server/go.sum ./telemetry/server/ -COPY telemetry/proto/ ./telemetry/proto/ - -WORKDIR /app/telemetry/server RUN go mod download WORKDIR /app