3866 lines
84 KiB
JSON
3866 lines
84 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"title": "Chronograf",
|
|
"description": "API endpoints for Chronograf",
|
|
"version": "1.2.0"
|
|
},
|
|
"schemes": [
|
|
"http"
|
|
],
|
|
"basePath": "/chronograf/v1",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"paths": {
|
|
"/": {
|
|
"get": {
|
|
"tags": [
|
|
"routes"
|
|
],
|
|
"summary": "Lists all the endpoints",
|
|
"description": "List of the endpoints.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Returns the links to the top level endpoints.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Routes"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources": {
|
|
"get": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "Configured data sources",
|
|
"description": "These data sources store time series data.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "An array of data sources",
|
|
"schema": {
|
|
"$ref": "#/definitions/Sources"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "Create new data source",
|
|
"parameters": [
|
|
{
|
|
"name": "source",
|
|
"in": "body",
|
|
"description": "Configuration options for data source",
|
|
"schema": {
|
|
"$ref": "#/definitions/Source"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully create data source",
|
|
"headers": {
|
|
"Location": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "Location of the newly created data source resource."
|
|
}
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/Source"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Configured data sources",
|
|
"description": "These data sources store time series data.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Data source used to supply time series information.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Source"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Unknown source id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"summary": "Update data source configuration",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of a data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "config",
|
|
"in": "body",
|
|
"description": "data source configuration",
|
|
"schema": {
|
|
"$ref": "#/definitions/Source"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Data source's configuration was changed",
|
|
"schema": {
|
|
"$ref": "#/definitions/Source"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent data source.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"sources"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "This specific data source will be removed from the data store. All associated kapacitor resources and kapacitor rules resources are also removed.",
|
|
"responses": {
|
|
"204": {
|
|
"description": "data source has been removed"
|
|
},
|
|
"404": {
|
|
"description": "Unknown data source id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/proxy": {
|
|
"post": {
|
|
"tags": [
|
|
"sources",
|
|
"proxy"
|
|
],
|
|
"description": "Query the backend time series data source and return the response according to `format`",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"in": "body",
|
|
"description": "Query Parameters",
|
|
"schema": {
|
|
"$ref": "#/definitions/Proxy"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Result of the query from the backend time series data source.",
|
|
"schema": {
|
|
"$ref": "#/definitions/ProxyResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Any query that results in a data source error (syntax error, etc) will cause this response. The error message will be passed back in the body",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"408": {
|
|
"description": "Timeout trying to query data source.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/permissions": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"users"
|
|
],
|
|
"summary": "Retrieve possible permissions for this data source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Listing of all possible permissions",
|
|
"schema": {
|
|
"$ref": "#/definitions/AllPermissions"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/users": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"users"
|
|
],
|
|
"summary": "Retrieve all data sources users",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Listing of all users",
|
|
"schema": {
|
|
"$ref": "#/definitions/Users"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"sources",
|
|
"users"
|
|
],
|
|
"summary": "Create new user for this data source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "user",
|
|
"in": "body",
|
|
"description": "Configuration options for new user",
|
|
"schema": {
|
|
"$ref": "#/definitions/User"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully created new user",
|
|
"headers": {
|
|
"Location": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "Location of the newly created user resource."
|
|
}
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/User"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/users/{user_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"users"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the specific user",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Returns information about a specific user",
|
|
"description": "Specific User within a data source",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Information relating to the user",
|
|
"schema": {
|
|
"$ref": "#/definitions/User"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Unknown user or unknown source",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"sources",
|
|
"users"
|
|
],
|
|
"summary": "Update user configuration",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the specific user",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "config",
|
|
"in": "body",
|
|
"description": "user configuration",
|
|
"schema": {
|
|
"$ref": "#/definitions/User"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Users's configuration was changed",
|
|
"schema": {
|
|
"$ref": "#/definitions/User"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent user or source.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"sources",
|
|
"users"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "user_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the specific user",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "This specific user will be removed from the data source",
|
|
"responses": {
|
|
"204": {
|
|
"description": "User has been removed"
|
|
},
|
|
"404": {
|
|
"description": "Unknown user id or data source",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/roles": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"users",
|
|
"roles"
|
|
],
|
|
"summary": "Retrieve all data sources roles. Available only in Influx Enterprise",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Listing of all roles",
|
|
"schema": {
|
|
"$ref": "#/definitions/Roles"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"sources",
|
|
"users",
|
|
"roles"
|
|
],
|
|
"summary": "Create new role for this data source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "roleuser",
|
|
"in": "body",
|
|
"description": "Configuration options for new role",
|
|
"schema": {
|
|
"$ref": "#/definitions/Role"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully created new role",
|
|
"headers": {
|
|
"Location": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "Location of the newly created role resource."
|
|
}
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/Role"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/roles/{role_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"users",
|
|
"roles"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "role_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the specific role",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Returns information about a specific role",
|
|
"description": "Specific role within a data source",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Information relating to the role",
|
|
"schema": {
|
|
"$ref": "#/definitions/Role"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Unknown role or unknown source",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"sources",
|
|
"users",
|
|
"roles"
|
|
],
|
|
"summary": "Update role configuration",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "role_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the specific role",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "config",
|
|
"in": "body",
|
|
"description": "role configuration",
|
|
"schema": {
|
|
"$ref": "#/definitions/Role"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Roles's configuration was changed",
|
|
"schema": {
|
|
"$ref": "#/definitions/Role"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent role or source.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"sources",
|
|
"users",
|
|
"roles"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "role_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the specific role",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "This specific role will be removed from the data source",
|
|
"responses": {
|
|
"204": {
|
|
"description": "Role has been removed"
|
|
},
|
|
"404": {
|
|
"description": "Unknown role id or data source",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/dbs/": {
|
|
"get": {
|
|
"tags": [
|
|
"databases"
|
|
],
|
|
"summary": "Retrieve all databases for a source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Listing of all databases for a source",
|
|
"schema": {
|
|
"$ref": "#/definitions/Databases"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"databases"
|
|
],
|
|
"summary": "Create new database for a source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "database",
|
|
"in": "body",
|
|
"description": "Configuration options for a database",
|
|
"schema": {
|
|
"$ref": "#/definitions/Database"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Database successfully created.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Database"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/dbs/{db_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"databases"
|
|
],
|
|
"summary": "Delete database for a source",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "db_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the database",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Database has been deleted",
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/dbs/{db_id}/rps": {
|
|
"get": {
|
|
"tags": [
|
|
"retention policies"
|
|
],
|
|
"summary": "Retrieve all retention policies for a database",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "db_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the database",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Listing of all retention policies for a database",
|
|
"schema": {
|
|
"$ref": "#/definitions/RetentionPolicies"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Specified retention policy does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"retention policies"
|
|
],
|
|
"summary": "Create new retention policy for a database",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "db_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the database",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rp",
|
|
"in": "body",
|
|
"description": "Configuration options for the retention policy",
|
|
"schema": {
|
|
"$ref": "#/definitions/RetentionPolicy"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Retention Policy successfully created.",
|
|
"schema": {
|
|
"$ref": "#/definitions/RetentionPolicy"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/dbs/{db_id}/rps/{rp_id}": {
|
|
"patch": {
|
|
"tags": [
|
|
"retention policies"
|
|
],
|
|
"summary": "Alter retention policy for a database",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "db_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the database",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rp_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the retention policy",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rp",
|
|
"in": "body",
|
|
"description": "Configuration options for the retention policy",
|
|
"schema": {
|
|
"$ref": "#/definitions/RetentionPolicy"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Retention Policy was altered",
|
|
"schema": {
|
|
"$ref": "#/definitions/RetentionPolicy"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Database or source does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"retention policies"
|
|
],
|
|
"summary": "Delete retention policy for a database",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the data source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "db_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the database",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rp_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the retention policy",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Retention Policy has been deleted",
|
|
},
|
|
"404": {
|
|
"description": "Data source id does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/kapacitors": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Configured kapacitors",
|
|
"responses": {
|
|
"200": {
|
|
"description": "An array of kapacitors",
|
|
"schema": {
|
|
"$ref": "#/definitions/Kapacitors"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors"
|
|
],
|
|
"summary": "Create new kapacitor backend",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapacitor",
|
|
"in": "body",
|
|
"description": "Configuration options for kapacitor",
|
|
"schema": {
|
|
"$ref": "#/definitions/Kapacitor"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully created kapacitor source",
|
|
"headers": {
|
|
"Location": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "Location of the newly created kapacitor resource."
|
|
}
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/Kapacitor"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/kapacitors/{kapa_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Configured kapacitors",
|
|
"description": "These kapacitors are used for monitoring and alerting.",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Kapacitor connection information",
|
|
"schema": {
|
|
"$ref": "#/definitions/Kapacitor"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Unknown data source or kapacitor id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors"
|
|
],
|
|
"summary": "Update kapacitor configuration",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of a kapacitor backend",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "config",
|
|
"in": "body",
|
|
"description": "kapacitor configuration",
|
|
"schema": {
|
|
"$ref": "#/definitions/Kapacitor"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Kapacitor's configuration was changed",
|
|
"schema": {
|
|
"$ref": "#/definitions/Kapacitor"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent data source or kapacitor.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "This specific kapacitor will be removed. All associated rule resources will also be removed from the store.",
|
|
"responses": {
|
|
"204": {
|
|
"description": "kapacitor has been removed."
|
|
},
|
|
"404": {
|
|
"description": "Unknown Data source or Kapacitor id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/kapacitors/{kapa_id}/rules": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"rules"
|
|
],
|
|
"description": "Get all defined alert rules.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor backend.",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "All alert rules for this specific kapacitor are returned",
|
|
"schema": {
|
|
"$ref": "#/definitions/Rules"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Data source or Kapacitor ID does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Internal server error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"rules"
|
|
],
|
|
"description": "Create kapacitor alert rule",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor backend.",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rule",
|
|
"in": "body",
|
|
"description": "Rule to generate alert rule",
|
|
"schema": {
|
|
"$ref": "#/definitions/Rule"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully created new kapacitor alert rule",
|
|
"headers": {
|
|
"Location": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "Location of the newly created kapacitor rule resource."
|
|
}
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/Rule"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Source ID or Kapacitor ID does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Source ID , Kapacitor ID or alert are unprocessable",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Internal server error; generally a problem creating alert in kapacitor",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/kapacitors/{kapa_id}/rules/{rule_id}": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"rules"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rule_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the rule",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Specific kapacitor alert rule",
|
|
"description": "Alerting rule for kapacitor",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Alert exists and has a specific TICKscript",
|
|
"schema": {
|
|
"$ref": "#/definitions/Rule"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Unknown data source, kapacitor id, or rule id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"rules"
|
|
],
|
|
"summary": "Update rule alert rule configuration",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of a kapacitor backend",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rule_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of a rule",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rule",
|
|
"in": "body",
|
|
"description": "Rule update",
|
|
"schema": {
|
|
"$ref": "#/definitions/Rule"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Alert configuration was changed",
|
|
"schema": {
|
|
"$ref": "#/definitions/Rule"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent data source, kapacitor, or rule.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"rules"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "rule_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the rule",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "This specific alert rule will be removed.",
|
|
"responses": {
|
|
"204": {
|
|
"description": "Alert rule has been removed."
|
|
},
|
|
"404": {
|
|
"description": "Unknown Data source, Kapacitor id, or alert rule",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/sources/{id}/kapacitors/{kapa_id}/proxy": {
|
|
"get": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"proxy"
|
|
],
|
|
"description": "GET to `path` of kapacitor. The response and status code from kapacitor is directly returned.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor backend.",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"type": "string",
|
|
"description": "The kapacitor API path to use in the proxy redirect",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Kapacitor returned no content"
|
|
},
|
|
"404": {
|
|
"description": "Data source or Kapacitor ID does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Response directly from kapacitor",
|
|
"schema": {
|
|
"$ref": "#/definitions/KapacitorProxyResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"proxy"
|
|
],
|
|
"description": "DELETE to `path` of kapacitor. The response and status code from kapacitor is directly returned.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor backend.",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"type": "string",
|
|
"description": "The kapacitor API path to use in the proxy redirect",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Kapacitor returned no content"
|
|
},
|
|
"404": {
|
|
"description": "Data source or Kapacitor ID does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Response directly from kapacitor",
|
|
"schema": {
|
|
"$ref": "#/definitions/KapacitorProxyResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"proxy"
|
|
],
|
|
"description": "PATCH body directly to configured kapacitor. The response and status code from kapacitor is directly returned.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor backend.",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"type": "string",
|
|
"description": "The kapacitor API path to use in the proxy redirect",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"in": "body",
|
|
"description": "Kapacitor body",
|
|
"schema": {
|
|
"$ref": "#/definitions/KapacitorProxy"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Kapacitor returned no content"
|
|
},
|
|
"404": {
|
|
"description": "Data source or Kapacitor ID does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Response directly from kapacitor",
|
|
"schema": {
|
|
"$ref": "#/definitions/KapacitorProxyResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"sources",
|
|
"kapacitors",
|
|
"proxy"
|
|
],
|
|
"description": "POST body directly to configured kapacitor. The response and status code from kapacitor is directly returned.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the source",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "kapa_id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the kapacitor backend.",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"type": "string",
|
|
"description": "The kapacitor API path to use in the proxy redirect",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"in": "body",
|
|
"description": "Kapacitor body",
|
|
"schema": {
|
|
"$ref": "#/definitions/KapacitorProxy"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Kapacitor returned no content"
|
|
},
|
|
"404": {
|
|
"description": "Kapacitor ID does not exist.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Response directly from kapacitor",
|
|
"schema": {
|
|
"$ref": "#/definitions/KapacitorProxyResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/mappings": {
|
|
"get": {
|
|
"tags": [
|
|
"layouts",
|
|
"mappings"
|
|
],
|
|
"summary": "Mappings between app names and measurements",
|
|
"description": "Mappings provide a means to alias measurement names found within a telegraf database and application layouts found within Chronograf\n",
|
|
"responses": {
|
|
"200": {
|
|
"description": "An array of mappings",
|
|
"schema": {
|
|
"$ref": "#/definitions/Mappings"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/layouts": {
|
|
"get": {
|
|
"tags": [
|
|
"layouts"
|
|
],
|
|
"summary": "Pre-configured layouts",
|
|
"parameters": [
|
|
{
|
|
"name": "measurement",
|
|
"in": "query",
|
|
"description": "Returns layouts with this measurement",
|
|
"required": false,
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"collectionFormat": "multi"
|
|
},
|
|
{
|
|
"name": "app",
|
|
"in": "query",
|
|
"description": "Returns layouts with this app",
|
|
"required": false,
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"collectionFormat": "multi"
|
|
}
|
|
],
|
|
"description": "Layouts are a collection of `Cells` that visualize time-series data.\n",
|
|
"responses": {
|
|
"200": {
|
|
"description": "An array of layouts",
|
|
"schema": {
|
|
"$ref": "#/definitions/Layouts"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"layouts"
|
|
],
|
|
"summary": "Create new layout",
|
|
"parameters": [
|
|
{
|
|
"name": "layout",
|
|
"in": "body",
|
|
"description": "Defines the layout and queries of the cells within the layout.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Layout"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully created new layout",
|
|
"headers": {
|
|
"Location": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "Location of the newly created layout"
|
|
}
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/Layout"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/layouts/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"layouts"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the layout",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Specific pre-configured layout containing cells and queries.",
|
|
"description": "layouts will hold information about how to layout the page of graphs.\n",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Returns the specified layout containing `cells`.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Layout"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Unknown layout id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"layouts"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of the layout",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "This specific layout will be removed from the data store",
|
|
"responses": {
|
|
"204": {
|
|
"description": "Layout has been removed."
|
|
},
|
|
"404": {
|
|
"description": "Unknown layout id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"layouts"
|
|
],
|
|
"summary": "Replace layout configuration.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "string",
|
|
"description": "ID of a layout",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "config",
|
|
"in": "body",
|
|
"description": "layout configuration update parameters",
|
|
"schema": {
|
|
"$ref": "#/definitions/Layout"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Layout has been replaced and the new layout is returned.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Layout"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent layout.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/dashboards": {
|
|
"get": {
|
|
"tags": [
|
|
"dashboards"
|
|
],
|
|
"summary": "List of all dashboards",
|
|
"responses": {
|
|
"200": {
|
|
"description": "An array of dashboards",
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboards"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"dashboards"
|
|
],
|
|
"summary": "Create new dashboard",
|
|
"parameters": [
|
|
{
|
|
"name": "dashboard",
|
|
"in": "body",
|
|
"description": "Configuration options for new dashboard",
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successfully created new dashboard",
|
|
"headers": {
|
|
"Location": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "Location of the newly created dashboard resource."
|
|
}
|
|
},
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/dashboards/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"dashboards"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "integer",
|
|
"description": "ID of the dashboard",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Specific dashboard",
|
|
"description": "Dashboards contain visual display information as well as links to queries",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Returns the specified dashboard with links to queries.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Unknown dashboard id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"dashboards"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "integer",
|
|
"description": "ID of the layout",
|
|
"required": true
|
|
}
|
|
],
|
|
"summary": "Deletes the specified dashboard",
|
|
"responses": {
|
|
"204": {
|
|
"description": "Dashboard has been removed."
|
|
},
|
|
"404": {
|
|
"description": "Unknown dashboard id",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "Unexpected internal service error",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"tags": [
|
|
"dashboards"
|
|
],
|
|
"summary": "Replace dashboard information.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "integer",
|
|
"description": "ID of a dashboard",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "config",
|
|
"in": "body",
|
|
"description": "dashboard configuration update parameters",
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Dashboard has been replaced and the new dashboard is returned.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent dashboard.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"patch": {
|
|
"tags": [
|
|
"layouts"
|
|
],
|
|
"summary": "Update dashboard information.",
|
|
"description": "Update either the dashboard name or the dashboard cells",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"type": "integer",
|
|
"description": "ID of a dashboard",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "config",
|
|
"in": "body",
|
|
"description": "dashboard configuration update parameters. Must be either name or cells",
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
},
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Dashboard has been updated and the new dashboard is returned.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Happens when trying to access a non-existent dashboard.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
},
|
|
"default": {
|
|
"description": "A processing or an unexpected error.",
|
|
"schema": {
|
|
"$ref": "#/definitions/Error"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"Databases": {
|
|
"type": "object",
|
|
"required": [
|
|
"databases"
|
|
],
|
|
"properties": {
|
|
"databases": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Database"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Database": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"example": {
|
|
"name": "NOAA_water_database",
|
|
"duration": "3d",
|
|
"replication": 3,
|
|
"shardDuration": "3h",
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/1/dbs/NOAA_water_database",
|
|
"rps": "/chronograf/v1/sources/1/dbs/NOAA_water_database/rps"
|
|
}
|
|
},
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The identifying name of the database",
|
|
},
|
|
"duration": {
|
|
"type": "string",
|
|
"description": "the duration of the default retention policy"
|
|
},
|
|
"replication": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": "how many copies of the data are stored in the cluster"
|
|
},
|
|
"shardDuration": {
|
|
"type": "string",
|
|
"description": "the interval spanned by each shard group"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"description": "Self link mapping to this resource",
|
|
"format": "url"
|
|
},
|
|
"rps": {
|
|
"type": "string",
|
|
"description": "Link to retention policies for this database",
|
|
"format": "url"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Kapacitors": {
|
|
"type": "object",
|
|
"required": [
|
|
"kapacitors"
|
|
],
|
|
"properties": {
|
|
"kapacitors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Kapacitor"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Kapacitor": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"url"
|
|
],
|
|
"example": {
|
|
"id": "4",
|
|
"name": "kapa",
|
|
"url": "http://localhost:9092",
|
|
"links": {
|
|
"proxy": "/chronograf/v1/sources/4/kapacitors/4/proxy",
|
|
"self": "/chronograf/v1/sources/4/kapacitors/4",
|
|
"rules": "/chronograf/v1/sources/4/kapacitors/4/rules"
|
|
}
|
|
},
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "Unique identifier representing a kapacitor instance.",
|
|
"readOnly": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "User facing name of kapacitor instance."
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"description": "Username for authentication to kapacitor."
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"description": "Password is in cleartext."
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "URL for the kapacitor backend (e.g. http://localhost:9092)"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"description": "Self link mapping to this resource",
|
|
"format": "url"
|
|
},
|
|
"proxy": {
|
|
"type": "string",
|
|
"description": "URL location of proxy endpoint for this kapacitor",
|
|
"format": "url"
|
|
},
|
|
"rules": {
|
|
"type": "string",
|
|
"description": "URL location of rules endpoint for this kapacitor",
|
|
"format": "url"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"KapacitorProxy": {
|
|
"description": "Entirely used as the body for the request to the kapacitor backend.",
|
|
"type": "object"
|
|
},
|
|
"KapacitorProxyResponse": {
|
|
"description": "Entire response from the kapacitor backend.",
|
|
"type": "object"
|
|
},
|
|
"Rules": {
|
|
"type": "object",
|
|
"required": [
|
|
"rules"
|
|
],
|
|
"properties": {
|
|
"rules": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Rule"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"QueryConfig": {
|
|
"type": "object",
|
|
"example": {
|
|
"id": "ce72917d-1ecb-45ea-a6cb-4c122deb93c7",
|
|
"database": "telegraf",
|
|
"measurement": "cpu",
|
|
"retentionPolicy": "autogen",
|
|
"fields": [
|
|
{
|
|
"field": "usage_system",
|
|
"funcs": [
|
|
"max"
|
|
]
|
|
}
|
|
],
|
|
"tags": {},
|
|
"groupBy": {
|
|
"time": "10m",
|
|
"tags": []
|
|
},
|
|
"areTagsAccepted": true
|
|
},
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"database": {
|
|
"type": "string"
|
|
},
|
|
"measurement": {
|
|
"type": "string"
|
|
},
|
|
"retentionPolicy": {
|
|
"type": "string"
|
|
},
|
|
"areTagsAccepted": {
|
|
"type": "boolean"
|
|
},
|
|
"rawText": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"groupBy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"time": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"time",
|
|
"tags"
|
|
]
|
|
},
|
|
"fields": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"field": {
|
|
"type": "string"
|
|
},
|
|
"funcs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"field",
|
|
"funcs"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"database",
|
|
"measurement",
|
|
"retentionPolicy",
|
|
"areTagsAccepted",
|
|
"tags",
|
|
"groupBy",
|
|
"fields"
|
|
]
|
|
},
|
|
"KapacitorNode": {
|
|
"type": "object",
|
|
"description": "Represents a node in the kapacitor TICKscript graph",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the kapacitor node e.g. slack"
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "All arguments to the named node",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"properties": {
|
|
"type": "array",
|
|
"description": "All properties attached to the kapacitor node",
|
|
"items": {
|
|
"$ref": "#/definitions/KapacitorProperty"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"KapacitorProperty": {
|
|
"type": "object",
|
|
"description": "Represents a property attached to a node in the kapacitor TICKscript graph",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the kapacitor property e.g. channel for a slack ndoe"
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"description": "All arguments to the named property",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"RetentionPolicies": {
|
|
"type": "object",
|
|
"required": [
|
|
"retentionPolicies"
|
|
],
|
|
"properties": {
|
|
"retentionPolicies": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/RetentionPolicy"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"RetentionPolicy": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"duration",
|
|
"replication"
|
|
],
|
|
"example": {
|
|
"name": "weekly",
|
|
"duration": "7d",
|
|
"replication": 1,
|
|
"shardDuration": "7d",
|
|
"default": true,
|
|
"links": {
|
|
"self": "/chronograf/v1/ousrces/1/dbs/NOAA_water_database/rps/liquid"
|
|
}
|
|
},
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The identifying name of the retention policy",
|
|
},
|
|
"duration": {
|
|
"type": "string",
|
|
"description": "the duration of the retention policy"
|
|
},
|
|
"replication": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"description": "how many copies of the data are stored in the cluster"
|
|
},
|
|
"shardDuration": {
|
|
"type": "string",
|
|
"description": "the interval spanned by each shard group"
|
|
},
|
|
"default": {
|
|
"type": "boolean",
|
|
"description": "Indicates whether this retention policy should be the default"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"description": "Self link mapping to this resource",
|
|
"format": "url"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Rule": {
|
|
"type": "object",
|
|
"example": {
|
|
"id": "chronograf-v1-b2b065ea-79bd-4e4f-8c0d-d0ef68477d38",
|
|
"query": {
|
|
"id": "ce72917d-1ecb-45ea-a6cb-4c122deb93c7",
|
|
"database": "telegraf",
|
|
"measurement": "cpu",
|
|
"retentionPolicy": "autogen",
|
|
"fields": [
|
|
{
|
|
"field": "usage_system",
|
|
"funcs": [
|
|
"max"
|
|
]
|
|
}
|
|
],
|
|
"tags": {},
|
|
"groupBy": {
|
|
"time": "10m",
|
|
"tags": []
|
|
},
|
|
"areTagsAccepted": true
|
|
},
|
|
"every": "30s",
|
|
"alerts": [
|
|
"alerta"
|
|
],
|
|
"alertNodes": [
|
|
{
|
|
"name": "alerta",
|
|
"args": [],
|
|
"properties": []
|
|
}
|
|
],
|
|
"message": "too much spam",
|
|
"details": "muh body",
|
|
"trigger": "threshold",
|
|
"values": {
|
|
"operator": "greater than",
|
|
"value": "10"
|
|
},
|
|
"name": "Untitled Rule",
|
|
"tickscript": "var db = 'telegraf'\n\nvar rp = 'autogen'\n\nvar measurement = 'cpu'\n\nvar groupBy = []\n\nvar whereFilter = lambda: TRUE\n\nvar period = 10m\n\nvar every = 30s\n\nvar name = 'Untitled Rule'\n\nvar idVar = name + ':{{.Group}}'\n\nvar message = 'too much spam'\n\nvar idTag = 'alertID'\n\nvar levelTag = 'level'\n\nvar messageField = 'message'\n\nvar durationField = 'duration'\n\nvar outputDB = 'chronograf'\n\nvar outputRP = 'autogen'\n\nvar outputMeasurement = 'alerts'\n\nvar triggerType = 'threshold'\n\nvar details = 'muh body'\n\nvar crit = 10\n\nvar data = stream\n |from()\n .database(db)\n .retentionPolicy(rp)\n .measurement(measurement)\n .groupBy(groupBy)\n .where(whereFilter)\n |window()\n .period(period)\n .every(every)\n .align()\n |max('usage_system')\n .as('value')\n\nvar trigger = data\n |alert()\n .crit(lambda: \"value\" > crit)\n .stateChangesOnly()\n .message(message)\n .id(idVar)\n .idTag(idTag)\n .levelTag(levelTag)\n .messageField(messageField)\n .durationField(durationField)\n .details(details)\n .alerta()\n\ntrigger\n |influxDBOut()\n .create()\n .database(outputDB)\n .retentionPolicy(outputRP)\n .measurement(outputMeasurement)\n .tag('alertName', name)\n .tag('triggerType', triggerType)\n\ntrigger\n |httpOut('output')\n",
|
|
"status": "enabled",
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/5/kapacitors/5/rules/chronograf-v1-b2b065ea-79bd-4e4f-8c0d-d0ef68477d38",
|
|
"kapacitor": "/chronograf/v1/sources/5/kapacitors/5/proxy?path=%2Fkapacitor%2Fv1%2Ftasks%2Fchronograf-v1-b2b065ea-79bd-4e4f-8c0d-d0ef68477d38",
|
|
"output": "/chronograf/v1/sources/5/kapacitors/5/proxy?path=%2Fkapacitor%2Fv1%2Ftasks%2Fchronograf-v1-b2b065ea-79bd-4e4f-8c0d-d0ef68477d38%2Foutput"
|
|
}
|
|
},
|
|
"required": [
|
|
"query",
|
|
"every",
|
|
"trigger"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "ID for this rule; the ID is shared with kapacitor"
|
|
},
|
|
"query": {
|
|
"$ref": "#/definitions/QueryConfig"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "User facing name of the alerting rule"
|
|
},
|
|
"every": {
|
|
"type": "string",
|
|
"description": "Golang duration string specifying how often the alert condition is checked"
|
|
},
|
|
"alerts": {
|
|
"type": "array",
|
|
"description": "Array of alerting services to warn if the alert is triggered",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"alerta",
|
|
"post",
|
|
"http",
|
|
"hipchat",
|
|
"opsgenie",
|
|
"pagerduty",
|
|
"victorops",
|
|
"smtp",
|
|
"email",
|
|
"exec",
|
|
"sensu",
|
|
"slack",
|
|
"talk",
|
|
"telegram",
|
|
"tcp"
|
|
]
|
|
}
|
|
},
|
|
"alertNodes": {
|
|
"type": "array",
|
|
"description": "Arguments and properties to add to alert",
|
|
"items": {
|
|
"$ref": "#/definitions/KapacitorNode"
|
|
}
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"description": "Message to send when alert occurs."
|
|
},
|
|
"details": {
|
|
"type": "string",
|
|
"description": "Template for constructing a detailed HTML message for the alert. (Currently, only used for email/smtp"
|
|
},
|
|
"trigger": {
|
|
"type": "string",
|
|
"description": "Trigger defines the alerting structure; deadman alert if no data are received for the specified time range; relative alert if the data change relative to the data in a different time range; threshold alert if the data cross a boundary",
|
|
"enum": [
|
|
"deadman",
|
|
"relative",
|
|
"threshold"
|
|
]
|
|
},
|
|
"values": {
|
|
"type": "object",
|
|
"description": "Alerting logic for trigger type",
|
|
"properties": {
|
|
"change": {
|
|
"description": "Specifies if the change is percent or absolute",
|
|
"type": "string",
|
|
"enum": [
|
|
"% change",
|
|
"change"
|
|
]
|
|
},
|
|
"period": {
|
|
"description": "Length of time before deadman is alerted (golang duration)",
|
|
"type": "string"
|
|
},
|
|
"shift": {
|
|
"description": "Amount of time to look into the past to compare to the present (golang duration)",
|
|
"type": "string"
|
|
},
|
|
"operator": {
|
|
"description": "Operator for alert comparison",
|
|
"type": "string",
|
|
"enum": [
|
|
"greater than",
|
|
"less than",
|
|
"equal to or less than",
|
|
"equal to or greater",
|
|
"equal to",
|
|
"not equal to",
|
|
"inside range",
|
|
"outside range"
|
|
]
|
|
},
|
|
"value": {
|
|
"description": "Value is the boundary value when alert goes critical",
|
|
"type": "string"
|
|
},
|
|
"rangeValue": {
|
|
"description": "Optional value for range comparisions",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"tickscript": {
|
|
"type": "string",
|
|
"description": "TICKscript representing this rule"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"description": "Represents if this rule is enabled or disabled in kapacitor",
|
|
"enum": [
|
|
"enabled",
|
|
"disabled"
|
|
]
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"required": [
|
|
"self",
|
|
"kapacitor"
|
|
],
|
|
"properties": {
|
|
"self": {
|
|
"description": "Self link pointing to this rule resource",
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"kapacitor": {
|
|
"description": "Link pointing to the kapacitor proxy for this rule including the path query parameter.",
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"output": {
|
|
"description": "Link pointing to the kapacitor httpOut node of the tickscript; includes the path query argument",
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Sources": {
|
|
"type": "object",
|
|
"required": [
|
|
"sources"
|
|
],
|
|
"properties": {
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Source"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Source": {
|
|
"type": "object",
|
|
"example": {
|
|
"id": "4",
|
|
"name": "Influx 1",
|
|
"url": "http://localhost:8086",
|
|
"default": false,
|
|
"telegraf": "telegraf",
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/4",
|
|
"kapacitors": "/chronograf/v1/sources/4/kapacitors",
|
|
"proxy": "/chronograf/v1/sources/4/proxy",
|
|
"permissions": "/chronograf/v1/sources/4/permissions",
|
|
"users": "/chronograf/v1/sources/4/users",
|
|
"roles": "/chronograf/v1/sources/4/roles"
|
|
}
|
|
},
|
|
"required": [
|
|
"url"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "Unique identifier representing a specific data source.",
|
|
"readOnly": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "User facing name of data source"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Format of the data source",
|
|
"readOnly": true,
|
|
"enum": [
|
|
"influx",
|
|
"influx-enterprise",
|
|
"influx-relay"
|
|
]
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"description": "Username for authentication to data source"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"description": "Password is in cleartext."
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "URL for the time series data source backend (e.g. http://localhost:8086)"
|
|
},
|
|
"metaUrl": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "URL for the influxdb meta node"
|
|
},
|
|
"insecureSkipVerify": {
|
|
"type": "boolean",
|
|
"description": "True means any certificate presented by the source is accepted. Typically used for self-signed certs. Probably should only be used for testing."
|
|
},
|
|
"default": {
|
|
"type": "boolean",
|
|
"description": "Indicates whether this source is the default source"
|
|
},
|
|
"telegraf": {
|
|
"type": "string",
|
|
"description": "Database where telegraf information is stored for this source",
|
|
"default": "telegraf"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"description": "Self link mapping to this resource",
|
|
"format": "url"
|
|
},
|
|
"proxy": {
|
|
"type": "string",
|
|
"description": "URL location of proxy endpoint for this source",
|
|
"format": "url"
|
|
},
|
|
"kapacitors": {
|
|
"type": "string",
|
|
"description": "URL location of the kapacitors endpoint for this source",
|
|
"format": "url"
|
|
},
|
|
"users": {
|
|
"type": "string",
|
|
"description": "URL location of the users endpoint for this source",
|
|
"format": "url"
|
|
},
|
|
"permissions": {
|
|
"type": "string",
|
|
"description": "URL location of the permissions endpoint for this source",
|
|
"format": "url"
|
|
},
|
|
"roles": {
|
|
"type": "string",
|
|
"description": "Optional path to the roles endpoint IFF it is supported on this source",
|
|
"format": "url"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Proxy": {
|
|
"type": "object",
|
|
"example": {
|
|
"query": "select * from cpu where time > now() - 10m",
|
|
"db": "telegraf",
|
|
"rp": "autogen",
|
|
"format": "raw"
|
|
},
|
|
"required": [
|
|
"query"
|
|
],
|
|
"properties": {
|
|
"query": {
|
|
"type": "string"
|
|
},
|
|
"db": {
|
|
"type": "string"
|
|
},
|
|
"rp": {
|
|
"type": "string"
|
|
},
|
|
"format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"raw"
|
|
],
|
|
"default": "raw"
|
|
}
|
|
}
|
|
},
|
|
"ProxyResponse": {
|
|
"type": "object",
|
|
"example": {
|
|
"results": [
|
|
{
|
|
"statement_id": 0,
|
|
"series": [
|
|
{
|
|
"name": "cpu",
|
|
"columns": [
|
|
"time",
|
|
"cpu",
|
|
"host",
|
|
"usage_guest",
|
|
"usage_guest_nice",
|
|
"usage_idle",
|
|
"usage_iowait",
|
|
"usage_irq",
|
|
"usage_nice",
|
|
"usage_softirq",
|
|
"usage_steal",
|
|
"usage_system",
|
|
"usage_user"
|
|
],
|
|
"values": [
|
|
[
|
|
1487785510000,
|
|
"cpu-total",
|
|
"ChristohersMBP2.lan",
|
|
0,
|
|
0,
|
|
76.6916354556804,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
4.781523096129837,
|
|
18.526841448189764
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"properties": {
|
|
"results": {
|
|
"description": "results from influx",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"Roles": {
|
|
"type": "object",
|
|
"properties": {
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Role"
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"roles": [
|
|
{
|
|
"users": [
|
|
{
|
|
"name": "admin",
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/users/admin"
|
|
}
|
|
}
|
|
],
|
|
"name": "timetravelers",
|
|
"permissions": [
|
|
{
|
|
"scope": "database",
|
|
"name": "telegraf",
|
|
"allowed": [
|
|
"ReadData",
|
|
"WriteData"
|
|
]
|
|
}
|
|
],
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/roles/timetravelers"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"Role": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Unique name of the role",
|
|
"maxLength": 254,
|
|
"minLength": 1
|
|
},
|
|
"users": {
|
|
"$ref": "#/definitions/Users"
|
|
},
|
|
"permissions": {
|
|
"$ref": "#/definitions/Permissions"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"description": "URL relations of this role",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "URI of resource."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"users": [
|
|
{
|
|
"name": "admin",
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/users/admin"
|
|
}
|
|
}
|
|
],
|
|
"name": "timetravelers",
|
|
"permissions": [
|
|
{
|
|
"scope": "database",
|
|
"name": "telegraf",
|
|
"allowed": [
|
|
"ReadData",
|
|
"WriteData"
|
|
]
|
|
}
|
|
],
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/roles/timetravelers"
|
|
}
|
|
}
|
|
},
|
|
"Users": {
|
|
"type": "object",
|
|
"properties": {
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/User"
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"users": [
|
|
{
|
|
"name": "docbrown",
|
|
"permissions": [
|
|
{
|
|
"scope": "all",
|
|
"allowed": [
|
|
"ViewAdmin",
|
|
"ViewChronograf",
|
|
"CreateDatabase",
|
|
"CreateUserAndRole",
|
|
"DropDatabase",
|
|
"DropData",
|
|
"ReadData",
|
|
"WriteData",
|
|
"ManageShard",
|
|
"ManageContinuousQuery",
|
|
"ManageQuery",
|
|
"ManageSubscription",
|
|
"Monitor",
|
|
"KapacitorAPI"
|
|
]
|
|
}
|
|
],
|
|
"roles": [
|
|
{
|
|
"name": "timetravelers",
|
|
"permissions": [
|
|
{
|
|
"scope": "database",
|
|
"name": "telegraf",
|
|
"allowed": [
|
|
"ReadData",
|
|
"WriteData"
|
|
]
|
|
}
|
|
],
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/roles/timetravelers"
|
|
}
|
|
}
|
|
],
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/users/docbrown"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"User": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Unique name of the user",
|
|
"maxLength": 254,
|
|
"minLength": 1
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"permissions": {
|
|
"$ref": "#/definitions/Permissions"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"description": "URL relations of this user",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"format": "url",
|
|
"description": "URI of resource."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"name": "docbrown",
|
|
"permissions": [
|
|
{
|
|
"scope": "all",
|
|
"allowed": [
|
|
"ViewAdmin",
|
|
"ViewChronograf",
|
|
"CreateDatabase",
|
|
"CreateUserAndRole",
|
|
"DropDatabase",
|
|
"DropData",
|
|
"ReadData",
|
|
"WriteData",
|
|
"ManageShard",
|
|
"ManageContinuousQuery",
|
|
"ManageQuery",
|
|
"ManageSubscription",
|
|
"Monitor",
|
|
"KapacitorAPI"
|
|
]
|
|
}
|
|
],
|
|
"roles": [
|
|
{
|
|
"name": "timetravelers",
|
|
"permissions": [
|
|
{
|
|
"scope": "database",
|
|
"name": "telegraf",
|
|
"allowed": [
|
|
"ReadData",
|
|
"WriteData"
|
|
]
|
|
}
|
|
],
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/roles/timetravelers"
|
|
}
|
|
}
|
|
],
|
|
"links": {
|
|
"self": "/chronograf/v1/sources/3/users/docbrown"
|
|
}
|
|
}
|
|
},
|
|
"Permissions": {
|
|
"description": "Permissions represent the entire set of permissions a User or Role may have",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Permission"
|
|
}
|
|
},
|
|
"Permission": {
|
|
"description": "Permission is a specific allowance for User or Role bound to a scope of the data source",
|
|
"type": "object",
|
|
"required": [
|
|
"scope",
|
|
"allowed"
|
|
],
|
|
"properties": {
|
|
"scope": {
|
|
"type": "string",
|
|
"description": "Describes if the permission is for all databases or restricted to one database",
|
|
"enum": [
|
|
"all",
|
|
"database"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "If the scope is database this identifies the name of the database"
|
|
},
|
|
"allowed": {
|
|
"$ref": "#/definitions/Allowances"
|
|
}
|
|
},
|
|
"example": {
|
|
"scope": "database",
|
|
"name": "telegraf",
|
|
"allowed": [
|
|
"READ",
|
|
"WRITE"
|
|
]
|
|
}
|
|
},
|
|
"AllPermissions": {
|
|
"description": "All possible permissions for this particular datasource. Used as a static list",
|
|
"type": "object",
|
|
"properties": {
|
|
"permissions": {
|
|
"$ref": "#/definitions/Permissions"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"description": "Relative link back to the permissions endpoint",
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"source": {
|
|
"description": "Relative link to host with these permissiosn",
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Allowances": {
|
|
"description": "Allowances defines what actions a user can have on a scoped permission",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "OSS InfluxDB is READ and WRITE. Enterprise is all others",
|
|
"enum": [
|
|
"READ",
|
|
"WRITE",
|
|
"NoPermissions",
|
|
"ViewAdmin",
|
|
"ViewChronograf",
|
|
"CreateDatabase",
|
|
"CreateUserAndRole",
|
|
"AddRemoveNode",
|
|
"DropDatabase",
|
|
"DropData",
|
|
"ReadData",
|
|
"WriteData",
|
|
"Rebalance",
|
|
"ManageShard",
|
|
"ManageContinuousQuery",
|
|
"ManageQuery",
|
|
"ManageSubscription",
|
|
"Monitor",
|
|
"CopyShard",
|
|
"KapacitorAPI",
|
|
"KapacitorConfigAPI"
|
|
]
|
|
}
|
|
},
|
|
"Layouts": {
|
|
"required": [
|
|
"layouts"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"layouts": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Layout"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Layout": {
|
|
"type": "object",
|
|
"required": [
|
|
"cells",
|
|
"app",
|
|
"measurement"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "ID is an opaque string that uniquely identifies this layout."
|
|
},
|
|
"app": {
|
|
"type": "string",
|
|
"description": "App is the user facing name of this Layout"
|
|
},
|
|
"measurement": {
|
|
"type": "string",
|
|
"description": "Measurement is the descriptive name of the time series data."
|
|
},
|
|
"cells": {
|
|
"type": "array",
|
|
"description": "Cells are the individual visualization elements.",
|
|
"items": {
|
|
"$ref": "#/definitions/Cell"
|
|
}
|
|
},
|
|
"link": {
|
|
"$ref": "#/definitions/Link"
|
|
}
|
|
},
|
|
"example": {
|
|
"id": "0e980b97-c162-487b-a815-3f955df62430",
|
|
"app": "docker",
|
|
"measurement": "docker_container_net",
|
|
"autoflow": true,
|
|
"cells": [
|
|
{
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 4,
|
|
"h": 4,
|
|
"i": "4c79cefb-5152-410c-9b88-74f9bff7ef23",
|
|
"name": "Docker - Container Network",
|
|
"queries": [
|
|
{
|
|
"query": "SELECT derivative(mean(\"tx_bytes\"), 10s) AS \"net_tx_bytes\" FROM \"docker_container_net\"",
|
|
"groupbys": [
|
|
"\"container_name\""
|
|
]
|
|
},
|
|
{
|
|
"query": "SELECT derivative(mean(\"rx_bytes\"), 10s) AS \"net_rx_bytes\" FROM \"docker_container_net\"",
|
|
"groupbys": [
|
|
"\"container_name\""
|
|
]
|
|
}
|
|
],
|
|
"type": ""
|
|
}
|
|
],
|
|
"link": {
|
|
"href": "/chronograf/v1/layouts/0e980b97-c162-487b-a815-3f955df62430",
|
|
"rel": "self"
|
|
}
|
|
}
|
|
},
|
|
"Mappings": {
|
|
"type": "object",
|
|
"required": [
|
|
"mappings"
|
|
],
|
|
"properties": {
|
|
"mappings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Mapping"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Mapping": {
|
|
"type": "object",
|
|
"required": [
|
|
"measurement",
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"measurement": {
|
|
"description": "The measurement where data for this mapping is found",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "The application name which will be assigned to the corresponding measurement",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"example": {
|
|
"measurement": "riak",
|
|
"name": "riak"
|
|
}
|
|
},
|
|
"Cell": {
|
|
"type": "object",
|
|
"required": [
|
|
"i",
|
|
"x",
|
|
"y",
|
|
"w",
|
|
"h"
|
|
],
|
|
"properties": {
|
|
"i": {
|
|
"description": "Unique ID of Cell",
|
|
"type": "string",
|
|
"format": "uuid4"
|
|
},
|
|
"x": {
|
|
"description": "X-coordinate of Cell in the Layout",
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"y": {
|
|
"description": "Y-coordinate of Cell in the Layout",
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"w": {
|
|
"description": "Width of Cell in the Layout",
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"h": {
|
|
"description": "Height of Cell in the Layout",
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"name": {
|
|
"description": "Cell name",
|
|
"type": "string"
|
|
},
|
|
"queries": {
|
|
"description": "Time-series data queries for Cell.",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/LayoutQuery"
|
|
}
|
|
},
|
|
"type": {
|
|
"description": "Cell visualization type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"example": {
|
|
"x": 5,
|
|
"y": 5,
|
|
"w": 4,
|
|
"h": 4,
|
|
"name": "usage_user",
|
|
"queries": [
|
|
{
|
|
"query": "SELECT mean(\"usage_user\") AS \"usage_user\" FROM \"cpu\"",
|
|
"label": "%"
|
|
}
|
|
],
|
|
"type": "line"
|
|
}
|
|
},
|
|
"LayoutQuery": {
|
|
"type": "object",
|
|
"required": [
|
|
"query",
|
|
],
|
|
"properties": {
|
|
"label": {
|
|
"description": "Optional Y-axis user-facing label for this query",
|
|
"type": "string"
|
|
},
|
|
"range": {
|
|
"description": "Optional default range of the Y-axis",
|
|
"type": "object",
|
|
"required": [
|
|
"upper",
|
|
"lower"
|
|
],
|
|
"properties": {
|
|
"upper": {
|
|
"description": "Upper bound of the display range of the Y-axis",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"lower": {
|
|
"description": "Lower bound of the display range of the Y-axis",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"query": {
|
|
"type": "string"
|
|
},
|
|
"wheres": {
|
|
"description": "Defines the condition clauses for influxdb",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"groupbys": {
|
|
"description": "Defines the group by clauses for influxdb",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"label": "# warnings",
|
|
"query": "SELECT count(\"check_id\") as \"Number Warning\" FROM consul_health_checks",
|
|
"wheres": [
|
|
"\"status\" = 'warning'"
|
|
],
|
|
"groupbys": [
|
|
"\"service_name\""
|
|
]
|
|
}
|
|
},
|
|
"DashboardQuery": {
|
|
"type": "object",
|
|
"required": [
|
|
"query"
|
|
],
|
|
"properties": {
|
|
"label": {
|
|
"description": "Optional Y-axis user-facing label for this query",
|
|
"type": "string"
|
|
},
|
|
"range": {
|
|
"description": "Optional default range of the Y-axis",
|
|
"type": "object",
|
|
"required": [
|
|
"upper",
|
|
"lower"
|
|
],
|
|
"properties": {
|
|
"upper": {
|
|
"description": "Upper bound of the display range of the Y-axis",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"lower": {
|
|
"description": "Lower bound of the display range of the Y-axis",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"query": {
|
|
"type": "string"
|
|
},
|
|
"queryConfig": {
|
|
"$ref": "#/definitions/QueryConfig"
|
|
}
|
|
},
|
|
"example": {
|
|
"id": 4,
|
|
"cells": [
|
|
{
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 4,
|
|
"h": 4,
|
|
"name": "",
|
|
"queries": [
|
|
{
|
|
"query": "SELECT mean(\"usage_user\") AS \"usage_user\" FROM \"cpu\"",
|
|
"label": "%",
|
|
"queryConfig": {
|
|
"database": "",
|
|
"measurement": "cpu",
|
|
"retentionPolicy": "",
|
|
"fields": [
|
|
{
|
|
"field": "usage_user",
|
|
"funcs": [
|
|
"mean"
|
|
]
|
|
}
|
|
],
|
|
"tags": {},
|
|
"groupBy": {
|
|
"time": "",
|
|
"tags": []
|
|
},
|
|
"areTagsAccepted": false
|
|
}
|
|
}
|
|
],
|
|
"type": "line"
|
|
}
|
|
],
|
|
"name": "dashboard name",
|
|
"links": {
|
|
"self": "/chronograf/v1/dashboards/4"
|
|
}
|
|
}
|
|
},
|
|
"Dashboards": {
|
|
"description": "a list of dashboards",
|
|
"type": "object",
|
|
"properties": {
|
|
"dashboards": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Dashboard"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Dashboard": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"description": "the unique dashboard id",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"cells": {
|
|
"description": "a list of dashboard visualizations",
|
|
"type": "array",
|
|
"items": {
|
|
"description": "cell visualization information",
|
|
"type": "object",
|
|
"properties": {
|
|
"x": {
|
|
"description": "X-coordinate of Cell in the Dashboard",
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"y": {
|
|
"description": "Y-coordinate of Cell in the Dashboard",
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"w": {
|
|
"description": "Width of Cell in the Dashboard",
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"minimum": 1,
|
|
"default": 4
|
|
},
|
|
"h": {
|
|
"description": "Height of Cell in the Dashboard",
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"minimum": 1,
|
|
"default": 4
|
|
},
|
|
"name": {
|
|
"description": "Name of Cell in the Dashboard",
|
|
"type": "string"
|
|
},
|
|
"queries": {
|
|
"description": "Time-series data queries for Cell.",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/DashboardQuery"
|
|
}
|
|
},
|
|
"type": {
|
|
"description": "Cell visualization type",
|
|
"type": "string",
|
|
"enum": [
|
|
"single-stat",
|
|
"line",
|
|
"line-plus-single-stat",
|
|
"line-stacked",
|
|
"line-stepplot"
|
|
],
|
|
"default": "line"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"description": "Self link mapping to this resource",
|
|
"format": "url"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"name": {
|
|
"description": "the user-facing name of the dashboard",
|
|
"type": "string"
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "string",
|
|
"description": "Self link mapping to this resource",
|
|
"format": "url"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"id": 4,
|
|
"cells": [
|
|
{
|
|
"x": 5,
|
|
"y": 5,
|
|
"w": 4,
|
|
"h": 4,
|
|
"name": "usage_user",
|
|
"queries": [
|
|
{
|
|
"query": "SELECT mean(\"usage_user\") AS \"usage_user\" FROM \"cpu\"",
|
|
"db": "telegraf",
|
|
"label": "%"
|
|
}
|
|
],
|
|
"type": "line"
|
|
},
|
|
{
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 4,
|
|
"h": 4,
|
|
"name": "usage_system",
|
|
"queries": [
|
|
{
|
|
"query": "SELECT mean(\"usage_system\") AS \"usage_system\" FROM \"cpu\"",
|
|
"db": "telegraf",
|
|
"label": "%"
|
|
}
|
|
],
|
|
"type": "line"
|
|
}
|
|
],
|
|
"name": "lalalalala",
|
|
"links": {
|
|
"self": "/chronograf/v1/dashboards/4"
|
|
}
|
|
}
|
|
},
|
|
"Routes": {
|
|
"type": "object",
|
|
"properties": {
|
|
"me": {
|
|
"description": "Location of the me endpoint.",
|
|
"type": "string",
|
|
"format": "url"
|
|
},
|
|
"layouts": {
|
|
"description": "Location of the layouts endpoint",
|
|
"type": "string",
|
|
"format": "url"
|
|
},
|
|
"sources": {
|
|
"description": "Location of the sources endpoint",
|
|
"type": "string",
|
|
"format": "url"
|
|
},
|
|
"mappings": {
|
|
"description": "Location of the application mappings endpoint",
|
|
"type": "string",
|
|
"format": "url"
|
|
},
|
|
"dashboards": {
|
|
"description": "location of the dashboards endpoint",
|
|
"type": "string",
|
|
"format": "url"
|
|
}
|
|
},
|
|
"example": {
|
|
"layouts": "/chronograf/v1/layouts",
|
|
"mappings": "/chronograf/v1/mappings",
|
|
"sources": "/chronograf/v1/sources",
|
|
"me": "/chronograf/v1/me",
|
|
"dashboards": "/chronograf/v1/dashboards"
|
|
}
|
|
},
|
|
"Link": {
|
|
"type": "object",
|
|
"required": [
|
|
"rel",
|
|
"href"
|
|
],
|
|
"readOnly": true,
|
|
"description": "URI of resource.",
|
|
"properties": {
|
|
"rel": {
|
|
"type": "string"
|
|
},
|
|
"href": {
|
|
"type": "string",
|
|
"format": "url"
|
|
}
|
|
}
|
|
},
|
|
"Error": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|