mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[Search] Adds telemetry warning rules and fixes a bunch of telemetry issues (#181350)
## Summary Enables telemetry warning eslint rule. Fixes a bunch of missing telemetry strings. ### Checklist Delete any items that are not applicable to this PR. - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
This commit is contained in:
parent
4c09bc938c
commit
0a4081e1d8
13 changed files with 110 additions and 31 deletions
|
@ -1524,6 +1524,7 @@ module.exports = {
|
|||
],
|
||||
'@kbn/i18n/strings_should_be_translated_with_i18n': 'warn',
|
||||
'@kbn/i18n/strings_should_be_translated_with_formatted_message': 'warn',
|
||||
'@kbn/telemetry/event_generating_elements_should_be_instrumented': 'warn',
|
||||
},
|
||||
},
|
||||
/**
|
||||
|
|
|
@ -253,6 +253,8 @@ export const AttachIndexBox: React.FC<AttachIndexBoxProps> = ({ connector }) =>
|
|||
<EuiFlexGroup>
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiButton
|
||||
data-test-subj="entSearchContent-connector-connectorDetail-saveConfigurationButton"
|
||||
data-telemetry-id="entSearchContent-connector-connectorDetail-saveConfigurationButton"
|
||||
onClick={() => onSave()}
|
||||
disabled={!selectedIndex || selectedIndex.label === connector.index_name}
|
||||
isLoading={isSaveLoading}
|
||||
|
@ -286,6 +288,8 @@ export const AttachIndexBox: React.FC<AttachIndexBoxProps> = ({ connector }) =>
|
|||
<EuiFlexGroup justifyContent="center">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiButton
|
||||
data-telemetry-id="entSearchContent-connector-connectorDetail-createAttachIndexButton"
|
||||
data-test-subj="entSearchContent-connector-connectorDetail-createAttachIndexButton"
|
||||
iconType="sparkles"
|
||||
color="primary"
|
||||
fill
|
||||
|
|
|
@ -134,6 +134,8 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
values={{
|
||||
exampleLink: (
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connector-configuration-exampleConfigFileLink"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-exampleConfigFileLink"
|
||||
href="https://github.com/elastic/connectors-python/blob/main/config.yml.example"
|
||||
target="_blank"
|
||||
external
|
||||
|
@ -166,6 +168,8 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
values={{
|
||||
link: (
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connector-configuration-deploymentModeLink"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-deploymentModeLink"
|
||||
href={docLinks.connectorsClientDeploy}
|
||||
target="_blank"
|
||||
external
|
||||
|
@ -230,6 +234,7 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
<EuiSpacer size="s" />
|
||||
<EuiButton
|
||||
disabled={!index}
|
||||
data-test-subj="entSearchContent-connector-configuration-recheckNow"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-recheckNow"
|
||||
iconType="refresh"
|
||||
onClick={() => fetchConnector({ connectorId: connector.id })}
|
||||
|
@ -272,7 +277,12 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
defaultMessage="{advancedSyncRulesDocs} can override some configuration fields."
|
||||
values={{
|
||||
advancedSyncRulesDocs: (
|
||||
<EuiLink href={docLinks.syncRules} target="_blank">
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connector-configuration-advancedSyncRulesDocsLink"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-advancedSyncRulesDocsLink"
|
||||
href={docLinks.syncRules}
|
||||
target="_blank"
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.content.connector_detail.configurationConnector.connectorPackage.advancedSyncRulesDocs',
|
||||
{ defaultMessage: 'Advanced Sync Rules' }
|
||||
|
@ -417,7 +427,12 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
</EuiText>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<EuiLink href={docLinks.connectors} target="_blank">
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connector-configuration-connectorDocumentationLink"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-connectorDocumentationLink"
|
||||
href={docLinks.connectors}
|
||||
target="_blank"
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.content.connector_detail.configurationConnector.support.viewDocumentation.label',
|
||||
{
|
||||
|
@ -438,6 +453,8 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connector-configuration-readmeLink"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-readmeLink"
|
||||
href="https://github.com/elastic/connectors-python/blob/main/README.md"
|
||||
target="_blank"
|
||||
>
|
||||
|
@ -451,7 +468,12 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
</EuiFlexItem>
|
||||
{docsUrl && (
|
||||
<EuiFlexItem>
|
||||
<EuiLink href={docsUrl} target="_blank">
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connector-configuration-deployWithDockerLink"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-deployWithDockerLink"
|
||||
href={docsUrl}
|
||||
target="_blank"
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.content.connector_detail.configurationConnector.support.dockerDeploy.label',
|
||||
{
|
||||
|
@ -463,6 +485,8 @@ export const ConnectorConfiguration: React.FC = () => {
|
|||
)}
|
||||
<EuiFlexItem>
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connector-configuration-deployWithoutDockerLink"
|
||||
data-telemetry-id="entSearchContent-connector-configuration-deployWithoutDockerLink"
|
||||
href="https://github.com/elastic/connectors-python/blob/main/docs/CONFIG.md#run-the-connector-service-for-a-custom-connector"
|
||||
target="_blank"
|
||||
>
|
||||
|
|
|
@ -168,7 +168,9 @@ export const ConnectorStats: React.FC<ConnectorStatsProps> = ({ connector, index
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<StatCard
|
||||
title="Index"
|
||||
title={i18n.translate('xpack.enterpriseSearch.connectors.connectorStats.indexTitle', {
|
||||
defaultMessage: 'Index',
|
||||
})}
|
||||
content={
|
||||
connector.index_name ? (
|
||||
indexData ? (
|
||||
|
|
|
@ -306,7 +306,12 @@ export const NativeConnectorConfiguration: React.FC = () => {
|
|||
}
|
||||
)}
|
||||
<EuiSpacer size="s" />
|
||||
<EuiLink href={docLinks.documentLevelSecurity} target="_blank">
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connectorDetail-documentLevelSecurityLink"
|
||||
data-telemetry-id="entSearchContent-connectorDetail-documentLevelSecurityLink"
|
||||
href={docLinks.documentLevelSecurity}
|
||||
target="_blank"
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.content.indices.configurationConnector.nativeConnector.securityReminder.securityLinkLabel',
|
||||
{
|
||||
|
|
|
@ -148,7 +148,12 @@ export const ConnectorDetailOverview: React.FC = () => {
|
|||
defaultMessage="Convert it to a {link}, to be self-managed on your own infrastructure. Native connectors are available only in your Elastic Cloud deployment."
|
||||
values={{
|
||||
link: (
|
||||
<EuiLink href={docLinks.buildConnector} target="_blank">
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connectorDetailOverview-nativeCloudCallout-connectorClientLink"
|
||||
data-telemetry-id="entSearchContent-connectorDetailOverview-nativeCloudCallout-connectorClientLink"
|
||||
href={docLinks.buildConnector}
|
||||
target="_blank"
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.content.connectors.overview.nativeCloudCallout.connectorClient',
|
||||
{ defaultMessage: 'connector client' }
|
||||
|
@ -160,7 +165,12 @@ export const ConnectorDetailOverview: React.FC = () => {
|
|||
</p>
|
||||
</EuiText>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiButton color="warning" fill onClick={() => showModal()}>
|
||||
<EuiButton
|
||||
data-test-subj="entSearchContent-connectorDetailOverview-nativeCloudCallout-convertToSelfManagedClientButton"
|
||||
color="warning"
|
||||
fill
|
||||
onClick={() => showModal()}
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.content.indices.connectors.overview.convertConnector.buttonLabel',
|
||||
{ defaultMessage: 'Convert connector' }
|
||||
|
|
|
@ -108,6 +108,8 @@ export const Connectors: React.FC<ConnectorsProps> = ({ isCrawler }) => {
|
|||
<EuiFlexGroup gutterSize="xs">
|
||||
<EuiFlexItem>
|
||||
<EuiButton
|
||||
data-test-subj="entSearchContent-connectors-newConnectorButton"
|
||||
data-telemetry-id="entSearchContent-connectors-newConnectorButton"
|
||||
key="newConnector"
|
||||
color="primary"
|
||||
iconType="plusInCircle"
|
||||
|
@ -128,6 +130,8 @@ export const Connectors: React.FC<ConnectorsProps> = ({ isCrawler }) => {
|
|||
closePopover={() => setShowMoreOptionsPopover(false)}
|
||||
button={
|
||||
<EuiButtonIcon
|
||||
data-test-subj="entSearchContent-connectors-newConnector-moreOptionsButton"
|
||||
data-telemetry-id="entSearchContent-connectors-newConnector-moreOptionsButton"
|
||||
color="primary"
|
||||
display="fill"
|
||||
size="m"
|
||||
|
@ -199,6 +203,8 @@ export const Connectors: React.FC<ConnectorsProps> = ({ isCrawler }) => {
|
|||
]
|
||||
: [
|
||||
<EuiButton
|
||||
data-test-subj="entSearchContent-crawlers-newCrawlerButton"
|
||||
data-telemetry-id="entSearchContent-crawlers-newCrawlerButton"
|
||||
disabled={Boolean(errorConnectingMessage)}
|
||||
key="newCrawler"
|
||||
color="primary"
|
||||
|
@ -216,7 +222,8 @@ export const Connectors: React.FC<ConnectorsProps> = ({ isCrawler }) => {
|
|||
? [
|
||||
<EuiButton
|
||||
color="primary"
|
||||
data-test-subj="entSearchContent-searchIndices-defaultSettings"
|
||||
data-test-subj="entSearchContent-connectors-defaultSettingsPopover"
|
||||
data-telemetry-id="entSearchContent-connectors-defaultSettingsPopover"
|
||||
onClick={() => setShowDefaultSettingsFlyout(true)}
|
||||
>
|
||||
{i18n.translate(
|
||||
|
|
|
@ -41,6 +41,8 @@ export const CrawlerEmptyState: React.FC = () => {
|
|||
}
|
||||
actions={
|
||||
<EuiButton
|
||||
data-test-subj="entSearchContent-crawlers-emptyState-createCrawlerButton"
|
||||
data-telemetry-id="entSearchContent-crawlers-emptyState-createCrawlerButton"
|
||||
color="primary"
|
||||
disabled={Boolean(errorConnectingMessage)}
|
||||
fill
|
||||
|
|
|
@ -134,7 +134,6 @@ export const DeleteConnectorModal: React.FC<DeleteConnectorModalProps> = ({ isCr
|
|||
</p>
|
||||
<p>
|
||||
{isCrawler && (
|
||||
<>
|
||||
<EuiText>
|
||||
<FormattedMessage
|
||||
id="xpack.enterpriseSearch.deleteConnectorModal.crawler.warning"
|
||||
|
@ -148,7 +147,6 @@ export const DeleteConnectorModal: React.FC<DeleteConnectorModalProps> = ({ isCr
|
|||
}}
|
||||
/>
|
||||
</EuiText>
|
||||
</>
|
||||
)}
|
||||
{!isCrawler && (
|
||||
<EuiText>
|
||||
|
@ -199,13 +197,13 @@ export const DeleteConnectorModal: React.FC<DeleteConnectorModalProps> = ({ isCr
|
|||
}
|
||||
>
|
||||
<EuiFieldText
|
||||
data-test-subj="entSearchContent-connectors-deleteModal-input"
|
||||
data-telemetry-id="entSearchContent-connectors-deleteModal-input"
|
||||
onChange={(e) => setInputConnectorName(e.target.value)}
|
||||
value={inputConnectorName}
|
||||
/>
|
||||
</EuiFormRow>
|
||||
</EuiForm>
|
||||
</EuiConfirmModal>
|
||||
) : (
|
||||
<></>
|
||||
);
|
||||
) : null;
|
||||
};
|
||||
|
|
|
@ -119,6 +119,8 @@ export const ConnectorCheckable: React.FC<ConnectorCheckableProps> = ({
|
|||
<PlatinumLicensePopover
|
||||
button={
|
||||
<EuiButtonIcon
|
||||
data-test-subj="entSearchContent-connectors-selectConnector-licensePopoverButton"
|
||||
data-telemetry-id="entSearchContent-connectors-selectConnector-licensePopoverButton"
|
||||
aria-label={i18n.translate(
|
||||
'xpack.enterpriseSearch.content.newIndex.selectConnector.openPopoverLabel',
|
||||
{
|
||||
|
@ -143,6 +145,8 @@ export const ConnectorCheckable: React.FC<ConnectorCheckableProps> = ({
|
|||
<NativePopover
|
||||
button={
|
||||
<EuiButtonIcon
|
||||
data-test-subj="entSearchContent-connectors-selectConnector-nativeInfoPopoverButton"
|
||||
data-telemetry-id="entSearchContent-connectors-selectConnector-nativeInfoPopoverButton"
|
||||
aria-label={i18n.translate(
|
||||
'xpack.enterpriseSearch.content.newIndex.selectConnector.openNativePopoverLabel',
|
||||
{
|
||||
|
@ -169,6 +173,8 @@ export const ConnectorCheckable: React.FC<ConnectorCheckableProps> = ({
|
|||
<EuiPopover
|
||||
button={
|
||||
<EuiButtonIcon
|
||||
data-test-subj="entSearchContent-connectors-selectConnector-nativePopoverButton"
|
||||
data-telemetry-id="entSearchContent-connectors-selectConnector-nativePopoverButton"
|
||||
display="base"
|
||||
color="primary"
|
||||
iconType="boxesHorizontal"
|
||||
|
@ -200,8 +206,7 @@ export const ConnectorCheckable: React.FC<ConnectorCheckableProps> = ({
|
|||
{ defaultMessage: 'Setup a Native Connector' }
|
||||
)}
|
||||
</EuiContextMenuItem>,
|
||||
<EuiSpacer size="s" />,
|
||||
|
||||
<EuiSpacer key="spacer" size="s" />,
|
||||
<EuiContextMenuItem
|
||||
key="client"
|
||||
onClick={(e) => {
|
||||
|
@ -263,7 +268,12 @@ export const ConnectorCheckable: React.FC<ConnectorCheckableProps> = ({
|
|||
{documentationUrl && (
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiText size="xs">
|
||||
<EuiLink target="_blank" href={documentationUrl}>
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-connectors-selectConnector-documentationLink"
|
||||
data-telemetry-id="entSearchContent-connectors-selectConnector-documentationLink"
|
||||
target="_blank"
|
||||
href={documentationUrl}
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.connectorCheckable.documentationLinkLabel',
|
||||
{
|
||||
|
|
|
@ -73,6 +73,8 @@ export const NativePopover: React.FC<NativePopoverProps> = ({
|
|||
<EuiFlexGroup justifyContent="spaceBetween" alignItems="center">
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiButton
|
||||
data-test-subj="entSearchContent-connectors-nativePopover-trialButton"
|
||||
data-telemetry-id="entSearchContent-connectors-nativePopover-trialButton"
|
||||
iconType="popout"
|
||||
target="_blank"
|
||||
href="https://www.elastic.co/cloud/cloud-trial-overview"
|
||||
|
|
|
@ -295,6 +295,8 @@ export const SelectConnector: React.FC = () => {
|
|||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<EuiFieldSearch
|
||||
data-test-subj="entSearchContent-connectors-selectConnector-searchInput"
|
||||
data-telemetry-id="entSearchContent-connectors-selectConnector-searchInput"
|
||||
aria-label={i18n.translate(
|
||||
'xpack.enterpriseSearch.content.indices.selectConnector.search.ariaLabel',
|
||||
{ defaultMessage: 'Search through connectors' }
|
||||
|
@ -365,6 +367,8 @@ export const SelectConnector: React.FC = () => {
|
|||
/>
|
||||
</p>
|
||||
<EuiButton
|
||||
data-test-subj="entSearchContent-connectors-selectConnector-cloudCallout-trialButton"
|
||||
data-telemetry-id="entSearchContent-connectors-selectConnector-cloudCallout-trialButton"
|
||||
color="primary"
|
||||
fill
|
||||
href="https://www.elastic.co/cloud/cloud-trial-overview"
|
||||
|
|
|
@ -76,7 +76,12 @@ export const DefaultSettingsFlyout: React.FC<DefaultSettingsFlyoutProps> = ({ cl
|
|||
defaultMessage="These settings apply to all new Elasticsearch indices created by Search ingestion mechanisms. For API ingest-based indices, remember to include the pipeline when you ingest documents. These features are powered by {link}"
|
||||
values={{
|
||||
link: (
|
||||
<EuiLink href={docLinks.ingestPipelines} target="_blank">
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-defaultSettingsFlyout-ingestPipelinesLink"
|
||||
data-telemetry-id="entSearchContent-defaultSettingsFlyout-ingestPipelinesLink"
|
||||
href={docLinks.ingestPipelines}
|
||||
target="_blank"
|
||||
>
|
||||
{i18n.translate(
|
||||
'xpack.enterpriseSearch.defaultSettingsFlyout.body.description.ingestPipelinesLink.link',
|
||||
{
|
||||
|
@ -154,7 +159,12 @@ export const DefaultSettingsFlyout: React.FC<DefaultSettingsFlyoutProps> = ({ cl
|
|||
defaultMessage: 'ML Inference',
|
||||
})}
|
||||
link={
|
||||
<EuiLink href={docLinks.mlDocumentEnrichment} target="_blank">
|
||||
<EuiLink
|
||||
data-test-subj="entSearchContent-defaultSettingsFlyout-mlInferenceLink"
|
||||
data-telemetry-id="entSearchContent-defaultSettingsFlyout-mlInferenceLink"
|
||||
href={docLinks.mlDocumentEnrichment}
|
||||
target="_blank"
|
||||
>
|
||||
{i18n.translate('xpack.enterpriseSearch.content.settings.mlInference.link', {
|
||||
defaultMessage: 'Learn more about document enrichment with ML',
|
||||
})}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue