From e81a9df507e8f5c30cf5eebdc6d29cedf34626ba Mon Sep 17 00:00:00 2001 From: Vadim Ogievetsky Date: Mon, 31 Aug 2020 20:58:52 -0700 Subject: [PATCH] Web console: add tile for Azure Event Hubs (via Kafka API) (#10317) * Add Azure Event Hubs * better note * update icon --- web-console/assets/azure-event-hubs.png | Bin 0 -> 7896 bytes web-console/src/utils/ingestion-spec.tsx | 10 ++- .../views/load-data-view/load-data-view.tsx | 58 ++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 web-console/assets/azure-event-hubs.png diff --git a/web-console/assets/azure-event-hubs.png b/web-console/assets/azure-event-hubs.png new file mode 100644 index 0000000000000000000000000000000000000000..95b761fbb9bf7f94010dbab41ff824f81dcfdde2 GIT binary patch literal 7896 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 literal 0 HcmV?d00001 diff --git a/web-console/src/utils/ingestion-spec.tsx b/web-console/src/utils/ingestion-spec.tsx index d6ec9451f71..530c269c96f 100644 --- a/web-console/src/utils/ingestion-spec.tsx +++ b/web-console/src/utils/ingestion-spec.tsx @@ -70,7 +70,12 @@ export type IngestionComboType = | 'index_parallel:hdfs'; // Some extra values that can be selected in the initial screen -export type IngestionComboTypeWithExtra = IngestionComboType | 'hadoop' | 'example' | 'other'; +export type IngestionComboTypeWithExtra = + | IngestionComboType + | 'azure-event-hubs' + | 'hadoop' + | 'example' + | 'other'; export function adjustIngestionSpec(spec: IngestionSpec) { const tuningConfig = deepGet(spec, 'spec.tuningConfig'); @@ -153,6 +158,9 @@ export function getIngestionTitle(ingestionType: IngestionComboTypeWithExtra): s case 'hadoop': return 'HDFS'; + case 'azure-event-hubs': + return 'Azure Event Hub'; + case 'example': return 'Example data'; diff --git a/web-console/src/views/load-data-view/load-data-view.tsx b/web-console/src/views/load-data-view/load-data-view.tsx index be13c22dfbf..c65b83e53ff 100644 --- a/web-console/src/views/load-data-view/load-data-view.tsx +++ b/web-console/src/views/load-data-view/load-data-view.tsx @@ -706,6 +706,7 @@ export class LoadDataView extends React.PureComponent {this.renderIngestionCard('kafka')} {this.renderIngestionCard('kinesis')} + {this.renderIngestionCard('azure-event-hubs')} {this.renderIngestionCard('index_parallel:s3')} {this.renderIngestionCard('index_parallel:azure')} {this.renderIngestionCard('index_parallel:google')} @@ -800,6 +801,24 @@ export class LoadDataView extends React.PureComponentLoad streaming data in real-time from Amazon Kinesis.

; + case 'azure-event-hubs': + return ( + <> +

Azure Event Hubs provides an Apache Kafka compatible API for consuming data.

+

+ Data from an Event Hub can be streamed into Druid by enabling the Kafka API on the + Namespace. +

+

+ Please see the{' '} + + Event Hub documentation + {' '} + for more information. +

+ + ); + case 'example': if (exampleManifests && exampleManifests.length) { return; // Yield to example picker controls @@ -855,6 +874,45 @@ export class LoadDataView extends React.PureComponent ); + case 'azure-event-hubs': + return ( + <> + + + Please review and fill in the consumerProperties on the next step. + + + +