Skip to content

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.

FieldTypeRequiredConstraintsDescription
namestringYesLowercase alphanumeric + hyphens, 2–30 charsUnique name for this service
runtimestringYesnodejs, go, python, javaLanguage runtime
portintegerYes≥ 1000Port your service listens on
healthCheckUrlstringYesHTTP path used to verify the service is ready
cpuCoresfloatYes0 < value ≤ 2CPU allocation
memoryMBintegerYes0 < value ≤ 4096Memory allocation in MB
instancesintegerYes1–5Number of replicas to run
directorystringNoDefaults to .Path to the service source relative to repo root
envtableNoEnvironment variables injected into the service
[[service]]
name = "app"
runtime = "nodejs"
port = 3000
healthCheckUrl = "/health"
cpuCores = 0.5
memoryMB = 256
instances = 1
env = {REDIS_URL = "redis://cache:6379"}

Each service requires a Procfile in its source directory (the path set by directory, defaulting to the repo root):

ProcessRequiredDescription
buildNoRuns once before web to compile the application
webYesStarts 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: ./app
build: mvn package -q
web: java -jar target/app.jar
web: node server.js
NameUnitDescription
POD_CPU%CPU usage
POD_MEMORYMBMemory usage
PEAK_CPU%Peak CPU usage
PEAK_MEMORYMBPeak memory usage