From dc80a17be35ea56aa32098f2742346cd6fe6599e Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Thu, 6 Jul 2023 10:51:28 -0700 Subject: [PATCH 01/17] save --- docs/api-reference/supervisor-api.md | 2081 +++++++++++++++++++++++++- 1 file changed, 2058 insertions(+), 23 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 45e1bcddaead..e0cef636d6db 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -27,53 +27,2088 @@ This document describes the API endpoints to manage and monitor supervisors for ## Supervisors -`GET /druid/indexer/v1/supervisor` +### Get a list of active supervisors -Returns a list of strings of the currently active supervisor ids. +#### URL + +GET `/druid/indexer/v1/supervisor` + +Retrieves a list of active supervisors. The response object is a list of strings containing the names of the supervisors. + +#### Responses + + + + +
+*Successfully retrieved list of active supervisor IDs* + + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor" +``` + +```HTTP +GET /druid/indexer/v1/supervisor HTTP/1.1 +Host: {domain} +``` + + +#### Sample response + +
+ Click to show sample response + + ```json + [ + "wikipedia_stream", + "social_media" + ] + ``` +
+ +### Get list of active supervisor objects + +#### URL `GET /druid/indexer/v1/supervisor?full` -Returns a list of objects of the currently active supervisors. +Retrieves a list of active supervisor objects. Each object has properties relevant to the supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. + +See the following table for details on properties within the response object. |Field|Type|Description| |---|---|---| -|`id`|String|supervisor unique identifier| -|`state`|String|basic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| -|`detailedState`|String|supervisor specific state. See documentation of specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| -|`healthy`|Boolean|true or false indicator of overall supervisor health| -|`spec`|SupervisorSpec|JSON specification of supervisor| +|`id`|String|Supervisor unique identifier| +|`state`|String|The basic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| +|`detailedState`|String|The supervisor specific state. See documentation of specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| +|`healthy`|Boolean|True or false indicator of overall supervisor health| +|`spec`|SupervisorSpec|JSON specification of the supervisor| + +#### Responses + + + + +
+*Successfully retrieved active supervisor objects* + + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor?full=null" +``` + +```HTTP +GET /druid/indexer/v1/supervisor?full=null HTTP/1.1 +Host: {domain} +``` + + +#### Sample response + +
+ Click to show sample response + + ```json + [ + { + "id": "wikipedia_stream", + "state": "RUNNING", + "detailedState": "CONNECTING_TO_STREAM", + "healthy": true, + "spec": { + "type": "kafka", + "spec": { + "dataSchema": { + "dataSource": "wikipedia_stream", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9042" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + } + }, + "dataSchema": { + "dataSource": "wikipedia_stream", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9042" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "context": null, + "suspended": false + }, + "suspended": false + }, + { + "id": "social_media", + "state": "RUNNING", + "detailedState": "RUNNING", + "healthy": true, + "spec": { + "type": "kafka", + "spec": { + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + } + }, + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "context": null, + "suspended": false + }, + "suspended": false + } + ] + ``` +
+ +### Get supervisor state `GET /druid/indexer/v1/supervisor?state=true` -Returns a list of objects of the currently active supervisors and their current state. +Retrieves a list of objects of the currently active supervisors and their current state. +See the following table for details on properties within the response object. |Field|Type|Description| |---|---|---| -|`id`|String|supervisor unique identifier| -|`state`|String|basic state of the supervisor. Available states: `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| -|`detailedState`|String|supervisor specific state. See documentation of the specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| -|`healthy`|Boolean|true or false indicator of overall supervisor health| -|`suspended`|Boolean|true or false indicator of whether the supervisor is in suspended state| +|`id`|String|Supervisor unique identifier| +|`state`|String|The basic state of the supervisor. Available states: `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| +|`detailedState`|String|Supervisor specific state. See documentation of the specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| +|`healthy`|Boolean|True or false indicator of overall supervisor health| +|`suspended`|Boolean|True or false indicator of whether the supervisor is in suspended state| + +#### Responses + + + + +
+*Successfully retrieved supervisor state objects* + + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor?state=true" +``` + +```HTTP +GET /druid/indexer/v1/supervisor?state=true HTTP/1.1 +Host: {domain} +``` + + +#### Sample response + +
+ Click to show sample response + + ```json + [ + { + "id": "wikipedia_stream", + "state": "UNHEALTHY_SUPERVISOR", + "detailedState": "UNABLE_TO_CONNECT_TO_STREAM", + "healthy": false, + "suspended": false + }, + { + "id": "social_media", + "state": "RUNNING", + "detailedState": "RUNNING", + "healthy": true, + "suspended": false + } + ] + ``` + +
+ +### Get supervisor specification + +#### URL + +`GET /druid/indexer/v1/supervisor/{supervisorId}` + +Retrieves the current spec for the supervisor with the provided ID. + +#### Responses + + + + +
+*Successfully retrieved specification* + +
+*Invalid supervisor ID* + + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor/wikipedia_stream" +``` + +```HTTP +GET /druid/indexer/v1/supervisor/wikipedia_stream HTTP/1.1 +Host: {domain} +``` + + + +#### Sample response -`GET /druid/indexer/v1/supervisor/` +
+ Click to show sample response -Returns the current spec for the supervisor with the provided ID. + ```json +{ + "type": "kafka", + "spec": { + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + } + }, + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "context": null, + "suspended": false +} + ``` +
-`GET /druid/indexer/v1/supervisor//status` +### Get supervisor status -Returns the current status of the supervisor with the provided ID. +#### URL +`GET /druid/indexer/v1/supervisor/{supervisorId}/status` -`GET/druid/indexer/v1/supervisor/history` +Retrieves the current status of the supervisor with the provided ID. -Returns an audit history of specs for all supervisors (current and past). +#### Responses -`GET /druid/indexer/v1/supervisor//history` + -Returns an audit history of specs for the supervisor with the provided ID. + +
+*Successfully retrieved supervisor status* + +
+*Invalid supervisor ID* + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor/social_media/status" +``` + +```HTTP +GET /druid/indexer/v1/supervisor/social_media/status HTTP/1.1 +Host: {domain} +``` + + +#### Sample response + +
+ Click to show sample response + + ```json + { + "id": "social_media", + "generationTime": "2023-07-05T23:24:43.934Z", + "payload": { + "dataSource": "social_media", + "stream": "social_media", + "partitions": 1, + "replicas": 1, + "durationSeconds": 3600, + "activeTasks": [ + { + "id": "index_kafka_social_media_ab72ae4127c591c_flcbhdlh", + "startingOffsets": { + "0": 3176381 + }, + "startTime": "2023-07-05T23:21:39.321Z", + "remainingSeconds": 3415, + "type": "ACTIVE", + "currentOffsets": { + "0": 3296632 + }, + "lag": { + "0": 3 + } + } + ], + "publishingTasks": [], + "latestOffsets": { + "0": 3296635 + }, + "minimumLag": { + "0": 3 + }, + "aggregateLag": 3, + "offsetsLastUpdated": "2023-07-05T23:24:30.212Z", + "suspended": false, + "healthy": true, + "state": "RUNNING", + "detailedState": "RUNNING", + "recentErrors": [] + } + } + ``` +
+ +### Get audit history for all supervisors + +#### URL + +`GET /druid/indexer/v1/supervisor/history` + +Retrieve an audit history of specs for all supervisors (current and past). + +#### Responses + + + + +
+*Successfully retrieved audit history* + + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor/history" +``` + +```HTTP +GET /druid/indexer/v1/supervisor/history HTTP/1.1 +Host: {domain} +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "social_media": [ + { + "spec": { + "type": "kafka", + "spec": { + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + } + }, + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "context": null, + "suspended": false + }, + "version": "2023-07-03T18:51:02.970Z" + } + ] +} + ``` +
+ +### Get audit history for specific supervisor + +#### URL + +`GET /druid/indexer/v1/supervisor/{supervisorId}/history` + +Retrieve an audit history of specs for the supervisor with the provided ID. + +#### Responses + + + + +
+*Successfully retrieved audit history for supervisor* + +
+*Invalid supervisor ID* + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor/wikipedia_stream/history" +``` + +```HTTP +GET /druid/indexer/v1/supervisor/wikipedia_stream/history HTTP/1.1 +Host: {domain} +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +[ + { + "spec": { + "type": "kafka", + "spec": { + "dataSchema": { + "dataSource": "wikipedia_stream", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9042" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + } + }, + "dataSchema": { + "dataSource": "wikipedia_stream", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9042" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "context": null, + "suspended": false + }, + "version": "2023-07-05T20:59:16.872Z" + } +] + ``` +
+ + +### Create a new supervisor or update an existing supervisor + +#### URL `POST /druid/indexer/v1/supervisor` -Create a new supervisor or update an existing one. +Creates a new supervisor or updates an existing one. + +#### Responses + + + + +
+*Successfully created a new supervisor or updated an existing supervisor* + +
+*Request body content type is not in JSON format* + + + +--- + +#### Sample request + + + + +```shell +curl "{domain}/druid/indexer/v1/supervisor" \ +--header "Content-Type: application/json" \ +--data "{ + \"type\": \"kafka\", + \"spec\": { + \"ioConfig\": { + \"type\": \"kafka\", + \"consumerProperties\": { + \"bootstrap.servers\": \"localhost:9094\" + }, + \"topic\": \"social_media\", + \"inputFormat\": { + \"type\": \"json\" + }, + \"useEarliestOffset\": true + }, + \"tuningConfig\": { + \"type\": \"kafka\" + }, + \"dataSchema\": { + \"dataSource\": \"social_media\", + \"timestampSpec\": { + \"column\": \"__time\", + \"format\": \"iso\" + }, + \"dimensionsSpec\": { + \"dimensions\": [ + \"username\", + \"post_title\", + { + \"type\": \"long\", + \"name\": \"views\" + }, + { + \"type\": \"long\", + \"name\": \"upvotes\" + }, + { + \"type\": \"long\", + \"name\": \"comments\" + }, + \"edited\" + ] + }, + \"granularitySpec\": { + \"queryGranularity\": \"none\", + \"rollup\": false, + \"segmentGranularity\": \"hour\" + } + } + } +}" +``` + +```HTTP +POST /druid/indexer/v1/supervisor HTTP/1.1 +Host: {domain} +Content-Type: application/json +Content-Length: 1359 + +{ + "type": "kafka", + "spec": { + "ioConfig": { + "type": "kafka", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "topic": "social_media", + "inputFormat": { + "type": "json" + }, + "useEarliestOffset": true + }, + "tuningConfig": { + "type": "kafka" + }, + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso" + }, + "dimensionsSpec": { + "dimensions": [ + "username", + "post_title", + { + "type": "long", + "name": "views" + }, + { + "type": "long", + "name": "upvotes" + }, + { + "type": "long", + "name": "comments" + }, + "edited" + ] + }, + "granularitySpec": { + "queryGranularity": "none", + "rollup": false, + "segmentGranularity": "hour" + } + } + } +} +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "id": "social_media" +} + ``` +
`POST /druid/indexer/v1/supervisor//suspend` From 2c197d98259ea57ddcabc8f07a30ee8eecbd026a Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Mon, 10 Jul 2023 18:18:06 -0700 Subject: [PATCH 02/17] update port name --- docs/api-reference/supervisor-api.md | 89 +++++++++++++++++++++------- 1 file changed, 69 insertions(+), 20 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index e0cef636d6db..50d93a8aa386 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -33,7 +33,9 @@ This document describes the API endpoints to manage and monitor supervisors for GET `/druid/indexer/v1/supervisor` -Retrieves a list of active supervisors. The response object is a list of strings containing the names of the supervisors. +Retrieves a list of active supervisors. The response object is a list of strings containing the names of the supervisors. + +This endpoint can be queried with the Coordinator service or the Router service. #### Responses @@ -53,12 +55,12 @@ Retrieves a list of active supervisors. The response object is a list of strings ```shell -curl "{domain}/druid/indexer/v1/supervisor" +curl "http://:/druid/indexer/v1/supervisor" ``` ```HTTP GET /druid/indexer/v1/supervisor HTTP/1.1 -Host: {domain} +Host: http://: ``` @@ -83,7 +85,9 @@ Host: {domain} Retrieves a list of active supervisor objects. Each object has properties relevant to the supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. -See the following table for details on properties within the response object. +This endpoint can be queried with the Coordinator service or the Router service. + +See the following table for details on properties within the response object: |Field|Type|Description| |---|---|---| @@ -111,12 +115,12 @@ See the following table for details on properties within the response object. ```shell -curl "{domain}/druid/indexer/v1/supervisor?full=null" +curl "http://:/druid/indexer/v1/supervisor?full=null" ``` ```HTTP GET /druid/indexer/v1/supervisor?full=null HTTP/1.1 -Host: {domain} +Host: http://: ``` @@ -753,7 +757,9 @@ Host: {domain} Retrieves a list of objects of the currently active supervisors and their current state. -See the following table for details on properties within the response object. +This endpoint can be queried with the Coordinator service or the Router service. + +See the following table for details on properties within the response object: |Field|Type|Description| |---|---|---| |`id`|String|Supervisor unique identifier| @@ -780,12 +786,12 @@ See the following table for details on properties within the response object. ```shell -curl "{domain}/druid/indexer/v1/supervisor?state=true" +curl "http://:/druid/indexer/v1/supervisor?state=true" ``` ```HTTP GET /druid/indexer/v1/supervisor?state=true HTTP/1.1 -Host: {domain} +Host: http://: ``` @@ -844,12 +850,12 @@ Retrieves the current spec for the supervisor with the provided ID. ```shell -curl "{domain}/druid/indexer/v1/supervisor/wikipedia_stream" +curl "http://:/druid/indexer/v1/supervisor/wikipedia_stream" ``` ```HTTP GET /druid/indexer/v1/supervisor/wikipedia_stream HTTP/1.1 -Host: {domain} +Host: http://: ``` @@ -1187,16 +1193,18 @@ Retrieves the current status of the supervisor with the provided ID. #### Sample request +The following example shows retrieving the status of the `social_media` supervisor. + ```shell -curl "{domain}/druid/indexer/v1/supervisor/social_media/status" +curl "http://:/druid/indexer/v1/supervisor/social_media/status" ``` ```HTTP GET /druid/indexer/v1/supervisor/social_media/status HTTP/1.1 -Host: {domain} +Host: http://: ``` @@ -1277,12 +1285,12 @@ Retrieve an audit history of specs for all supervisors (current and past). ```shell -curl "{domain}/druid/indexer/v1/supervisor/history" +curl "http://:/druid/indexer/v1/supervisor/history" ``` ```HTTP GET /druid/indexer/v1/supervisor/history HTTP/1.1 -Host: {domain} +Host: http://: ``` @@ -1627,16 +1635,18 @@ Retrieve an audit history of specs for the supervisor with the provided ID. #### Sample request +The following example shows how to retrieve the audit history of the `wikipedia_stream` supervisor. + ```shell -curl "{domain}/druid/indexer/v1/supervisor/wikipedia_stream/history" +curl "http://:/druid/indexer/v1/supervisor/wikipedia_stream/history" ``` ```HTTP GET /druid/indexer/v1/supervisor/wikipedia_stream/history HTTP/1.1 -Host: {domain} +Host: http://: ``` @@ -1964,6 +1974,10 @@ Host: {domain} Creates a new supervisor or updates an existing one. +To create a supervisor spec using Kafka streaming ingestion, refer to [Apache Kafka ingestion](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec). + +To create a supervisor spec using Kinesis ingestion, refer to [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). + #### Responses @@ -1985,7 +1999,7 @@ Creates a new supervisor or updates an existing one. ```shell -curl "{domain}/druid/indexer/v1/supervisor" \ +curl "http://:/druid/indexer/v1/supervisor" \ --header "Content-Type: application/json" \ --data "{ \"type\": \"kafka\", @@ -2041,7 +2055,7 @@ curl "{domain}/druid/indexer/v1/supervisor" \ ```HTTP POST /druid/indexer/v1/supervisor HTTP/1.1 -Host: {domain} +Host: http://: Content-Type: application/json Content-Length: 1359 @@ -2110,10 +2124,45 @@ Content-Length: 1359 ``` -`POST /druid/indexer/v1/supervisor//suspend` +### Suspend a running supervisor + +#### URL +`POST /druid/indexer/v1/supervisor/{supervisorId}/suspend` Suspend the current running supervisor of the provided ID. Responds with updated SupervisorSpec. +#### Responses + + + + +
+*Successfully shut down supervisor* + +
+*Invalid supervisor ID* + + + +--- + +#### Sample request + +The following example shows how to suspend a running supervisor with task ID `social_media`. + + + + +```shell +curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/suspend" +``` + +```HTTP +POST /druid/indexer/v1/supervisor/social_media/suspend HTTP/1.1 +Host: http://: +``` + + `POST /druid/indexer/v1/supervisor/suspendAll` Suspend all supervisors at once. From 5aa8bfd49a8812a85c0ccade8a08b866bfaafc75 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:26:16 -0700 Subject: [PATCH 03/17] Add info for each endpoint --- docs/api-reference/supervisor-api.md | 1029 ++++++++++++++++++++++++-- 1 file changed, 958 insertions(+), 71 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 50d93a8aa386..7e274d4dce39 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -23,19 +23,19 @@ sidebar_label: Supervisors ~ under the License. --> -This document describes the API endpoints to manage and monitor supervisors for Apache Druid. +This document describes the API endpoints to manage and monitor Supervisors for Apache Druid. + +In this document, `http://:` is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace `http://:` with `http://localhost:8888`. ## Supervisors -### Get a list of active supervisors +### Get a list of active Supervisors #### URL GET `/druid/indexer/v1/supervisor` -Retrieves a list of active supervisors. The response object is a list of strings containing the names of the supervisors. - -This endpoint can be queried with the Coordinator service or the Router service. +Retrieves a list of active Supervisors. The response object is a list of strings containing the names of the Supervisors. #### Responses @@ -43,7 +43,7 @@ This endpoint can be queried with the Coordinator service or the Router service.
-*Successfully retrieved list of active supervisor IDs* +*Successfully retrieved list of active Supervisor IDs* @@ -77,15 +77,13 @@ Host: http://: ``` -### Get list of active supervisor objects +### Get list of active Supervisor objects #### URL `GET /druid/indexer/v1/supervisor?full` -Retrieves a list of active supervisor objects. Each object has properties relevant to the supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. - -This endpoint can be queried with the Coordinator service or the Router service. +Retrieves a list of active Supervisor objects. Each object has properties relevant to the Supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. See the following table for details on properties within the response object: @@ -93,9 +91,9 @@ See the following table for details on properties within the response object: |---|---|---| |`id`|String|Supervisor unique identifier| |`state`|String|The basic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| -|`detailedState`|String|The supervisor specific state. See documentation of specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| -|`healthy`|Boolean|True or false indicator of overall supervisor health| -|`spec`|SupervisorSpec|JSON specification of the supervisor| +|`detailedState`|String|The Supervisor specific state. See documentation of specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| +|`healthy`|Boolean|True or false indicator of overall Supervisor health| +|`spec`|SupervisorSpec|JSON specification of the Supervisor| #### Responses @@ -103,7 +101,7 @@ See the following table for details on properties within the response object:
-*Successfully retrieved active supervisor objects* +*Successfully retrieved active Supervisor objects* @@ -751,22 +749,20 @@ Host: http://: ``` -### Get supervisor state +### Get Supervisor state `GET /druid/indexer/v1/supervisor?state=true` -Retrieves a list of objects of the currently active supervisors and their current state. - -This endpoint can be queried with the Coordinator service or the Router service. +Retrieves a list of objects of the currently active Supervisors and their current state. See the following table for details on properties within the response object: |Field|Type|Description| |---|---|---| |`id`|String|Supervisor unique identifier| -|`state`|String|The basic state of the supervisor. Available states: `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| -|`detailedState`|String|Supervisor specific state. See documentation of the specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| -|`healthy`|Boolean|True or false indicator of overall supervisor health| -|`suspended`|Boolean|True or false indicator of whether the supervisor is in suspended state| +|`state`|String|The basic state of the Supervisor. Available states: `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| +|`detailedState`|String|Supervisor specific state. See documentation of the specific Supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| +|`healthy`|Boolean|True or false indicator of overall Supervisor health| +|`suspended`|Boolean|True or false indicator of whether the Supervisor is in suspended state| #### Responses @@ -774,7 +770,7 @@ See the following table for details on properties within the response object:
-*Successfully retrieved supervisor state objects* +*Successfully retrieved Supervisor state objects* @@ -821,13 +817,13 @@ Host: http://: -### Get supervisor specification +### Get Supervisor specification #### URL `GET /druid/indexer/v1/supervisor/{supervisorId}` -Retrieves the current spec for the supervisor with the provided ID. +Retrieves the current spec for the Supervisor with the provided ID. #### Responses @@ -838,7 +834,7 @@ Retrieves the current spec for the supervisor with the provided ID. *Successfully retrieved specification*
-*Invalid supervisor ID* +*Invalid Supervisor ID* @@ -846,6 +842,8 @@ Retrieves the current spec for the supervisor with the provided ID. #### Sample request +The following example shows how to retrieve the specification of the `wikipedia_stream` Supervisor. + @@ -1170,12 +1168,16 @@ Host: http://: ``` -### Get supervisor status +### Get Supervisor status #### URL `GET /druid/indexer/v1/supervisor/{supervisorId}/status` -Retrieves the current status of the supervisor with the provided ID. +Retrieves a current status report of the Supervisor with the provided ID. The report contains the state of the tasks managed by the Supervisor and a list of recently thrown exceptions. The possible `state` values are: [`PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`, `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`]. + + For additional information about the status report, refer to the following documentation for each streaming ingestion methods: +* [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#getting-supervisor-status-report) +* [Apache Kafka](../development/extensions-core/kafka-supervisor-operations.md#getting-supervisor-status-report) #### Responses @@ -1183,17 +1185,17 @@ Retrieves the current status of the supervisor with the provided ID.
-*Successfully retrieved supervisor status* +*Successfully retrieved Supervisor status*
-*Invalid supervisor ID* +*Invalid Supervisor ID* --- #### Sample request -The following example shows retrieving the status of the `social_media` supervisor. +The following example shows retrieving the status of the `social_media` Supervisor. @@ -1259,13 +1261,13 @@ Host: http://: ``` -### Get audit history for all supervisors +### Get audit history for all Supervisors #### URL `GET /druid/indexer/v1/supervisor/history` -Retrieve an audit history of specs for all supervisors (current and past). +Retrieve an audit history of specs for all Supervisors (current and past). #### Responses @@ -1611,7 +1613,7 @@ Host: http://: ``` -### Get audit history for specific supervisor +### Get audit history for specific Supervisor #### URL @@ -1635,7 +1637,7 @@ Retrieve an audit history of specs for the supervisor with the provided ID. #### Sample request -The following example shows how to retrieve the audit history of the `wikipedia_stream` supervisor. +The following example shows how to retrieve the audit history of the `wikipedia_stream` Supervisor. @@ -1966,17 +1968,17 @@ Host: http://: -### Create a new supervisor or update an existing supervisor +### Create a new Supervisor or update an existing Supervisor #### URL `POST /druid/indexer/v1/supervisor` -Creates a new supervisor or updates an existing one. +Creates a new Supervisor or updates an existing one. -To create a supervisor spec using Kafka streaming ingestion, refer to [Apache Kafka ingestion](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec). +You can create a Supervisor spec using [Apache Kafka ingestion streaming](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). -To create a supervisor spec using Kinesis ingestion, refer to [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). +Using this endpoint on an existing Supervisor for the same datasource will result in the running Supervisor signalling its tasks to stop reading, exiting itself, and a new Supervisor being created with the provided configuration from the request body. This submits a new schema while retaining existing publishing tasks and starting new tasks at the previous task offsets. #### Responses @@ -1984,7 +1986,7 @@ To create a supervisor spec using Kinesis ingestion, refer to [Amazon Kinesis in
-*Successfully created a new supervisor or updated an existing supervisor* +*Successfully created a new Supervisor or updated an existing Supervisor*
*Request body content type is not in JSON format* @@ -2124,12 +2126,12 @@ Content-Length: 1359 ``` -### Suspend a running supervisor +### Suspend a running Supervisor #### URL `POST /druid/indexer/v1/supervisor/{supervisorId}/suspend` -Suspend the current running supervisor of the provided ID. Responds with updated SupervisorSpec. +Suspends the current running Supervisor of the provided ID. Returns the updated Supervisor spec. #### Responses @@ -2137,10 +2139,13 @@ Suspend the current running supervisor of the provided ID. Responds with updated
-*Successfully shut down supervisor* +*Successfully shut down Supervisor* + +
+*Supervisor already suspended*
-*Invalid supervisor ID* +*Invalid Supervisor ID* @@ -2148,7 +2153,7 @@ Suspend the current running supervisor of the provided ID. Responds with updated #### Sample request -The following example shows how to suspend a running supervisor with task ID `social_media`. +The following example shows how to suspend a running Supervisor with task ID `social_media`. @@ -2163,33 +2168,915 @@ Host: http://: ``` -`POST /druid/indexer/v1/supervisor/suspendAll` - -Suspend all supervisors at once. - -`POST /druid/indexer/v1/supervisor//resume` - -Resume indexing tasks for a supervisor. Responds with updated SupervisorSpec. - -`POST /druid/indexer/v1/supervisor/resumeAll` - -Resume all supervisors at once. - -`POST /druid/indexer/v1/supervisor//reset` - -Reset the specified supervisor. - -`POST /druid/indexer/v1/supervisor//terminate` - -Terminate a supervisor of the provided ID. - -`POST /druid/indexer/v1/supervisor/terminateAll` +#### Sample response -Terminate all supervisors at once. +
+ Click to show sample response -`POST /druid/indexer/v1/supervisor//shutdown` + ```json +{ + "type": "kafka", + "spec": { + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + } + }, + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "context": null, + "suspended": true +} + ``` +
+ +### Suspend all Supervisors + +#### URL +`POST /druid/indexer/v1/supervisor/suspendAll` + +Suspends all Supervisors at once. + +Note that this endpoint will return a "success" message even if there are no Supervisors or running Supervisors initially. + +#### Responses + + + + +
+*Successfully suspended all Supervisors* + + + +--- +#### Sample request + + + + +```shell +curl --request POST "http://:/druid/indexer/v1/supervisor/suspendAll" +``` + +```HTTP +POST /druid/indexer/v1/supervisor/suspendAll HTTP/1.1 +Host: http://: +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "status": "success" +} + ``` +
+ +### Resume a Supervisor + +#### URL + +`POST /druid/indexer/v1/supervisor/{supervisorId}/resume` + +Resume indexing tasks for a Supervisor. Responds with updated Supervisor spec. + +#### Responses + + + + +
+*Successfully resumed Supervisor* + +
+*Supervisor already running* + +
+*Invalid Supervisor ID* + + + +--- + +#### Sample request + +The following example resumes a previously suspended Supervisor with ID `social_media`. + + + + +```shell +curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/resume" +``` + +```HTTP +POST /druid/indexer/v1/supervisor/social_media/resume HTTP/1.1 +Host: http://: +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "type": "kafka", + "spec": { + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + } + }, + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso", + "missingValue": null + }, + "dimensionsSpec": { + "dimensions": [ + { + "type": "string", + "name": "username", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "string", + "name": "post_title", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + }, + { + "type": "long", + "name": "views", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "upvotes", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "long", + "name": "comments", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": false + }, + { + "type": "string", + "name": "edited", + "multiValueHandling": "SORTED_ARRAY", + "createBitmapIndex": true + } + ], + "dimensionExclusions": [ + "__time" + ], + "includeAllDimensions": false, + "useSchemaDiscovery": false + }, + "metricsSpec": [], + "granularitySpec": { + "type": "uniform", + "segmentGranularity": "HOUR", + "queryGranularity": { + "type": "none" + }, + "rollup": false, + "intervals": [] + }, + "transformSpec": { + "filter": null, + "transforms": [] + } + }, + "tuningConfig": { + "type": "kafka", + "appendableIndexSpec": { + "type": "onheap", + "preserveExistingMetrics": false + }, + "maxRowsInMemory": 150000, + "maxBytesInMemory": 0, + "skipBytesInMemoryOverheadCheck": false, + "maxRowsPerSegment": 5000000, + "maxTotalRows": null, + "intermediatePersistPeriod": "PT10M", + "maxPendingPersists": 0, + "indexSpec": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "indexSpecForIntermediatePersists": { + "bitmap": { + "type": "roaring" + }, + "dimensionCompression": "lz4", + "stringDictionaryEncoding": { + "type": "utf8" + }, + "metricCompression": "lz4", + "longEncoding": "longs" + }, + "reportParseExceptions": false, + "handoffConditionTimeout": 0, + "resetOffsetAutomatically": false, + "segmentWriteOutMediumFactory": null, + "workerThreads": null, + "chatThreads": null, + "chatRetries": 8, + "httpTimeout": "PT10S", + "shutdownTimeout": "PT80S", + "offsetFetchPeriod": "PT30S", + "intermediateHandoffPeriod": "P2147483647D", + "logParseExceptions": false, + "maxParseExceptions": 2147483647, + "maxSavedParseExceptions": 0, + "skipSequenceNumberAvailabilityCheck": false, + "repartitionTransitionDuration": "PT120S" + }, + "ioConfig": { + "topic": "social_media", + "inputFormat": { + "type": "json", + "keepNullColumns": false, + "assumeNewlineDelimited": false, + "useJsonNodeReader": false + }, + "replicas": 1, + "taskCount": 1, + "taskDuration": "PT3600S", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" + }, + "autoScalerConfig": null, + "pollTimeout": 100, + "startDelay": "PT5S", + "period": "PT30S", + "useEarliestOffset": true, + "completionTimeout": "PT1800S", + "lateMessageRejectionPeriod": null, + "earlyMessageRejectionPeriod": null, + "lateMessageRejectionStartDateTime": null, + "configOverrides": null, + "idleConfig": null, + "stream": "social_media", + "useEarliestSequenceNumber": true + }, + "context": null, + "suspended": false +} + ``` +
+ +### Resume all Supervisors + +#### URL +`POST /druid/indexer/v1/supervisor/resumeAll` + +Resume all Supervisors at once. + +Note that this endpoint will return a "success" message even if there are no Supervisors or suspended Supervisors initially. + +#### Responses + + + + +
+*Successfully resumed all Supervisors* + + + +--- + +#### Sample request + + + + +```shell +curl --request POST "http://:/druid/indexer/v1/supervisor/resumeAll" +``` + +```HTTP +POST /druid/indexer/v1/supervisor/resumeAll HTTP/1.1 +Host: http://: +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "status": "success" +} + ``` +
+ +### Reset a Supervisor + +#### URL +`POST /druid/indexer/v1/supervisor/{supervisorId}/reset` + +Resets the specified supervisor. This endpoint clears stored offsets, causing the Supervisor to start reading offsets from either the earliest or the latest offsets in Kafka. It kills and recreates active tasks to read from valid offsets. + +Use this endpoint for recovering when the Supervisor stops due to missing offsets. Use this endpoint with caution as it may result in skipped, resulting in data loss, or duplicate data. + +#### Responses + + + + +
+*Successfully reset Supervisor* + +
+*Invalid Supervisor ID* + + + +--- + +#### Sample request + + + + +```shell +curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/reset" +``` + +```HTTP +POST /druid/indexer/v1/supervisor/social_media/reset HTTP/1.1 +Host: http://: +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "id": "social_media" +} + ``` +
+ +### Terminate a Supervisor + +#### URL +`POST /druid/indexer/v1/supervisor/{supervisorId}/terminate` + +Terminate a Supervisor of the provided ID and its associated indexing tasks, triggering the publication of their segments. The terminated Supervisor will still exist in the metadata store and its history can be retrieved. + +#### Responses + + + + +
+*Successfully terminated a Supervisor* + +
+*Invalid Supervisor ID or Supervisor not running* + + + +--- + +#### Sample request + + + + +```shell +curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/terminate" +``` + +```HTTP +POST /druid/indexer/v1/supervisor/social_media/terminate HTTP/1.1 +Host: http://: +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "id": "social_media" +} + ``` +
+ +### Terminate all Supervisors + +#### URL + +`POST /druid/indexer/v1/supervisor/terminateAll` + +Terminate all Supervisors at once. + +#### Responses + + + + +
+*Successfully terminated all Supervisors* + + + +--- + +#### Sample request + + + + +```shell +curl --request POST "http://:/druid/indexer/v1/supervisor/terminateAll" +``` + +```HTTP +POST /druid/indexer/v1/supervisor/terminateAll HTTP/1.1 +Host: http://: +``` + + +#### Sample response + +
+ Click to show sample response + + ```json +{ + "status": "success" +} + ``` +
+ +### Shut down a Supervisor + +#### URL -> This API is deprecated and will be removed in future releases. -> Please use the equivalent `terminate` instead. +`POST /druid/indexer/v1/supervisor/{supervisorId}/shutdown` -Shutdown a supervisor. \ No newline at end of file +Shuts down a supervisor. This API is depreciated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. \ No newline at end of file From 54a7da280f69fb6d6d7a73cae4358d1cb1e39a9a Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:41:11 -0700 Subject: [PATCH 04/17] Add categories --- docs/api-reference/supervisor-api.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 7e274d4dce39..4ffe05f07375 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -27,7 +27,7 @@ This document describes the API endpoints to manage and monitor Supervisors for In this document, `http://:` is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace `http://:` with `http://localhost:8888`. -## Supervisors +## Supervisor information ### Get a list of active Supervisors @@ -1261,6 +1261,8 @@ Host: http://: ``` +## Audit history + ### Get audit history for all Supervisors #### URL @@ -1967,6 +1969,7 @@ Host: http://: ``` +## Managing Supervisors ### Create a new Supervisor or update an existing Supervisor @@ -1974,7 +1977,7 @@ Host: http://: `POST /druid/indexer/v1/supervisor` -Creates a new Supervisor or updates an existing one. +Creates a new Supervisor or updates an existing one for the same datasource. You can create a Supervisor spec using [Apache Kafka ingestion streaming](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). From 353866f7343c39455966e77c6238737ffcbadd86 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Wed, 12 Jul 2023 15:22:59 -0700 Subject: [PATCH 05/17] Update endpoint descriptions --- docs/api-reference/supervisor-api.md | 48 +++++++++++++++------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 4ffe05f07375..8b3c4aead8af 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -29,13 +29,13 @@ In this document, `http://:` is a placeholder for the ## Supervisor information -### Get a list of active Supervisors +### Get an array of active Supervisors #### URL GET `/druid/indexer/v1/supervisor` -Retrieves a list of active Supervisors. The response object is a list of strings containing the names of the Supervisors. +Retrieves an array of active Supervisors. Returns a response object that includes an array of strings representing the names of the active Supervisors. An empty array will be returned if there are no active Supervisors. #### Responses @@ -43,7 +43,7 @@ Retrieves a list of active Supervisors. The response object is a list of strings
-*Successfully retrieved list of active Supervisor IDs* +*Successfully retrieved array of active Supervisor IDs* @@ -77,13 +77,13 @@ Host: http://: ``` -### Get list of active Supervisor objects +### Get an array of active Supervisor objects #### URL `GET /druid/indexer/v1/supervisor?full` -Retrieves a list of active Supervisor objects. Each object has properties relevant to the Supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. +Retrieves an array of active Supervisor objects. Each object has properties relevant to the Supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. See the following table for details on properties within the response object: @@ -753,7 +753,7 @@ Host: http://: `GET /druid/indexer/v1/supervisor?state=true` -Retrieves a list of objects of the currently active Supervisors and their current state. +Retrieves an array of objects of the currently active Supervisors and their current state. An empty array will be returned if there are no active Supervisors. See the following table for details on properties within the response object: |Field|Type|Description| @@ -823,7 +823,7 @@ Host: http://: `GET /druid/indexer/v1/supervisor/{supervisorId}` -Retrieves the current spec for the Supervisor with the provided ID. +Retrieves the current spec for the Supervisor with the provided ID. The returned Supervisor spec specifies the `dataSchema`, `ioConfig`, and `tuningConfig`. #### Responses @@ -831,7 +831,7 @@ Retrieves the current spec for the Supervisor with the provided ID.
-*Successfully retrieved specification* +*Successfully retrieved Supervisor specification*
*Invalid Supervisor ID* @@ -1173,9 +1173,9 @@ Host: http://: #### URL `GET /druid/indexer/v1/supervisor/{supervisorId}/status` -Retrieves a current status report of the Supervisor with the provided ID. The report contains the state of the tasks managed by the Supervisor and a list of recently thrown exceptions. The possible `state` values are: [`PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`, `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`]. +Retrieves a current status report of the Supervisor with the provided ID. The report contains the state of the tasks managed by the Supervisor and an array of recently thrown exceptions. The possible `state` values are: [`PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`, `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`]. - For additional information about the status report, refer to the following documentation for each streaming ingestion methods: + For additional information about the status report, see the documentation for each streaming ingestion methods: * [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#getting-supervisor-status-report) * [Apache Kafka](../development/extensions-core/kafka-supervisor-operations.md#getting-supervisor-status-report) @@ -1621,7 +1621,7 @@ Host: http://: `GET /druid/indexer/v1/supervisor/{supervisorId}/history` -Retrieve an audit history of specs for the supervisor with the provided ID. +Retrieve an audit history of specs for the Supervisor with the provided ID. #### Responses @@ -1977,11 +1977,11 @@ Host: http://: `POST /druid/indexer/v1/supervisor` -Creates a new Supervisor or updates an existing one for the same datasource. +Creates a new Supervisor or updates an existing one for the same datasource with a new schema and configuration. -You can create a Supervisor spec using [Apache Kafka ingestion streaming](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). +You can create a Supervisor spec using [Apache Kafka ingestion streaming](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). Once created, a Supervisor will persist in the metadata database. -Using this endpoint on an existing Supervisor for the same datasource will result in the running Supervisor signalling its tasks to stop reading, exiting itself, and a new Supervisor being created with the provided configuration from the request body. This submits a new schema while retaining existing publishing tasks and starting new tasks at the previous task offsets. +Using this endpoint on an existing Supervisor for the same datasource will result in the running Supervisor signaling its tasks to stop reading and begin publishing, exiting itself, and a new Supervisor being created with the provided configuration from the request body. This submits a new schema while retaining existing publishing tasks and starting new tasks at the previous task offsets. #### Responses @@ -2134,7 +2134,7 @@ Content-Length: 1359 #### URL `POST /druid/indexer/v1/supervisor/{supervisorId}/suspend` -Suspends the current running Supervisor of the provided ID. Returns the updated Supervisor spec. +Suspends the current running Supervisor of the provided ID. Returns the updated Supervisor spec where the `suspended` property is set to `true`. A suspended Supervisor will continue to emit logs and metrics. #### Responses @@ -2486,9 +2486,9 @@ Host: http://: #### URL `POST /druid/indexer/v1/supervisor/suspendAll` -Suspends all Supervisors at once. +Suspends all Supervisors. -Note that this endpoint will return a "success" message even if there are no Supervisors or running Supervisors initially. +Note that this endpoint will return a "success" message even if there are no Supervisors or running Supervisors. #### Responses @@ -2534,7 +2534,7 @@ Host: http://: `POST /druid/indexer/v1/supervisor/{supervisorId}/resume` -Resume indexing tasks for a Supervisor. Responds with updated Supervisor spec. +Resumes indexing tasks for a Supervisor. Returns an updated Supervisor spec with the `suspended` property set to `false`. #### Responses @@ -2886,9 +2886,9 @@ Host: http://: #### URL `POST /druid/indexer/v1/supervisor/resumeAll` -Resume all Supervisors at once. +Resumes all Supervisors. -Note that this endpoint will return a "success" message even if there are no Supervisors or suspended Supervisors initially. +Note that this endpoint will return a "success" message even if there are no Supervisors or suspended Supervisors. #### Responses @@ -2985,7 +2985,9 @@ Host: http://: #### URL `POST /druid/indexer/v1/supervisor/{supervisorId}/terminate` -Terminate a Supervisor of the provided ID and its associated indexing tasks, triggering the publication of their segments. The terminated Supervisor will still exist in the metadata store and its history can be retrieved. +Terminate a Supervisor of the provided ID and its associated indexing tasks, triggering the publishing of their segments. When terminated, a tombstone marker will be placed in the database to prevent reloading on restart. + +The terminated Supervisor will still exist in the metadata store and its history can be retrieved. #### Responses @@ -3035,7 +3037,9 @@ Host: http://: `POST /druid/indexer/v1/supervisor/terminateAll` -Terminate all Supervisors at once. +Terminate all Supervisors. Terminated Supervisors will still exist in the metadata store and their history can be retrieved. + +Note that this endpoint will return a "success" message even if there are no Supervisors or running Supervisors to terminate. #### Responses From 428a8aa0a934af58fcea3f35dc4a9020f3729b49 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Thu, 13 Jul 2023 09:39:58 -0700 Subject: [PATCH 06/17] Update audit history description, add styling class name --- docs/api-reference/supervisor-api.md | 40 +++++++++++++++------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 8b3c4aead8af..a68ef1cc11a6 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -35,7 +35,7 @@ In this document, `http://:` is a placeholder for the GET `/druid/indexer/v1/supervisor` -Retrieves an array of active Supervisors. Returns a response object that includes an array of strings representing the names of the active Supervisors. An empty array will be returned if there are no active Supervisors. +Retrieves an array of active Supervisors. Returns a response object that includes an array of strings representing the names of the active Supervisors. If there are no active Supervisors, it returns an empty array. #### Responses @@ -81,7 +81,7 @@ Host: http://: #### URL -`GET /druid/indexer/v1/supervisor?full` +GET `/druid/indexer/v1/supervisor?full` Retrieves an array of active Supervisor objects. Each object has properties relevant to the Supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. @@ -751,9 +751,9 @@ Host: http://: ### Get Supervisor state -`GET /druid/indexer/v1/supervisor?state=true` +GET `/druid/indexer/v1/supervisor?state=true` -Retrieves an array of objects of the currently active Supervisors and their current state. An empty array will be returned if there are no active Supervisors. +Retrieves an array of objects of the currently active Supervisors and their current state. If there are no active Supervisors, it returns an empty array. See the following table for details on properties within the response object: |Field|Type|Description| @@ -821,7 +821,7 @@ Host: http://: #### URL -`GET /druid/indexer/v1/supervisor/{supervisorId}` +GET `/druid/indexer/v1/supervisor/{supervisorId}` Retrieves the current spec for the Supervisor with the provided ID. The returned Supervisor spec specifies the `dataSchema`, `ioConfig`, and `tuningConfig`. @@ -1171,7 +1171,7 @@ Host: http://: ### Get Supervisor status #### URL -`GET /druid/indexer/v1/supervisor/{supervisorId}/status` +GET `/druid/indexer/v1/supervisor/{supervisorId}/status` Retrieves a current status report of the Supervisor with the provided ID. The report contains the state of the tasks managed by the Supervisor and an array of recently thrown exceptions. The possible `state` values are: [`PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`, `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`]. @@ -1267,10 +1267,12 @@ Host: http://: #### URL -`GET /druid/indexer/v1/supervisor/history` +GET `/druid/indexer/v1/supervisor/history` Retrieve an audit history of specs for all Supervisors (current and past). +An audit history of a Supervisor provides a comprehensive log of events, including its configuration, creation, suspension, and modification history. + #### Responses @@ -1619,17 +1621,19 @@ Host: http://: #### URL -`GET /druid/indexer/v1/supervisor/{supervisorId}/history` +GET `/druid/indexer/v1/supervisor/{supervisorId}/history` Retrieve an audit history of specs for the Supervisor with the provided ID. +An audit history of a Supervisor provides a comprehensive log of events, including its configuration, creation, suspension, and modification history. + #### Responses
-*Successfully retrieved audit history for supervisor* +*Successfully retrieved audit history for Supervisor*
*Invalid supervisor ID* @@ -1975,7 +1979,7 @@ Host: http://: #### URL -`POST /druid/indexer/v1/supervisor` +POST `/druid/indexer/v1/supervisor` Creates a new Supervisor or updates an existing one for the same datasource with a new schema and configuration. @@ -2132,7 +2136,7 @@ Content-Length: 1359 ### Suspend a running Supervisor #### URL -`POST /druid/indexer/v1/supervisor/{supervisorId}/suspend` +POST `/druid/indexer/v1/supervisor/{supervisorId}/suspend` Suspends the current running Supervisor of the provided ID. Returns the updated Supervisor spec where the `suspended` property is set to `true`. A suspended Supervisor will continue to emit logs and metrics. @@ -2484,7 +2488,7 @@ Host: http://: ### Suspend all Supervisors #### URL -`POST /druid/indexer/v1/supervisor/suspendAll` +POST `/druid/indexer/v1/supervisor/suspendAll` Suspends all Supervisors. @@ -2532,7 +2536,7 @@ Host: http://: #### URL -`POST /druid/indexer/v1/supervisor/{supervisorId}/resume` +POST `/druid/indexer/v1/supervisor/{supervisorId}/resume` Resumes indexing tasks for a Supervisor. Returns an updated Supervisor spec with the `suspended` property set to `false`. @@ -2884,7 +2888,7 @@ Host: http://: ### Resume all Supervisors #### URL -`POST /druid/indexer/v1/supervisor/resumeAll` +POST `/druid/indexer/v1/supervisor/resumeAll` Resumes all Supervisors. @@ -2932,7 +2936,7 @@ Host: http://: ### Reset a Supervisor #### URL -`POST /druid/indexer/v1/supervisor/{supervisorId}/reset` +POST `/druid/indexer/v1/supervisor/{supervisorId}/reset` Resets the specified supervisor. This endpoint clears stored offsets, causing the Supervisor to start reading offsets from either the earliest or the latest offsets in Kafka. It kills and recreates active tasks to read from valid offsets. @@ -2983,7 +2987,7 @@ Host: http://: ### Terminate a Supervisor #### URL -`POST /druid/indexer/v1/supervisor/{supervisorId}/terminate` +POST `/druid/indexer/v1/supervisor/{supervisorId}/terminate` Terminate a Supervisor of the provided ID and its associated indexing tasks, triggering the publishing of their segments. When terminated, a tombstone marker will be placed in the database to prevent reloading on restart. @@ -3035,7 +3039,7 @@ Host: http://: #### URL -`POST /druid/indexer/v1/supervisor/terminateAll` +POST `/druid/indexer/v1/supervisor/terminateAll` Terminate all Supervisors. Terminated Supervisors will still exist in the metadata store and their history can be retrieved. @@ -3084,6 +3088,6 @@ Host: http://: #### URL -`POST /druid/indexer/v1/supervisor/{supervisorId}/shutdown` +POST `/druid/indexer/v1/supervisor/{supervisorId}/shutdown` Shuts down a supervisor. This API is depreciated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. \ No newline at end of file From ee0cafffda72b69e35666c083f821efa28ce4356 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Thu, 13 Jul 2023 10:28:00 -0700 Subject: [PATCH 07/17] Minor sentence changes --- docs/api-reference/supervisor-api.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index a68ef1cc11a6..c07b3df41aba 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -823,7 +823,7 @@ Host: http://: GET `/druid/indexer/v1/supervisor/{supervisorId}` -Retrieves the current spec for the Supervisor with the provided ID. The returned Supervisor spec specifies the `dataSchema`, `ioConfig`, and `tuningConfig`. +Retrieves the current spec for the Supervisor with the provided ID. The returned supervisor spec specifies the `dataSchema`, `ioConfig`, and `tuningConfig`. #### Responses @@ -831,7 +831,7 @@ Retrieves the current spec for the Supervisor with the provided ID. The returned
-*Successfully retrieved Supervisor specification* +*Successfully retrieved supervisor spec*
*Invalid Supervisor ID* @@ -1983,7 +1983,7 @@ Host: http://: Creates a new Supervisor or updates an existing one for the same datasource with a new schema and configuration. -You can create a Supervisor spec using [Apache Kafka ingestion streaming](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). Once created, a Supervisor will persist in the metadata database. +You can create a supervisor spec using [Apache Kafka](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). Once created, a Supervisor will persist in the metadata database. Using this endpoint on an existing Supervisor for the same datasource will result in the running Supervisor signaling its tasks to stop reading and begin publishing, exiting itself, and a new Supervisor being created with the provided configuration from the request body. This submits a new schema while retaining existing publishing tasks and starting new tasks at the previous task offsets. @@ -2004,6 +2004,8 @@ Using this endpoint on an existing Supervisor for the same datasource will resul #### Sample request +The following example uses JSON input format to create a supervisor spec for Kafka with a `social_media` datasource and `social_media` topic. + @@ -2138,7 +2140,7 @@ Content-Length: 1359 #### URL POST `/druid/indexer/v1/supervisor/{supervisorId}/suspend` -Suspends the current running Supervisor of the provided ID. Returns the updated Supervisor spec where the `suspended` property is set to `true`. A suspended Supervisor will continue to emit logs and metrics. +Suspends the current running Supervisor of the provided ID. Returns the updated supervisor spec where the `suspended` property is set to `true`. A suspended Supervisor will continue to emit logs and metrics. #### Responses @@ -2538,7 +2540,7 @@ Host: http://: POST `/druid/indexer/v1/supervisor/{supervisorId}/resume` -Resumes indexing tasks for a Supervisor. Returns an updated Supervisor spec with the `suspended` property set to `false`. +Resumes indexing tasks for a Supervisor. Returns an updated supervisor spec with the `suspended` property set to `false`. #### Responses @@ -2959,6 +2961,8 @@ Use this endpoint for recovering when the Supervisor stops due to missing offset #### Sample request +The following example resets the `social_media` Supervisor. + From 34bde72a19028de3a95e698badefa8fa351d8657 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Mon, 17 Jul 2023 16:22:29 -0700 Subject: [PATCH 08/17] Update format, style, and first set of feedback --- docs/api-reference/supervisor-api.md | 272 +++++++++++++-------------- 1 file changed, 131 insertions(+), 141 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index c07b3df41aba..8386fcd3dc89 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -23,27 +23,38 @@ sidebar_label: Supervisors ~ under the License. --> -This document describes the API endpoints to manage and monitor Supervisors for Apache Druid. +This document describes the API endpoints to manage and monitor supervisors for Apache Druid. -In this document, `http://:` is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace `http://:` with `http://localhost:8888`. +In this document, `http://SERVICE_IP:SERVICE_PORT` is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace `http://ROUTER_IP:ROUTER_PORT` with `http://localhost:8888`. ## Supervisor information -### Get an array of active Supervisors +The following table lists the properties of a supervisor object: + +|Parameter|Type|Description| +|---|---|---| +|`id`|String|The unique identifier| +|`state`|String|The generic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. See [Apache Kafka operations](../development/extensions-core/kafka-supervisor-operations.md) for details.| +|`detailedState`|String|The detailed state of the supervisor. This property contains a more descriptive, implementation-specific state that may provide more insight into the supervisor's activities than the `state` property. See [Apache Kafka ingestion](../development/extensions-core/kafka-ingestion.md) and [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md) for supervisor-specific states.| +|`healthy`|Boolean|Supervisor health indicator.| +|`spec`|Object|The container object for the supervisor configuration.| +|`suspended`|Boolean|Indicates whether the supervisor is in a suspended state| + +### Get an array of active supervisor IDs + +Returns an array of strings representing the names of active supervisors. If there are no active supervisors, it returns an empty array. #### URL GET `/druid/indexer/v1/supervisor` -Retrieves an array of active Supervisors. Returns a response object that includes an array of strings representing the names of the active Supervisors. If there are no active Supervisors, it returns an empty array. - #### Responses
-*Successfully retrieved array of active Supervisor IDs* +*Successfully retrieved array of active supervisor IDs* @@ -55,12 +66,12 @@ Retrieves an array of active Supervisors. Returns a response object that include ```shell -curl "http://:/druid/indexer/v1/supervisor" +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor" ``` ```HTTP GET /druid/indexer/v1/supervisor HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -77,31 +88,21 @@ Host: http://: ``` -### Get an array of active Supervisor objects +### Get an array of active supervisor objects + +Retrieves an array of active supervisor objects. If there are no active supervisors, it returns an empty array. #### URL GET `/druid/indexer/v1/supervisor?full` -Retrieves an array of active Supervisor objects. Each object has properties relevant to the Supervisor: `id`, `state`, `detailedState`, `healthy`, and `spec`. - -See the following table for details on properties within the response object: - -|Field|Type|Description| -|---|---|---| -|`id`|String|Supervisor unique identifier| -|`state`|String|The basic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| -|`detailedState`|String|The Supervisor specific state. See documentation of specific supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| -|`healthy`|Boolean|True or false indicator of overall Supervisor health| -|`spec`|SupervisorSpec|JSON specification of the Supervisor| - #### Responses
-*Successfully retrieved active Supervisor objects* +*Successfully retrieved active supervisor objects.* @@ -113,12 +114,12 @@ See the following table for details on properties within the response object: ```shell -curl "http://:/druid/indexer/v1/supervisor?full=null" +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor?full=null" ``` ```HTTP GET /druid/indexer/v1/supervisor?full=null HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -749,20 +750,13 @@ Host: http://: ``` -### Get Supervisor state +### Get an array of supervisor states -GET `/druid/indexer/v1/supervisor?state=true` +Retrieves an array of objects with the currently active supervisors and their current state. If there are no active supervisors, it returns an empty array. -Retrieves an array of objects of the currently active Supervisors and their current state. If there are no active Supervisors, it returns an empty array. +#### URL -See the following table for details on properties within the response object: -|Field|Type|Description| -|---|---|---| -|`id`|String|Supervisor unique identifier| -|`state`|String|The basic state of the Supervisor. Available states: `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. Check [Kafka Docs](../development/extensions-core/kafka-supervisor-operations.md) for details.| -|`detailedState`|String|Supervisor specific state. See documentation of the specific Supervisor for details: [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md)| -|`healthy`|Boolean|True or false indicator of overall Supervisor health| -|`suspended`|Boolean|True or false indicator of whether the Supervisor is in suspended state| +GET `/druid/indexer/v1/supervisor?state=true` #### Responses @@ -770,7 +764,7 @@ See the following table for details on properties within the response object:
-*Successfully retrieved Supervisor state objects* +*Successfully retrieved supervisor state objects.* @@ -782,12 +776,12 @@ See the following table for details on properties within the response object: ```shell -curl "http://:/druid/indexer/v1/supervisor?state=true" +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor?state=true" ``` ```HTTP GET /druid/indexer/v1/supervisor?state=true HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -817,14 +811,14 @@ Host: http://: -### Get Supervisor specification +### Get supervisor specification + +Retrieves the specification for a single supervisor. The returned specification includes the `dataSchema`, `ioConfig`, and `tuningConfig` objects. #### URL GET `/druid/indexer/v1/supervisor/{supervisorId}` -Retrieves the current spec for the Supervisor with the provided ID. The returned supervisor spec specifies the `dataSchema`, `ioConfig`, and `tuningConfig`. - #### Responses @@ -834,7 +828,7 @@ Retrieves the current spec for the Supervisor with the provided ID. The returned *Successfully retrieved supervisor spec*
-*Invalid Supervisor ID* +*Invalid supervisor ID* @@ -842,18 +836,18 @@ Retrieves the current spec for the Supervisor with the provided ID. The returned #### Sample request -The following example shows how to retrieve the specification of the `wikipedia_stream` Supervisor. +The following example shows how to retrieve the specification of a supervisor with the specified ID `wikipedia_stream`. ```shell -curl "http://:/druid/indexer/v1/supervisor/wikipedia_stream" +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/wikipedia_stream" ``` ```HTTP GET /druid/indexer/v1/supervisor/wikipedia_stream HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -1168,45 +1162,45 @@ Host: http://: ``` -### Get Supervisor status - -#### URL -GET `/druid/indexer/v1/supervisor/{supervisorId}/status` +### Get supervisor status -Retrieves a current status report of the Supervisor with the provided ID. The report contains the state of the tasks managed by the Supervisor and an array of recently thrown exceptions. The possible `state` values are: [`PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`, `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`]. +Retrieves the current status report for a single supervisor. The report contains the state of the supervisor tasks and an array of recently thrown exceptions. - For additional information about the status report, see the documentation for each streaming ingestion methods: +For additional information about the status report, see the documentation for each streaming ingestion methods: * [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#getting-supervisor-status-report) * [Apache Kafka](../development/extensions-core/kafka-supervisor-operations.md#getting-supervisor-status-report) +#### URL +GET `/druid/indexer/v1/supervisor/{supervisorId}/status` + #### Responses
-*Successfully retrieved Supervisor status* +*Successfully retrieved supervisor status*
-*Invalid Supervisor ID* +*Invalid supervisor ID* --- #### Sample request -The following example shows retrieving the status of the `social_media` Supervisor. +The following example shows how to retrieve the status of a supervisor with the specified ID `social_media`. ```shell -curl "http://:/druid/indexer/v1/supervisor/social_media/status" +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/status" ``` ```HTTP GET /druid/indexer/v1/supervisor/social_media/status HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -1263,15 +1257,15 @@ Host: http://: ## Audit history -### Get audit history for all Supervisors +An audit history provides a comprehensive log of events, including supervisor configuration, creation, suspension, and modification history. -#### URL +### Get audit history for all supervisors -GET `/druid/indexer/v1/supervisor/history` +Retrieve an audit history of specs for all supervisors (current and past). -Retrieve an audit history of specs for all Supervisors (current and past). +#### URL -An audit history of a Supervisor provides a comprehensive log of events, including its configuration, creation, suspension, and modification history. +GET `/druid/indexer/v1/supervisor/history` #### Responses @@ -1291,12 +1285,12 @@ An audit history of a Supervisor provides a comprehensive log of events, includi ```shell -curl "http://:/druid/indexer/v1/supervisor/history" +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/history" ``` ```HTTP GET /druid/indexer/v1/supervisor/history HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -1617,15 +1611,14 @@ Host: http://: ``` -### Get audit history for specific Supervisor +### Get audit history for specific supervisor + +Retrieves an audit history of specs for a single supervisor. #### URL GET `/druid/indexer/v1/supervisor/{supervisorId}/history` -Retrieve an audit history of specs for the Supervisor with the provided ID. - -An audit history of a Supervisor provides a comprehensive log of events, including its configuration, creation, suspension, and modification history. #### Responses @@ -1633,7 +1626,7 @@ An audit history of a Supervisor provides a comprehensive log of events, includi
-*Successfully retrieved audit history for Supervisor* +*Successfully retrieved supervisor audit history*
*Invalid supervisor ID* @@ -1643,18 +1636,18 @@ An audit history of a Supervisor provides a comprehensive log of events, includi #### Sample request -The following example shows how to retrieve the audit history of the `wikipedia_stream` Supervisor. +The following example shows how to retrieve the audit history of a supervisor with the specified ID `wikipedia_stream`. ```shell -curl "http://:/druid/indexer/v1/supervisor/wikipedia_stream/history" +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/wikipedia_stream/history" ``` ```HTTP GET /druid/indexer/v1/supervisor/wikipedia_stream/history HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -1973,19 +1966,19 @@ Host: http://: ``` -## Managing Supervisors +## Managing supervisors -### Create a new Supervisor or update an existing Supervisor +### Create or update a supervisor -#### URL +Creates a new supervisor or updates an existing one for the same datasource with a new schema and configuration. -POST `/druid/indexer/v1/supervisor` +You can define a supervisor spec for [Apache Kafka](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec) streaming ingestion methods. Once created, the supervisor persists in the metadata database. -Creates a new Supervisor or updates an existing one for the same datasource with a new schema and configuration. +When you call this endpoint on an existing supervisor for the same datasource, the running supervisor signals its tasks to stop reading and begin publishing, exiting itself. Druid then uses the provided configuration from the request body to create a new supervisor. Druid submits a new schema while retaining existing publishing tasks and starts new tasks at the previous task offsets. -You can create a supervisor spec using [Apache Kafka](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec). Once created, a Supervisor will persist in the metadata database. +#### URL -Using this endpoint on an existing Supervisor for the same datasource will result in the running Supervisor signaling its tasks to stop reading and begin publishing, exiting itself, and a new Supervisor being created with the provided configuration from the request body. This submits a new schema while retaining existing publishing tasks and starting new tasks at the previous task offsets. +POST `/druid/indexer/v1/supervisor` #### Responses @@ -1993,7 +1986,7 @@ Using this endpoint on an existing Supervisor for the same datasource will resul
-*Successfully created a new Supervisor or updated an existing Supervisor* +*Successfully created a new supervisor or updated an existing supervisor*
*Request body content type is not in JSON format* @@ -2010,7 +2003,7 @@ The following example uses JSON input format to create a supervisor spec for Kaf ```shell -curl "http://:/druid/indexer/v1/supervisor" \ +curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor" \ --header "Content-Type: application/json" \ --data "{ \"type\": \"kafka\", @@ -2066,7 +2059,7 @@ curl "http://:/druid/indexer/v1/supervisor" \ ```HTTP POST /druid/indexer/v1/supervisor HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT Content-Type: application/json Content-Length: 1359 @@ -2135,26 +2128,26 @@ Content-Length: 1359 ``` -### Suspend a running Supervisor +### Suspend a running supervisor + +Suspends a single running supervisor. Returns the updated supervisor spec, where the `suspended` property is set to `true`. The suspended supervisor continues to emit logs and metrics. #### URL POST `/druid/indexer/v1/supervisor/{supervisorId}/suspend` -Suspends the current running Supervisor of the provided ID. Returns the updated supervisor spec where the `suspended` property is set to `true`. A suspended Supervisor will continue to emit logs and metrics. - #### Responses
-*Successfully shut down Supervisor* +*Successfully shut down supervisor*
*Supervisor already suspended*
-*Invalid Supervisor ID* +*Invalid supervisor ID* @@ -2162,18 +2155,18 @@ Suspends the current running Supervisor of the provided ID. Returns the updated #### Sample request -The following example shows how to suspend a running Supervisor with task ID `social_media`. +The following example shows how to suspend a running supervisor with the specified ID `social_media`. ```shell -curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/suspend" +curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/suspend" ``` ```HTTP POST /druid/indexer/v1/supervisor/social_media/suspend HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -2487,22 +2480,20 @@ Host: http://: ``` -### Suspend all Supervisors +### Suspend all supervisors + +Suspends all supervisors. Note that this endpoint returns an HTTP `200 Success` code message even if there are no supervisors or running supervisors to suspend. #### URL POST `/druid/indexer/v1/supervisor/suspendAll` -Suspends all Supervisors. - -Note that this endpoint will return a "success" message even if there are no Supervisors or running Supervisors. - #### Responses
-*Successfully suspended all Supervisors* +*Successfully suspended all supervisors* @@ -2513,12 +2504,12 @@ Note that this endpoint will return a "success" message even if there are no Sup ```shell -curl --request POST "http://:/druid/indexer/v1/supervisor/suspendAll" +curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/suspendAll" ``` ```HTTP POST /druid/indexer/v1/supervisor/suspendAll HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -2534,27 +2525,27 @@ Host: http://: ``` -### Resume a Supervisor +### Resume a supervisor + +Resumes indexing tasks for a supervisor. Returns an updated supervisor spec with the `suspended` property set to `false`. #### URL POST `/druid/indexer/v1/supervisor/{supervisorId}/resume` -Resumes indexing tasks for a Supervisor. Returns an updated supervisor spec with the `suspended` property set to `false`. - #### Responses
-*Successfully resumed Supervisor* +*Successfully resumed supervisor*
*Supervisor already running*
-*Invalid Supervisor ID* +*Invalid supervisor ID* @@ -2562,18 +2553,18 @@ Resumes indexing tasks for a Supervisor. Returns an updated supervisor spec with #### Sample request -The following example resumes a previously suspended Supervisor with ID `social_media`. +The following example resumes a previously suspended supervisor with specified ID `social_media`. ```shell -curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/resume" +curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/resume" ``` ```HTTP POST /druid/indexer/v1/supervisor/social_media/resume HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -2887,14 +2878,13 @@ Host: http://: ``` -### Resume all Supervisors +### Resume all supervisors -#### URL -POST `/druid/indexer/v1/supervisor/resumeAll` +Resumes all supervisors. Note that this endpoint returns an HTTP `200 Success` code even if there are no supervisors or suspended supervisors to resume. -Resumes all Supervisors. +#### URL -Note that this endpoint will return a "success" message even if there are no Supervisors or suspended Supervisors. +POST `/druid/indexer/v1/supervisor/resumeAll` #### Responses @@ -2902,7 +2892,7 @@ Note that this endpoint will return a "success" message even if there are no Sup
-*Successfully resumed all Supervisors* +*Successfully resumed all supervisors* @@ -2914,12 +2904,12 @@ Note that this endpoint will return a "success" message even if there are no Sup ```shell -curl --request POST "http://:/druid/indexer/v1/supervisor/resumeAll" +curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/resumeAll" ``` ```HTTP POST /druid/indexer/v1/supervisor/resumeAll HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -2935,14 +2925,15 @@ Host: http://: ``` -### Reset a Supervisor +### Reset a supervisor -#### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/reset` +Resets the specified supervisor. This endpoint clears stored offsets, causing the supervisor to start reading offsets from either the earliest or the latest offsets in Kafka. It kills and recreates active tasks to read from valid offsets. + +Use this endpoint for recovering when the supervisor stops due to missing offsets. Use this endpoint with caution as it may result in skipped, resulting in data loss, or duplicate data. -Resets the specified supervisor. This endpoint clears stored offsets, causing the Supervisor to start reading offsets from either the earliest or the latest offsets in Kafka. It kills and recreates active tasks to read from valid offsets. +#### URL -Use this endpoint for recovering when the Supervisor stops due to missing offsets. Use this endpoint with caution as it may result in skipped, resulting in data loss, or duplicate data. +POST `/druid/indexer/v1/supervisor/{supervisorId}/reset` #### Responses @@ -2950,10 +2941,10 @@ Use this endpoint for recovering when the Supervisor stops due to missing offset
-*Successfully reset Supervisor* +*Successfully reset supervisor*
-*Invalid Supervisor ID* +*Invalid supervisor ID* @@ -2961,18 +2952,18 @@ Use this endpoint for recovering when the Supervisor stops due to missing offset #### Sample request -The following example resets the `social_media` Supervisor. +The following example resets the a supervisor with the specified ID `social_media`. ```shell -curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/reset" +curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/reset" ``` ```HTTP POST /druid/indexer/v1/supervisor/social_media/reset HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -2988,14 +2979,15 @@ Host: http://: ``` -### Terminate a Supervisor +### Terminate a supervisor -#### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/terminate` +Terminate a supervisor of the provided ID and its associated indexing tasks, triggering the publishing of their segments. When terminated, a tombstone marker will be placed in the database to prevent reloading on restart. + +The terminated supervisor will still exist in the metadata store and its history can be retrieved. -Terminate a Supervisor of the provided ID and its associated indexing tasks, triggering the publishing of their segments. When terminated, a tombstone marker will be placed in the database to prevent reloading on restart. +#### URL -The terminated Supervisor will still exist in the metadata store and its history can be retrieved. +POST `/druid/indexer/v1/supervisor/{supervisorId}/terminate` #### Responses @@ -3003,10 +2995,10 @@ The terminated Supervisor will still exist in the metadata store and its history
-*Successfully terminated a Supervisor* +*Successfully terminated a supervisor*
-*Invalid Supervisor ID or Supervisor not running* +*Invalid supervisor ID or supervisor not running* @@ -3018,12 +3010,12 @@ The terminated Supervisor will still exist in the metadata store and its history ```shell -curl --request POST "http://:/druid/indexer/v1/supervisor/social_media/terminate" +curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/terminate" ``` ```HTTP POST /druid/indexer/v1/supervisor/social_media/terminate HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -3039,23 +3031,21 @@ Host: http://: ``` -### Terminate all Supervisors +### Terminate all supervisors + +Terminate all supervisors. Terminated supervisors will still exist in the metadata store and their history can be retrieved. Note that this endpoint returns an HTTP `200 Success` code even if there are no supervisors or running supervisors to terminate. #### URL POST `/druid/indexer/v1/supervisor/terminateAll` -Terminate all Supervisors. Terminated Supervisors will still exist in the metadata store and their history can be retrieved. - -Note that this endpoint will return a "success" message even if there are no Supervisors or running Supervisors to terminate. - #### Responses
-*Successfully terminated all Supervisors* +*Successfully terminated all supervisors* @@ -3067,12 +3057,12 @@ Note that this endpoint will return a "success" message even if there are no Sup ```shell -curl --request POST "http://:/druid/indexer/v1/supervisor/terminateAll" +curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/terminateAll" ``` ```HTTP POST /druid/indexer/v1/supervisor/terminateAll HTTP/1.1 -Host: http://: +Host: http://ROUTER_IP:ROUTER_PORT ``` @@ -3088,7 +3078,7 @@ Host: http://: ``` -### Shut down a Supervisor +### Shut down a supervisor #### URL From 8cfd7ede143f8e1c14d7c57c1ec51ef18af71dbd Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Tue, 18 Jul 2023 10:00:50 -0700 Subject: [PATCH 09/17] Update styling error. Second batch of feedback --- docs/api-reference/supervisor-api.md | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 8386fcd3dc89..c18abd407e06 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -46,7 +46,7 @@ Returns an array of strings representing the names of active supervisors. If the #### URL -GET `/druid/indexer/v1/supervisor` +GET `/druid/indexer/v1/supervisor` #### Responses @@ -94,7 +94,7 @@ Retrieves an array of active supervisor objects. If there are no active supervis #### URL -GET `/druid/indexer/v1/supervisor?full` +GET `/druid/indexer/v1/supervisor?full` #### Responses @@ -756,7 +756,7 @@ Retrieves an array of objects with the currently active supervisors and their cu #### URL -GET `/druid/indexer/v1/supervisor?state=true` +GET `/druid/indexer/v1/supervisor?state=true` #### Responses @@ -817,7 +817,7 @@ Retrieves the specification for a single supervisor. The returned specification #### URL -GET `/druid/indexer/v1/supervisor/{supervisorId}` +GET `/druid/indexer/v1/supervisor/{supervisorId}` #### Responses @@ -1171,7 +1171,7 @@ For additional information about the status report, see the documentation for ea * [Apache Kafka](../development/extensions-core/kafka-supervisor-operations.md#getting-supervisor-status-report) #### URL -GET `/druid/indexer/v1/supervisor/{supervisorId}/status` +GET `/druid/indexer/v1/supervisor/{supervisorId}/status` #### Responses @@ -1265,7 +1265,7 @@ Retrieve an audit history of specs for all supervisors (current and past). #### URL -GET `/druid/indexer/v1/supervisor/history` +GET `/druid/indexer/v1/supervisor/history` #### Responses @@ -1617,7 +1617,7 @@ Retrieves an audit history of specs for a single supervisor. #### URL -GET `/druid/indexer/v1/supervisor/{supervisorId}/history` +GET `/druid/indexer/v1/supervisor/{supervisorId}/history` #### Responses @@ -1978,7 +1978,7 @@ When you call this endpoint on an existing supervisor for the same datasource, t #### URL -POST `/druid/indexer/v1/supervisor` +POST `/druid/indexer/v1/supervisor` #### Responses @@ -2133,7 +2133,7 @@ Content-Length: 1359 Suspends a single running supervisor. Returns the updated supervisor spec, where the `suspended` property is set to `true`. The suspended supervisor continues to emit logs and metrics. #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/suspend` +POST `/druid/indexer/v1/supervisor/{supervisorId}/suspend` #### Responses @@ -2485,7 +2485,7 @@ Host: http://ROUTER_IP:ROUTER_PORT Suspends all supervisors. Note that this endpoint returns an HTTP `200 Success` code message even if there are no supervisors or running supervisors to suspend. #### URL -POST `/druid/indexer/v1/supervisor/suspendAll` +POST `/druid/indexer/v1/supervisor/suspendAll` #### Responses @@ -2531,7 +2531,7 @@ Resumes indexing tasks for a supervisor. Returns an updated supervisor spec with #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/resume` +POST `/druid/indexer/v1/supervisor/{supervisorId}/resume` #### Responses @@ -2884,7 +2884,7 @@ Resumes all supervisors. Note that this endpoint returns an HTTP `200 Success` c #### URL -POST `/druid/indexer/v1/supervisor/resumeAll` +POST `/druid/indexer/v1/supervisor/resumeAll` #### Responses @@ -2927,13 +2927,13 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Reset a supervisor -Resets the specified supervisor. This endpoint clears stored offsets, causing the supervisor to start reading offsets from either the earliest or the latest offsets in Kafka. It kills and recreates active tasks to read from valid offsets. +Resets the specified supervisor. This endpoint clears stored offsets in Kafka or sequence numbers in Kinesis, prompting the supervisor to resume data reading. The supervisor will start from the earliest or latest available position, depending on the platform (offsets in Kafka or sequence numbers in Kinesis). It kills and recreates active tasks to read from valid positions. -Use this endpoint for recovering when the supervisor stops due to missing offsets. Use this endpoint with caution as it may result in skipped, resulting in data loss, or duplicate data. +Use this endpoint to recover from a stopped state due to missing offsets in Kafka or sequence numbers in Kinesis. Use this endpoint with caution as it may result in skipped messages, resulting in data loss, or duplicate data. #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/reset` +POST `/druid/indexer/v1/supervisor/{supervisorId}/reset` #### Responses @@ -2952,7 +2952,7 @@ Use this endpoint for recovering when the supervisor stops due to missing offset #### Sample request -The following example resets the a supervisor with the specified ID `social_media`. +The following example shows how to reset a supervisor with the specified ID `social_media`. @@ -2981,13 +2981,13 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Terminate a supervisor -Terminate a supervisor of the provided ID and its associated indexing tasks, triggering the publishing of their segments. When terminated, a tombstone marker will be placed in the database to prevent reloading on restart. +Terminates a supervisor and its associated indexing tasks, triggering the publishing of their segments. When terminated, a tombstone marker is placed in the database to prevent reloading on restart. -The terminated supervisor will still exist in the metadata store and its history can be retrieved. +The terminated supervisor still exists in the metadata store and its history can be retrieved. #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/terminate` +POST `/druid/indexer/v1/supervisor/{supervisorId}/terminate` #### Responses @@ -3033,11 +3033,11 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Terminate all supervisors -Terminate all supervisors. Terminated supervisors will still exist in the metadata store and their history can be retrieved. Note that this endpoint returns an HTTP `200 Success` code even if there are no supervisors or running supervisors to terminate. +Terminates all supervisors. Terminated supervisors still exist in the metadata store and their history can be retrieved. Note that this endpoint returns an HTTP `200 Success` code even if there are no supervisors or running supervisors to terminate. #### URL -POST `/druid/indexer/v1/supervisor/terminateAll` +POST `/druid/indexer/v1/supervisor/terminateAll` #### Responses @@ -3082,6 +3082,6 @@ Host: http://ROUTER_IP:ROUTER_PORT #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/shutdown` +POST `/druid/indexer/v1/supervisor/{supervisorId}/shutdown` -Shuts down a supervisor. This API is depreciated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. \ No newline at end of file +Shuts down a supervisor. This endpoint is depreciated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. \ No newline at end of file From b9cabc471e817f9907e7788bb8805838d7fc721a Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Tue, 18 Jul 2023 10:11:18 -0700 Subject: [PATCH 10/17] Move description above URL --- docs/api-reference/supervisor-api.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index c18abd407e06..165bf8c50878 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -3080,8 +3080,8 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Shut down a supervisor -#### URL +Shuts down a supervisor. This endpoint is depreciated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. -POST `/druid/indexer/v1/supervisor/{supervisorId}/shutdown` +#### URL -Shuts down a supervisor. This endpoint is depreciated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. \ No newline at end of file +POST `/druid/indexer/v1/supervisor/{supervisorId}/shutdown` \ No newline at end of file From 28d609ff6179fb4116cff409761994eeac37ecda Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Thu, 20 Jul 2023 10:26:46 -0700 Subject: [PATCH 11/17] parameter -> property --- docs/api-reference/supervisor-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 165bf8c50878..b4ac187620bc 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -31,7 +31,7 @@ In this document, `http://SERVICE_IP:SERVICE_PORT` is a placeholder for the serv The following table lists the properties of a supervisor object: -|Parameter|Type|Description| +|Property|Type|Description| |---|---|---| |`id`|String|The unique identifier| |`state`|String|The generic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. See [Apache Kafka operations](../development/extensions-core/kafka-supervisor-operations.md) for details.| From d4643ff2812db58da9321db570d3077a1005859b Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Thu, 20 Jul 2023 13:03:30 -0700 Subject: [PATCH 12/17] docusaurus 2 --- docs/api-reference/supervisor-api.md | 198 ++++++++++++++++++--------- 1 file changed, 130 insertions(+), 68 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index b4ac187620bc..61762a02e1fd 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -23,9 +23,9 @@ sidebar_label: Supervisors ~ under the License. --> -This document describes the API endpoints to manage and monitor supervisors for Apache Druid. +This topic describes the API endpoints to manage and monitor supervisors for Apache Druid. -In this document, `http://SERVICE_IP:SERVICE_PORT` is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace `http://ROUTER_IP:ROUTER_PORT` with `http://localhost:8888`. +In this topic, `http://SERVICE_IP:SERVICE_PORT` is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace `http://ROUTER_IP:ROUTER_PORT` with `http://localhost:8888`. ## Supervisor information @@ -33,12 +33,12 @@ The following table lists the properties of a supervisor object: |Property|Type|Description| |---|---|---| -|`id`|String|The unique identifier| -|`state`|String|The generic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. See [Apache Kafka operations](../development/extensions-core/kafka-supervisor-operations.md) for details.| -|`detailedState`|String|The detailed state of the supervisor. This property contains a more descriptive, implementation-specific state that may provide more insight into the supervisor's activities than the `state` property. See [Apache Kafka ingestion](../development/extensions-core/kafka-ingestion.md) and [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md) for supervisor-specific states.| +|`id`|String|Unique identifier.| +|`state`|String|Generic state of the supervisor. Available states:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`. See [Apache Kafka operations](../development/extensions-core/kafka-supervisor-operations.md) for details.| +|`detailedState`|String|Detailed state of the supervisor. This property contains a more descriptive, implementation-specific state that may provide more insight into the supervisor's activities than the `state` property. See [Apache Kafka ingestion](../development/extensions-core/kafka-ingestion.md) and [Amazon Kinesis ingestion](../development/extensions-core/kinesis-ingestion.md) for supervisor-specific states.| |`healthy`|Boolean|Supervisor health indicator.| -|`spec`|Object|The container object for the supervisor configuration.| -|`suspended`|Boolean|Indicates whether the supervisor is in a suspended state| +|`spec`|Object|Container object for the supervisor configuration.| +|`suspended`|Boolean|Indicates whether the supervisor is in a suspended state.| ### Get an array of active supervisor IDs @@ -46,14 +46,16 @@ Returns an array of strings representing the names of active supervisors. If the #### URL -GET `/druid/indexer/v1/supervisor` +GET /druid/indexer/v1/supervisor #### Responses +
+ *Successfully retrieved array of active supervisor IDs* @@ -90,7 +92,7 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Get an array of active supervisor objects -Retrieves an array of active supervisor objects. If there are no active supervisors, it returns an empty array. +Retrieves an array of active supervisor objects. If there are no active supervisors, it returns an empty array. For reference on the supervisor object properties, see the following [table](#supervisor-information). #### URL @@ -101,8 +103,10 @@ Retrieves an array of active supervisor objects. If there are no active supervis +
-*Successfully retrieved active supervisor objects.* + +*Successfully retrieved supervisor objects* @@ -752,18 +756,20 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Get an array of supervisor states -Retrieves an array of objects with the currently active supervisors and their current state. If there are no active supervisors, it returns an empty array. +Retrieves an array of objects with the currently active supervisors and their current state. If there are no active supervisors, it returns an empty array. For reference on the supervisor object properties, see the following [table](#supervisor-information). #### URL -GET `/druid/indexer/v1/supervisor?state=true` +GET /druid/indexer/v1/supervisor?state=true #### Responses +
+ *Successfully retrieved supervisor state objects.* @@ -817,17 +823,22 @@ Retrieves the specification for a single supervisor. The returned specification #### URL -GET `/druid/indexer/v1/supervisor/{supervisorId}` +GET /druid/indexer/v1/supervisor/:supervisorId #### Responses +
+ *Successfully retrieved supervisor spec* + +
+ *Invalid supervisor ID* @@ -836,7 +847,7 @@ Retrieves the specification for a single supervisor. The returned specification #### Sample request -The following example shows how to retrieve the specification of a supervisor with the specified ID `wikipedia_stream`. +The following example shows how to retrieve the specification of a supervisor with the name `wikipedia_stream`. @@ -1166,30 +1177,36 @@ Host: http://ROUTER_IP:ROUTER_PORT Retrieves the current status report for a single supervisor. The report contains the state of the supervisor tasks and an array of recently thrown exceptions. -For additional information about the status report, see the documentation for each streaming ingestion methods: +For additional information about the status report, see the topic for each streaming ingestion methods: * [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#getting-supervisor-status-report) * [Apache Kafka](../development/extensions-core/kafka-supervisor-operations.md#getting-supervisor-status-report) #### URL -GET `/druid/indexer/v1/supervisor/{supervisorId}/status` +GET /druid/indexer/v1/supervisor/:supervisorId/status #### Responses +
+ *Successfully retrieved supervisor status* + +
+ *Invalid supervisor ID* + --- #### Sample request -The following example shows how to retrieve the status of a supervisor with the specified ID `social_media`. +The following example shows how to retrieve the status of a supervisor with the name `social_media`. @@ -1261,18 +1278,20 @@ An audit history provides a comprehensive log of events, including supervisor co ### Get audit history for all supervisors -Retrieve an audit history of specs for all supervisors (current and past). +Retrieve an audit history of specs for all supervisors. #### URL -GET `/druid/indexer/v1/supervisor/history` +GET /druid/indexer/v1/supervisor/history #### Responses +
+ *Successfully retrieved audit history* @@ -1617,7 +1636,7 @@ Retrieves an audit history of specs for a single supervisor. #### URL -GET `/druid/indexer/v1/supervisor/{supervisorId}/history` +GET /druid/indexer/v1/supervisor/:supervisorId/history #### Responses @@ -1625,18 +1644,24 @@ Retrieves an audit history of specs for a single supervisor. +
+ *Successfully retrieved supervisor audit history* + +
+ *Invalid supervisor ID* + --- #### Sample request -The following example shows how to retrieve the audit history of a supervisor with the specified ID `wikipedia_stream`. +The following example shows how to retrieve the audit history of a supervisor with the name `wikipedia_stream`. @@ -1978,17 +2003,22 @@ When you call this endpoint on an existing supervisor for the same datasource, t #### URL -POST `/druid/indexer/v1/supervisor` +POST /druid/indexer/v1/supervisor #### Responses +
+ *Successfully created a new supervisor or updated an existing supervisor* + +
+ *Request body content type is not in JSON format* @@ -2004,57 +2034,57 @@ The following example uses JSON input format to create a supervisor spec for Kaf ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor" \ ---header "Content-Type: application/json" \ ---data "{ - \"type\": \"kafka\", - \"spec\": { - \"ioConfig\": { - \"type\": \"kafka\", - \"consumerProperties\": { - \"bootstrap.servers\": \"localhost:9094\" +--header 'Content-Type: application/json' \ +--data '{ + "type": "kafka", + "spec": { + "ioConfig": { + "type": "kafka", + "consumerProperties": { + "bootstrap.servers": "localhost:9094" }, - \"topic\": \"social_media\", - \"inputFormat\": { - \"type\": \"json\" + "topic": "social_media", + "inputFormat": { + "type": "json" }, - \"useEarliestOffset\": true + "useEarliestOffset": true }, - \"tuningConfig\": { - \"type\": \"kafka\" + "tuningConfig": { + "type": "kafka" }, - \"dataSchema\": { - \"dataSource\": \"social_media\", - \"timestampSpec\": { - \"column\": \"__time\", - \"format\": \"iso\" + "dataSchema": { + "dataSource": "social_media", + "timestampSpec": { + "column": "__time", + "format": "iso" }, - \"dimensionsSpec\": { - \"dimensions\": [ - \"username\", - \"post_title\", + "dimensionsSpec": { + "dimensions": [ + "username", + "post_title", { - \"type\": \"long\", - \"name\": \"views\" + "type": "long", + "name": "views" }, { - \"type\": \"long\", - \"name\": \"upvotes\" + "type": "long", + "name": "upvotes" }, { - \"type\": \"long\", - \"name\": \"comments\" + "type": "long", + "name": "comments" }, - \"edited\" + "edited" ] }, - \"granularitySpec\": { - \"queryGranularity\": \"none\", - \"rollup\": false, - \"segmentGranularity\": \"hour\" + "granularitySpec": { + "queryGranularity": "none", + "rollup": false, + "segmentGranularity": "hour" } } } -}" +}' ``` ```HTTP @@ -2133,20 +2163,28 @@ Content-Length: 1359 Suspends a single running supervisor. Returns the updated supervisor spec, where the `suspended` property is set to `true`. The suspended supervisor continues to emit logs and metrics. #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/suspend` +POST /druid/indexer/v1/supervisor/:supervisorId/suspend #### Responses +
+ *Successfully shut down supervisor* + +
+ *Supervisor already suspended* + +
+ *Invalid supervisor ID* @@ -2155,7 +2193,7 @@ Suspends a single running supervisor. Returns the updated supervisor spec, where #### Sample request -The following example shows how to suspend a running supervisor with the specified ID `social_media`. +The following example shows how to suspend a running supervisor with the name `social_media`. @@ -2485,14 +2523,16 @@ Host: http://ROUTER_IP:ROUTER_PORT Suspends all supervisors. Note that this endpoint returns an HTTP `200 Success` code message even if there are no supervisors or running supervisors to suspend. #### URL -POST `/druid/indexer/v1/supervisor/suspendAll` +POST /druid/indexer/v1/supervisor/suspendAll #### Responses +
+ *Successfully suspended all supervisors* @@ -2531,20 +2571,28 @@ Resumes indexing tasks for a supervisor. Returns an updated supervisor spec with #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/resume` +POST /druid/indexer/v1/supervisor/:supervisorId/resume #### Responses +
+ *Successfully resumed supervisor* + +
+ *Supervisor already running* + +
+ *Invalid supervisor ID* @@ -2553,7 +2601,7 @@ Resumes indexing tasks for a supervisor. Returns an updated supervisor spec with #### Sample request -The following example resumes a previously suspended supervisor with specified ID `social_media`. +The following example resumes a previously suspended supervisor with name `social_media`. @@ -2884,14 +2932,16 @@ Resumes all supervisors. Note that this endpoint returns an HTTP `200 Success` c #### URL -POST `/druid/indexer/v1/supervisor/resumeAll` +POST /druid/indexer/v1/supervisor/resumeAll #### Responses +
+ *Successfully resumed all supervisors* @@ -2933,17 +2983,22 @@ Use this endpoint to recover from a stopped state due to missing offsets in Kafk #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/reset` +POST /druid/indexer/v1/supervisor/:supervisorId/reset #### Responses +
+ *Successfully reset supervisor* + +
+ *Invalid supervisor ID* @@ -2952,7 +3007,7 @@ Use this endpoint to recover from a stopped state due to missing offsets in Kafk #### Sample request -The following example shows how to reset a supervisor with the specified ID `social_media`. +The following example shows how to reset a supervisor with the name `social_media`. @@ -2987,17 +3042,22 @@ The terminated supervisor still exists in the metadata store and its history can #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/terminate` +POST /druid/indexer/v1/supervisor/:supervisorId/terminate #### Responses +
+ *Successfully terminated a supervisor* + +
+ *Invalid supervisor ID or supervisor not running* @@ -3037,14 +3097,16 @@ Terminates all supervisors. Terminated supervisors still exist in the metadata s #### URL -POST `/druid/indexer/v1/supervisor/terminateAll` +POST /druid/indexer/v1/supervisor/terminateAll #### Responses +
+ *Successfully terminated all supervisors* @@ -3084,4 +3146,4 @@ Shuts down a supervisor. This endpoint is depreciated and will be removed in fut #### URL -POST `/druid/indexer/v1/supervisor/{supervisorId}/shutdown` \ No newline at end of file +POST /druid/indexer/v1/supervisor/:supervisorId/shutdown \ No newline at end of file From ac43877deec55427e0d977662ba9b50ac2218319 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Fri, 21 Jul 2023 09:22:02 -0700 Subject: [PATCH 13/17] Update spelling exception --- website/.spelling | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/.spelling b/website/.spelling index 63573f94a86a..af5b7a12df5f 100644 --- a/website/.spelling +++ b/website/.spelling @@ -2276,3 +2276,7 @@ prometheus-emitter kubernetes-overlord-extensions UCS ISO646-US +supervisorId +suspendAll +resumeAll +terminateAll \ No newline at end of file From 3d73f01ee5b68b2e2231c5cfb3275eeba02a405b Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Fri, 21 Jul 2023 10:04:35 -0700 Subject: [PATCH 14/17] update router replacement text --- docs/api-reference/supervisor-api.md | 66 +++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 61762a02e1fd..4e77d2b23a52 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -25,7 +25,7 @@ sidebar_label: Supervisors This topic describes the API endpoints to manage and monitor supervisors for Apache Druid. -In this topic, `http://SERVICE_IP:SERVICE_PORT` is a placeholder for the server address of deployment and the service port. For example, on the quickstart configuration, replace `http://ROUTER_IP:ROUTER_PORT` with `http://localhost:8888`. +In this topic, `http://ROUTER_IP:ROUTER_PORT` is a place holder for your Router service address and port. Replace it with the information for your deployment. For example, use `http://localhost:8888` for quickstart deployments. ## Supervisor information @@ -67,14 +67,18 @@ Returns an array of strings representing the names of active supervisors. If the + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor" ``` + + ```HTTP GET /druid/indexer/v1/supervisor HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -96,7 +100,7 @@ Retrieves an array of active supervisor objects. If there are no active supervis #### URL -GET `/druid/indexer/v1/supervisor?full` +GET /druid/indexer/v1/supervisor?full #### Responses @@ -117,14 +121,18 @@ Retrieves an array of active supervisor objects. If there are no active supervis + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor?full=null" ``` + + ```HTTP GET /druid/indexer/v1/supervisor?full=null HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -781,14 +789,18 @@ Retrieves an array of objects with the currently active supervisors and their cu + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor?state=true" ``` + + ```HTTP GET /druid/indexer/v1/supervisor?state=true HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -852,14 +864,18 @@ The following example shows how to retrieve the specification of a supervisor wi + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/wikipedia_stream" ``` + + ```HTTP GET /druid/indexer/v1/supervisor/wikipedia_stream HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + @@ -1182,6 +1198,7 @@ For additional information about the status report, see the topic for each strea * [Apache Kafka](../development/extensions-core/kafka-supervisor-operations.md#getting-supervisor-status-report) #### URL + GET /druid/indexer/v1/supervisor/:supervisorId/status #### Responses @@ -1211,14 +1228,18 @@ The following example shows how to retrieve the status of a supervisor with the + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/status" ``` + + ```HTTP GET /druid/indexer/v1/supervisor/social_media/status HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -1303,14 +1324,18 @@ Retrieve an audit history of specs for all supervisors. + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/history" ``` + + ```HTTP GET /druid/indexer/v1/supervisor/history HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -1666,14 +1691,18 @@ The following example shows how to retrieve the audit history of a supervisor wi + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/wikipedia_stream/history" ``` + + ```HTTP GET /druid/indexer/v1/supervisor/wikipedia_stream/history HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -2032,6 +2061,7 @@ The following example uses JSON input format to create a supervisor spec for Kaf + ```shell curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor" \ --header 'Content-Type: application/json' \ @@ -2086,7 +2116,9 @@ curl "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor" \ } }' ``` + + ```HTTP POST /druid/indexer/v1/supervisor HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT @@ -2144,6 +2176,7 @@ Content-Length: 1359 } } ``` + #### Sample response @@ -2198,14 +2231,18 @@ The following example shows how to suspend a running supervisor with the name `s + ```shell curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/suspend" ``` + + ```HTTP POST /druid/indexer/v1/supervisor/social_media/suspend HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -2538,19 +2575,24 @@ Suspends all supervisors. Note that this endpoint returns an HTTP `200 Success` --- + #### Sample request + ```shell curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/suspendAll" ``` + + ```HTTP POST /druid/indexer/v1/supervisor/suspendAll HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -2606,14 +2648,18 @@ The following example resumes a previously suspended supervisor with name `socia + ```shell curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/resume" ``` + + ```HTTP POST /druid/indexer/v1/supervisor/social_media/resume HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -2953,14 +2999,18 @@ Resumes all supervisors. Note that this endpoint returns an HTTP `200 Success` c + ```shell curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/resumeAll" ``` + + ```HTTP POST /druid/indexer/v1/supervisor/resumeAll HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -3012,14 +3062,18 @@ The following example shows how to reset a supervisor with the name `social_medi + ```shell curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/reset" ``` + + ```HTTP POST /druid/indexer/v1/supervisor/social_media/reset HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -3069,14 +3123,18 @@ The terminated supervisor still exists in the metadata store and its history can + ```shell curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/social_media/terminate" ``` + + ```HTTP POST /druid/indexer/v1/supervisor/social_media/terminate HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response @@ -3118,14 +3176,18 @@ Terminates all supervisors. Terminated supervisors still exist in the metadata s + ```shell curl --request POST "http://ROUTER_IP:ROUTER_PORT/druid/indexer/v1/supervisor/terminateAll" ``` + + ```HTTP POST /druid/indexer/v1/supervisor/terminateAll HTTP/1.1 Host: http://ROUTER_IP:ROUTER_PORT ``` + #### Sample response From 34ea05bddd55297c63d57d21186fc4a6ce90e861 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Mon, 24 Jul 2023 15:30:05 -0700 Subject: [PATCH 15/17] update for feedback, fix typo --- docs/api-reference/supervisor-api.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 4e77d2b23a52..29664ccc8303 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -96,7 +96,7 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Get an array of active supervisor objects -Retrieves an array of active supervisor objects. If there are no active supervisors, it returns an empty array. For reference on the supervisor object properties, see the following [table](#supervisor-information). +Retrieves an array of active supervisor objects. If there are no active supervisors, it returns an empty array. For reference on the supervisor object properties, see the preceding [table](#supervisor-information). #### URL @@ -764,7 +764,7 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Get an array of supervisor states -Retrieves an array of objects with the currently active supervisors and their current state. If there are no active supervisors, it returns an empty array. For reference on the supervisor object properties, see the following [table](#supervisor-information). +Retrieves an array of objects representing active supervisors and their current state. If there are no active supervisors, it returns an empty array. For reference on the supervisor object properties, see the preceding [table](#supervisor-information). #### URL @@ -778,7 +778,7 @@ Retrieves an array of objects with the currently active supervisors and their cu
-*Successfully retrieved supervisor state objects.* +*Successfully retrieved supervisor state objects* @@ -1655,7 +1655,7 @@ Host: http://ROUTER_IP:ROUTER_PORT ``` -### Get audit history for specific supervisor +### Get audit history for a specific supervisor Retrieves an audit history of specs for a single supervisor. @@ -2020,7 +2020,7 @@ Host: http://ROUTER_IP:ROUTER_PORT ``` -## Managing supervisors +## Manage supervisors ### Create or update a supervisor @@ -3029,7 +3029,7 @@ Host: http://ROUTER_IP:ROUTER_PORT Resets the specified supervisor. This endpoint clears stored offsets in Kafka or sequence numbers in Kinesis, prompting the supervisor to resume data reading. The supervisor will start from the earliest or latest available position, depending on the platform (offsets in Kafka or sequence numbers in Kinesis). It kills and recreates active tasks to read from valid positions. -Use this endpoint to recover from a stopped state due to missing offsets in Kafka or sequence numbers in Kinesis. Use this endpoint with caution as it may result in skipped messages, resulting in data loss, or duplicate data. +Use this endpoint to recover from a stopped state due to missing offsets in Kafka or sequence numbers in Kinesis. Use this endpoint with caution as it may result in skipped messages and lead to data loss or duplicate data. #### URL @@ -3204,7 +3204,7 @@ Host: http://ROUTER_IP:ROUTER_PORT ### Shut down a supervisor -Shuts down a supervisor. This endpoint is depreciated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. +Shuts down a supervisor. This endpoint is deprecated and will be removed in future releases. Use the equivalent [terminate](#terminate-a-supervisor) endpoint instead. #### URL From 9e5dbd63be81543a97b3c51fc5b9b1f0557faea4 Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Tue, 25 Jul 2023 21:56:57 -0700 Subject: [PATCH 16/17] fix anchor from updated kinesis page --- docs/api-reference/supervisor-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index 29664ccc8303..b1c44fc7a00a 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -1194,7 +1194,7 @@ Host: http://ROUTER_IP:ROUTER_PORT Retrieves the current status report for a single supervisor. The report contains the state of the supervisor tasks and an array of recently thrown exceptions. For additional information about the status report, see the topic for each streaming ingestion methods: -* [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#getting-supervisor-status-report) +* [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#get-supervisor-status-report) * [Apache Kafka](../development/extensions-core/kafka-supervisor-operations.md#getting-supervisor-status-report) #### URL @@ -2026,7 +2026,7 @@ Host: http://ROUTER_IP:ROUTER_PORT Creates a new supervisor or updates an existing one for the same datasource with a new schema and configuration. -You can define a supervisor spec for [Apache Kafka](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#submitting-a-supervisor-spec) streaming ingestion methods. Once created, the supervisor persists in the metadata database. +You can define a supervisor spec for [Apache Kafka](../development/extensions-core/kafka-ingestion.md#define-a-supervisor-spec) or [Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md#supervisor-spec) streaming ingestion methods. Once created, the supervisor persists in the metadata database. When you call this endpoint on an existing supervisor for the same datasource, the running supervisor signals its tasks to stop reading and begin publishing, exiting itself. Druid then uses the provided configuration from the request body to create a new supervisor. Druid submits a new schema while retaining existing publishing tasks and starts new tasks at the previous task offsets. From 3dc9ad6ce8e0621c708fcb2c20eca0ada7ad2f6c Mon Sep 17 00:00:00 2001 From: demo-kratia <56242907+demo-kratia@users.noreply.github.com> Date: Thu, 27 Jul 2023 11:13:03 -0700 Subject: [PATCH 17/17] fix placeholder + remove
tags --- docs/api-reference/supervisor-api.md | 52 +--------------------------- 1 file changed, 1 insertion(+), 51 deletions(-) diff --git a/docs/api-reference/supervisor-api.md b/docs/api-reference/supervisor-api.md index b1c44fc7a00a..f3b47accc1a1 100644 --- a/docs/api-reference/supervisor-api.md +++ b/docs/api-reference/supervisor-api.md @@ -25,7 +25,7 @@ sidebar_label: Supervisors This topic describes the API endpoints to manage and monitor supervisors for Apache Druid. -In this topic, `http://ROUTER_IP:ROUTER_PORT` is a place holder for your Router service address and port. Replace it with the information for your deployment. For example, use `http://localhost:8888` for quickstart deployments. +In this topic, `http://ROUTER_IP:ROUTER_PORT` is a placeholder for your Router service address and port. Replace it with the information for your deployment. For example, use `http://localhost:8888` for quickstart deployments. ## Supervisor information @@ -54,8 +54,6 @@ Returns an array of strings representing the names of active supervisors. If the -
- *Successfully retrieved array of active supervisor IDs* @@ -108,8 +106,6 @@ Retrieves an array of active supervisor objects. If there are no active supervis -
- *Successfully retrieved supervisor objects* @@ -776,8 +772,6 @@ Retrieves an array of objects representing active supervisors and their current -
- *Successfully retrieved supervisor state objects* @@ -843,14 +837,10 @@ Retrieves the specification for a single supervisor. The returned specification -
- *Successfully retrieved supervisor spec* -
- *Invalid supervisor ID* @@ -1207,14 +1197,10 @@ For additional information about the status report, see the topic for each strea -
- *Successfully retrieved supervisor status* -
- *Invalid supervisor ID* @@ -1311,8 +1297,6 @@ Retrieve an audit history of specs for all supervisors. -
- *Successfully retrieved audit history* @@ -1670,14 +1654,10 @@ Retrieves an audit history of specs for a single supervisor. -
- *Successfully retrieved supervisor audit history* -
- *Invalid supervisor ID* @@ -2040,14 +2020,10 @@ When you call this endpoint on an existing supervisor for the same datasource, t -
- *Successfully created a new supervisor or updated an existing supervisor* -
- *Request body content type is not in JSON format* @@ -2204,20 +2180,14 @@ Suspends a single running supervisor. Returns the updated supervisor spec, where -
- *Successfully shut down supervisor* -
- *Supervisor already suspended* -
- *Invalid supervisor ID* @@ -2568,8 +2538,6 @@ Suspends all supervisors. Note that this endpoint returns an HTTP `200 Success` -
- *Successfully suspended all supervisors* @@ -2621,20 +2589,14 @@ Resumes indexing tasks for a supervisor. Returns an updated supervisor spec with -
- *Successfully resumed supervisor* -
- *Supervisor already running* -
- *Invalid supervisor ID* @@ -2986,8 +2948,6 @@ Resumes all supervisors. Note that this endpoint returns an HTTP `200 Success` c -
- *Successfully resumed all supervisors* @@ -3041,14 +3001,10 @@ Use this endpoint to recover from a stopped state due to missing offsets in Kafk -
- *Successfully reset supervisor* -
- *Invalid supervisor ID* @@ -3104,14 +3060,10 @@ The terminated supervisor still exists in the metadata store and its history can -
- *Successfully terminated a supervisor* -
- *Invalid supervisor ID or supervisor not running* @@ -3163,8 +3115,6 @@ Terminates all supervisors. Terminated supervisors still exist in the metadata s -
- *Successfully terminated all supervisors*