mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-10-07 15:34:23 +08:00
REFACTOR: Update telemetry deployment docs and README for new Docker flow (#7250)
* fix(telemetry): make server build reproducible with proper context and deps * Update telemetry/server/go.mod: go version Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * telemetry/server: optimize Dockerfile (organize cache deps, copy proto); run as non-root * telemetry: update deployment docs for new Docker build context * telemetry: clarify Docker build/run docs and improve Dockerfile caching - DEPLOYMENT.md: specify docker build must run from repo root; provide full docker run example with flags/port mapping - README.md: remove fragile 'cd ..'; keep instruction to run build from repo root - Dockerfile: remove unnecessary pre-copy before 'go mod download' to improve cache utilization --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:

committed by
GitHub

parent
bb3ebac729
commit
273720ffc6
@@ -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 <host_port>: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,8 +241,15 @@ 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`
|
||||
|
||||
- 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`
|
||||
|
@@ -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
|
||||
```
|
||||
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user