mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Serverless Search] Update Getting Ingest Data section (#171035)
## Summary PR updates Getting Started Ingest data row to match [design](https://www.figma.com/file/aRW3wtDRGgwOunC8vXIvdm/Milestone-0-UX?type=design&node-id=3893-443443&mode=design&t=PYPiODRJvKspgxQc-0) . ## Screen shot <img width="1402" alt="Getting ingest data row" src="1b932469
-f151-4e71-844b-da6b9b667e2a"> ## Screen Recording2c9454ee
-b23f-4a7e-9d16-cfcd3697e1a1 ### Checklist - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
938069dd5d
commit
a8f203931f
9 changed files with 260 additions and 320 deletions
|
@ -6,25 +6,22 @@
|
|||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import React, { useState } from 'react';
|
||||
import React from 'react';
|
||||
|
||||
import { EuiCheckableCard, EuiFormFieldset, EuiSpacer, EuiText, EuiTitle } from '@elastic/eui';
|
||||
import { EuiSpacer, EuiTitle } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import type { ApplicationStart } from '@kbn/core-application-browser';
|
||||
import type { SharePluginStart } from '@kbn/share-plugin/public';
|
||||
import { CodeBox } from './code_box';
|
||||
import { LanguageDefinition } from '../types';
|
||||
import { OverviewPanel } from './overview_panel';
|
||||
import { IntegrationsPanel } from './integrations_panel';
|
||||
|
||||
import { IngestionsPanel } from './ingestions_panel';
|
||||
interface IngestDataProps {
|
||||
codeSnippet: string;
|
||||
selectedLanguage: LanguageDefinition;
|
||||
setSelectedLanguage: (language: LanguageDefinition) => void;
|
||||
docLinks: {
|
||||
beats: string;
|
||||
connectors: string;
|
||||
integrations: string;
|
||||
logstash: string;
|
||||
};
|
||||
assetBasePath: string;
|
||||
|
@ -32,6 +29,7 @@ interface IngestDataProps {
|
|||
sharePlugin: SharePluginStart;
|
||||
languages: LanguageDefinition[];
|
||||
consoleRequest?: string;
|
||||
additionalIngestionPanel?: React.ReactNode;
|
||||
}
|
||||
|
||||
export const IngestData: React.FC<IngestDataProps> = ({
|
||||
|
@ -44,115 +42,45 @@ export const IngestData: React.FC<IngestDataProps> = ({
|
|||
sharePlugin,
|
||||
languages,
|
||||
consoleRequest,
|
||||
additionalIngestionPanel,
|
||||
}) => {
|
||||
const [selectedIngestMethod, setSelectedIngestMethod] = useState<
|
||||
'ingestViaApi' | 'ingestViaIntegration'
|
||||
>('ingestViaApi');
|
||||
return (
|
||||
<OverviewPanel
|
||||
description={i18n.translate('searchApiPanels.welcomeBanner.ingestData.description', {
|
||||
defaultMessage:
|
||||
'Add data to your data stream or index to make it searchable. Choose an ingestion method that fits your application and workflow.',
|
||||
defaultMessage: 'Add data to your data stream or index to make it searchable via API. ',
|
||||
})}
|
||||
leftPanelContent={
|
||||
selectedIngestMethod === 'ingestViaApi' ? (
|
||||
<CodeBox
|
||||
consoleRequest={consoleRequest}
|
||||
codeSnippet={codeSnippet}
|
||||
languages={languages}
|
||||
selectedLanguage={selectedLanguage}
|
||||
setSelectedLanguage={setSelectedLanguage}
|
||||
assetBasePath={assetBasePath}
|
||||
application={application}
|
||||
sharePlugin={sharePlugin}
|
||||
/>
|
||||
) : (
|
||||
<IntegrationsPanel docLinks={docLinks} assetBasePath={assetBasePath} />
|
||||
)
|
||||
<CodeBox
|
||||
consoleRequest={consoleRequest}
|
||||
codeSnippet={codeSnippet}
|
||||
languages={languages}
|
||||
selectedLanguage={selectedLanguage}
|
||||
setSelectedLanguage={setSelectedLanguage}
|
||||
assetBasePath={assetBasePath}
|
||||
application={application}
|
||||
sharePlugin={sharePlugin}
|
||||
/>
|
||||
}
|
||||
links={[
|
||||
...(selectedLanguage.apiReference
|
||||
? [
|
||||
{
|
||||
href: selectedLanguage.apiReference,
|
||||
label: i18n.translate('searchApiPanels.welcomeBanner.ingestData.clientDocLink', {
|
||||
defaultMessage: '{languageName} API reference',
|
||||
values: { languageName: selectedLanguage.name },
|
||||
}),
|
||||
},
|
||||
]
|
||||
: []),
|
||||
{
|
||||
href: docLinks.integrations,
|
||||
label: i18n.translate('searchApiPanels.welcomeBanner.ingestData.integrationsLink', {
|
||||
defaultMessage: 'About Integrations',
|
||||
}),
|
||||
},
|
||||
]}
|
||||
links={[]}
|
||||
title={i18n.translate('searchApiPanels.welcomeBanner.ingestData.title', {
|
||||
defaultMessage: 'Ingest data',
|
||||
})}
|
||||
>
|
||||
<EuiSpacer size="l" />
|
||||
<EuiFormFieldset
|
||||
legend={{
|
||||
children: i18n.translate('searchApiPanels.welcomeBanner.ingestData.ingestLegendLabel', {
|
||||
defaultMessage: 'Select an ingestion method',
|
||||
}),
|
||||
display: 'hidden',
|
||||
}}
|
||||
>
|
||||
<EuiCheckableCard
|
||||
hasShadow
|
||||
id="ingestViaApi"
|
||||
label={
|
||||
<EuiTitle size="xs">
|
||||
<h3>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.ingestApiLabel', {
|
||||
defaultMessage: 'Ingest via API',
|
||||
})}
|
||||
</h3>
|
||||
</EuiTitle>
|
||||
}
|
||||
value="ingestViaApi"
|
||||
checked={selectedIngestMethod === 'ingestViaApi'}
|
||||
onChange={() => setSelectedIngestMethod('ingestViaApi')}
|
||||
>
|
||||
<EuiText>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.ingestApiDescription', {
|
||||
defaultMessage:
|
||||
'The most flexible way to index data, enabling full control over your customization and optimization options.',
|
||||
})}
|
||||
</EuiText>
|
||||
</EuiCheckableCard>
|
||||
<EuiSpacer />
|
||||
<EuiCheckableCard
|
||||
hasShadow
|
||||
id="ingestViaIntegration"
|
||||
label={
|
||||
<EuiTitle size="xs">
|
||||
<h3>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.ingestIntegrationLabel', {
|
||||
defaultMessage: 'Ingest via integration',
|
||||
})}
|
||||
</h3>
|
||||
</EuiTitle>
|
||||
}
|
||||
value="ingestViaIntegration"
|
||||
checked={selectedIngestMethod === 'ingestViaIntegration'}
|
||||
onChange={() => setSelectedIngestMethod('ingestViaIntegration')}
|
||||
>
|
||||
<EuiText>
|
||||
{i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.ingestIntegrationDescription',
|
||||
{
|
||||
defaultMessage:
|
||||
'Specialized ingestion tools optimized for transforming data and shipping it to Elasticsearch.',
|
||||
}
|
||||
)}
|
||||
</EuiText>
|
||||
</EuiCheckableCard>
|
||||
</EuiFormFieldset>
|
||||
<EuiTitle size="xs">
|
||||
<h4>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.alternativeOptions', {
|
||||
defaultMessage: 'Alternative ingestion options',
|
||||
})}
|
||||
</h4>
|
||||
</EuiTitle>
|
||||
<EuiSpacer size="m" />
|
||||
|
||||
<IngestionsPanel
|
||||
assetBasePath={assetBasePath}
|
||||
docLinks={docLinks}
|
||||
additionalIngestionPanel={additionalIngestionPanel}
|
||||
/>
|
||||
</OverviewPanel>
|
||||
);
|
||||
};
|
||||
|
|
131
packages/kbn-search-api-panels/components/ingestions_panel.tsx
Normal file
131
packages/kbn-search-api-panels/components/ingestions_panel.tsx
Normal file
|
@ -0,0 +1,131 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import { EuiFlexGroup, EuiFlexItem, EuiTitle, EuiSpacer, EuiText, EuiLink } from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { GithubLink } from './github_link';
|
||||
|
||||
interface IngestionPanelProps {
|
||||
additionalIngestionPanel?: React.ReactNode;
|
||||
docLinks: { beats: string; logstash: string };
|
||||
assetBasePath: string;
|
||||
}
|
||||
|
||||
export const IngestionsPanel: React.FC<IngestionPanelProps> = ({
|
||||
additionalIngestionPanel,
|
||||
docLinks,
|
||||
assetBasePath,
|
||||
}) => {
|
||||
const panels = [
|
||||
{
|
||||
description: i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.alternativeOptions.logstashDescription',
|
||||
{
|
||||
defaultMessage:
|
||||
'General-purpose data processing pipeline for Elasticsearch. Use Logstash to extract and transform data from a variety of inputs and outputs.',
|
||||
}
|
||||
),
|
||||
title: i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.alternativeOptions.logstashTitle',
|
||||
{
|
||||
defaultMessage: 'Logstash',
|
||||
}
|
||||
),
|
||||
links: [
|
||||
{
|
||||
href: docLinks.logstash,
|
||||
label: i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.alternativeOptions.logstashDocumentationLabel',
|
||||
{
|
||||
defaultMessage: 'Documentation',
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
href: 'https://github.com/elastic/logstash',
|
||||
isGithubLink: true,
|
||||
label: 'logstash',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
description: i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.alternativeOptions.beatsDescription',
|
||||
{
|
||||
defaultMessage:
|
||||
'Lightweight, single-purpose data shippers for Elasticsearch. Use Beats to send operational data from your servers.',
|
||||
}
|
||||
),
|
||||
title: i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.alternativeOptions.beatsTitle',
|
||||
{
|
||||
defaultMessage: 'Beats',
|
||||
}
|
||||
),
|
||||
links: [
|
||||
{
|
||||
href: docLinks.beats,
|
||||
label: i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.alternativeOptions.beatsDocumentationLabel',
|
||||
{
|
||||
defaultMessage: 'Documentation',
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
href: 'https://github.com/elastic/beats',
|
||||
isGithubLink: true,
|
||||
label: 'beats',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
return (
|
||||
<>
|
||||
{additionalIngestionPanel}
|
||||
{panels.map(({ title, description, links }, panelIndex) => (
|
||||
<EuiFlexGroup
|
||||
direction="column"
|
||||
justifyContent="spaceEvenly"
|
||||
gutterSize="s"
|
||||
key={panelIndex}
|
||||
>
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiTitle size="xxs">
|
||||
<h6>{title}</h6>
|
||||
</EuiTitle>
|
||||
<EuiSpacer size="xs" />
|
||||
<EuiText>
|
||||
<p>{description}</p>
|
||||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
{links && links.length > 0 && (
|
||||
<>
|
||||
<EuiFlexGroup direction="row" justifyContent="flexStart" alignItems="center">
|
||||
{links.map(({ label, href, isGithubLink }, linksIndex) => (
|
||||
<EuiFlexItem grow={false} key={linksIndex}>
|
||||
{isGithubLink ? (
|
||||
<GithubLink assetBasePath={assetBasePath} label={label} href={href} />
|
||||
) : (
|
||||
<EuiLink href={href} target="_blank">
|
||||
{label}
|
||||
</EuiLink>
|
||||
)}
|
||||
</EuiFlexItem>
|
||||
))}
|
||||
</EuiFlexGroup>
|
||||
<EuiSpacer size="m" />
|
||||
</>
|
||||
)}
|
||||
</EuiFlexGroup>
|
||||
))}
|
||||
</>
|
||||
);
|
||||
};
|
|
@ -1,168 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
EuiThemeProvider,
|
||||
EuiPanel,
|
||||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
EuiIcon,
|
||||
EuiTitle,
|
||||
EuiSpacer,
|
||||
EuiText,
|
||||
EuiLink,
|
||||
} from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { LEARN_MORE_LABEL } from '../constants';
|
||||
import { GithubLink } from './github_link';
|
||||
|
||||
export interface IntegrationsPanelProps {
|
||||
docLinks: { beats: string; connectors: string; logstash: string };
|
||||
assetBasePath: string;
|
||||
}
|
||||
|
||||
export const IntegrationsPanel: React.FC<IntegrationsPanelProps> = ({
|
||||
docLinks,
|
||||
assetBasePath,
|
||||
}) => {
|
||||
return (
|
||||
<EuiThemeProvider colorMode="dark">
|
||||
<EuiPanel paddingSize="xl">
|
||||
<EuiFlexGroup alignItems="flexStart" justifyContent="flexStart">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiIcon type="logoLogstash" size="xxl" />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle size="s">
|
||||
<h3>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.logstashTitle', {
|
||||
defaultMessage: 'Logstash',
|
||||
})}
|
||||
</h3>
|
||||
</EuiTitle>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiText size="s">
|
||||
<p>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.logstashDescription', {
|
||||
defaultMessage:
|
||||
'Add data to your data stream or index to make it searchable. Choose an ingestion method that fits your application and workflow.',
|
||||
})}
|
||||
</p>
|
||||
</EuiText>
|
||||
<EuiSpacer size="m" />
|
||||
<EuiFlexGroup justifyContent="flexStart" gutterSize="l">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiText size="s">
|
||||
<EuiLink href={docLinks.logstash} target="_blank">
|
||||
{LEARN_MORE_LABEL}
|
||||
</EuiLink>
|
||||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<GithubLink
|
||||
href="https://github.com/elastic/logstash"
|
||||
label={i18n.translate('searchApiPanels.welcomeBanner.ingestData.logstashLink', {
|
||||
defaultMessage: 'Logstash',
|
||||
})}
|
||||
assetBasePath={assetBasePath}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiSpacer size="xl" />
|
||||
<EuiFlexGroup alignItems="flexStart" justifyContent="flexStart">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiIcon type="logoBeats" size="xxl" />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle size="s">
|
||||
<h3>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.beatsTitle', {
|
||||
defaultMessage: 'Beats',
|
||||
})}
|
||||
</h3>
|
||||
</EuiTitle>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiText size="s">
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.beatsDescription', {
|
||||
defaultMessage:
|
||||
'Lightweight, single-purpose data shippers for Elasticsearch. Use Beats to send operational data from your servers.',
|
||||
})}
|
||||
</EuiText>
|
||||
<EuiSpacer size="m" />
|
||||
<EuiFlexGroup justifyContent="flexStart" gutterSize="l">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiText size="s">
|
||||
<EuiLink href={docLinks.beats} target="_blank">
|
||||
{LEARN_MORE_LABEL}
|
||||
</EuiLink>
|
||||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<GithubLink
|
||||
href="https://github.com/elastic/beats"
|
||||
label={i18n.translate('searchApiPanels.welcomeBanner.ingestData.beatsLink', {
|
||||
defaultMessage: 'Beats',
|
||||
})}
|
||||
assetBasePath={assetBasePath}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiSpacer size="xl" />
|
||||
<EuiFlexGroup alignItems="flexStart" justifyContent="flexStart">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiIcon type="logoEnterpriseSearch" size="xxl" />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle size="s">
|
||||
<h3>
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.connectorsTitle', {
|
||||
defaultMessage: 'Connector clients',
|
||||
})}
|
||||
</h3>
|
||||
</EuiTitle>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiText size="s">
|
||||
{i18n.translate('searchApiPanels.welcomeBanner.ingestData.connectorsDescription', {
|
||||
defaultMessage:
|
||||
'Specialized integrations for syncing data from third-party sources to Elasticsearch. Use Elastic connectors to sync content from a range of databases and object stores.',
|
||||
})}
|
||||
</EuiText>
|
||||
<EuiSpacer size="m" />
|
||||
<EuiFlexGroup justifyContent="flexStart" gutterSize="l">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiText size="s">
|
||||
<EuiLink href={docLinks.connectors} target="_blank">
|
||||
{LEARN_MORE_LABEL}
|
||||
</EuiLink>
|
||||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<GithubLink
|
||||
href="https://github.com/elastic/connectors-python"
|
||||
label={i18n.translate(
|
||||
'searchApiPanels.welcomeBanner.ingestData.connectorsPythonLink',
|
||||
{
|
||||
defaultMessage: 'elastic/connectors',
|
||||
}
|
||||
)}
|
||||
assetBasePath={assetBasePath}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
</EuiPanel>
|
||||
</EuiThemeProvider>
|
||||
);
|
||||
};
|
|
@ -14,7 +14,7 @@ import { AuthenticatedUser } from '@kbn/security-plugin/common';
|
|||
export * from './components/code_box';
|
||||
export * from './components/github_link';
|
||||
export * from './components/ingest_data';
|
||||
export * from './components/integrations_panel';
|
||||
export * from './components/ingestions_panel';
|
||||
export * from './components/language_client_panel';
|
||||
export * from './components/overview_panel';
|
||||
export * from './components/select_client';
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
|
||||
import {
|
||||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
EuiTitle,
|
||||
EuiSpacer,
|
||||
EuiText,
|
||||
EuiLink,
|
||||
EuiIcon,
|
||||
} from '@elastic/eui';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import { GithubLink } from '@kbn/search-api-panels';
|
||||
|
||||
import React from 'react';
|
||||
import { useCreateConnector } from '../hooks/api/use_create_connector';
|
||||
|
||||
export const ConnectorIngestionPanel: React.FC<{ assetBasePath: string }> = ({ assetBasePath }) => {
|
||||
const { createConnector } = useCreateConnector();
|
||||
return (
|
||||
<EuiFlexGroup direction="column" justifyContent="spaceEvenly" gutterSize="s">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiTitle size="xxs">
|
||||
<h6>
|
||||
{i18n.translate(
|
||||
'xpack.serverlessSearch.ingestData.alternativeOptions.connectorsTitle',
|
||||
{
|
||||
defaultMessage: 'Connectors',
|
||||
}
|
||||
)}
|
||||
</h6>
|
||||
</EuiTitle>
|
||||
<EuiSpacer size="xs" />
|
||||
<EuiText>
|
||||
<p>
|
||||
{i18n.translate(
|
||||
'xpack.serverlessSearch.ingestData.alternativeOptions.connectorsDescription',
|
||||
{
|
||||
defaultMessage:
|
||||
'Sync third-party data sources to Elasticsearch, by deploying open code Elastic connectors on your own infrastructure. ',
|
||||
}
|
||||
)}
|
||||
</p>
|
||||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexGroup direction="row" justifyContent="flexStart" alignItems="center">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiLink onClick={() => createConnector()}>
|
||||
{i18n.translate(
|
||||
'xpack.serverlessSearch.ingestData.alternativeOptions.setupConnectorLabel',
|
||||
{
|
||||
defaultMessage: 'Set up a connector',
|
||||
}
|
||||
)}
|
||||
</EuiLink>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<GithubLink
|
||||
href="https://github.com/elastic/connectors"
|
||||
label="connectors"
|
||||
assetBasePath={assetBasePath}
|
||||
/>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiFlexGroup alignItems="center" gutterSize="xs">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiIcon size="s" type="logoDocker" />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiText size="s">
|
||||
<EuiLink
|
||||
target="_blank"
|
||||
href="https://github.com/elastic/connectors-python/blob/main/docs/DOCKER.md"
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.serverlessSearch.ingestData.alternativeOptions.connectorDockerLabel',
|
||||
{
|
||||
defaultMessage: 'Docker',
|
||||
}
|
||||
)}
|
||||
</EuiLink>
|
||||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
</EuiFlexItem>
|
||||
</EuiFlexGroup>
|
||||
<EuiSpacer size="m" />
|
||||
</EuiFlexGroup>
|
||||
);
|
||||
};
|
|
@ -52,6 +52,7 @@ import { LanguageGrid } from './languages/language_grid';
|
|||
import './overview.scss';
|
||||
import { ApiKeyPanel } from './api_key/api_key';
|
||||
import { ConnectorsCallout } from './connectors_callout';
|
||||
import { ConnectorIngestionPanel } from './connectors_ingestion';
|
||||
|
||||
export const ElasticsearchOverview = () => {
|
||||
const [selectedLanguage, setSelectedLanguage] = useState<LanguageDefinition>(javaDefinition);
|
||||
|
@ -302,6 +303,7 @@ export const ElasticsearchOverview = () => {
|
|||
docLinks={docLinks}
|
||||
application={application}
|
||||
sharePlugin={share}
|
||||
additionalIngestionPanel={<ConnectorIngestionPanel assetBasePath={assetBasePath} />}
|
||||
/>
|
||||
</EuiPageTemplate.Section>
|
||||
<EuiPageTemplate.Section
|
||||
|
|
|
@ -5308,7 +5308,6 @@
|
|||
"savedSearch.kibana_context.savedSearchId.help": "Spécifier l'ID de recherche enregistrée à utiliser pour les requêtes et les filtres",
|
||||
"savedSearch.kibana_context.timeRange.help": "Spécifier le filtre de plage temporelle Kibana",
|
||||
"searchApiPanels.welcomeBanner.header.greeting.customTitle": "Bonjour {name} !",
|
||||
"searchApiPanels.welcomeBanner.ingestData.clientDocLink": "Référence d’API {languageName}",
|
||||
"searchApiPanels.welcomeBanner.installClient.clientDocLink": "Documentation du client {languageName}",
|
||||
"searchApiPanels.welcomeBanner.selectClient.description": "Elastic construit et assure la maintenance des clients dans plusieurs langues populaires et notre communauté a contribué à beaucoup d'autres. Sélectionnez votre client linguistique favori or explorez la {console} pour commencer.",
|
||||
"searchApiPanels.welcomeBanner.codeBox.copyButtonLabel": "Copier",
|
||||
|
@ -5316,22 +5315,7 @@
|
|||
"searchApiPanels.welcomeBanner.header.description": "Configurez votre client de langage de programmation, ingérez des données, et vous serez prêt à commencer vos recherches en quelques minutes.",
|
||||
"searchApiPanels.welcomeBanner.header.greeting.defaultTitle": "Bonjour !",
|
||||
"searchApiPanels.welcomeBanner.header.title": "Lancez-vous avec Elasticsearch",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsDescription": "Des agents légers conçus pour le transfert de données pour Elasticsearch. Utilisez Beats pour envoyer des données opérationnelles depuis vos serveurs.",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsLink": "Beats",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsTitle": "Beats",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsDescription": "Des intégrations spécialisées pour synchroniser des données de sources tierces avec Elasticsearch. Utilisez des connecteurs Elastic pour synchroniser du contenu d’une plage de bases de données et de stockage d’objets.",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsPythonLink": "connecteurs-python",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsTitle": "Client de connecteur",
|
||||
"searchApiPanels.welcomeBanner.ingestData.description": "Ajoutez des données à votre flux de données ou à votre index pour les rendre interrogeables. Choisissez une méthode d’ingestion qui correspond à votre application et à votre workflow.",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestApiDescription": "La façon la plus flexible d’indexer des données, ce qui vous donne un contrôle total sur vos options de personnalisation et d’optimisation.",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestApiLabel": "Ingérer via une API",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestIntegrationDescription": "Des outils d’ingestion spécialisés optimisés pour transformer des données et les transférer à Elasticsearch.",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestIntegrationLabel": "Ingérer via l’intégration",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestLegendLabel": "Sélectionner une méthode d'ingestion",
|
||||
"searchApiPanels.welcomeBanner.ingestData.integrationsLink": "À propos des intégrations",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashDescription": "Ajoutez des données à votre flux de données ou à votre index pour les rendre interrogeables. Choisissez une méthode d’ingestion qui correspond à votre application et à votre workflow.",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashLink": "Logstash",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashTitle": "Logstash",
|
||||
"searchApiPanels.welcomeBanner.ingestData.title": "Ingérer des données",
|
||||
"searchApiPanels.welcomeBanner.installClient.description": "Elastic construit et assure la maintenance des clients dans plusieurs langues populaires et notre communauté a contribué à beaucoup d'autres. Installez votre client de langage favori pour commencer.",
|
||||
"searchApiPanels.welcomeBanner.installClient.title": "Installer un client",
|
||||
|
|
|
@ -5323,7 +5323,6 @@
|
|||
"savedSearch.kibana_context.savedSearchId.help": "クエリとフィルターに使用する保存検索ID を指定します。",
|
||||
"savedSearch.kibana_context.timeRange.help": "Kibana 時間範囲フィルターを指定します",
|
||||
"searchApiPanels.welcomeBanner.header.greeting.customTitle": "{name}様",
|
||||
"searchApiPanels.welcomeBanner.ingestData.clientDocLink": "{languageName}APIリファレンス",
|
||||
"searchApiPanels.welcomeBanner.installClient.clientDocLink": "{languageName}クライアントドキュメント",
|
||||
"searchApiPanels.welcomeBanner.selectClient.description": "Elasticは複数の一般的な言語でクライアントを構築および保守します。Elasticのコミュニティはさらに多くを提供しています。お気に入りの言語クライアントを選択するか、{console}を起動して開始します。",
|
||||
"searchApiPanels.welcomeBanner.codeBox.copyButtonLabel": "コピー",
|
||||
|
@ -5331,22 +5330,7 @@
|
|||
"searchApiPanels.welcomeBanner.header.description": "プログラミング言語のクライアントを設定し、データを取り込めば、数分で検索を開始できます。",
|
||||
"searchApiPanels.welcomeBanner.header.greeting.defaultTitle": "こんにちは。",
|
||||
"searchApiPanels.welcomeBanner.header.title": "Elasticsearchをはじめよう",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsDescription": "Elasticsearch向けの軽量の、専用データ転送機能。Beatsを使用して、サーバーから運用データを送信します。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsLink": "ビート",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsTitle": "ビート",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsDescription": "サードパーティのソースからElasticsearchにデータを同期するための特別な統合。Elasticコネクターを使って、さまざまなデータベースやオブジェクトストアからコンテンツを同期できます。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsPythonLink": "connectors-python",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsTitle": "コネクタークライアント",
|
||||
"searchApiPanels.welcomeBanner.ingestData.description": "データストリームやインデックスにデータを追加して、データを検索可能にします。アプリケーションとワークフローに合ったインジェスト方法を選択します。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestApiDescription": "データをインデックス化する最も柔軟な方法で、カスタマイズや最適化オプションを完全に制御できます。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestApiLabel": "API経由でインジェスト",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestIntegrationDescription": "データを変換してElasticsearchに送信するために最適化された専用のインジェストツール。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestIntegrationLabel": "統合経由でインジェスト",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestLegendLabel": "インジェスチョン方法を選択",
|
||||
"searchApiPanels.welcomeBanner.ingestData.integrationsLink": "統合について",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashDescription": "データストリームやインデックスにデータを追加して、データを検索可能にします。アプリケーションとワークフローに合ったインジェスト方法を選択します。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashLink": "Logstash",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashTitle": "Logstash",
|
||||
"searchApiPanels.welcomeBanner.ingestData.title": "データをインジェスト",
|
||||
"searchApiPanels.welcomeBanner.installClient.description": "Elasticは複数の一般的な言語でクライアントを構築および保守します。Elasticのコミュニティはさらに多くを提供しています。開始するには、お気に入りの言語クライアントをインストールします。",
|
||||
"searchApiPanels.welcomeBanner.installClient.title": "クライアントをインスト-ル",
|
||||
|
|
|
@ -5322,7 +5322,6 @@
|
|||
"savedSearch.kibana_context.savedSearchId.help": "指定要用于查询和筛选的已保存搜索 ID",
|
||||
"savedSearch.kibana_context.timeRange.help": "指定 Kibana 时间范围筛选",
|
||||
"searchApiPanels.welcomeBanner.header.greeting.customTitle": "{name}您好!",
|
||||
"searchApiPanels.welcomeBanner.ingestData.clientDocLink": "{languageName} API 参考",
|
||||
"searchApiPanels.welcomeBanner.installClient.clientDocLink": "{languageName} 客户端文档",
|
||||
"searchApiPanels.welcomeBanner.selectClient.description": "Elastic 以几种流行语言构建和维护客户端,我们的社区也做出了许多贡献。选择您常用的语言客户端或深入分析 {console} 以开始使用。",
|
||||
"searchApiPanels.welcomeBanner.codeBox.copyButtonLabel": "复制",
|
||||
|
@ -5330,22 +5329,7 @@
|
|||
"searchApiPanels.welcomeBanner.header.description": "设置您的编程语言客户端,采集一些数据,如此即可在数分钟内开始搜索。",
|
||||
"searchApiPanels.welcomeBanner.header.greeting.defaultTitle": "您好!",
|
||||
"searchApiPanels.welcomeBanner.header.title": "Elasticsearch 入门",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsDescription": "用于 Elasticsearch 的轻量级、单一用途数据采集器。使用 Beats 从您的服务器发送运营数据。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsLink": "Beats",
|
||||
"searchApiPanels.welcomeBanner.ingestData.beatsTitle": "Beats",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsDescription": "用于将数据从第三方源同步到 Elasticsearch 的专用集成。使用 Elastic 连接器同步来自一系列数据库和对象存储的内容。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsPythonLink": "connectors-python",
|
||||
"searchApiPanels.welcomeBanner.ingestData.connectorsTitle": "连接器客户端",
|
||||
"searchApiPanels.welcomeBanner.ingestData.description": "将数据添加到数据流或索引,使其可进行搜索。选择适合您的应用程序和工作流的集成方法。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestApiDescription": "最灵活的数据索引方法,允许您全面控制定制和优化选项。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestApiLabel": "通过 API 采集",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestIntegrationDescription": "针对转换数据并将其传输到 Elasticsearch 而优化的专用采集工具。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestIntegrationLabel": "通过集成采集",
|
||||
"searchApiPanels.welcomeBanner.ingestData.ingestLegendLabel": "选择采集方法",
|
||||
"searchApiPanels.welcomeBanner.ingestData.integrationsLink": "关于集成",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashDescription": "将数据添加到数据流或索引,使其可进行搜索。选择适合您的应用程序和工作流的集成方法。",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashLink": "Logstash",
|
||||
"searchApiPanels.welcomeBanner.ingestData.logstashTitle": "Logstash",
|
||||
"searchApiPanels.welcomeBanner.ingestData.title": "采集数据",
|
||||
"searchApiPanels.welcomeBanner.installClient.description": "Elastic 以几种流行语言构建和维护客户端,我们的社区也做出了许多贡献。安装您常用的语言客户端以开始使用。",
|
||||
"searchApiPanels.welcomeBanner.installClient.title": "安装客户端",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue