Skip to content

Commit

Permalink
[8.x] [Infra] Display "Add metrics" callout for all contain…
Browse files Browse the repository at this point in the history
…ers without metrics (#202220) (#202465)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Infra] Display "Add metrics" callout for all containers
without metrics
(#202220)](#202220)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Irene
Blanco","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-12-02T13:21:32Z","message":"[Infra]
Display \"Add metrics\" callout for all containers without metrics
(#202220)\n\n## Summary\r\n\r\nCloses
https://github.com/elastic/kibana/issues/196553.\r\n\r\nIn this PR, we
removed the restriction that prevented the \"Add metrics\"\r\ncallout
from appearing on containers that aren't Docker or Kubernetes,\r\neven
if they didn’t have metrics.\r\n\r\nPreviously, this was done to only
show the callout on Docker/Kubernetes\r\ncontainers with available
metrics. Now, the callout will be displayed\r\nfor all containers
lacking metrics, ensuring a more consistent user\r\nexperience across
different container types, regardless of the\r\nunderlying
technology.\r\n\r\n\r\n|View|Before|After|\r\n|-|-|-|\r\n|Overview|![Screenshot
2024-11-29 at 13
35\r\n23](https://github.com/user-attachments/assets/b3d916e6-ee2b-4f1f-8d93-90c8ae595ac1)|![Screenshot\r\n2024-11-29
at 13
33\r\n15](https://github.com/user-attachments/assets/23bb44cf-41bc-4274-b204-8a3c9ceecea5)|\r\n|Metrics|![Screenshot
2024-11-29 at 13
35\r\n30](https://github.com/user-attachments/assets/3fbfb81e-d61c-4f28-b9a4-55b8009df8e1)|![Screenshot\r\n2024-11-29
at 13
33\r\n09](https://github.com/user-attachments/assets/1fb48b2f-457e-4453-8758-41f3ceadf794)|\r\n\r\nThe
PR also addresses an issue with the onboarding link used in
the\r\ncallout, where the `url` parameter was not properly preselecting
any\r\noptions.\r\n|Before|After|\r\n|-|-|\r\n|![Screen Recording
2024-11-29 at 13
37\r\n05](https://github.com/user-attachments/assets/37f04535-ba4a-428b-b988-2ac4d5c0449a)|![Screen\r\nRecording
2024-11-29 at 13
33\r\n26](https://github.com/user-attachments/assets/b52b5b55-a387-40c8-80cd-54aedc9acfc7)|","sha":"1b1c41506b9ce6f7048ad646914023bf1c795717","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-infra_services","v8.18.0"],"title":"[Infra]
Display \"Add metrics\" callout for all containers without
metrics","number":202220,"url":"https://github.com/elastic/kibana/pull/202220","mergeCommit":{"message":"[Infra]
Display \"Add metrics\" callout for all containers without metrics
(#202220)\n\n## Summary\r\n\r\nCloses
https://github.com/elastic/kibana/issues/196553.\r\n\r\nIn this PR, we
removed the restriction that prevented the \"Add metrics\"\r\ncallout
from appearing on containers that aren't Docker or Kubernetes,\r\neven
if they didn’t have metrics.\r\n\r\nPreviously, this was done to only
show the callout on Docker/Kubernetes\r\ncontainers with available
metrics. Now, the callout will be displayed\r\nfor all containers
lacking metrics, ensuring a more consistent user\r\nexperience across
different container types, regardless of the\r\nunderlying
technology.\r\n\r\n\r\n|View|Before|After|\r\n|-|-|-|\r\n|Overview|![Screenshot
2024-11-29 at 13
35\r\n23](https://github.com/user-attachments/assets/b3d916e6-ee2b-4f1f-8d93-90c8ae595ac1)|![Screenshot\r\n2024-11-29
at 13
33\r\n15](https://github.com/user-attachments/assets/23bb44cf-41bc-4274-b204-8a3c9ceecea5)|\r\n|Metrics|![Screenshot
2024-11-29 at 13
35\r\n30](https://github.com/user-attachments/assets/3fbfb81e-d61c-4f28-b9a4-55b8009df8e1)|![Screenshot\r\n2024-11-29
at 13
33\r\n09](https://github.com/user-attachments/assets/1fb48b2f-457e-4453-8758-41f3ceadf794)|\r\n\r\nThe
PR also addresses an issue with the onboarding link used in
the\r\ncallout, where the `url` parameter was not properly preselecting
any\r\noptions.\r\n|Before|After|\r\n|-|-|\r\n|![Screen Recording
2024-11-29 at 13
37\r\n05](https://github.com/user-attachments/assets/37f04535-ba4a-428b-b988-2ac4d5c0449a)|![Screen\r\nRecording
2024-11-29 at 13
33\r\n26](https://github.com/user-attachments/assets/b52b5b55-a387-40c8-80cd-54aedc9acfc7)|","sha":"1b1c41506b9ce6f7048ad646914023bf1c795717"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/202220","number":202220,"mergeCommit":{"message":"[Infra]
Display \"Add metrics\" callout for all containers without metrics
(#202220)\n\n## Summary\r\n\r\nCloses
https://github.com/elastic/kibana/issues/196553.\r\n\r\nIn this PR, we
removed the restriction that prevented the \"Add metrics\"\r\ncallout
from appearing on containers that aren't Docker or Kubernetes,\r\neven
if they didn’t have metrics.\r\n\r\nPreviously, this was done to only
show the callout on Docker/Kubernetes\r\ncontainers with available
metrics. Now, the callout will be displayed\r\nfor all containers
lacking metrics, ensuring a more consistent user\r\nexperience across
different container types, regardless of the\r\nunderlying
technology.\r\n\r\n\r\n|View|Before|After|\r\n|-|-|-|\r\n|Overview|![Screenshot
2024-11-29 at 13
35\r\n23](https://github.com/user-attachments/assets/b3d916e6-ee2b-4f1f-8d93-90c8ae595ac1)|![Screenshot\r\n2024-11-29
at 13
33\r\n15](https://github.com/user-attachments/assets/23bb44cf-41bc-4274-b204-8a3c9ceecea5)|\r\n|Metrics|![Screenshot
2024-11-29 at 13
35\r\n30](https://github.com/user-attachments/assets/3fbfb81e-d61c-4f28-b9a4-55b8009df8e1)|![Screenshot\r\n2024-11-29
at 13
33\r\n09](https://github.com/user-attachments/assets/1fb48b2f-457e-4453-8758-41f3ceadf794)|\r\n\r\nThe
PR also addresses an issue with the onboarding link used in
the\r\ncallout, where the `url` parameter was not properly preselecting
any\r\noptions.\r\n|Before|After|\r\n|-|-|\r\n|![Screen Recording
2024-11-29 at 13
37\r\n05](https://github.com/user-attachments/assets/37f04535-ba4a-428b-b988-2ac4d5c0449a)|![Screen\r\nRecording
2024-11-29 at 13
33\r\n26](https://github.com/user-attachments/assets/b52b5b55-a387-40c8-80cd-54aedc9acfc7)|","sha":"1b1c41506b9ce6f7048ad646914023bf1c795717"}},{"branch":"8.x","label":"v8.18.0","branchLabelMappingKey":"^v8.18.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Irene Blanco <[email protected]>
  • Loading branch information
kibanamachine and iblancof authored Dec 2, 2024
1 parent 7ed5b12 commit 3082d5a
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 @@ -342,7 +342,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 3082d5a

Please sign in to comment.