Skip to content

Commit

Permalink
[Infra] Display "Add metrics" callout for all containers without metr…
Browse files Browse the repository at this point in the history
…ics (elastic#202220)

## Summary

Closes elastic#196553.

In this PR, we removed the restriction that prevented the "Add metrics"
callout from appearing on containers that aren't Docker or Kubernetes,
even if they didn’t have metrics.

Previously, this was done to only show the callout on Docker/Kubernetes
containers with available metrics. Now, the callout will be displayed
for all containers lacking metrics, ensuring a more consistent user
experience across different container types, regardless of the
underlying technology.


|View|Before|After|
|-|-|-|
|Overview|![Screenshot 2024-11-29 at 13 35
23](https://github.com/user-attachments/assets/b3d916e6-ee2b-4f1f-8d93-90c8ae595ac1)|![Screenshot
2024-11-29 at 13 33
15](https://github.com/user-attachments/assets/23bb44cf-41bc-4274-b204-8a3c9ceecea5)|
|Metrics|![Screenshot 2024-11-29 at 13 35
30](https://github.com/user-attachments/assets/3fbfb81e-d61c-4f28-b9a4-55b8009df8e1)|![Screenshot
2024-11-29 at 13 33
09](https://github.com/user-attachments/assets/1fb48b2f-457e-4453-8758-41f3ceadf794)|

The PR also addresses an issue with the onboarding link used in the
callout, where the `url` parameter was not properly preselecting any
options.
|Before|After|
|-|-|
|![Screen Recording 2024-11-29 at 13 37
05](https://github.com/user-attachments/assets/37f04535-ba4a-428b-b988-2ac4d5c0449a)|![Screen
Recording 2024-11-29 at 13 33
26](https://github.com/user-attachments/assets/b52b5b55-a387-40c8-80cd-54aedc9acfc7)|
  • Loading branch information
iblancof authored Dec 2, 2024
1 parent 6aaecd0 commit 1b1c415
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ const containerDefaultActions = (
return {
actions: {
primary: {
href: locator?.getRedirectUrl({ category: OnboardingFlow.Infra }),
href: locator?.getRedirectUrl({ category: OnboardingFlow.Hosts }),
label: defaultPrimaryActionLabel,
},
link: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { MetricsTemplate } from './metrics_template';
import { DockerCharts, KubernetesContainerCharts } from '../../charts';
import { DOCKER_METRIC_TYPES, INTEGRATIONS, KUBERNETES_METRIC_TYPES } from '../../constants';
import { useIntegrationCheck } from '../../hooks/use_integration_check';
import { AddMetricsCallout } from '../../add_metrics_callout';

export const ContainerMetrics = () => {
const ref = useRef<HTMLDivElement>(null);
Expand All @@ -29,7 +30,7 @@ export const ContainerMetrics = () => {
});

if (!isDockerContainer && !isKubernetesContainer) {
return null;
return <AddMetricsCallout id="containerMetrics" />;
}

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ import { AddMetricsCallout } from '../../add_metrics_callout';
import { AddMetricsCalloutKey } from '../../add_metrics_callout/constants';
import { useEntitySummary } from '../../hooks/use_entity_summary';
import { isMetricsSignal } from '../../utils/get_data_stream_types';
import { INTEGRATIONS } from '../../constants';
import { useIntegrationCheck } from '../../hooks/use_integration_check';

export const Overview = () => {
const { dateRange } = useDatePickerContext();
Expand All @@ -50,10 +48,6 @@ export const Overview = () => {
`infra.dismissedAddMetricsCallout.${addMetricsCalloutId}`,
false
);
const isDockerContainer = useIntegrationCheck({ dependsOn: INTEGRATIONS.docker });
const isKubernetesContainer = useIntegrationCheck({
dependsOn: INTEGRATIONS.kubernetesContainer,
});

const metadataSummarySection = isFullPageView ? (
<MetadataSummaryList metadata={metadata} loading={metadataLoading} assetType={asset.type} />
Expand All @@ -74,13 +68,7 @@ export const Overview = () => {
return false;
}

const { type } = asset;
const baseCondition = !isMetricsSignal(dataStreams);

const isRelevantContainer =
type === 'container' && (isDockerContainer || isKubernetesContainer);

return baseCondition && (type === 'host' || isRelevantContainer);
return !isMetricsSignal(dataStreams);
};

const showAddMetricsCallout = shouldShowCallout();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { noMetricIndicesPromptDescription, noMetricIndicesPromptTitle } from '..

export enum OnboardingFlow {
Infra = 'infra',
Hosts = 'logs',
Hosts = 'host',
}

interface NoDataConfigDetails {
Expand Down
2 changes: 1 addition & 1 deletion x-pack/test/functional/apps/infra/hosts_view.ts
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
const currentUrl = await browser.getCurrentUrl();
const parsedUrl = new URL(currentUrl);
const baseUrl = `${parsedUrl.protocol}//${parsedUrl.host}`;
const expectedUrlPattern = `${baseUrl}/app/observabilityOnboarding/?category=logs`;
const expectedUrlPattern = `${baseUrl}/app/observabilityOnboarding/?category=host`;
expect(currentUrl).to.equal(expectedUrlPattern);
});
});
Expand Down

0 comments on commit 1b1c415

Please sign in to comment.