Service
Your application under test. nurburg.dev starts it via a Procfile in the service’s source directory. At least one [[service]] is required in every experiment.
Fields
Section titled “Fields”| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
name | string | Yes | Lowercase alphanumeric + hyphens, 2–30 chars | Unique name for this service |
runtime | string | Yes | nodejs, go, python, java | Language runtime |
port | integer | Yes | ≥ 1000 | Port your service listens on |
healthCheckUrl | string | Yes | HTTP path used to verify the service is ready | |
cpuCores | float | Yes | 0 < value ≤ 2 | CPU allocation |
memoryMB | integer | Yes | 0 < value ≤ 4096 | Memory allocation in MB |
instances | integer | Yes | 1–5 | Number of replicas to run |
directory | string | No | Defaults to . | Path to the service source relative to repo root |
env | table | No | Environment variables injected into the service |
[[service]]name = "app"runtime = "nodejs"port = 3000healthCheckUrl = "/health"cpuCores = 0.5memoryMB = 256instances = 1env = {REDIS_URL = "redis://cache:6379"}Procfile
Section titled “Procfile”Each service requires a Procfile in its source directory (the path set by directory, defaulting to the repo root):
| Process | Required | Description |
|---|---|---|
build | No | Runs once before web to compile the application |
web | Yes | Starts the long-running server process on the configured port |
build must exit with code 0 before web is started. If build fails the service is marked as failed and web is never started.
build: go build -o ./app .web: ./appbuild: mvn package -qweb: java -jar target/app.jarweb: node server.jsTelemetry metrics
Section titled “Telemetry metrics”| Name | Unit | Description |
|---|---|---|
POD_CPU | % | CPU usage |
POD_MEMORY | MB | Memory usage |
PEAK_CPU | % | Peak CPU usage |
PEAK_MEMORY | MB | Peak memory usage |