mirror of
https://github.com/clearml/clearml-server
synced 2025-01-31 10:56:48 +00:00
1663 lines
52 KiB
Plaintext
1663 lines
52 KiB
Plaintext
_description : "Provides an API for running tasks to report events collected by the system."
|
|
_definitions {
|
|
include "_events_common.conf"
|
|
metrics_scalar_event {
|
|
description: "Used for reporting scalar metrics during training task"
|
|
type: object
|
|
required: [ task, type ]
|
|
properties {
|
|
timestamp {
|
|
description: "Epoch milliseconds UTC, will be set by the server if not set."
|
|
type: number
|
|
}
|
|
type {
|
|
description: "training_stats_vector"
|
|
const: "training_stats_scalar"
|
|
}
|
|
task {
|
|
description: "Task ID (required)"
|
|
type: string
|
|
}
|
|
iter {
|
|
description: "Iteration"
|
|
type: integer
|
|
}
|
|
metric {
|
|
description: "Metric name, e.g. 'count', 'loss', 'accuracy'"
|
|
type: string
|
|
}
|
|
variant {
|
|
description: "E.g. 'class_1', 'total', 'average"
|
|
type: string
|
|
}
|
|
value {
|
|
description: ""
|
|
type: number
|
|
}
|
|
}
|
|
}
|
|
metrics_vector_event {
|
|
description: "Used for reporting vector metrics during training task"
|
|
type: object
|
|
required: [ task ]
|
|
properties {
|
|
timestamp {
|
|
description: "Epoch milliseconds UTC, will be set by the server if not set."
|
|
type: number
|
|
}
|
|
type {
|
|
description: "training_stats_vector"
|
|
const: "training_stats_vector"
|
|
}
|
|
task {
|
|
description: "Task ID (required)"
|
|
type: string
|
|
}
|
|
iter {
|
|
description: "Iteration"
|
|
type: integer
|
|
}
|
|
metric {
|
|
description: "Metric name, e.g. 'count', 'loss', 'accuracy'"
|
|
type: string
|
|
}
|
|
variant {
|
|
description: "E.g. 'class_1', 'total', 'average"
|
|
type: string
|
|
}
|
|
values {
|
|
description: "vector of float values"
|
|
type: array
|
|
items { type: number }
|
|
}
|
|
}
|
|
}
|
|
metrics_image_event {
|
|
description: "An image or video was dumped to storage for debugging"
|
|
type: object
|
|
required: [ task, type ]
|
|
properties {
|
|
timestamp {
|
|
description: "Epoch milliseconds UTC, will be set by the server if not set."
|
|
type: number
|
|
}
|
|
type {
|
|
description: ""
|
|
const: "training_debug_image"
|
|
}
|
|
task {
|
|
description: "Task ID (required)"
|
|
type: string
|
|
}
|
|
iter {
|
|
description: "Iteration"
|
|
type: integer
|
|
}
|
|
metric {
|
|
description: "Metric name, e.g. 'count', 'loss', 'accuracy'"
|
|
type: string
|
|
}
|
|
variant {
|
|
description: "E.g. 'class_1', 'total', 'average"
|
|
type: string
|
|
}
|
|
key {
|
|
description: "File key"
|
|
type: string
|
|
}
|
|
url {
|
|
description: "File URL"
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
metrics_plot_event {
|
|
description: """ An entire plot (not single datapoint) and it's layout.
|
|
Used for plotting ROC curves, confidence matrices, etc. when evaluating the net."""
|
|
type: object
|
|
required: [ task, type ]
|
|
properties {
|
|
timestamp {
|
|
description: "Epoch milliseconds UTC, will be set by the server if not set."
|
|
type: number
|
|
}
|
|
type {
|
|
description: "'plot'"
|
|
const: "plot"
|
|
}
|
|
task {
|
|
description: "Task ID (required)"
|
|
type: string
|
|
}
|
|
iter {
|
|
description: "Iteration"
|
|
type: integer
|
|
}
|
|
metric {
|
|
description: "Metric name, e.g. 'count', 'loss', 'accuracy'"
|
|
type: string
|
|
}
|
|
variant {
|
|
description: "E.g. 'class_1', 'total', 'average"
|
|
type: string
|
|
}
|
|
plot_str {
|
|
description: """An entire plot (not single datapoint) and it's layout.
|
|
Used for plotting ROC curves, confidence matrices, etc. when evaluating the net.
|
|
"""
|
|
type: string
|
|
}
|
|
skip_validation {
|
|
description: "If set then plot_str is not checked for a valid json. The default is False"
|
|
type: boolean
|
|
}
|
|
}
|
|
}
|
|
log_level_enum {
|
|
type: string
|
|
enum: [
|
|
notset
|
|
debug
|
|
verbose
|
|
info
|
|
warn
|
|
warning
|
|
error
|
|
fatal
|
|
critical
|
|
]
|
|
}
|
|
event_type_enum {
|
|
type: string
|
|
enum: [
|
|
training_stats_scalar
|
|
training_stats_vector
|
|
training_debug_image
|
|
plot
|
|
log
|
|
]
|
|
}
|
|
task_metric {
|
|
type: object
|
|
required: [task]
|
|
properties {
|
|
task {
|
|
description: "Task ID"
|
|
type: string
|
|
}
|
|
metric {
|
|
description: "Metric name"
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
task_metric_variants {
|
|
type: object
|
|
required: [task]
|
|
properties {
|
|
task {
|
|
description: "Task ID"
|
|
type: string
|
|
}
|
|
metric {
|
|
description: "Metric name"
|
|
type: string
|
|
}
|
|
variants {
|
|
description: Metric variant names
|
|
type: array
|
|
items {type: string}
|
|
}
|
|
}
|
|
}
|
|
task_log_event {
|
|
description: """A log event associated with a task."""
|
|
type: object
|
|
required: [ task, type ]
|
|
properties {
|
|
timestamp {
|
|
description: "Epoch milliseconds UTC, will be set by the server if not set."
|
|
type: number
|
|
}
|
|
type {
|
|
description: "'log'"
|
|
const: "log"
|
|
}
|
|
task {
|
|
description: "Task ID (required)"
|
|
type: string
|
|
}
|
|
level {
|
|
description: "Log level."
|
|
"$ref": "#/definitions/log_level_enum"
|
|
}
|
|
worker {
|
|
description: "Name of machine running the task."
|
|
type: string
|
|
}
|
|
msg {
|
|
description: "Log message."
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
debug_image_sample_response {
|
|
type: object
|
|
properties {
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID to pass to the next calls to get_debug_image_sample or next_debug_image_sample"
|
|
}
|
|
event {
|
|
type: object
|
|
description: "Debug image event"
|
|
}
|
|
min_iteration {
|
|
type: integer
|
|
description: "minimal valid iteration for the variant"
|
|
}
|
|
max_iteration {
|
|
type: integer
|
|
description: "maximal valid iteration for the variant"
|
|
}
|
|
}
|
|
}
|
|
plot_sample_response {
|
|
type: object
|
|
properties {
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID to pass to the next calls to get_plot_sample or next_plot_sample"
|
|
}
|
|
events {
|
|
description: "Plot events"
|
|
type: array
|
|
items { type: object}
|
|
}
|
|
min_iteration {
|
|
type: integer
|
|
description: "minimal valid iteration for the metric"
|
|
}
|
|
max_iteration {
|
|
type: integer
|
|
description: "maximal valid iteration for the metric"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add {
|
|
"2.1" {
|
|
description: "Adds a single event"
|
|
request {
|
|
type: object
|
|
anyOf: [
|
|
{ "$ref": "#/definitions/metrics_scalar_event" }
|
|
{ "$ref": "#/definitions/metrics_vector_event" }
|
|
{ "$ref": "#/definitions/metrics_image_event" }
|
|
{ "$ref": "#/definitions/metrics_plot_event" }
|
|
{ "$ref": "#/definitions/task_log_event" }
|
|
]
|
|
}
|
|
response {
|
|
type: object
|
|
additionalProperties: true
|
|
}
|
|
}
|
|
"2.22": ${add."2.1"} {
|
|
request.properties {
|
|
model_event {
|
|
type: boolean
|
|
description: If set then the event is for a model. Otherwise for a task. Cannot be used with task log events. If used in batch then all the events should be marked the same
|
|
default: false
|
|
}
|
|
allow_locked {
|
|
type: boolean
|
|
description: Allow adding events to published tasks or models
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add_batch {
|
|
"2.1" {
|
|
description: "Adds a batch of events in a single call (json-lines format, stream-friendly)"
|
|
batch_request: {
|
|
action: add
|
|
version: 2.1
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
added { type: integer }
|
|
errors { type: integer }
|
|
errors_info { type: object }
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${add_batch."2.1"} {
|
|
batch_request: {
|
|
action: add
|
|
version: 2.22
|
|
}
|
|
}
|
|
}
|
|
delete_for_task {
|
|
"2.1" {
|
|
description: "Delete all task events. *This cannot be undone!*"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
allow_locked {
|
|
type: boolean
|
|
description: "Allow deleting events even if the task is locked"
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
deleted {
|
|
type: boolean
|
|
description: "Number of deleted events"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
delete_for_model {
|
|
"2.22" {
|
|
description: "Delete all model events. *This cannot be undone!*"
|
|
request {
|
|
type: object
|
|
required: [
|
|
model
|
|
]
|
|
properties {
|
|
model {
|
|
type: string
|
|
description: "Model ID"
|
|
}
|
|
allow_locked {
|
|
type: boolean
|
|
description: "Allow deleting events even if the model is locked"
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
deleted {
|
|
type: boolean
|
|
description: "Number of deleted events"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
debug_images {
|
|
"2.1" {
|
|
description: "Get all debug images of a task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
iters {
|
|
type: integer
|
|
description: "Max number of latest iterations for which to return debug images"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID of previous call (used for getting more results)"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
images {
|
|
type: array
|
|
items { type: object }
|
|
description: "Images list"
|
|
}
|
|
returned {
|
|
type: integer
|
|
description: "Number of results returned"
|
|
}
|
|
total {
|
|
type: number
|
|
description: "Total number of results available for this query. In case there are more than 10000 results it is set to 10000"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID for getting more results"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.7" {
|
|
description: "Get the debug image events for the requested amount of iterations per each task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
metrics
|
|
]
|
|
properties {
|
|
metrics {
|
|
type: array
|
|
items { "$ref": "#/definitions/task_metric" }
|
|
description: "List of task metrics for which the envents will be retreived"
|
|
}
|
|
iters {
|
|
type: integer
|
|
description: "Max number of latest iterations for which to return debug images"
|
|
}
|
|
navigate_earlier {
|
|
type: boolean
|
|
description: "If set then events are retreived from latest iterations to earliest ones. Otherwise from earliest iterations to the latest. The default is True"
|
|
}
|
|
refresh {
|
|
type: boolean
|
|
description: "If set then scroll will be moved to the latest iterations. The default is False"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID of previous call (used for getting more results)"
|
|
}
|
|
}
|
|
}
|
|
response {"$ref": "#/definitions/debug_images_response"}
|
|
}
|
|
"2.14": ${debug_images."2.7"} {
|
|
request {
|
|
properties {
|
|
metrics {
|
|
type: array
|
|
description: List of metrics and variants
|
|
items { "$ref": "#/definitions/task_metric_variants" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${debug_images."2.14"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
plots {
|
|
"2.20" {
|
|
description: "Get plot events for the requested amount of iterations per each task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
metrics
|
|
]
|
|
properties {
|
|
metrics {
|
|
type: array
|
|
description: List of metrics and variants
|
|
items { "$ref": "#/definitions/task_metric_variants" }
|
|
}
|
|
iters {
|
|
type: integer
|
|
description: "Max number of latest iterations for which to return plots"
|
|
}
|
|
navigate_earlier {
|
|
type: boolean
|
|
description: "If set then events are retreived from latest iterations to earliest ones. Otherwise from earliest iterations to the latest. The default is True"
|
|
}
|
|
refresh {
|
|
type: boolean
|
|
description: "If set then scroll will be moved to the latest iterations. The default is False"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID of previous call (used for getting more results)"
|
|
}
|
|
}
|
|
}
|
|
response {"$ref": "#/definitions/plots_response"}
|
|
}
|
|
"2.22": ${plots."2.20"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model plots. Otherwise task plots
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_debug_image_sample {
|
|
"2.12": {
|
|
description: "Return the debug image per metric and variant for the provided iteration"
|
|
request {
|
|
type: object
|
|
required: [task, metric, variant]
|
|
properties {
|
|
task {
|
|
description: "Task ID"
|
|
type: string
|
|
}
|
|
metric {
|
|
description: "Metric name"
|
|
type: string
|
|
}
|
|
variant {
|
|
description: "Metric variant"
|
|
type: string
|
|
}
|
|
iteration {
|
|
description: "The iteration to bring debug image from. If not specified then the latest reported image is retrieved"
|
|
type: integer
|
|
}
|
|
refresh {
|
|
description: "If set then scroll state will be refreshed to reflect the latest changes in the debug images"
|
|
type: boolean
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID from the previous call to get_debug_image_sample or empty"
|
|
}
|
|
}
|
|
}
|
|
response {"$ref": "#/definitions/debug_image_sample_response"}
|
|
}
|
|
"2.20": ${get_debug_image_sample."2.12"} {
|
|
request.properties.navigate_current_metric {
|
|
description: If set then subsequent navigation with next_debug_image_sample is done on the debug images for the passed metric only. Otherwise for all the metrics
|
|
type: boolean
|
|
default: true
|
|
}
|
|
}
|
|
"2.22": ${get_debug_image_sample."2.20"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model debug images. Otherwise task debug images
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
next_debug_image_sample {
|
|
"2.12": {
|
|
description: "Get the image for the next variant for the same iteration or for the next iteration"
|
|
request {
|
|
type: object
|
|
required: [task, scroll_id]
|
|
properties {
|
|
task {
|
|
description: "Task ID"
|
|
type: string
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID from the previous call to get_debug_image_sample"
|
|
}
|
|
navigate_earlier {
|
|
type: boolean
|
|
description: """If set then get the either previous variant event from the current iteration or (if does not exist) the last variant event from the previous iteration.
|
|
Otherwise next variant event from the current iteration or first variant event from the next iteration"""
|
|
}
|
|
}
|
|
}
|
|
response {"$ref": "#/definitions/debug_image_sample_response"}
|
|
}
|
|
"2.22": ${next_debug_image_sample."2.12"} {
|
|
request.properties.next_iteration {
|
|
type: boolean
|
|
default: false
|
|
description: If set then navigate to the next/previous iteration
|
|
}
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model debug images. Otherwise task debug images
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_plot_sample {
|
|
"2.20": {
|
|
description: "Return plots for the provided iteration"
|
|
request {
|
|
type: object
|
|
required: [task, metric]
|
|
properties {
|
|
task {
|
|
description: "Task ID"
|
|
type: string
|
|
}
|
|
metric {
|
|
description: "Metric name"
|
|
type: string
|
|
}
|
|
iteration {
|
|
description: "The iteration to bring plot from. If not specified then the latest reported plot is retrieved"
|
|
type: integer
|
|
}
|
|
refresh {
|
|
description: "If set then scroll state will be refreshed to reflect the latest changes in the plots"
|
|
type: boolean
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID from the previous call to get_plot_sample or empty"
|
|
}
|
|
navigate_current_metric {
|
|
description: If set then subsequent navigation with next_plot_sample is done on the plots for the passed metric only. Otherwise for all the metrics
|
|
type: boolean
|
|
default: true
|
|
}
|
|
}
|
|
}
|
|
response {"$ref": "#/definitions/plot_sample_response"}
|
|
}
|
|
"2.22": ${get_plot_sample."2.20"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model plots. Otherwise task plots
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
next_plot_sample {
|
|
"2.20": {
|
|
description: "Get the plot for the next metric for the same iteration or for the next iteration"
|
|
request {
|
|
type: object
|
|
required: [task, scroll_id]
|
|
properties {
|
|
task {
|
|
description: "Task ID"
|
|
type: string
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID from the previous call to get_plot_sample"
|
|
}
|
|
navigate_earlier {
|
|
type: boolean
|
|
description: """If set then get the either previous metric events from the current iteration or (if does not exist) the last metric events from the previous iteration.
|
|
Otherwise next metric events from the current iteration or first metric events from the next iteration"""
|
|
}
|
|
}
|
|
}
|
|
response {"$ref": "#/definitions/plot_sample_response"}
|
|
}
|
|
"2.22": ${next_plot_sample."2.20"} {
|
|
request.properties.next_iteration {
|
|
type: boolean
|
|
default: false
|
|
description: If set then navigate to the next/previous iteration
|
|
}
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model plots. Otherwise task plots
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_task_metrics{
|
|
"2.7": {
|
|
description: "For each task, get a list of metrics for which the requested event type was reported"
|
|
request {
|
|
type: object
|
|
required: [
|
|
tasks
|
|
]
|
|
properties {
|
|
tasks {
|
|
type: array
|
|
items { type: string }
|
|
description: "Task IDs"
|
|
}
|
|
event_type {
|
|
"description": "Event type"
|
|
"$ref": "#/definitions/event_type_enum"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
metrics {
|
|
type: array
|
|
items { type: object }
|
|
description: "List of task with their metrics"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${get_task_metrics."2.7"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then get metrics from model events. Otherwise from task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_task_log {
|
|
"1.5" {
|
|
description: "Get all 'log' events for this task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
order {
|
|
type: string
|
|
description: "Timestamp order in which log events will be returned (defaults to ascending)"
|
|
enum: [
|
|
asc
|
|
desc
|
|
]
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: ""
|
|
}
|
|
batch_size {
|
|
type: integer
|
|
description: ""
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
events {
|
|
type: array
|
|
# TODO: items: log event
|
|
items { type: object }
|
|
}
|
|
returned { type: integer }
|
|
total { type: integer }
|
|
scroll_id { type: string }
|
|
}
|
|
}
|
|
}
|
|
"1.7" {
|
|
description: "Get all 'log' events for this task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
order {
|
|
type: string
|
|
description: "Timestamp order in which log events will be returned (defaults to ascending)"
|
|
enum: [
|
|
asc
|
|
desc
|
|
]
|
|
}
|
|
from {
|
|
type: string
|
|
description: "Where will the log entries be taken from (default to the head of the log)"
|
|
enum: [
|
|
head
|
|
tail
|
|
]
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: ""
|
|
}
|
|
batch_size {
|
|
type: integer
|
|
description: ""
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
events {
|
|
type: array
|
|
# TODO: items: log event
|
|
items { type: object }
|
|
description: "Log items list"
|
|
}
|
|
returned {
|
|
type: integer
|
|
description: "Number of results returned"
|
|
}
|
|
total {
|
|
type: number
|
|
description: "Total number of results available for this query. In case there are more than 10000 results it is set to 10000"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID for getting more results"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.9" {
|
|
description: "Get 'log' events for this task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
batch_size {
|
|
type: integer
|
|
description: "The amount of log events to return"
|
|
}
|
|
navigate_earlier {
|
|
type: boolean
|
|
description: "If set then log events are retreived from the latest to the earliest ones (in timestamp descending order, unless order='asc'). Otherwise from the earliest to the latest ones (in timestamp ascending order, unless order='desc'). The default is True"
|
|
}
|
|
from_timestamp {
|
|
type: number
|
|
description: "Epoch time in UTC ms to use as the navigation start. Optional. If not provided, reference timestamp is determined by the 'navigate_earlier' parameter (if true, reference timestamp is the last timestamp and if false, reference timestamp is the first timestamp)"
|
|
}
|
|
order {
|
|
type: string
|
|
description: "If set, changes the order in which log events are returned based on the value of 'navigate_earlier'"
|
|
enum: [asc, desc]
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
events {
|
|
type: array
|
|
items { type: object }
|
|
description: "Log items list"
|
|
}
|
|
returned {
|
|
type: integer
|
|
description: "Number of log events returned"
|
|
}
|
|
total {
|
|
type: number
|
|
description: "Total number of log events available for this query. In case there are more than 10000 events it is set to 10000"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
get_task_events {
|
|
"2.1" {
|
|
description: "Scroll through task events, sorted by timestamp"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
order {
|
|
type:string
|
|
description: "'asc' (default) or 'desc'."
|
|
enum: [
|
|
asc
|
|
desc
|
|
]
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Pass this value on next call to get next page"
|
|
}
|
|
batch_size {
|
|
type: integer
|
|
description: "Number of events to return each time (default 500)"
|
|
}
|
|
event_type {
|
|
type: string
|
|
description: "Return only events of this type"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
events {
|
|
type: array
|
|
items { type: object }
|
|
description: "Events list"
|
|
}
|
|
returned {
|
|
type: integer
|
|
description: "Number of results returned"
|
|
}
|
|
total {
|
|
type: number
|
|
description: "Total number of results available for this query. In case there are more than 10000 results it is set to 10000"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID for getting more results"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${get_task_events."2.1"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then get retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
|
|
download_task_log {
|
|
"2.1" {
|
|
description: "Get an attachment containing the task's log"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
description: "Task ID"
|
|
type: string
|
|
}
|
|
line_type {
|
|
description: "Line format type"
|
|
type: string
|
|
enum: [
|
|
json
|
|
text
|
|
]
|
|
}
|
|
line_format {
|
|
type: string
|
|
description: "Line string format. Used if the line type is 'text'"
|
|
default: "{asctime} {worker} {level} {msg}"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
get_task_plots {
|
|
"2.1" {
|
|
description: "Get all 'plot' events for this task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
iters {
|
|
type: integer
|
|
description: "Max number of latest iterations for which to return plots"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID of previous call (used for getting more results)"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
plots {
|
|
type: array
|
|
items {
|
|
type: object
|
|
}
|
|
description: "Plots list"
|
|
}
|
|
returned {
|
|
type: integer
|
|
description: "Number of results returned"
|
|
}
|
|
total {
|
|
type: number
|
|
description: "Total number of results available for this query. In case there are more than 10000 results it is set to 10000"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID for getting more results"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.14": ${get_task_plots."2.1"} {
|
|
request {
|
|
properties {
|
|
metrics {
|
|
type: array
|
|
description: List of metrics and variants
|
|
items { "$ref": "#/definitions/metric_variants" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.16": ${get_task_plots."2.14"} {
|
|
request.properties.no_scroll {
|
|
description: If true then no scroll is created. Suitable for one time calls
|
|
type: boolean
|
|
default: false
|
|
}
|
|
}
|
|
"2.22": ${get_task_plots."2.16"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_multi_task_plots {
|
|
"2.1" {
|
|
description: "Get 'plot' events for the given tasks"
|
|
request {
|
|
type: object
|
|
required: [
|
|
tasks
|
|
]
|
|
properties {
|
|
tasks {
|
|
description: "List of task IDs"
|
|
type: array
|
|
items {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
}
|
|
iters {
|
|
type: integer
|
|
description: "Max number of latest iterations for which to return plots"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID of previous call (used for getting more results)"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
plots {
|
|
type: object
|
|
description: "Plots mapping (keyed by task name)"
|
|
}
|
|
returned {
|
|
type: integer
|
|
description: "Number of results returned"
|
|
}
|
|
total {
|
|
type: number
|
|
description: "Total number of results available for this query. In case there are more than 10000 results it is set to 10000"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID for getting more results"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.16": ${get_multi_task_plots."2.1"} {
|
|
request.properties.no_scroll {
|
|
description: If true then no scroll is created. Suitable for one time calls
|
|
type: boolean
|
|
default: false
|
|
}
|
|
}
|
|
"2.22": ${get_multi_task_plots."2.16"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_vector_metrics_and_variants {
|
|
"2.1" {
|
|
description: ""
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
metrics {
|
|
description: ""
|
|
type: array
|
|
items: { type: object }
|
|
# TODO: items: ???
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${get_vector_metrics_and_variants."2.1"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
vector_metrics_iter_histogram {
|
|
"2.1" {
|
|
description: "Get histogram data of all the scalar metrics and variants in the task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
metric
|
|
variant
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
metric {
|
|
type: string
|
|
description: ""
|
|
}
|
|
variant {
|
|
type: string
|
|
description: ""
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
images {
|
|
type: array
|
|
items {
|
|
type: object
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${vector_metrics_iter_histogram."2.1"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
scalar_metrics_iter_histogram {
|
|
"2.1" {
|
|
description: "Get histogram data of all the vector metrics and variants in the task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
samples {
|
|
description: "The amount of histogram points to return (0 to return all the points). Optional, the default value is 6000."
|
|
type: integer
|
|
}
|
|
key {
|
|
description: """
|
|
Histogram x axis to use:
|
|
iter - iteration number
|
|
iso_time - event time as ISO formatted string
|
|
timestamp - event timestamp as milliseconds since epoch
|
|
"""
|
|
"$ref": "#/definitions/scalar_key_enum"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
images {
|
|
type: array
|
|
items {
|
|
type: object
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
"2.14": ${scalar_metrics_iter_histogram."2.1"} {
|
|
request {
|
|
properties {
|
|
metrics {
|
|
type: array
|
|
description: List of metrics and variants
|
|
items { "$ref": "#/definitions/metric_variants" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${scalar_metrics_iter_histogram."2.14"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
multi_task_scalar_metrics_iter_histogram {
|
|
"2.1" {
|
|
description: "Used to compare scalar stats histogram of multiple tasks"
|
|
request {
|
|
type: object
|
|
required: [
|
|
tasks
|
|
]
|
|
properties {
|
|
tasks {
|
|
description: "List of task Task IDs. Maximum amount of tasks is 100"
|
|
type: array
|
|
items {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
}
|
|
samples {
|
|
description: "The amount of histogram points to return. Optional, the default value is 6000"
|
|
type: integer
|
|
}
|
|
key {
|
|
description: """
|
|
Histogram x axis to use:
|
|
iter - iteration number
|
|
iso_time - event time as ISO formatted string
|
|
timestamp - event timestamp as milliseconds since epoch
|
|
"""
|
|
"$ref": "#/definitions/scalar_key_enum"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
// properties {}
|
|
additionalProperties: true
|
|
}
|
|
}
|
|
"2.22": ${multi_task_scalar_metrics_iter_histogram."2.1"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_task_single_value_metrics {
|
|
"2.20" {
|
|
description: Get single value metrics for the passed tasks
|
|
request {
|
|
type: object
|
|
required: [tasks]
|
|
properties {
|
|
tasks {
|
|
description: "List of task Task IDs"
|
|
type: array
|
|
items {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
tasks {
|
|
description: Single value metrics grouped by task
|
|
type: array
|
|
items {
|
|
type: object
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: Task ID
|
|
}
|
|
values {
|
|
type: array
|
|
items {
|
|
type: object
|
|
properties {
|
|
metric { type: string }
|
|
variant { type: string}
|
|
value { type: number }
|
|
timestamp { type: number }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${get_task_single_value_metrics."2.20"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_task_latest_scalar_values {
|
|
"2.1" {
|
|
description: "Get the tasks's latest scalar values"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
metrics {
|
|
type: array
|
|
items {
|
|
type: object
|
|
properties {
|
|
name {
|
|
type: string
|
|
description: "Metric name"
|
|
}
|
|
variants {
|
|
type: array
|
|
items {
|
|
type: object
|
|
properties {
|
|
name {
|
|
type: string
|
|
description: "Variant name"
|
|
}
|
|
last_value {
|
|
type: number
|
|
description: "Last reported value"
|
|
}
|
|
last_100_value {
|
|
type: number
|
|
description: "Average of 100 last reported values"
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
get_scalar_metrics_and_variants {
|
|
"2.1" {
|
|
description: get task scalar metrics and variants
|
|
request {
|
|
type: object
|
|
required: [ task ]
|
|
properties {
|
|
task {
|
|
description: task ID
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
metrics {
|
|
type: object
|
|
additionalProperties: true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${get_scalar_metrics_and_variants."2.1"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
get_scalar_metric_data {
|
|
"2.1" {
|
|
description: "get scalar metric data for task"
|
|
request {
|
|
type: object
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: task ID
|
|
}
|
|
metric {
|
|
type: string
|
|
description: type of metric
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
events {
|
|
description: "task scalar metric events"
|
|
type: array
|
|
items {
|
|
type: object
|
|
}
|
|
}
|
|
returned {
|
|
type: integer
|
|
description: "amount of events returned"
|
|
}
|
|
total {
|
|
type: integer
|
|
description: "amount of events in task"
|
|
}
|
|
scroll_id {
|
|
type: string
|
|
description: "Scroll ID of previous call (used for getting more results)"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.16": ${get_scalar_metric_data."2.1"} {
|
|
request.properties.no_scroll {
|
|
description: If true then no scroll is created. Suitable for one time calls
|
|
type: boolean
|
|
default: false
|
|
}
|
|
}
|
|
"2.22": ${get_scalar_metric_data."2.16"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
scalar_metrics_iter_raw {
|
|
"2.16" {
|
|
description: "Get raw data for a specific metric variants in the task"
|
|
request {
|
|
type: object
|
|
required: [
|
|
task, metric
|
|
]
|
|
properties {
|
|
task {
|
|
type: string
|
|
description: "Task ID"
|
|
}
|
|
metric {
|
|
description: "Metric and variants for which to return data points"
|
|
"$ref": "#/definitions/metric_variants"
|
|
}
|
|
key {
|
|
description: """Array of x axis to return. Supported values:
|
|
iter - iteration number
|
|
timestamp - event timestamp as milliseconds since epoch
|
|
"""
|
|
"$ref": "#/definitions/scalar_key_enum"
|
|
}
|
|
batch_size {
|
|
description: "The number of data points to return for this call. Optional, the default value is 10000. Maximum batch size is 200000"
|
|
type: integer
|
|
default: 10000
|
|
}
|
|
count_total {
|
|
description: "Count the total number of data points. If false, total number of data points is not counted and null is returned"
|
|
type: boolean
|
|
default: false
|
|
}
|
|
scroll_id {
|
|
description: "Optional Scroll ID. Use to get more data points following a previous call"
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
variants {
|
|
description: "Raw data points for each variant"
|
|
type: object
|
|
additionalProperties: true
|
|
}
|
|
total {
|
|
description: "Total data points count. If count_total is false, null is returned"
|
|
type: integer
|
|
}
|
|
returned {
|
|
description: "Number of data points returned in this call. If 0 results were returned, no more results are avilable"
|
|
type: integer
|
|
}
|
|
scroll_id {
|
|
description: "Scroll ID. Use to get more data points when calling this endpoint again"
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"2.22": ${scalar_metrics_iter_raw."2.16"} {
|
|
request.properties.model_events {
|
|
type: boolean
|
|
description: If set then the retrieving model events. Otherwise task events
|
|
default: false
|
|
}
|
|
}
|
|
}
|
|
clear_scroll {
|
|
"2.18" {
|
|
description: "Clear an open Scroll ID"
|
|
request {
|
|
type: object
|
|
required: [
|
|
scroll_id
|
|
]
|
|
properties {
|
|
scroll_id {
|
|
description: "Scroll ID as returned by previous events service calls"
|
|
type: string
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
additionalProperties: false
|
|
}
|
|
}
|
|
}
|
|
|
|
clear_task_log {
|
|
"2.19" {
|
|
description: Remove old logs from task
|
|
request {
|
|
type: object
|
|
required: [task]
|
|
properties {
|
|
task {
|
|
description: Task ID
|
|
type: string
|
|
}
|
|
allow_locked {
|
|
type: boolean
|
|
description: Allow deleting events even if the task is locked
|
|
default: false
|
|
}
|
|
threshold_sec {
|
|
description: The amount of seconds ago to retain the log records. The older log records will be deleted. If not passed or 0 then all the log records for the task will be deleted
|
|
type: integer
|
|
}
|
|
}
|
|
}
|
|
response {
|
|
type: object
|
|
properties {
|
|
deleted {
|
|
description: The number of deleted log records
|
|
type: integer
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|