
hyperfoil-controller-api.0.19.source-code.openapi.yaml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hyperfoil-controller-api Show documentation
Show all versions of hyperfoil-controller-api Show documentation
Hyperfoil Controller RESTful API
openapi: 3.0.0
info:
description: Hyperfoil Controller API
version: "0.5"
title: Hyperfoil Controller API
contact:
email: [email protected]
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
paths:
/openapi:
get:
summary: Serve this OpenAPI 3 definition.
operationId: openApi
responses:
'200':
description: This OpenAPI 3 definition
content:
text/vnd.yaml:
schema:
type: string
format: binary
/benchmark:
get:
summary: List defined benchmark names.
operationId: listBenchmarks
responses:
'200':
description: Benchmark names.
content:
application/json:
schema:
type: array
items:
type: string
post:
summary: Add new benchmark definition.
operationId: addBenchmark
responses:
'204':
description: Benchmark accepted.
'400':
description: Benchmark is invalid.
'406':
description: Unsupported content-type.
'409':
description: Version of benchmark stored on server does not match to the updated version.
parameters:
- in: header
name: if-match
description: If we are updating an existing benchmark, expected previous version.
schema:
type: string
- in: query
name: storedFilesBenchmark
description: Name of previously uploaded benchmark where extra files should be loaded from during multi-part upload. Usually this is the same benchmark unless it is being renamed.
schema:
type: string
requestBody:
content:
application/json:
schema:
type: string
format: binary
text/uri-list:
schema:
type: string
format: binary
text/vnd.yaml:
schema:
type: string
format: binary
application/java-serialized-object:
schema:
type: string
format: binary
multipart/form-data:
schema:
type: object
properties:
benchmark:
type: object
file:
type: array
items:
type: string
format: binary
description: Benchmark definition.
/benchmark/{name}:
get:
summary: Retrieve existing benchmark.
operationId: getBenchmark
parameters:
- in: path
name: name
required: true
allowEmptyValue: false
schema:
type: string
responses:
'200':
description: Existing benchmark definition.
content:
text/vnd.yaml:
schema:
type: object
application/java-serialized-object:
schema:
type: string
format: binary
'404':
description: Benchmark is not defined.
'406':
description: Benchmark does not preserve the original source.
/benchmark/{name}/start:
get:
summary: Start a new run of this benchmark.
operationId: startBenchmark
parameters:
- in: path
name: name
required: true
allowEmptyValue: false
schema:
type: string
- in: query
name: desc
description: Run description
schema:
type: string
- in: header
name: x-trigger-job
description: URL of CI job that triggers the run.
schema:
type: string
- in: query
name: runId
description: Run ID of run that was already requested but not started.
schema:
type: string
- in: query
name: templateParam
description: Template parameter in format KEY=VALUE
schema:
type: array
items:
type: string
responses:
'202':
description: Run was successfully started.
content:
application/json:
schema:
$ref: '#/components/schemas/Run'
'301':
description: Run is requested but it must be started from CI.
headers:
Location:
schema:
type: string
description: URL that should be hit to start the CI job.
x-run-id:
schema:
type: string
description: Generated run ID.
'403':
description: There is an ongoing run. Try later.
'404':
description: Requested benchmark is not defined.
/benchmark/{name}/files:
get:
summary: Get data files for the benchmark
operationId: getBenchmarkFiles
parameters:
- in: path
name: name
required: true
allowEmptyValue: false
schema:
type: string
responses:
'200':
description: List of files
content:
multipart/form-data:
schema:
type: object
'404':
description: Benchmark is not defined.
'406':
description: Benchmark does not preserve the original source.
/benchmark/{name}/structure:
get:
summary: Inspect the rendered structure of the benchmark.
operationId: getBenchmarkStructure
parameters:
- in: path
name: name
required: true
allowEmptyValue: false
schema:
type: string
- in: query
name: maxCollectionSize
schema:
type: integer
default: 20
- in: query
name: templateParam
description: Template parameters in format KEY=VALUE for resolving benchmark without running that.
schema:
type: array
items:
type: string
responses:
'200':
description: Benchmark structure.
content:
application/json:
schema:
type: object
'404':
description: Benchmark is not defined.
'406':
description: Benchmark does not preserve the original source.
/run:
get:
summary: List known runs.
operationId: listRuns
parameters:
- in: query
name: details
schema:
type: boolean
default: false
responses:
'200':
description: Here are the runs.
content:
application/json:
schema:
$ref: '#/components/schemas/Run'
/run/{runId}:
get:
summary: Get info about run.
operationId: getRun
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Run information.
content:
application/json:
schema:
$ref: '#/components/schemas/Run'
/run/{runId}/agentCpu:
get:
summary: Get agent CPU data
operationId: agentCpu
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Run was killed.
content:
application/json:
schema:
type: object
/run/{runId}/kill:
get:
summary: Kill this run
operationId: killRun
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Run was killed.
/run/{runId}/report:
get:
summary: Generate HTML report for this run
operationId: createReport
parameters:
- in: path
name: runId
required: true
schema:
type: string
- in: query
name: source
schema:
type: string
responses:
'200':
description: Generated report
content:
text/html:
schema:
type: string
/run/{runId}/sessions:
get:
summary: List sessions in plaintext (for debugging)
operationId: listSessions
parameters:
- in: path
name: runId
required: true
schema:
type: string
- in: query
name: inactive
schema:
type: boolean
default: false
responses:
'200':
description: Retrieved successfully.
content:
text/plain:
schema:
type: string
/run/{runId}/sessions/recent:
get:
summary: Actual numbers of active sessions in each phase
operationId: getRecentSessions
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
type: object
/run/{runId}/sessions/total:
get:
summary: Min/max of active sessions in each phase
operationId: getTotalSessions
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
type: object
/run/{runId}/connections:
get:
summary: List connections in plaintext (for debugging)
operationId: listConnections
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
text/plain:
schema:
type: string
/run/{runId}/connections/recent:
get:
summary: Actual numbers of connections for each host:port
operationId: getRecentConnections
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
type: object
/run/{runId}/connections/total:
get:
summary: Total number of connections for each host:port
operationId: getTotalConnections
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
type: object
/run/{runId}/stats/all:
get:
summary: Get complete statistics from the run.
description: >
This can be invoked only after the run completes.
Provides exported statistics either as ZIP file with CSV files
or as JSON object.
operationId: getAllStats
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/zip:
schema:
type: string
format: binary
application/json:
schema:
type: object
/run/{runId}/stats/all/json:
get:
summary: Get complete statistics from the run.
description: >
This can be invoked only after the run completes.
Provides exported statistics as JSON object.
operationId: getAllStatsJson
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
type: object
/run/{runId}/stats/all/csv:
get:
summary: Get complete statistics from the run.
description: >
This can be invoked only after the run completes.
Provides exported statistics as ZIP file with CSV files
operationId: getAllStatsCsv
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/zip:
schema:
type: object
/run/{runId}/stats/recent:
get:
summary: Actual statistics from last 5 seconds of run.
operationId: getRecentStats
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
$ref: "#/components/schemas/RequestStatisticsResponse"
/run/{runId}/stats/total:
get:
summary: Statistics over the whole duration of phases.
operationId: getTotalStats
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
$ref: "#/components/schemas/RequestStatisticsResponse"
/run/{runId}/stats/histogram:
get:
summary: Retrieve histogram for given metric.
operationId: getHistogramStats
parameters:
- in: path
name: runId
required: true
schema:
type: string
- in: query
name: phase
required: true
schema:
type: string
- in: query
name: stepId
required: true
schema:
type: integer
- in: query
name: metric
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Histogram"
/run/{runId}/file: # actual file is a query parameter as it may contain slashes
get:
summary: Retrieve a custom file in the run directory (generated by hooks)
operationId: getRunFile
parameters:
- in: path
name: runId
required: true
schema:
type: string
- in: query
name: file
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully
content:
application/octet-stream:
schema:
type: string
format: binary
'403':
description: File is not within the run directory
'404':
description: File not found
/run/{runId}/benchmark:
get:
summary: Benchmark used for given run.
operationId: getBenchmarkForRun
parameters:
- in: path
name: runId
required: true
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
text/vnd.yaml:
schema:
type: object
application/java-serialized-object:
schema:
type: string
format: binary
/agents:
get:
summary: All agents used (in all runs)
operationId: listAgents
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
type: array
items:
type: string
/log:
get:
summary: Get controller log.
operationId: getControllerLog
parameters:
- in: query
name: offset
schema:
type: integer
format: long
default: 0
- in: header
name: if-match
description: Identifier of the previously downloaded log chunk.
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
text/plain:
schema:
type: string
/log/{agent}:
get:
summary: Get controller log.
operationId: getAgentLog
parameters:
- in: path
name: agent
required: true
schema:
type: string
- in: query
name: offset
schema:
type: integer
format: long
default: 0
- in: header
name: if-match
description: Identifier of the previously downloaded log chunk.
schema:
type: string
responses:
'200':
description: Retrieved successfully.
content:
text/plain:
schema:
type: string
/shutdown:
get:
summary: Shutdown controller
operationId: shutdown
parameters:
- in: query
name: force
schema:
type: boolean
default: false
responses:
'200':
description: Shutting down
'403':
description: Some runs are in progress and force=false
/template:
get:
summary: List defined template names.
operationId: listTemplates
responses:
'200':
description: Benchmark template names.
content:
application/json:
schema:
type: array
items:
type: string
/token:
get:
summary: Get authorization token
description: Returns authorization token that can be used instead of credentials with Basic Auth.
operationId: getToken
responses:
'200':
description: Serving token
/version:
get:
summary: Fetch controller version
operationId: getVersion
responses:
'200':
description: Retrieved successfully
content:
application/json:
schema:
$ref: "#/components/schemas/Version"
components:
schemas:
Run:
type: object
required:
- id
- benchmark
- started
- terminated
properties:
id:
type: string
example: 1234
x-json-include: NON_EMPTY
benchmark:
type: string
example: my-benchmark
started:
type: string
format: date-time
example: '2016/08/29 09:12:33.001'
terminated:
type: string
format: date-time
cancelled:
type: boolean
completed:
type: boolean
description:
type: string
phases:
type: array
items:
$ref: "#/components/schemas/Phase"
agents:
type: array
items:
$ref: "#/components/schemas/Agent"
errors:
type: array
items:
type: string
Phase:
type: object
required:
- name
properties:
name:
type: string
status:
type: string
type:
type: string
started:
type: string
format: date-time
remaining:
type: string
completed:
type: string
format: date-time
failed:
type: boolean
totalDuration:
type: string
description:
type: string
Agent:
type: object
properties:
name:
type: string
address:
type: string
status:
type: string
RequestStatisticsResponse:
type: object
properties:
status:
type: string
statistics:
type: array
items:
$ref: "#/components/schemas/RequestStats"
RequestStats:
type: object
properties:
phase:
type: string
stepId:
type: integer
default: 0
metric:
type: string
summary:
type: object
x-type: io.hyperfoil.api.statistics.StatisticsSummary
failedSLAs:
type: array
items:
type: string
isWarmup:
type: boolean
Histogram:
type: object
properties:
phase:
type: string
metric:
type: string
startTime:
type: integer
format: long
endTime:
type: integer
format: long
data:
type: string
Version:
type: object
properties:
version:
type: string
commitId:
type: string
deploymentId:
type: string
serverTime:
type: string
format: date-time
© 2015 - 2025 Weber Informatics LLC | Privacy Policy