diff --git a/oas_docs/makefile b/oas_docs/makefile index 82f33e494501a..88abada50775a 100644 --- a/oas_docs/makefile +++ b/oas_docs/makefile @@ -28,7 +28,7 @@ merge-api-docs-stateful: ## Merge only kibana.yaml .PHONY: api-docs-lint api-docs-lint: ## Run redocly API docs linter - @npx @redocly/cli lint "output/*.yaml" --config "linters/redocly.yaml" --format stylish --max-problems 500 + @npx @redocly/cli lint "output/kibana.yaml" --config "linters/redocly.yaml" --format stylish --max-problems 500 .PHONY: api-docs-lint-stateful api-docs-lint-stateful: ## Run redocly API docs linter on kibana.yaml diff --git a/oas_docs/output/kibana.serverless.yaml b/oas_docs/output/kibana.serverless.yaml index 6e90304bebeaf..7706111c19597 100644 --- a/oas_docs/output/kibana.serverless.yaml +++ b/oas_docs/output/kibana.serverless.yaml @@ -212,6 +212,11 @@ tags: x-displayName: System description: | Get information about the system status, resource usage, and installed plugins. + - externalDocs: + description: Task manager + url: https://www.elastic.co/guide/en/kibana/current/task-manager-production-considerations.html + name: task manager + x-displayName: Task manager paths: /api/actions/connector_types: get: @@ -38860,6 +38865,2654 @@ paths: summary: Get Kibana's current status tags: - system +<<<<<<< HEAD +======= + /api/streams: + get: + description: Fetches list of all streams + operationId: get-streams + parameters: [] + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Get stream list + tags: + - streams + x-state: Technical Preview + /api/streams/_disable: + post: + description: Disables wired streams and deletes all existing stream definitions. The data of wired streams is deleted, but the data of classic streams is preserved. + operationId: post-streams-disable + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Disable streams + tags: + - streams + x-state: Technical Preview + /api/streams/_enable: + post: + description: Enables wired streams + operationId: post-streams-enable + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Enable streams + tags: + - streams + x-state: Technical Preview + /api/streams/_resync: + post: + description: Resyncs all streams, making sure that Elasticsearch assets are up to date + operationId: post-streams-resync + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Resync streams + tags: + - streams + x-state: Technical Preview + /api/streams/{name}: + delete: + description: Deletes a stream definition and the underlying data stream + operationId: delete-streams-name + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Delete a stream + tags: + - streams + x-state: Technical Preview + get: + description: Fetches a stream definition and associated dashboards + operationId: get-streams-name + parameters: + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Get a stream + tags: + - streams + x-state: Technical Preview + put: + description: Creates or updates a stream definition. Classic streams can not be created through this API, only updated + operationId: put-streams-name + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - anyOf: + - allOf: + - type: object + properties: + dashboards: + items: + minLength: 1 + type: string + type: array + required: + - dashboards + - type: object + properties: + stream: + additionalProperties: false + type: object + properties: + ingest: + allOf: + - type: object + properties: + lifecycle: + anyOf: + - additionalProperties: false + type: object + properties: + dsl: + additionalProperties: false + type: object + properties: + data_retention: + minLength: 1 + type: string + required: + - dsl + - additionalProperties: false + type: object + properties: + ilm: + additionalProperties: false + type: object + properties: + policy: + minLength: 1 + type: string + required: + - policy + required: + - ilm + - additionalProperties: false + type: object + properties: + inherit: + additionalProperties: false + type: object + properties: {} + required: + - inherit + processing: + items: + anyOf: + - additionalProperties: false + type: object + properties: + date: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + formats: + items: + minLength: 1 + type: string + type: array + locale: + minLength: 1 + type: string + output_format: + minLength: 1 + type: string + target_field: + minLength: 1 + type: string + timezone: + minLength: 1 + type: string + required: + - field + - formats + required: + - date + - additionalProperties: false + type: object + properties: + dissect: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + append_separator: + minLength: 1 + type: string + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern: + minLength: 1 + type: string + required: + - field + - pattern + required: + - dissect + - additionalProperties: false + type: object + properties: + grok: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern_definitions: + additionalProperties: + type: string + type: object + patterns: + items: + minLength: 1 + type: string + minItems: 1 + type: array + required: + - field + - patterns + required: + - grok + type: array + required: + - lifecycle + - processing + - type: object + properties: + wired: + additionalProperties: false + type: object + properties: + fields: + additionalProperties: + allOf: + - additionalProperties: + anyOf: + - anyOf: + - type: string + - type: number + - type: boolean + - enum: + - 'null' + nullable: true + - not: {} + - items: + anyOf: + - type: string + - type: number + - type: boolean + - enum: + - 'null' + nullable: true + - not: {} + type: array + - {} + type: object + - anyOf: + - additionalProperties: false + type: object + properties: + format: + minLength: 1 + type: string + type: + enum: + - keyword + - match_only_text + - long + - double + - date + - boolean + - ip + type: string + required: + - type + - additionalProperties: false + type: object + properties: + type: + enum: + - system + type: string + required: + - type + type: object + routing: + items: + additionalProperties: false + type: object + properties: + destination: + minLength: 1 + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + required: + - destination + - if + type: array + required: + - fields + - routing + required: + - wired + required: + - ingest + required: + - stream + - allOf: + - type: object + properties: + dashboards: + items: + minLength: 1 + type: string + type: array + required: + - dashboards + - type: object + properties: + stream: + additionalProperties: false + type: object + properties: + ingest: + allOf: + - type: object + properties: + lifecycle: + anyOf: + - additionalProperties: false + type: object + properties: + dsl: + additionalProperties: false + type: object + properties: + data_retention: + minLength: 1 + type: string + required: + - dsl + - additionalProperties: false + type: object + properties: + ilm: + additionalProperties: false + type: object + properties: + policy: + minLength: 1 + type: string + required: + - policy + required: + - ilm + - additionalProperties: false + type: object + properties: + inherit: + additionalProperties: false + type: object + properties: {} + required: + - inherit + processing: + items: + anyOf: + - additionalProperties: false + type: object + properties: + date: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + formats: + items: + minLength: 1 + type: string + type: array + locale: + minLength: 1 + type: string + output_format: + minLength: 1 + type: string + target_field: + minLength: 1 + type: string + timezone: + minLength: 1 + type: string + required: + - field + - formats + required: + - date + - additionalProperties: false + type: object + properties: + dissect: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + append_separator: + minLength: 1 + type: string + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern: + minLength: 1 + type: string + required: + - field + - pattern + required: + - dissect + - additionalProperties: false + type: object + properties: + grok: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern_definitions: + additionalProperties: + type: string + type: object + patterns: + items: + minLength: 1 + type: string + minItems: 1 + type: array + required: + - field + - patterns + required: + - grok + type: array + required: + - lifecycle + - processing + - type: object + properties: + unwired: + additionalProperties: false + type: object + properties: {} + required: + - unwired + required: + - ingest + required: + - stream + - allOf: + - type: object + properties: + dashboards: + items: + minLength: 1 + type: string + type: array + required: + - dashboards + - type: object + properties: + stream: + additionalProperties: false + type: object + properties: + group: + additionalProperties: false + type: object + properties: + description: + type: string + members: + items: + minLength: 1 + type: string + type: array + required: + - members + required: + - group + required: + - stream + responses: {} + summary: Create or update a stream + tags: + - streams + x-state: Technical Preview + /api/streams/{name}/_fork: + post: + description: Forks a wired stream and creates a child stream + operationId: post-streams-name-fork + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + properties: + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + stream: + additionalProperties: false + type: object + properties: + name: + type: string + required: + - name + required: + - stream + - if + responses: {} + summary: Fork a stream + tags: + - streams + x-state: Technical Preview + /api/streams/{name}/_group: + get: + description: Fetches the group settings of a group stream definition + operationId: get-streams-name-group + parameters: + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Get group stream settings + tags: + - streams + x-state: Technical Preview + put: + description: Upserts the group settings of a group stream definition + operationId: put-streams-name-group + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + properties: + group: + additionalProperties: false + type: object + properties: + description: + type: string + members: + items: + minLength: 1 + type: string + type: array + required: + - members + required: + - group + responses: {} + summary: Upsert group stream settings + tags: + - streams + x-state: Technical Preview + /api/streams/{name}/_ingest: + get: + description: Fetches the ingest settings of an ingest stream definition + operationId: get-streams-name-ingest + parameters: + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Get ingest stream settings + tags: + - streams + x-state: Technical Preview + put: + description: Upserts the ingest settings of an ingest stream definition + operationId: put-streams-name-ingest + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: + ingest: + allOf: + - type: object + properties: + lifecycle: + anyOf: + - additionalProperties: false + type: object + properties: + dsl: + additionalProperties: false + type: object + properties: + data_retention: + minLength: 1 + type: string + required: + - dsl + - additionalProperties: false + type: object + properties: + ilm: + additionalProperties: false + type: object + properties: + policy: + minLength: 1 + type: string + required: + - policy + required: + - ilm + - additionalProperties: false + type: object + properties: + inherit: + additionalProperties: false + type: object + properties: {} + required: + - inherit + processing: + items: + anyOf: + - additionalProperties: false + type: object + properties: + date: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + formats: + items: + minLength: 1 + type: string + type: array + locale: + minLength: 1 + type: string + output_format: + minLength: 1 + type: string + target_field: + minLength: 1 + type: string + timezone: + minLength: 1 + type: string + required: + - field + - formats + required: + - date + - additionalProperties: false + type: object + properties: + dissect: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + append_separator: + minLength: 1 + type: string + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern: + minLength: 1 + type: string + required: + - field + - pattern + required: + - dissect + - additionalProperties: false + type: object + properties: + grok: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern_definitions: + additionalProperties: + type: string + type: object + patterns: + items: + minLength: 1 + type: string + minItems: 1 + type: array + required: + - field + - patterns + required: + - grok + type: array + required: + - lifecycle + - processing + - type: object + properties: + wired: + additionalProperties: false + type: object + properties: + fields: + additionalProperties: + allOf: + - additionalProperties: + anyOf: + - anyOf: + - type: string + - type: number + - type: boolean + - enum: + - 'null' + nullable: true + - not: {} + - items: + anyOf: + - type: string + - type: number + - type: boolean + - enum: + - 'null' + nullable: true + - not: {} + type: array + - {} + type: object + - anyOf: + - additionalProperties: false + type: object + properties: + format: + minLength: 1 + type: string + type: + enum: + - keyword + - match_only_text + - long + - double + - date + - boolean + - ip + type: string + required: + - type + - additionalProperties: false + type: object + properties: + type: + enum: + - system + type: string + required: + - type + type: object + routing: + items: + additionalProperties: false + type: object + properties: + destination: + minLength: 1 + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + required: + - destination + - if + type: array + required: + - fields + - routing + required: + - wired + required: + - ingest + - additionalProperties: false + type: object + properties: + ingest: + allOf: + - type: object + properties: + lifecycle: + anyOf: + - additionalProperties: false + type: object + properties: + dsl: + additionalProperties: false + type: object + properties: + data_retention: + minLength: 1 + type: string + required: + - dsl + - additionalProperties: false + type: object + properties: + ilm: + additionalProperties: false + type: object + properties: + policy: + minLength: 1 + type: string + required: + - policy + required: + - ilm + - additionalProperties: false + type: object + properties: + inherit: + additionalProperties: false + type: object + properties: {} + required: + - inherit + processing: + items: + anyOf: + - additionalProperties: false + type: object + properties: + date: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + formats: + items: + minLength: 1 + type: string + type: array + locale: + minLength: 1 + type: string + output_format: + minLength: 1 + type: string + target_field: + minLength: 1 + type: string + timezone: + minLength: 1 + type: string + required: + - field + - formats + required: + - date + - additionalProperties: false + type: object + properties: + dissect: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + append_separator: + minLength: 1 + type: string + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern: + minLength: 1 + type: string + required: + - field + - pattern + required: + - dissect + - additionalProperties: false + type: object + properties: + grok: + allOf: + - type: object + properties: + description: + type: string + if: + anyOf: + - anyOf: + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - exists + - notExists + type: string + required: + - field + - operator + - additionalProperties: false + type: object + properties: + field: + minLength: 1 + type: string + operator: + enum: + - eq + - neq + - lt + - lte + - gt + - gte + - contains + - startsWith + - endsWith + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + required: + - field + - operator + - value + - additionalProperties: false + type: object + properties: + and: + items: {} + type: array + required: + - and + - additionalProperties: false + type: object + properties: + or: + items: {} + type: array + required: + - or + - additionalProperties: false + type: object + properties: + never: + additionalProperties: false + type: object + properties: {} + required: + - never + - additionalProperties: false + type: object + properties: + always: + additionalProperties: false + type: object + properties: {} + required: + - always + ignore_failure: + type: boolean + required: + - if + - type: object + properties: + field: + minLength: 1 + type: string + ignore_missing: + type: boolean + pattern_definitions: + additionalProperties: + type: string + type: object + patterns: + items: + minLength: 1 + type: string + minItems: 1 + type: array + required: + - field + - patterns + required: + - grok + type: array + required: + - lifecycle + - processing + - type: object + properties: + unwired: + additionalProperties: false + type: object + properties: {} + required: + - unwired + required: + - ingest + responses: {} + summary: Update ingest stream settings + tags: + - streams + x-state: Technical Preview + /api/streams/{name}/content/export: + post: + description: Exports the content associated to a stream. + operationId: post-streams-name-content-export + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Export stream content + tags: + - streams + /api/streams/{name}/content/import: + post: + description: Links content objects to a stream. + operationId: post-streams-name-content-import + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + multipart/form-data: + schema: + additionalProperties: false + type: object + properties: + content: {} + required: + - content + responses: {} + summary: Import content into a stream + tags: + - streams + /api/streams/{name}/dashboards: + get: + description: Fetches all dashboards linked to a stream that are visible to the current user in the current space. + operationId: get-streams-name-dashboards + parameters: + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Get stream dashboards + tags: + - streams + x-state: Technical Preview + /api/streams/{name}/dashboards/_bulk: + post: + description: Bulk update dashboards linked to a stream. Can link new dashboards and delete existing ones. + operationId: post-streams-name-dashboards-bulk + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + properties: + operations: + items: + anyOf: + - additionalProperties: false + type: object + properties: + index: + additionalProperties: false + type: object + properties: + id: + type: string + required: + - id + required: + - index + - additionalProperties: false + type: object + properties: + delete: + additionalProperties: false + type: object + properties: + id: + type: string + required: + - id + required: + - delete + type: array + required: + - operations + responses: {} + summary: Bulk update dashboards + tags: + - streams + x-state: Technical Preview + /api/streams/{name}/dashboards/{dashboardId}: + delete: + description: Unlinks a dashboard from a stream. Noop if the dashboard is not linked to the stream. + operationId: delete-streams-name-dashboards-dashboardid + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + - in: path + name: dashboardId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Unlink a dashboard from a stream + tags: + - streams + x-state: Technical Preview + put: + description: Links a dashboard to a stream. Noop if the dashboard is already linked to the stream. + operationId: put-streams-name-dashboards-dashboardid + parameters: + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: name + required: true + schema: + type: string + - in: path + name: dashboardId + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + anyOf: + - additionalProperties: false + type: object + properties: {} + - enum: + - 'null' + nullable: true + - not: {} + responses: {} + summary: Link a dashboard to a stream + tags: + - streams + x-state: Technical Preview + /api/task_manager/_health: + get: + description: | + Get the health status of the Kibana task manager. + operationId: task-manager-health + responses: + '200': + content: + application/json: + examples: + taskManagerHealthResponse1: + $ref: '#/components/examples/Task_manager_health_Serverless_APIs_health_200response_serverless' + schema: + $ref: '#/components/schemas/Task_manager_health_Serverless_APIs_health_response_serverless' + description: Indicates a successful call + summary: Get the task manager health + tags: + - task manager +>>>>>>> c9bfa082a07 ([DOCS] Add minimal task manager health APIs (#213862)) /api/timeline: delete: description: Delete one or more Timelines or Timeline templates. @@ -41650,6 +44303,305 @@ components: icon: indexPatternApp title: Kibana Sample Data Logs type: index-pattern + Task_manager_health_Serverless_APIs_health_200response_serverless: + description: A successful response from `GET api/task_manager/_health`. + value: |- + { + "id": "b44483e1-3ba2-4f28-93d0-1d96c69c32c1", + "timestamp": "2025-03-21T21:49:50.409Z", + "status": "OK", + "last_update": "2025-03-21T21:48:53.996Z", + "stats": { + "configuration": { + "timestamp": "2025-03-21T21:47:51.663Z", + "value": { + "request_capacity": 1000, + "monitored_aggregated_stats_refresh_rate": 60000, + "monitored_stats_running_average_window": 50, + "monitored_task_execution_thresholds": { + "custom": {}, + "default": { + "error_threshold": 90, + "warn_threshold": 80 + } + }, + "claim_strategy": "mget", + "poll_interval": 500, + "capacity": { + "config": 10, + "as_workers": 10, + "as_cost": 20 + } + }, + "status": "OK" + }, + "workload": { + "timestamp": "2025-03-21T21:48:53.996Z", + "value": { + "count": 21, + "cost": 42, + "task_types": { + "Fleet-Metrics-Task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Logger": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Sender": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "ML:saved-objects-sync": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions:connector_usage_reporting": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_health_check": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerts_invalidate_api_keys": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "cases-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "dashboard_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:automatic-agent-upgrade-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:check-deleted-files-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:delete-unenrolled-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:sync-integrations-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:unenroll-inactive-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:upgrade-agentless-deployments-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "logs-data-telemetry": { + "count": 1, + "cost": 2, + "status": { + "running": 1 + } + }, + "session_cleanup": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:delete_inactive_background_task_nodes": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + } + }, + "non_recurring": 1, + "non_recurring_cost": 2, + "schedule": [ + [ + "1m", + 2 + ], + [ + "5m", + 2 + ], + [ + "10m", + 1 + ], + [ + "15m", + 1 + ], + [ + "30m", + 1 + ], + [ + "1h", + 5 + ], + [ + "3600s", + 1 + ], + [ + "60m", + 1 + ], + [ + "720m", + 1 + ], + [ + "1d", + 4 + ], + [ + "1440m", + 1 + ] + ], + "overdue": 0, + "overdue_cost": 0, + "overdue_non_recurring": 0, + "estimated_schedule_density": [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "capacity_requirements": { + "per_minute": 2, + "per_hour": 43, + "per_day": 7 + } + }, + "status": "OK" + } + } + } get_connector_types_generativeai_response: summary: A list of connector types for the `generativeAI` feature. value: @@ -56438,6 +59390,33 @@ components: $ref: '#/components/schemas/SLOs_time_window' title: Update SLO request type: object + Task_manager_health_Serverless_APIs_configuration: + description: | + This object summarizes the current configuration of Task Manager. This includes dynamic configurations that change over time, such as `poll_interval` and `max_workers`, which can adjust in reaction to changing load on the system. + type: object + Task_manager_health_Serverless_APIs_health_response_serverless: + title: Task health response properties + type: object + properties: + id: + type: string + last_update: + type: string + stats: + type: object + properties: + configuration: + $ref: '#/components/schemas/Task_manager_health_Serverless_APIs_configuration' + workload: + $ref: '#/components/schemas/Task_manager_health_Serverless_APIs_workload' + status: + type: string + timestamp: + type: string + Task_manager_health_Serverless_APIs_workload: + description: | + This object summarizes the work load across the cluster, including the tasks in the system, their types, and current status. + type: object bedrock_config: title: Connector request properties for an Amazon Bedrock connector description: Defines properties for connectors when type is `.bedrock`. diff --git a/oas_docs/output/kibana.yaml b/oas_docs/output/kibana.yaml index 4f0fddee50d8c..934da6f4b1fbf 100644 --- a/oas_docs/output/kibana.yaml +++ b/oas_docs/output/kibana.yaml @@ -247,6 +247,11 @@ tags: Get information about the system status, resource usage, features, and installed plugins. name: system x-displayName: System + - externalDocs: + description: Task manager + url: https://www.elastic.co/guide/en/kibana/current/task-manager-production-considerations.html + name: task manager + x-displayName: Task manager - description: Check the upgrade status of your Elasticsearch cluster and reindex indices that were created in the previous major version. The assistant helps you prepare for the next major version of Elasticsearch. name: upgrade x-displayName: Upgrade assistant @@ -42344,6 +42349,24 @@ paths: summary: Get Kibana's current status tags: - system + /api/task_manager/_health: + get: + description: | + Get the health status of the Kibana task manager. + operationId: task-manager-health + responses: + '200': + content: + application/json: + examples: + taskManagerHealthResponse1: + $ref: '#/components/examples/Task_manager_health_APIs_health_200response' + schema: + $ref: '#/components/schemas/Task_manager_health_APIs_health_response' + description: Indicates a successful call + summary: Get the task manager health + tags: + - task manager /api/timeline: delete: description: Delete one or more Timelines or Timeline templates. @@ -46819,6 +46842,1230 @@ components: icon: dashboardApp title: Look at my dashboard type: dashboard + Task_manager_health_APIs_health_200response: + description: A successful response from `GET api/task_manager/_health`. + value: |- + { + "id": "330bbc6a-56cd-44d5-88e3-e3229f14d619", + "timestamp": "2025-03-21T21:30:04.780Z", + "status": "OK", + "last_update": "2025-03-21T21:30:04.455Z", + "stats": { + "configuration": { + "timestamp": "2025-03-21T21:26:10.002Z", + "value": { + "request_capacity": 1000, + "monitored_aggregated_stats_refresh_rate": 60000, + "monitored_stats_running_average_window": 50, + "monitored_task_execution_thresholds": { + "custom": {}, + "default": { + "error_threshold": 90, + "warn_threshold": 80 + } + }, + "claim_strategy": "mget", + "poll_interval": 500, + "capacity": { + "config": 10, + "as_workers": 10, + "as_cost": 20 + } + }, + "status": "OK" + }, + "runtime": { + "timestamp": "2025-03-21T21:30:04.455Z", + "value": { + "polling": { + "last_successful_poll": "2025-03-21T21:30:04.455Z", + "last_polling_delay": "2025-03-21T21:26:10.001Z", + "claim_duration": { + "p50": 17, + "p90": 22, + "p95": 25, + "p99": 27 + }, + "duration": { + "p50": 19, + "p90": 25.5, + "p95": 28, + "p99": 28 + }, + "claim_conflicts": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_mismatches": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_stale_tasks": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "result_frequency_percent_as_number": { + "Failed": 0, + "NoAvailableWorkers": 0, + "NoTasksClaimed": 100, + "RanOutOfCapacity": 0, + "RunningAtCapacity": 0, + "PoolFilled": 0 + }, + "persistence": { + "recurring": 88, + "non_recurring": 12 + } + }, + "drift": { + "p50": 2089, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "drift_by_type": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 2082, + "p90": 2082, + "p95": 2082, + "p99": 2082 + }, + "fleet:check-deleted-files-task": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "osquery:telemetry-saved-queries": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 2089, + "p90": 2089, + "p95": 2089, + "p99": 2089 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 336.5, + "p90": 2089, + "p95": 2089, + "p99": 2089 + }, + "alerts_invalidate_api_keys": { + "p50": 2086, + "p90": 2086, + "p95": 2086, + "p99": 2086 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "alerting_health_check": { + "p50": 2086, + "p90": 2086, + "p95": 2086, + "p99": 2086 + }, + "Fleet-Usage-Sender": { + "p50": 2079, + "p90": 2079, + "p95": 2079, + "p99": 2079 + }, + "security:endpoint-diagnostics": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "logs-data-telemetry": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "security:telemetry-lists": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "security:telemetry-timelines": { + "p50": 2526, + "p90": 2526, + "p95": 2526, + "p99": 2526 + }, + "cases-telemetry-task": { + "p50": 2083, + "p90": 2083, + "p95": 2083, + "p99": 2083 + }, + "osquery:telemetry-packs": { + "p50": 2530, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "Fleet-Metrics-Task": { + "p50": 133.5, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 2530, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "osquery:telemetry-configs": { + "p50": 2529, + "p90": 2529, + "p95": 2529, + "p99": 2529 + }, + "endpoint:complete-external-response-actions": { + "p50": 519, + "p90": 2526, + "p95": 2526, + "p99": 2526 + }, + "security:telemetry-detection-rules": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:endpoint-meta-telemetry": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-filterlist-artifact": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-configuration": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:indices-metadata-telemetry": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "Fleet-Usage-Logger": { + "p50": 2190, + "p90": 2190, + "p95": 2190, + "p99": 2190 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 2189, + "p90": 2189, + "p95": 2189, + "p99": 2189 + }, + "dashboard_telemetry": { + "p50": 2452, + "p90": 2452, + "p95": 2452, + "p99": 2452 + }, + "session_cleanup": { + "p50": 2569, + "p90": 2569, + "p95": 2569, + "p99": 2569 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 2452, + "p90": 2452, + "p95": 2452, + "p99": 2452 + }, + "apm-telemetry-task": { + "p50": 2591, + "p90": 2591, + "p95": 2591, + "p99": 2591 + }, + "ML:saved-objects-sync": { + "p50": 2475, + "p90": 2475, + "p95": 2475, + "p99": 2475 + }, + "apm-source-map-migration-task": { + "p50": 1603.5, + "p90": 2987, + "p95": 2987, + "p99": 2987 + }, + "actions_telemetry": { + "p50": 771, + "p90": 771, + "p95": 771, + "p99": 771 + }, + "alerting_telemetry": { + "p50": 768, + "p90": 768, + "p95": 768, + "p99": 768 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 834, + "p90": 834, + "p95": 834, + "p99": 834 + }, + "endpoint:user-artifact-packager": { + "p50": 529.5, + "p90": 835, + "p95": 835, + "p99": 835 + }, + "fleet:bump_agent_policies": { + "p50": 361, + "p90": 361, + "p95": 361, + "p99": 361 + } + }, + "load": { + "p50": 10, + "p90": 100, + "p95": 100, + "p99": 100 + }, + "execution": { + "duration": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "fleet:check-deleted-files-task": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "osquery:telemetry-saved-queries": { + "p50": 25, + "p90": 25, + "p95": 25, + "p99": 25 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 28, + "p90": 28, + "p95": 28, + "p99": 28 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 7.5, + "p90": 29, + "p95": 29, + "p99": 29 + }, + "alerts_invalidate_api_keys": { + "p50": 34, + "p90": 34, + "p95": 34, + "p99": 34 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 39, + "p90": 39, + "p95": 39, + "p99": 39 + }, + "alerting_health_check": { + "p50": 42, + "p90": 42, + "p95": 42, + "p99": 42 + }, + "Fleet-Usage-Sender": { + "p50": 78, + "p90": 78, + "p95": 78, + "p99": 78 + }, + "security:endpoint-diagnostics": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "logs-data-telemetry": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-lists": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-timelines": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "cases-telemetry-task": { + "p50": 458, + "p90": 458, + "p95": 458, + "p99": 458 + }, + "osquery:telemetry-packs": { + "p50": 10, + "p90": 10, + "p95": 10, + "p99": 10 + }, + "Fleet-Metrics-Task": { + "p50": 5, + "p90": 10, + "p95": 10, + "p99": 10 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 11, + "p90": 11, + "p95": 11, + "p99": 11 + }, + "osquery:telemetry-configs": { + "p50": 12, + "p90": 12, + "p95": 12, + "p99": 12 + }, + "endpoint:complete-external-response-actions": { + "p50": 7, + "p90": 11, + "p95": 11, + "p99": 11 + }, + "security:telemetry-detection-rules": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:endpoint-meta-telemetry": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-filterlist-artifact": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-configuration": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:indices-metadata-telemetry": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "Fleet-Usage-Logger": { + "p50": 18, + "p90": 18, + "p95": 18, + "p99": 18 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 8, + "p90": 8, + "p95": 8, + "p99": 8 + }, + "dashboard_telemetry": { + "p50": 12, + "p90": 12, + "p95": 12, + "p99": 12 + }, + "session_cleanup": { + "p50": 58, + "p90": 58, + "p95": 58, + "p99": 58 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 147, + "p90": 147, + "p95": 147, + "p99": 147 + }, + "apm-telemetry-task": { + "p50": 543, + "p90": 543, + "p95": 543, + "p99": 543 + }, + "ML:saved-objects-sync": { + "p50": 544, + "p90": 544, + "p95": 544, + "p99": 544 + }, + "apm-source-map-migration-task": { + "p50": 1649, + "p90": 3282, + "p95": 3282, + "p99": 3282 + }, + "actions_telemetry": { + "p50": 19, + "p90": 19, + "p95": 19, + "p99": 19 + }, + "alerting_telemetry": { + "p50": 64, + "p90": 64, + "p95": 64, + "p99": 64 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "endpoint:user-artifact-packager": { + "p50": 10, + "p90": 13, + "p95": 13, + "p99": 13 + }, + "fleet:bump_agent_policies": { + "p50": 9, + "p90": 9, + "p95": 9, + "p99": 9 + } + }, + "duration_by_persistence": { + "recurring": { + "p50": 9, + "p90": 63.39999999999999, + "p95": 474.99999999999966, + "p99": 544 + }, + "non_recurring": { + "p50": 14, + "p90": 2968.500000000001, + "p95": 3282, + "p99": 3282 + } + }, + "persistence": { + "recurring": 88, + "non_recurring": 12 + }, + "result_frequency_percent_as_number": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:check-deleted-files-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-saved-queries": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:delete_inactive_background_task_nodes": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerts_invalidate_api_keys": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:unenroll-inactive-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_health_check": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Sender": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-diagnostics": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "logs-data-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-lists": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "cases-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-packs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Metrics-Task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:delete-unenrolled-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-configs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:complete-external-response-actions": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-detection-rules": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-prebuilt-rule-alerts": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-meta-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-filterlist-artifact": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-diagnostic-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-configuration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:indices-metadata-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Logger": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "obs-ai-assistant:knowledge-base-migration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "dashboard_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "session_cleanup": { + "Success": 0, + "RetryScheduled": 100, + "Failed": 0, + "status": "OK" + }, + "ProductDocBase:EnsureUpToDate": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "ML:saved-objects-sync": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-source-map-migration-task": { + "Success": 50, + "RetryScheduled": 50, + "Failed": 0, + "status": "OK" + }, + "actions_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:metadata-check-transforms-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:user-artifact-packager": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:bump_agent_policies": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + } + } + } + }, + "status": "OK" + }, + "workload": { + "timestamp": "2025-03-21T21:29:10.367Z", + "value": { + "count": 35, + "cost": 70, + "task_types": { + "Fleet-Metrics-Task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Logger": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Sender": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "ML:saved-objects-sync": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_health_check": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerts_invalidate_api_keys": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "apm-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "cases-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "dashboard_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:complete-external-response-actions": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:metadata-check-transforms-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:user-artifact-packager": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:check-deleted-files-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:delete-unenrolled-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:unenroll-inactive-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "logs-data-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-configs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-packs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-saved-queries": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-diagnostics": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-meta-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:indices-metadata-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-configuration": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-detection-rules": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-diagnostic-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-filterlist-artifact": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-lists": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-prebuilt-rule-alerts": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "session_cleanup": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:delete_inactive_background_task_nodes": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + } + }, + "non_recurring": 1, + "non_recurring_cost": 2, + "schedule": [ + [ + "1m", + 2 + ], + [ + "60s", + 2 + ], + [ + "5m", + 2 + ], + [ + "10m", + 1 + ], + [ + "15m", + 1 + ], + [ + "45m", + 1 + ], + [ + "1h", + 9 + ], + [ + "3600s", + 1 + ], + [ + "60m", + 1 + ], + [ + "2h", + 1 + ], + [ + "720m", + 2 + ], + [ + "24h", + 7 + ], + [ + "1d", + 3 + ], + [ + "1440m", + 1 + ] + ], + "overdue": 0, + "overdue_cost": 0, + "overdue_non_recurring": 0, + "estimated_schedule_density": [ + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "capacity_requirements": { + "per_minute": 4, + "per_hour": 46, + "per_day": 27 + } + }, + "status": "OK" + }, + "capacity_estimation": { + "status": "OK", + "reason": "Task Manager is healthy, the assumedRequiredThroughputPerMinutePerKibana (148.78541666666666) < capacityPerMinutePerKibana (1200)", + "timestamp": "2025-03-21T21:30:04.780Z", + "value": { + "observed": { + "observed_kibana_instances": 1, + "max_throughput_per_minute_per_kibana": 1200, + "max_throughput_per_minute": 1200, + "minutes_to_drain_overdue": 0, + "avg_recurring_required_throughput_per_minute": 5, + "avg_recurring_required_throughput_per_minute_per_kibana": 5, + "avg_required_throughput_per_minute": 149, + "avg_required_throughput_per_minute_per_kibana": 149 + }, + "proposed": { + "provisioned_kibana": 2, + "min_required_kibana": 1, + "avg_recurring_required_throughput_per_minute_per_kibana": 3, + "avg_required_throughput_per_minute_per_kibana": 75 + } + } + } + } + } get_connector_types_generativeai_response: summary: A list of connector types for the `generativeAI` feature. value: @@ -64374,6 +65621,41 @@ components: $ref: '#/components/schemas/SLOs_time_window' title: Update SLO request type: object + Task_manager_health_APIs_configuration: + description: | + This object summarizes the current configuration of Task Manager. This includes dynamic configurations that change over time, such as `poll_interval` and `max_workers`, which can adjust in reaction to changing load on the system. + type: object + Task_manager_health_APIs_health_response: + title: Task health response properties + type: object + properties: + id: + type: string + last_update: + type: string + stats: + type: object + properties: + capacity_estimation: + description: | + This object provides a rough estimate about the sufficiency of its capacity. These are estimates based on historical data and should not be used as predictions. + type: object + configuration: + $ref: '#/components/schemas/Task_manager_health_APIs_configuration' + runtime: + description: | + This object tracks runtime performance of Task Manager, tracking task drift, worker load, and stats broken down by type, including duration and run results. + type: object + workload: + $ref: '#/components/schemas/Task_manager_health_APIs_workload' + status: + type: string + timestamp: + type: string + Task_manager_health_APIs_workload: + description: | + This object summarizes the work load across the cluster, including the tasks in the system, their types, and current status. + type: object Upgrade_assistant_APIs_errorMessage: description: The error that caused the reindex to fail, if it failed. type: string diff --git a/oas_docs/scripts/merge_ess_oas.js b/oas_docs/scripts/merge_ess_oas.js index 3e877c48e2bb4..e8f4a9524a6ca 100644 --- a/oas_docs/scripts/merge_ess_oas.js +++ b/oas_docs/scripts/merge_ess_oas.js @@ -25,6 +25,7 @@ const { REPO_ROOT } = require('@kbn/repo-info'); `${REPO_ROOT}/x-pack/platform/plugins/shared/security/docs/openapi/user_session_apis.yaml`, `${REPO_ROOT}/src/platform/plugins/shared/share/docs/openapi/short_url_apis.yaml`, `${REPO_ROOT}/x-pack/platform/plugins/private/logstash/docs/openapi/logstash_apis.yaml`, + `${REPO_ROOT}/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled.yaml`, // Observability Solution `${REPO_ROOT}/x-pack/solutions/observability/plugins/apm/docs/openapi/apm/bundled.yaml`, diff --git a/oas_docs/scripts/merge_serverless_oas.js b/oas_docs/scripts/merge_serverless_oas.js index 234f42fa13acd..cd5cc07b93649 100644 --- a/oas_docs/scripts/merge_serverless_oas.js +++ b/oas_docs/scripts/merge_serverless_oas.js @@ -18,6 +18,7 @@ const { REPO_ROOT } = require('@kbn/repo-info'); `${REPO_ROOT}/src/platform/plugins/shared/data_views/docs/openapi/bundled.yaml`, `${REPO_ROOT}/x-pack/platform/plugins/shared/ml/common/openapi/ml_apis_serverless.yaml`, `${REPO_ROOT}/src/core/packages/saved-objects/docs/openapi/bundled_serverless.yaml`, + `${REPO_ROOT}/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled_serverless.yaml`, // Observability Solution `${REPO_ROOT}/x-pack/solutions/observability/plugins/apm/docs/openapi/apm/bundled.yaml`, diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/README.md b/x-pack/platform/plugins/shared/task_manager/docs/openapi/README.md new file mode 100644 index 0000000000000..45fed9bc9ea2a --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/README.md @@ -0,0 +1,21 @@ +# OpenAPI (Experimental) + +The current self-contained spec file can be used for online tools like those found at https://openapi.tools/. This spec is experimental and may be incomplete or change later. + +A guide about the openApi specification can be found at [https://swagger.io/docs/specification/about/](https://swagger.io/docs/specification/about/). + +## The `openapi` folder + +* `entrypoint*.yaml` are the overview files that pull together all the components and examples. +* `components`: Reusable components + +## Tools + +Generate the `bundled` files by running the following commands: + +```bash +npx @redocly/cli bundle entrypoint.yaml --output bundled.yaml --ext yaml +npx @redocly/cli bundle entrypoint_serverless.yaml --output bundled_serverless.yaml --ext yaml +``` + +These files are joined with the rest of the Kibana APIs per `oas_docs/README.md` diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled.yaml new file mode 100644 index 0000000000000..1b21cc16d4d60 --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled.yaml @@ -0,0 +1,1297 @@ +openapi: 3.0.3 +info: + title: Task manager health APIs + description: Kibana APIs for the task manager feature + version: 1.0.0 + license: + name: Elastic License 2.0 + url: https://www.elastic.co/licensing/elastic-license +servers: + - url: / +tags: + - name: task manager + x-displayName: Task manager + externalDocs: + url: https://www.elastic.co/guide/en/kibana/current/task-manager-production-considerations.html + description: Task manager +paths: + /api/task_manager/_health: + get: + summary: Get the task manager health + description: | + Get the health status of the Kibana task manager. + operationId: task-manager-health + tags: + - task manager + responses: + '200': + description: Indicates a successful call + content: + application/json: + schema: + $ref: '#/components/schemas/health_response' + examples: + taskManagerHealthResponse1: + $ref: '#/components/examples/health_200response' +components: + schemas: + configuration: + type: object + description: | + This object summarizes the current configuration of Task Manager. This includes dynamic configurations that change over time, such as `poll_interval` and `max_workers`, which can adjust in reaction to changing load on the system. + workload: + type: object + description: | + This object summarizes the work load across the cluster, including the tasks in the system, their types, and current status. + health_response: + title: Task health response properties + type: object + properties: + id: + type: string + last_update: + type: string + stats: + type: object + properties: + capacity_estimation: + type: object + description: | + This object provides a rough estimate about the sufficiency of its capacity. These are estimates based on historical data and should not be used as predictions. + configuration: + $ref: '#/components/schemas/configuration' + runtime: + type: object + description: | + This object tracks runtime performance of Task Manager, tracking task drift, worker load, and stats broken down by type, including duration and run results. + workload: + $ref: '#/components/schemas/workload' + status: + type: string + timestamp: + type: string + examples: + health_200response: + description: A successful response from `GET api/task_manager/_health`. + value: |- + { + "id": "330bbc6a-56cd-44d5-88e3-e3229f14d619", + "timestamp": "2025-03-21T21:30:04.780Z", + "status": "OK", + "last_update": "2025-03-21T21:30:04.455Z", + "stats": { + "configuration": { + "timestamp": "2025-03-21T21:26:10.002Z", + "value": { + "request_capacity": 1000, + "monitored_aggregated_stats_refresh_rate": 60000, + "monitored_stats_running_average_window": 50, + "monitored_task_execution_thresholds": { + "custom": {}, + "default": { + "error_threshold": 90, + "warn_threshold": 80 + } + }, + "claim_strategy": "mget", + "poll_interval": 500, + "capacity": { + "config": 10, + "as_workers": 10, + "as_cost": 20 + } + }, + "status": "OK" + }, + "runtime": { + "timestamp": "2025-03-21T21:30:04.455Z", + "value": { + "polling": { + "last_successful_poll": "2025-03-21T21:30:04.455Z", + "last_polling_delay": "2025-03-21T21:26:10.001Z", + "claim_duration": { + "p50": 17, + "p90": 22, + "p95": 25, + "p99": 27 + }, + "duration": { + "p50": 19, + "p90": 25.5, + "p95": 28, + "p99": 28 + }, + "claim_conflicts": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_mismatches": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_stale_tasks": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "result_frequency_percent_as_number": { + "Failed": 0, + "NoAvailableWorkers": 0, + "NoTasksClaimed": 100, + "RanOutOfCapacity": 0, + "RunningAtCapacity": 0, + "PoolFilled": 0 + }, + "persistence": { + "recurring": 88, + "non_recurring": 12 + } + }, + "drift": { + "p50": 2089, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "drift_by_type": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 2082, + "p90": 2082, + "p95": 2082, + "p99": 2082 + }, + "fleet:check-deleted-files-task": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "osquery:telemetry-saved-queries": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 2089, + "p90": 2089, + "p95": 2089, + "p99": 2089 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 336.5, + "p90": 2089, + "p95": 2089, + "p99": 2089 + }, + "alerts_invalidate_api_keys": { + "p50": 2086, + "p90": 2086, + "p95": 2086, + "p99": 2086 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "alerting_health_check": { + "p50": 2086, + "p90": 2086, + "p95": 2086, + "p99": 2086 + }, + "Fleet-Usage-Sender": { + "p50": 2079, + "p90": 2079, + "p95": 2079, + "p99": 2079 + }, + "security:endpoint-diagnostics": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "logs-data-telemetry": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "security:telemetry-lists": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "security:telemetry-timelines": { + "p50": 2526, + "p90": 2526, + "p95": 2526, + "p99": 2526 + }, + "cases-telemetry-task": { + "p50": 2083, + "p90": 2083, + "p95": 2083, + "p99": 2083 + }, + "osquery:telemetry-packs": { + "p50": 2530, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "Fleet-Metrics-Task": { + "p50": 133.5, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 2530, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "osquery:telemetry-configs": { + "p50": 2529, + "p90": 2529, + "p95": 2529, + "p99": 2529 + }, + "endpoint:complete-external-response-actions": { + "p50": 519, + "p90": 2526, + "p95": 2526, + "p99": 2526 + }, + "security:telemetry-detection-rules": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:endpoint-meta-telemetry": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-filterlist-artifact": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-configuration": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:indices-metadata-telemetry": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "Fleet-Usage-Logger": { + "p50": 2190, + "p90": 2190, + "p95": 2190, + "p99": 2190 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 2189, + "p90": 2189, + "p95": 2189, + "p99": 2189 + }, + "dashboard_telemetry": { + "p50": 2452, + "p90": 2452, + "p95": 2452, + "p99": 2452 + }, + "session_cleanup": { + "p50": 2569, + "p90": 2569, + "p95": 2569, + "p99": 2569 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 2452, + "p90": 2452, + "p95": 2452, + "p99": 2452 + }, + "apm-telemetry-task": { + "p50": 2591, + "p90": 2591, + "p95": 2591, + "p99": 2591 + }, + "ML:saved-objects-sync": { + "p50": 2475, + "p90": 2475, + "p95": 2475, + "p99": 2475 + }, + "apm-source-map-migration-task": { + "p50": 1603.5, + "p90": 2987, + "p95": 2987, + "p99": 2987 + }, + "actions_telemetry": { + "p50": 771, + "p90": 771, + "p95": 771, + "p99": 771 + }, + "alerting_telemetry": { + "p50": 768, + "p90": 768, + "p95": 768, + "p99": 768 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 834, + "p90": 834, + "p95": 834, + "p99": 834 + }, + "endpoint:user-artifact-packager": { + "p50": 529.5, + "p90": 835, + "p95": 835, + "p99": 835 + }, + "fleet:bump_agent_policies": { + "p50": 361, + "p90": 361, + "p95": 361, + "p99": 361 + } + }, + "load": { + "p50": 10, + "p90": 100, + "p95": 100, + "p99": 100 + }, + "execution": { + "duration": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "fleet:check-deleted-files-task": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "osquery:telemetry-saved-queries": { + "p50": 25, + "p90": 25, + "p95": 25, + "p99": 25 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 28, + "p90": 28, + "p95": 28, + "p99": 28 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 7.5, + "p90": 29, + "p95": 29, + "p99": 29 + }, + "alerts_invalidate_api_keys": { + "p50": 34, + "p90": 34, + "p95": 34, + "p99": 34 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 39, + "p90": 39, + "p95": 39, + "p99": 39 + }, + "alerting_health_check": { + "p50": 42, + "p90": 42, + "p95": 42, + "p99": 42 + }, + "Fleet-Usage-Sender": { + "p50": 78, + "p90": 78, + "p95": 78, + "p99": 78 + }, + "security:endpoint-diagnostics": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "logs-data-telemetry": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-lists": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-timelines": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "cases-telemetry-task": { + "p50": 458, + "p90": 458, + "p95": 458, + "p99": 458 + }, + "osquery:telemetry-packs": { + "p50": 10, + "p90": 10, + "p95": 10, + "p99": 10 + }, + "Fleet-Metrics-Task": { + "p50": 5, + "p90": 10, + "p95": 10, + "p99": 10 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 11, + "p90": 11, + "p95": 11, + "p99": 11 + }, + "osquery:telemetry-configs": { + "p50": 12, + "p90": 12, + "p95": 12, + "p99": 12 + }, + "endpoint:complete-external-response-actions": { + "p50": 7, + "p90": 11, + "p95": 11, + "p99": 11 + }, + "security:telemetry-detection-rules": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:endpoint-meta-telemetry": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-filterlist-artifact": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-configuration": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:indices-metadata-telemetry": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "Fleet-Usage-Logger": { + "p50": 18, + "p90": 18, + "p95": 18, + "p99": 18 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 8, + "p90": 8, + "p95": 8, + "p99": 8 + }, + "dashboard_telemetry": { + "p50": 12, + "p90": 12, + "p95": 12, + "p99": 12 + }, + "session_cleanup": { + "p50": 58, + "p90": 58, + "p95": 58, + "p99": 58 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 147, + "p90": 147, + "p95": 147, + "p99": 147 + }, + "apm-telemetry-task": { + "p50": 543, + "p90": 543, + "p95": 543, + "p99": 543 + }, + "ML:saved-objects-sync": { + "p50": 544, + "p90": 544, + "p95": 544, + "p99": 544 + }, + "apm-source-map-migration-task": { + "p50": 1649, + "p90": 3282, + "p95": 3282, + "p99": 3282 + }, + "actions_telemetry": { + "p50": 19, + "p90": 19, + "p95": 19, + "p99": 19 + }, + "alerting_telemetry": { + "p50": 64, + "p90": 64, + "p95": 64, + "p99": 64 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "endpoint:user-artifact-packager": { + "p50": 10, + "p90": 13, + "p95": 13, + "p99": 13 + }, + "fleet:bump_agent_policies": { + "p50": 9, + "p90": 9, + "p95": 9, + "p99": 9 + } + }, + "duration_by_persistence": { + "recurring": { + "p50": 9, + "p90": 63.39999999999999, + "p95": 474.99999999999966, + "p99": 544 + }, + "non_recurring": { + "p50": 14, + "p90": 2968.500000000001, + "p95": 3282, + "p99": 3282 + } + }, + "persistence": { + "recurring": 88, + "non_recurring": 12 + }, + "result_frequency_percent_as_number": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:check-deleted-files-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-saved-queries": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:delete_inactive_background_task_nodes": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerts_invalidate_api_keys": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:unenroll-inactive-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_health_check": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Sender": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-diagnostics": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "logs-data-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-lists": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "cases-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-packs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Metrics-Task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:delete-unenrolled-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-configs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:complete-external-response-actions": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-detection-rules": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-prebuilt-rule-alerts": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-meta-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-filterlist-artifact": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-diagnostic-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-configuration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:indices-metadata-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Logger": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "obs-ai-assistant:knowledge-base-migration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "dashboard_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "session_cleanup": { + "Success": 0, + "RetryScheduled": 100, + "Failed": 0, + "status": "OK" + }, + "ProductDocBase:EnsureUpToDate": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "ML:saved-objects-sync": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-source-map-migration-task": { + "Success": 50, + "RetryScheduled": 50, + "Failed": 0, + "status": "OK" + }, + "actions_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:metadata-check-transforms-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:user-artifact-packager": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:bump_agent_policies": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + } + } + } + }, + "status": "OK" + }, + "workload": { + "timestamp": "2025-03-21T21:29:10.367Z", + "value": { + "count": 35, + "cost": 70, + "task_types": { + "Fleet-Metrics-Task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Logger": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Sender": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "ML:saved-objects-sync": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_health_check": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerts_invalidate_api_keys": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "apm-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "cases-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "dashboard_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:complete-external-response-actions": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:metadata-check-transforms-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:user-artifact-packager": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:check-deleted-files-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:delete-unenrolled-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:unenroll-inactive-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "logs-data-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-configs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-packs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-saved-queries": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-diagnostics": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-meta-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:indices-metadata-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-configuration": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-detection-rules": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-diagnostic-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-filterlist-artifact": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-lists": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-prebuilt-rule-alerts": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "session_cleanup": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:delete_inactive_background_task_nodes": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + } + }, + "non_recurring": 1, + "non_recurring_cost": 2, + "schedule": [ + [ + "1m", + 2 + ], + [ + "60s", + 2 + ], + [ + "5m", + 2 + ], + [ + "10m", + 1 + ], + [ + "15m", + 1 + ], + [ + "45m", + 1 + ], + [ + "1h", + 9 + ], + [ + "3600s", + 1 + ], + [ + "60m", + 1 + ], + [ + "2h", + 1 + ], + [ + "720m", + 2 + ], + [ + "24h", + 7 + ], + [ + "1d", + 3 + ], + [ + "1440m", + 1 + ] + ], + "overdue": 0, + "overdue_cost": 0, + "overdue_non_recurring": 0, + "estimated_schedule_density": [ + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "capacity_requirements": { + "per_minute": 4, + "per_hour": 46, + "per_day": 27 + } + }, + "status": "OK" + }, + "capacity_estimation": { + "status": "OK", + "reason": "Task Manager is healthy, the assumedRequiredThroughputPerMinutePerKibana (148.78541666666666) < capacityPerMinutePerKibana (1200)", + "timestamp": "2025-03-21T21:30:04.780Z", + "value": { + "observed": { + "observed_kibana_instances": 1, + "max_throughput_per_minute_per_kibana": 1200, + "max_throughput_per_minute": 1200, + "minutes_to_drain_overdue": 0, + "avg_recurring_required_throughput_per_minute": 5, + "avg_recurring_required_throughput_per_minute_per_kibana": 5, + "avg_required_throughput_per_minute": 149, + "avg_required_throughput_per_minute_per_kibana": 149 + }, + "proposed": { + "provisioned_kibana": 2, + "min_required_kibana": 1, + "avg_recurring_required_throughput_per_minute_per_kibana": 3, + "avg_required_throughput_per_minute_per_kibana": 75 + } + } + } + } + } diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled_serverless.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled_serverless.yaml new file mode 100644 index 0000000000000..d2edd7bd74032 --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/bundled_serverless.yaml @@ -0,0 +1,364 @@ +openapi: 3.0.3 +info: + title: Task manager health Serverless APIs + description: Kibana APIs for the task manager feature + version: 1.0.0 + license: + name: Elastic License 2.0 + url: https://www.elastic.co/licensing/elastic-license +servers: + - url: / +tags: + - name: task manager + x-displayName: Task manager + externalDocs: + url: https://www.elastic.co/guide/en/kibana/current/task-manager-production-considerations.html + description: Task manager +paths: + /api/task_manager/_health: + get: + summary: Get the task manager health + description: | + Get the health status of the Kibana task manager. + operationId: task-manager-health + tags: + - task manager + responses: + '200': + description: Indicates a successful call + content: + application/json: + schema: + $ref: '#/components/schemas/health_response_serverless' + examples: + taskManagerHealthResponse1: + $ref: '#/components/examples/health_200response_serverless' +components: + schemas: + configuration: + type: object + description: | + This object summarizes the current configuration of Task Manager. This includes dynamic configurations that change over time, such as `poll_interval` and `max_workers`, which can adjust in reaction to changing load on the system. + workload: + type: object + description: | + This object summarizes the work load across the cluster, including the tasks in the system, their types, and current status. + health_response_serverless: + title: Task health response properties + type: object + properties: + id: + type: string + last_update: + type: string + stats: + type: object + properties: + configuration: + $ref: '#/components/schemas/configuration' + workload: + $ref: '#/components/schemas/workload' + status: + type: string + timestamp: + type: string + examples: + health_200response_serverless: + description: A successful response from `GET api/task_manager/_health`. + value: |- + { + "id": "b44483e1-3ba2-4f28-93d0-1d96c69c32c1", + "timestamp": "2025-03-21T21:49:50.409Z", + "status": "OK", + "last_update": "2025-03-21T21:48:53.996Z", + "stats": { + "configuration": { + "timestamp": "2025-03-21T21:47:51.663Z", + "value": { + "request_capacity": 1000, + "monitored_aggregated_stats_refresh_rate": 60000, + "monitored_stats_running_average_window": 50, + "monitored_task_execution_thresholds": { + "custom": {}, + "default": { + "error_threshold": 90, + "warn_threshold": 80 + } + }, + "claim_strategy": "mget", + "poll_interval": 500, + "capacity": { + "config": 10, + "as_workers": 10, + "as_cost": 20 + } + }, + "status": "OK" + }, + "workload": { + "timestamp": "2025-03-21T21:48:53.996Z", + "value": { + "count": 21, + "cost": 42, + "task_types": { + "Fleet-Metrics-Task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Logger": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Sender": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "ML:saved-objects-sync": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions:connector_usage_reporting": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_health_check": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerts_invalidate_api_keys": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "cases-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "dashboard_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:automatic-agent-upgrade-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:check-deleted-files-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:delete-unenrolled-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:sync-integrations-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:unenroll-inactive-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:upgrade-agentless-deployments-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "logs-data-telemetry": { + "count": 1, + "cost": 2, + "status": { + "running": 1 + } + }, + "session_cleanup": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:delete_inactive_background_task_nodes": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + } + }, + "non_recurring": 1, + "non_recurring_cost": 2, + "schedule": [ + [ + "1m", + 2 + ], + [ + "5m", + 2 + ], + [ + "10m", + 1 + ], + [ + "15m", + 1 + ], + [ + "30m", + 1 + ], + [ + "1h", + 5 + ], + [ + "3600s", + 1 + ], + [ + "60m", + 1 + ], + [ + "720m", + 1 + ], + [ + "1d", + 4 + ], + [ + "1440m", + 1 + ] + ], + "overdue": 0, + "overdue_cost": 0, + "overdue_non_recurring": 0, + "estimated_schedule_density": [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "capacity_requirements": { + "per_minute": 2, + "per_hour": 43, + "per_day": 7 + } + }, + "status": "OK" + } + } + } diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/examples/health_200response.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/examples/health_200response.yaml new file mode 100644 index 0000000000000..e9d5b05681fea --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/examples/health_200response.yaml @@ -0,0 +1,1224 @@ +# summary: +description: A successful response from `GET api/task_manager/_health`. +value: |- + { + "id": "330bbc6a-56cd-44d5-88e3-e3229f14d619", + "timestamp": "2025-03-21T21:30:04.780Z", + "status": "OK", + "last_update": "2025-03-21T21:30:04.455Z", + "stats": { + "configuration": { + "timestamp": "2025-03-21T21:26:10.002Z", + "value": { + "request_capacity": 1000, + "monitored_aggregated_stats_refresh_rate": 60000, + "monitored_stats_running_average_window": 50, + "monitored_task_execution_thresholds": { + "custom": {}, + "default": { + "error_threshold": 90, + "warn_threshold": 80 + } + }, + "claim_strategy": "mget", + "poll_interval": 500, + "capacity": { + "config": 10, + "as_workers": 10, + "as_cost": 20 + } + }, + "status": "OK" + }, + "runtime": { + "timestamp": "2025-03-21T21:30:04.455Z", + "value": { + "polling": { + "last_successful_poll": "2025-03-21T21:30:04.455Z", + "last_polling_delay": "2025-03-21T21:26:10.001Z", + "claim_duration": { + "p50": 17, + "p90": 22, + "p95": 25, + "p99": 27 + }, + "duration": { + "p50": 19, + "p90": 25.5, + "p95": 28, + "p99": 28 + }, + "claim_conflicts": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_mismatches": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_stale_tasks": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "result_frequency_percent_as_number": { + "Failed": 0, + "NoAvailableWorkers": 0, + "NoTasksClaimed": 100, + "RanOutOfCapacity": 0, + "RunningAtCapacity": 0, + "PoolFilled": 0 + }, + "persistence": { + "recurring": 88, + "non_recurring": 12 + } + }, + "drift": { + "p50": 2089, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "drift_by_type": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 2082, + "p90": 2082, + "p95": 2082, + "p99": 2082 + }, + "fleet:check-deleted-files-task": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "osquery:telemetry-saved-queries": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 2089, + "p90": 2089, + "p95": 2089, + "p99": 2089 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 336.5, + "p90": 2089, + "p95": 2089, + "p99": 2089 + }, + "alerts_invalidate_api_keys": { + "p50": 2086, + "p90": 2086, + "p95": 2086, + "p99": 2086 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 2080, + "p90": 2080, + "p95": 2080, + "p99": 2080 + }, + "alerting_health_check": { + "p50": 2086, + "p90": 2086, + "p95": 2086, + "p99": 2086 + }, + "Fleet-Usage-Sender": { + "p50": 2079, + "p90": 2079, + "p95": 2079, + "p99": 2079 + }, + "security:endpoint-diagnostics": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "logs-data-telemetry": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "security:telemetry-lists": { + "p50": 2525, + "p90": 2525, + "p95": 2525, + "p99": 2525 + }, + "security:telemetry-timelines": { + "p50": 2526, + "p90": 2526, + "p95": 2526, + "p99": 2526 + }, + "cases-telemetry-task": { + "p50": 2083, + "p90": 2083, + "p95": 2083, + "p99": 2083 + }, + "osquery:telemetry-packs": { + "p50": 2530, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "Fleet-Metrics-Task": { + "p50": 133.5, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 2530, + "p90": 2530, + "p95": 2530, + "p99": 2530 + }, + "osquery:telemetry-configs": { + "p50": 2529, + "p90": 2529, + "p95": 2529, + "p99": 2529 + }, + "endpoint:complete-external-response-actions": { + "p50": 519, + "p90": 2526, + "p95": 2526, + "p99": 2526 + }, + "security:telemetry-detection-rules": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:endpoint-meta-telemetry": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-filterlist-artifact": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:telemetry-configuration": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "security:indices-metadata-telemetry": { + "p50": 3037, + "p90": 3037, + "p95": 3037, + "p99": 3037 + }, + "Fleet-Usage-Logger": { + "p50": 2190, + "p90": 2190, + "p95": 2190, + "p99": 2190 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 2189, + "p90": 2189, + "p95": 2189, + "p99": 2189 + }, + "dashboard_telemetry": { + "p50": 2452, + "p90": 2452, + "p95": 2452, + "p99": 2452 + }, + "session_cleanup": { + "p50": 2569, + "p90": 2569, + "p95": 2569, + "p99": 2569 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 2452, + "p90": 2452, + "p95": 2452, + "p99": 2452 + }, + "apm-telemetry-task": { + "p50": 2591, + "p90": 2591, + "p95": 2591, + "p99": 2591 + }, + "ML:saved-objects-sync": { + "p50": 2475, + "p90": 2475, + "p95": 2475, + "p99": 2475 + }, + "apm-source-map-migration-task": { + "p50": 1603.5, + "p90": 2987, + "p95": 2987, + "p99": 2987 + }, + "actions_telemetry": { + "p50": 771, + "p90": 771, + "p95": 771, + "p99": 771 + }, + "alerting_telemetry": { + "p50": 768, + "p90": 768, + "p95": 768, + "p99": 768 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 834, + "p90": 834, + "p95": 834, + "p99": 834 + }, + "endpoint:user-artifact-packager": { + "p50": 529.5, + "p90": 835, + "p95": 835, + "p99": 835 + }, + "fleet:bump_agent_policies": { + "p50": 361, + "p90": 361, + "p95": 361, + "p99": 361 + } + }, + "load": { + "p50": 10, + "p90": 100, + "p95": 100, + "p99": 100 + }, + "execution": { + "duration": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "fleet:check-deleted-files-task": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "osquery:telemetry-saved-queries": { + "p50": 25, + "p90": 25, + "p95": 25, + "p99": 25 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 28, + "p90": 28, + "p95": 28, + "p99": 28 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 7.5, + "p90": 29, + "p95": 29, + "p99": 29 + }, + "alerts_invalidate_api_keys": { + "p50": 34, + "p90": 34, + "p95": 34, + "p99": 34 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 39, + "p90": 39, + "p95": 39, + "p99": 39 + }, + "alerting_health_check": { + "p50": 42, + "p90": 42, + "p95": 42, + "p99": 42 + }, + "Fleet-Usage-Sender": { + "p50": 78, + "p90": 78, + "p95": 78, + "p99": 78 + }, + "security:endpoint-diagnostics": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "logs-data-telemetry": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-lists": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-timelines": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "cases-telemetry-task": { + "p50": 458, + "p90": 458, + "p95": 458, + "p99": 458 + }, + "osquery:telemetry-packs": { + "p50": 10, + "p90": 10, + "p95": 10, + "p99": 10 + }, + "Fleet-Metrics-Task": { + "p50": 5, + "p90": 10, + "p95": 10, + "p99": 10 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 11, + "p90": 11, + "p95": 11, + "p99": 11 + }, + "osquery:telemetry-configs": { + "p50": 12, + "p90": 12, + "p95": 12, + "p99": 12 + }, + "endpoint:complete-external-response-actions": { + "p50": 7, + "p90": 11, + "p95": 11, + "p99": 11 + }, + "security:telemetry-detection-rules": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:endpoint-meta-telemetry": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-filterlist-artifact": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-configuration": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:indices-metadata-telemetry": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "Fleet-Usage-Logger": { + "p50": 18, + "p90": 18, + "p95": 18, + "p99": 18 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 8, + "p90": 8, + "p95": 8, + "p99": 8 + }, + "dashboard_telemetry": { + "p50": 12, + "p90": 12, + "p95": 12, + "p99": 12 + }, + "session_cleanup": { + "p50": 58, + "p90": 58, + "p95": 58, + "p99": 58 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 147, + "p90": 147, + "p95": 147, + "p99": 147 + }, + "apm-telemetry-task": { + "p50": 543, + "p90": 543, + "p95": 543, + "p99": 543 + }, + "ML:saved-objects-sync": { + "p50": 544, + "p90": 544, + "p95": 544, + "p99": 544 + }, + "apm-source-map-migration-task": { + "p50": 1649, + "p90": 3282, + "p95": 3282, + "p99": 3282 + }, + "actions_telemetry": { + "p50": 19, + "p90": 19, + "p95": 19, + "p99": 19 + }, + "alerting_telemetry": { + "p50": 64, + "p90": 64, + "p95": 64, + "p99": 64 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "endpoint:user-artifact-packager": { + "p50": 10, + "p90": 13, + "p95": 13, + "p99": 13 + }, + "fleet:bump_agent_policies": { + "p50": 9, + "p90": 9, + "p95": 9, + "p99": 9 + } + }, + "duration_by_persistence": { + "recurring": { + "p50": 9, + "p90": 63.39999999999999, + "p95": 474.99999999999966, + "p99": 544 + }, + "non_recurring": { + "p50": 14, + "p90": 2968.500000000001, + "p95": 3282, + "p99": 3282 + } + }, + "persistence": { + "recurring": 88, + "non_recurring": 12 + }, + "result_frequency_percent_as_number": { + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:check-deleted-files-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-saved-queries": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:delete_inactive_background_task_nodes": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerts_invalidate_api_keys": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:unenroll-inactive-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_health_check": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Sender": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-diagnostics": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "logs-data-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-lists": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "cases-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-packs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Metrics-Task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:delete-unenrolled-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-configs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:complete-external-response-actions": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-detection-rules": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-prebuilt-rule-alerts": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-meta-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-filterlist-artifact": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-diagnostic-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-configuration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:indices-metadata-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Logger": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "obs-ai-assistant:knowledge-base-migration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "dashboard_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "session_cleanup": { + "Success": 0, + "RetryScheduled": 100, + "Failed": 0, + "status": "OK" + }, + "ProductDocBase:EnsureUpToDate": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "ML:saved-objects-sync": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-source-map-migration-task": { + "Success": 50, + "RetryScheduled": 50, + "Failed": 0, + "status": "OK" + }, + "actions_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:metadata-check-transforms-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:user-artifact-packager": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:bump_agent_policies": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + } + } + } + }, + "status": "OK" + }, + "workload": { + "timestamp": "2025-03-21T21:29:10.367Z", + "value": { + "count": 35, + "cost": 70, + "task_types": { + "Fleet-Metrics-Task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Logger": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Sender": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "ML:saved-objects-sync": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_health_check": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerts_invalidate_api_keys": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "apm-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "cases-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "dashboard_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:complete-external-response-actions": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:metadata-check-transforms-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:user-artifact-packager": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:check-deleted-files-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:delete-unenrolled-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:unenroll-inactive-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "logs-data-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-configs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-packs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-saved-queries": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-diagnostics": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-meta-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:indices-metadata-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-configuration": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-detection-rules": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-diagnostic-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-filterlist-artifact": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-lists": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-prebuilt-rule-alerts": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "session_cleanup": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:delete_inactive_background_task_nodes": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + } + }, + "non_recurring": 1, + "non_recurring_cost": 2, + "schedule": [ + [ + "1m", + 2 + ], + [ + "60s", + 2 + ], + [ + "5m", + 2 + ], + [ + "10m", + 1 + ], + [ + "15m", + 1 + ], + [ + "45m", + 1 + ], + [ + "1h", + 9 + ], + [ + "3600s", + 1 + ], + [ + "60m", + 1 + ], + [ + "2h", + 1 + ], + [ + "720m", + 2 + ], + [ + "24h", + 7 + ], + [ + "1d", + 3 + ], + [ + "1440m", + 1 + ] + ], + "overdue": 0, + "overdue_cost": 0, + "overdue_non_recurring": 0, + "estimated_schedule_density": [ + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "capacity_requirements": { + "per_minute": 4, + "per_hour": 46, + "per_day": 27 + } + }, + "status": "OK" + }, + "capacity_estimation": { + "status": "OK", + "reason": "Task Manager is healthy, the assumedRequiredThroughputPerMinutePerKibana (148.78541666666666) < capacityPerMinutePerKibana (1200)", + "timestamp": "2025-03-21T21:30:04.780Z", + "value": { + "observed": { + "observed_kibana_instances": 1, + "max_throughput_per_minute_per_kibana": 1200, + "max_throughput_per_minute": 1200, + "minutes_to_drain_overdue": 0, + "avg_recurring_required_throughput_per_minute": 5, + "avg_recurring_required_throughput_per_minute_per_kibana": 5, + "avg_required_throughput_per_minute": 149, + "avg_required_throughput_per_minute_per_kibana": 149 + }, + "proposed": { + "provisioned_kibana": 2, + "min_required_kibana": 1, + "avg_recurring_required_throughput_per_minute_per_kibana": 3, + "avg_required_throughput_per_minute_per_kibana": 75 + } + } + } + } + } diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/examples/health_200response_serverless.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/examples/health_200response_serverless.yaml new file mode 100644 index 0000000000000..4b6040193f3a1 --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/examples/health_200response_serverless.yaml @@ -0,0 +1,299 @@ +# summary: +description: A successful response from `GET api/task_manager/_health`. +value: |- + { + "id": "b44483e1-3ba2-4f28-93d0-1d96c69c32c1", + "timestamp": "2025-03-21T21:49:50.409Z", + "status": "OK", + "last_update": "2025-03-21T21:48:53.996Z", + "stats": { + "configuration": { + "timestamp": "2025-03-21T21:47:51.663Z", + "value": { + "request_capacity": 1000, + "monitored_aggregated_stats_refresh_rate": 60000, + "monitored_stats_running_average_window": 50, + "monitored_task_execution_thresholds": { + "custom": {}, + "default": { + "error_threshold": 90, + "warn_threshold": 80 + } + }, + "claim_strategy": "mget", + "poll_interval": 500, + "capacity": { + "config": 10, + "as_workers": 10, + "as_cost": 20 + } + }, + "status": "OK" + }, + "workload": { + "timestamp": "2025-03-21T21:48:53.996Z", + "value": { + "count": 21, + "cost": 42, + "task_types": { + "Fleet-Metrics-Task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Logger": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Sender": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "ML:saved-objects-sync": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions:connector_usage_reporting": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_health_check": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerts_invalidate_api_keys": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "cases-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "dashboard_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:automatic-agent-upgrade-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:check-deleted-files-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:delete-unenrolled-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:sync-integrations-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:unenroll-inactive-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:upgrade-agentless-deployments-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "logs-data-telemetry": { + "count": 1, + "cost": 2, + "status": { + "running": 1 + } + }, + "session_cleanup": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:delete_inactive_background_task_nodes": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + } + }, + "non_recurring": 1, + "non_recurring_cost": 2, + "schedule": [ + [ + "1m", + 2 + ], + [ + "5m", + 2 + ], + [ + "10m", + 1 + ], + [ + "15m", + 1 + ], + [ + "30m", + 1 + ], + [ + "1h", + 5 + ], + [ + "3600s", + 1 + ], + [ + "60m", + 1 + ], + [ + "720m", + 1 + ], + [ + "1d", + 4 + ], + [ + "1440m", + 1 + ] + ], + "overdue": 0, + "overdue_cost": 0, + "overdue_non_recurring": 0, + "estimated_schedule_density": [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "capacity_requirements": { + "per_minute": 2, + "per_hour": 43, + "per_day": 7 + } + }, + "status": "OK" + } + } + } diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/configuration.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/configuration.yaml new file mode 100644 index 0000000000000..7117ebc6c31b1 --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/configuration.yaml @@ -0,0 +1,4 @@ +type: object +description: > + This object summarizes the current configuration of Task Manager. + This includes dynamic configurations that change over time, such as `poll_interval` and `max_workers`, which can adjust in reaction to changing load on the system. \ No newline at end of file diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/health_response.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/health_response.yaml new file mode 100644 index 0000000000000..a3cf366e126e3 --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/health_response.yaml @@ -0,0 +1,27 @@ +title: Task health response properties +type: object +properties: + id: + type: string + last_update: + type: string + stats: + type: object + properties: + capacity_estimation: + type: object + description: > + This object provides a rough estimate about the sufficiency of its capacity. + These are estimates based on historical data and should not be used as predictions. + configuration: + $ref: 'configuration.yaml' + runtime: + type: object + description: > + This object tracks runtime performance of Task Manager, tracking task drift, worker load, and stats broken down by type, including duration and run results. + workload: + $ref: 'workload.yaml' + status: + type: string + timestamp: + type: string diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/health_response_serverless.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/health_response_serverless.yaml new file mode 100644 index 0000000000000..f8712ff24a31b --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/health_response_serverless.yaml @@ -0,0 +1,18 @@ +title: Task health response properties +type: object +properties: + id: + type: string + last_update: + type: string + stats: + type: object + properties: + configuration: + $ref: 'configuration.yaml' + workload: + $ref: 'workload.yaml' + status: + type: string + timestamp: + type: string diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/workload.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/workload.yaml new file mode 100644 index 0000000000000..dcca9fa6e269e --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/components/schemas/workload.yaml @@ -0,0 +1,3 @@ +type: object +description: > + This object summarizes the work load across the cluster, including the tasks in the system, their types, and current status. \ No newline at end of file diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/entrypoint.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/entrypoint.yaml new file mode 100644 index 0000000000000..9ec04961b35be --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/entrypoint.yaml @@ -0,0 +1,36 @@ +openapi: 3.0.3 +info: + title: Task manager health APIs + description: Kibana APIs for the task manager feature + version: 1.0.0 + license: + name: Elastic License 2.0 + url: https://www.elastic.co/licensing/elastic-license +tags: + - name: task manager + x-displayName: Task manager + externalDocs: + url: >- + https://www.elastic.co/guide/en/kibana/current/task-manager-production-considerations.html + description: Task manager +servers: + - url: / +paths: + /api/task_manager/_health: + get: + summary: Get the task manager health + description: | + Get the health status of the Kibana task manager. + operationId: task-manager-health + tags: + - task manager + responses: + '200': + description: Indicates a successful call + content: + application/json: + schema: + $ref: 'components/schemas/health_response.yaml' + examples: + taskManagerHealthResponse1: + $ref: 'components/examples/health_200response.yaml' diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/entrypoint_serverless.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/entrypoint_serverless.yaml new file mode 100644 index 0000000000000..d8a42dc6ca08a --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/entrypoint_serverless.yaml @@ -0,0 +1,36 @@ +openapi: 3.0.3 +info: + title: Task manager health Serverless APIs + description: Kibana APIs for the task manager feature + version: 1.0.0 + license: + name: Elastic License 2.0 + url: https://www.elastic.co/licensing/elastic-license +tags: + - name: task manager + x-displayName: Task manager + externalDocs: + url: >- + https://www.elastic.co/guide/en/kibana/current/task-manager-production-considerations.html + description: Task manager +servers: + - url: / +paths: + /api/task_manager/_health: + get: + summary: Get the task manager health + description: | + Get the health status of the Kibana task manager. + operationId: task-manager-health + tags: + - task manager + responses: + '200': + description: Indicates a successful call + content: + application/json: + schema: + $ref: 'components/schemas/health_response_serverless.yaml' + examples: + taskManagerHealthResponse1: + $ref: 'components/examples/health_200response_serverless.yaml' diff --git a/x-pack/platform/plugins/shared/task_manager/docs/openapi/health_apis.yaml b/x-pack/platform/plugins/shared/task_manager/docs/openapi/health_apis.yaml new file mode 100644 index 0000000000000..e0da9f2b6db6c --- /dev/null +++ b/x-pack/platform/plugins/shared/task_manager/docs/openapi/health_apis.yaml @@ -0,0 +1,1292 @@ +openapi: 3.0.3 +info: + title: Task manager health APIs + description: Kibana APIs for the task manager feature + version: "1.0.0" + license: + name: Elastic License 2.0 + url: https://www.elastic.co/licensing/elastic-license +tags: + - name: task manager + # description: + x-displayName: Task manager + externalDocs: + url: https://www.elastic.co/guide/en/kibana/current/task-manager-production-considerations.html + description: Task manager +servers: + - url: / +paths: + /api/task_manager/_health: + get: + summary: Get the task manager health + description: > + Get the health status of the Kibana task manager. + operationId: task-manager-health + tags: + - task manager + responses: + '200': + description: Indicates a successful call + content: + application/json: + schema: + type: object + properties: + id: + type: string + # description: + last_update: + type: string + # description: + stats: + type: object + properties: + capacity_estimation: + type: object + description: > + This object provides a rough estimate about the sufficiency of its capacity. + These are estimates based on historical data and should not be used as predictions. + configuration: + type: object + description: > + This object summarizes the current configuration of Task Manager. + This includes dynamic configurations that change over time, such as `poll_interval` and `max_workers`, which can adjust in reaction to changing load on the system. + runtime: + type: object + description: > + This object tracks runtime performance of Task Manager, tracking task drift, worker load, and stats broken down by type, including duration and run results. + workload: + type: object + description: > + This object summarizes the work load across the cluster, including the tasks in the system, their types, and current status. + status: + type: string + # description: + timestamp: + type: string + # description: + examples: + taskManagerHealthResponse1: + # summary: + value: |- + { + "id": "fbed0dcc-3014-4b06-a2f4-1944b7b6df00", + "timestamp": "2025-03-21T21:14:50.535Z", + "status": "OK", + "last_update": "2025-03-21T21:14:50.240Z", + "stats": { + "configuration": { + "timestamp": "2025-03-21T21:11:01.073Z", + "value": { + "request_capacity": 1000, + "monitored_aggregated_stats_refresh_rate": 60000, + "monitored_stats_running_average_window": 50, + "monitored_task_execution_thresholds": { + "custom": {}, + "default": { + "error_threshold": 90, + "warn_threshold": 80 + } + }, + "claim_strategy": "mget", + "poll_interval": 500, + "capacity": { + "config": 10, + "as_workers": 10, + "as_cost": 20 + } + }, + "status": "OK" + }, + "runtime": { + "timestamp": "2025-03-21T21:14:50.240Z", + "value": { + "polling": { + "last_successful_poll": "2025-03-21T21:14:50.240Z", + "last_polling_delay": "2025-03-21T21:11:01.072Z", + "claim_duration": { + "p50": 4, + "p90": 4, + "p95": 5, + "p99": 8 + }, + "duration": { + "p50": 4, + "p90": 5, + "p95": 7, + "p99": 8 + }, + "claim_conflicts": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_mismatches": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "claim_stale_tasks": { + "p50": 0, + "p90": 0, + "p95": 0, + "p99": 0 + }, + "result_frequency_percent_as_number": { + "Failed": 0, + "NoAvailableWorkers": 0, + "NoTasksClaimed": 100, + "RanOutOfCapacity": 0, + "RunningAtCapacity": 0, + "PoolFilled": 0 + }, + "persistence": { + "recurring": 90, + "non_recurring": 10 + } + }, + "drift": { + "p50": 846187459, + "p90": 910992736, + "p95": 911234119, + "p99": 911237991 + }, + "drift_by_type": { + "endpoint:user-artifact-packager": { + "p50": 518.5, + "p90": 911234116, + "p95": 911234116, + "p99": 911234116 + }, + "security:endpoint-diagnostics": { + "p50": 910998502, + "p90": 910998502, + "p95": 910998502, + "p99": 910998502 + }, + "alerts_invalidate_api_keys": { + "p50": 910998502, + "p90": 910998502, + "p95": 910998502, + "p99": 910998502 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 910986835, + "p90": 910986835, + "p95": 910986835, + "p99": 910986835 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 910986835, + "p90": 910986835, + "p95": 910986835, + "p99": 910986835 + }, + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 910986836, + "p90": 910986836, + "p95": 910986836, + "p99": 910986836 + }, + "Fleet-Metrics-Task": { + "p50": 324.5, + "p90": 911237991, + "p95": 911237991, + "p99": 911237991 + }, + "endpoint:complete-external-response-actions": { + "p50": 522, + "p90": 911234119, + "p95": 911234119, + "p99": 911234119 + }, + "alerting_health_check": { + "p50": 910986836, + "p90": 910986836, + "p95": 910986836, + "p99": 910986836 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 324.5, + "p90": 911237991, + "p95": 911237991, + "p99": 911237991 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 910967470, + "p90": 910967470, + "p95": 910967470, + "p99": 910967470 + }, + "security:telemetry-timelines": { + "p50": 910986969, + "p90": 910986969, + "p95": 910986969, + "p99": 910986969 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 910986415, + "p90": 910986415, + "p95": 910986415, + "p99": 910986415 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 910986415, + "p90": 910986415, + "p95": 910986415, + "p99": 910986415 + }, + "security:telemetry-configuration": { + "p50": 910986415, + "p90": 910986415, + "p95": 910986415, + "p99": 910986415 + }, + "security:telemetry-filterlist-artifact": { + "p50": 910986415, + "p90": 910986415, + "p95": 910986415, + "p99": 910986415 + }, + "session_cleanup": { + "p50": 910985983, + "p90": 910985983, + "p95": 910985983, + "p99": 910985983 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 910699084, + "p90": 910699084, + "p95": 910699084, + "p99": 910699084 + }, + "Fleet-Usage-Logger": { + "p50": 910986416, + "p90": 910986416, + "p95": 910986416, + "p99": 910986416 + }, + "Fleet-Usage-Sender": { + "p50": 910986970, + "p90": 910986970, + "p95": 910986970, + "p99": 910986970 + }, + "logs-data-telemetry": { + "p50": 846187459, + "p90": 846187459, + "p95": 846187459, + "p99": 846187459 + }, + "security:telemetry-lists": { + "p50": 846187459, + "p90": 846187459, + "p95": 846187459, + "p99": 846187459 + }, + "security:telemetry-detection-rules": { + "p50": 846187459, + "p90": 846187459, + "p95": 846187459, + "p99": 846187459 + }, + "security:endpoint-meta-telemetry": { + "p50": 846186905, + "p90": 846186905, + "p95": 846186905, + "p99": 846186905 + }, + "fleet:check-deleted-files-task": { + "p50": 846187905, + "p90": 846187905, + "p95": 846187905, + "p99": 846187905 + }, + "osquery:telemetry-configs": { + "p50": 846187460, + "p90": 846187460, + "p95": 846187460, + "p99": 846187460 + }, + "osquery:telemetry-saved-queries": { + "p50": 846187459, + "p90": 846187459, + "p95": 846187459, + "p99": 846187459 + }, + "osquery:telemetry-packs": { + "p50": 846187905, + "p90": 846187905, + "p95": 846187905, + "p99": 846187905 + }, + "apm-telemetry-task": { + "p50": 889386904, + "p90": 889386904, + "p95": 889386904, + "p99": 889386904 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 1733, + "p90": 1733, + "p95": 1733, + "p99": 1733 + }, + "apm-source-map-migration-task": { + "p50": 2650, + "p90": 2650, + "p95": 2650, + "p99": 2650 + }, + "security:indices-metadata-telemetry": { + "p50": 846187402, + "p90": 846187402, + "p95": 846187402, + "p99": 846187402 + }, + "dashboard_telemetry": { + "p50": 1741, + "p90": 1741, + "p95": 1741, + "p99": 1741 + }, + "ML:saved-objects-sync": { + "p50": 1745, + "p90": 1745, + "p95": 1745, + "p99": 1745 + }, + "actions_telemetry": { + "p50": 846169458, + "p90": 846169458, + "p95": 846169458, + "p99": 846169458 + }, + "alerting_telemetry": { + "p50": 846169459, + "p90": 846169459, + "p95": 846169459, + "p99": 846169459 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 1728, + "p90": 1728, + "p95": 1728, + "p99": 1728 + }, + "cases-telemetry-task": { + "p50": 889387905, + "p90": 889387905, + "p95": 889387905, + "p99": 889387905 + }, + "fleet:bump_agent_policies": { + "p50": 421, + "p90": 421, + "p95": 421, + "p99": 421 + } + }, + "load": { + "p50": 40, + "p90": 100, + "p95": 100, + "p99": 100 + }, + "execution": { + "duration": { + "endpoint:user-artifact-packager": { + "p50": 11.5, + "p90": 13, + "p95": 13, + "p99": 13 + }, + "security:endpoint-diagnostics": { + "p50": 9, + "p90": 9, + "p95": 9, + "p99": 9 + }, + "alerts_invalidate_api_keys": { + "p50": 34, + "p90": 34, + "p95": 34, + "p99": 34 + }, + "fleet:delete-unenrolled-agents-task": { + "p50": 35, + "p90": 35, + "p95": 35, + "p99": 35 + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "p50": 35, + "p90": 35, + "p95": 35, + "p99": 35 + }, + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "p50": 36, + "p90": 36, + "p95": 36, + "p99": 36 + }, + "Fleet-Metrics-Task": { + "p50": 5.5, + "p90": 40, + "p95": 40, + "p99": 40 + }, + "endpoint:complete-external-response-actions": { + "p50": 9, + "p90": 52, + "p95": 52, + "p99": 52 + }, + "alerting_health_check": { + "p50": 78, + "p90": 78, + "p95": 78, + "p99": 78 + }, + "task_manager:delete_inactive_background_task_nodes": { + "p50": 6, + "p90": 84, + "p95": 84, + "p99": 84 + }, + "endpoint:metadata-check-transforms-task": { + "p50": 4, + "p90": 4, + "p95": 4, + "p99": 4 + }, + "security:telemetry-timelines": { + "p50": 6, + "p90": 6, + "p95": 6, + "p99": 6 + }, + "security:telemetry-diagnostic-timelines": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-prebuilt-rule-alerts": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-configuration": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "security:telemetry-filterlist-artifact": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + }, + "session_cleanup": { + "p50": 17, + "p90": 17, + "p95": 17, + "p99": 17 + }, + "fleet:unenroll-inactive-agents-task": { + "p50": 18, + "p90": 18, + "p95": 18, + "p99": 18 + }, + "Fleet-Usage-Logger": { + "p50": 22, + "p90": 22, + "p95": 22, + "p99": 22 + }, + "Fleet-Usage-Sender": { + "p50": 56, + "p90": 56, + "p95": 56, + "p99": 56 + }, + "logs-data-telemetry": { + "p50": 14, + "p90": 14, + "p95": 14, + "p99": 14 + }, + "security:telemetry-lists": { + "p50": 14, + "p90": 14, + "p95": 14, + "p99": 14 + }, + "security:telemetry-detection-rules": { + "p50": 14, + "p90": 14, + "p95": 14, + "p99": 14 + }, + "security:endpoint-meta-telemetry": { + "p50": 13, + "p90": 13, + "p95": 13, + "p99": 13 + }, + "fleet:check-deleted-files-task": { + "p50": 21, + "p90": 21, + "p95": 21, + "p99": 21 + }, + "osquery:telemetry-configs": { + "p50": 20, + "p90": 20, + "p95": 20, + "p99": 20 + }, + "osquery:telemetry-saved-queries": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "osquery:telemetry-packs": { + "p50": 24, + "p90": 24, + "p95": 24, + "p99": 24 + }, + "apm-telemetry-task": { + "p50": 361, + "p90": 361, + "p95": 361, + "p99": 361 + }, + "obs-ai-assistant:knowledge-base-migration": { + "p50": 9, + "p90": 9, + "p95": 9, + "p99": 9 + }, + "apm-source-map-migration-task": { + "p50": 23, + "p90": 23, + "p95": 23, + "p99": 23 + }, + "security:indices-metadata-telemetry": { + "p50": 11, + "p90": 11, + "p95": 11, + "p99": 11 + }, + "dashboard_telemetry": { + "p50": 15, + "p90": 15, + "p95": 15, + "p99": 15 + }, + "ML:saved-objects-sync": { + "p50": 23, + "p90": 23, + "p95": 23, + "p99": 23 + }, + "actions_telemetry": { + "p50": 31, + "p90": 31, + "p95": 31, + "p99": 31 + }, + "alerting_telemetry": { + "p50": 39, + "p90": 39, + "p95": 39, + "p99": 39 + }, + "ProductDocBase:EnsureUpToDate": { + "p50": 139, + "p90": 139, + "p95": 139, + "p99": 139 + }, + "cases-telemetry-task": { + "p50": 1005, + "p90": 1005, + "p95": 1005, + "p99": 1005 + }, + "fleet:bump_agent_policies": { + "p50": 5, + "p90": 5, + "p95": 5, + "p99": 5 + } + }, + "duration_by_persistence": { + "recurring": { + "p50": 14, + "p90": 55.599999999999994, + "p95": 139.3999999999988, + "p99": 1005 + }, + "non_recurring": { + "p50": 15, + "p90": 139, + "p95": 139, + "p99": 139 + } + }, + "persistence": { + "recurring": 90, + "non_recurring": 10 + }, + "result_frequency_percent_as_number": { + "endpoint:user-artifact-packager": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-diagnostics": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerts_invalidate_api_keys": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:delete-unenrolled-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Metrics-Task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:complete-external-response-actions": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_health_check": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "task_manager:delete_inactive_background_task_nodes": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "endpoint:metadata-check-transforms-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-diagnostic-timelines": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-prebuilt-rule-alerts": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-configuration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-filterlist-artifact": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "session_cleanup": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:unenroll-inactive-agents-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Logger": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "Fleet-Usage-Sender": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "logs-data-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-lists": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:telemetry-detection-rules": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:endpoint-meta-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:check-deleted-files-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-configs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-saved-queries": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "osquery:telemetry-packs": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "obs-ai-assistant:knowledge-base-migration": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "apm-source-map-migration-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "security:indices-metadata-telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "dashboard_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "ML:saved-objects-sync": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "actions_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "alerting_telemetry": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "ProductDocBase:EnsureUpToDate": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "cases-telemetry-task": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + }, + "fleet:bump_agent_policies": { + "Success": 100, + "RetryScheduled": 0, + "Failed": 0, + "status": "OK" + } + } + } + }, + "status": "OK" + }, + "workload": { + "timestamp": "2025-03-21T21:14:01.489Z", + "value": { + "count": 35, + "cost": 70, + "task_types": { + "Fleet-Metrics-Task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Logger": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "Fleet-Usage-Sender": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "ML:saved-objects-sync": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "SLO:ORPHAN_SUMMARIES-CLEANUP-TASK": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "actions_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_health_check": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerting_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "alerts_invalidate_api_keys": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "apm-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "cases-telemetry-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "dashboard_telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:complete-external-response-actions": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:metadata-check-transforms-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "endpoint:user-artifact-packager": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:check-deleted-files-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:delete-unenrolled-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "fleet:unenroll-inactive-agents-task": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "logs-data-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-configs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-packs": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "osquery:telemetry-saved-queries": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-diagnostics": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:endpoint-meta-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:indices-metadata-telemetry": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-configuration": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-detection-rules": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-diagnostic-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-filterlist-artifact": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-lists": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-prebuilt-rule-alerts": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "security:telemetry-timelines": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "session_cleanup": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:delete_inactive_background_task_nodes": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + }, + "task_manager:mark_removed_tasks_as_unrecognized": { + "count": 1, + "cost": 2, + "status": { + "idle": 1 + } + } + }, + "non_recurring": 1, + "non_recurring_cost": 2, + "schedule": [ + [ + "1m", + 2 + ], + [ + "60s", + 2 + ], + [ + "5m", + 2 + ], + [ + "10m", + 1 + ], + [ + "15m", + 1 + ], + [ + "45m", + 1 + ], + [ + "1h", + 9 + ], + [ + "3600s", + 1 + ], + [ + "60m", + 1 + ], + [ + "2h", + 1 + ], + [ + "720m", + 2 + ], + [ + "24h", + 7 + ], + [ + "1d", + 3 + ], + [ + "1440m", + 1 + ] + ], + "overdue": 0, + "overdue_cost": 0, + "overdue_non_recurring": 0, + "estimated_schedule_density": [ + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "capacity_requirements": { + "per_minute": 4, + "per_hour": 46, + "per_day": 27 + } + }, + "status": "OK" + }, + "capacity_estimation": { + "status": "OK", + "reason": "Task Manager is healthy, the assumedRequiredThroughputPerMinutePerKibana (124.78541666666666) < capacityPerMinutePerKibana (1200)", + "timestamp": "2025-03-21T21:14:50.535Z", + "value": { + "observed": { + "observed_kibana_instances": 1, + "max_throughput_per_minute_per_kibana": 1200, + "max_throughput_per_minute": 1200, + "minutes_to_drain_overdue": 0, + "avg_recurring_required_throughput_per_minute": 5, + "avg_recurring_required_throughput_per_minute_per_kibana": 5, + "avg_required_throughput_per_minute": 125, + "avg_required_throughput_per_minute_per_kibana": 125 + }, + "proposed": { + "provisioned_kibana": 2, + "min_required_kibana": 1, + "avg_recurring_required_throughput_per_minute_per_kibana": 3, + "avg_required_throughput_per_minute_per_kibana": 63 + } + } + } + } + }