Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Observability] Landing page for Observability #67467

Merged

Conversation

cauemarcondes
Copy link
Contributor

@cauemarcondes cauemarcondes commented May 27, 2020

closes #66931

A new URL was created to host the observability landing page, /app/observability. There is also a new option in the menu called Overview inside the Observability section.

Screenshot 2020-05-29 at 09 37 19

Screenshot 2020-05-29 at 09 39 19

The Get started, Demo playground and Add sample data point to /app/home#/tutorial_directory/logging, https://demo.elastic.co/ and /app/home#/tutorial_directory/sampleData respectively.

Dark mode:
Screenshot 2020-06-02 at 11 17 04

FYI: I had to change some functional tests because I added a new item in the menu called Overview inside the Observability section. For example, previously the test shows canvas navlink expected ['Canvas', 'Stack Management'], and I changed to expect only Canvas.

@cauemarcondes cauemarcondes marked this pull request as ready for review May 29, 2020 11:45
@cauemarcondes cauemarcondes requested a review from a team as a code owner May 29, 2020 11:46
@cauemarcondes cauemarcondes requested a review from a team May 29, 2020 11:46
@cauemarcondes cauemarcondes requested review from a team as code owners May 29, 2020 11:46
Copy link
Contributor

@formgeist formgeist left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some minor nits

x-pack/plugins/observability/public/pages/home/index.tsx Outdated Show resolved Hide resolved
x-pack/plugins/observability/public/pages/home/index.tsx Outdated Show resolved Hide resolved
x-pack/plugins/observability/public/pages/home/index.tsx Outdated Show resolved Hide resolved
@cauemarcondes cauemarcondes requested review from formgeist and a team May 29, 2020 12:32
@formgeist
Copy link
Contributor

Noticed that the header/title section and the main content sections have some scrollbars.

Screenshot 2020-06-03 at 20 39 26

@botelastic botelastic bot added Team:APM All issues that need APM UI Team support Team:Uptime - DEPRECATED Synthetics & RUM sub-team of Application Observability labels Jun 4, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/uptime (Team:uptime)

@elasticmachine
Copy link
Contributor

Pinging @elastic/apm-ui (Team:apm)

@cauemarcondes
Copy link
Contributor Author

@elasticmachine merge upstream

Copy link
Member

@jasonrhodes jasonrhodes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM just curious about one question re: EuiCard in the App sections.

</EuiText>
</EuiFlexItem>

{/* Apps sections */}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason the EuiCard doesn't work for the App sections? Otherwise this all looks good.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might need to add an option in EUI to render EuiCard without the panel (border & shadow) display. But I'd certainly switch to using the EuiCard, and I can work on getting this display style into EUI

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about that too, but since we talked in one of the comments above that we shouldn't overwrite the Eui styles I thought I shouldn't do it.

But I also agree that replacing it by EuiCard is way better.

Since both of you are fine with that, I go with the EuiCard here too.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cauemarcondes thanks for considering that! In most cases, we want to do a flow like this (@sqren please correct me if I'm off here for APM):

  1. Use an existing EUI component as-is or with its documented props/options
  2. Use an existing EUI component, and ping the EUI team about a special need we have (we may need to hack around it for a release or so but with the idea we will use the EUI recommended way eventually)
  3. In rare cases, use our own styles to override EUI styles because what we want can't be accommodated by EUI

I think we ran into a case of (2) here, and the EUI team is the BEST at helping us out with those situations. Thanks for being flexible!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the clarification @jasonrhodes .

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cchaos I just noticed there's a property called display available on EuiCard which has the options plain or panel when choosing plain it removes the border and shadow.

Screenshot 2020-06-05 at 10 43 46

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gah, hahaha, You're right. We just never added an example in our docs specifically for that. Glad you found it!

Copy link
Contributor

@kindsun kindsun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Map lgtm!

  • code review

Copy link
Contributor

@poffdeluxe poffdeluxe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Canvas changes LGTM

also, Observability overview page looks really nice!

Copy link
Contributor

@justinkambic justinkambic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@cauemarcondes
Copy link
Contributor Author

@elasticmachine merge upstream

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / kibana-xpack-agent / Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/canvas/custom_elements·ts.Canvas app custom elements adds the custom element to the workpad when prompted

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 4 times on tracked branches: https://github.com/elastic/kibana/issues/63339

[00:00:00]       │
[00:01:27]         └-: Canvas app
[00:01:27]           └-> "before all" hook
[00:02:22]           └-: custom elements
[00:02:22]             └-> "before all" hook
[00:02:22]             └-> "before all" hook
[00:02:22]               │ info [logstash_functional] Loading "mappings.json"
[00:02:22]               │ info [logstash_functional] Loading "data.json.gz"
[00:02:22]               │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.22"
[00:02:22]               │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.20"
[00:02:22]               │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.21"
[00:02:24]               │ info [canvas/default] Loading "mappings.json"
[00:02:24]               │ info [canvas/default] Loading "data.json.gz"
[00:02:24]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] [.kibana_2/oCanRdGmQRiBod-ljHooCg] deleting index
[00:02:24]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] [.kibana_1/Aj_Zy2VUQcGTaNoIAdC-gA] deleting index
[00:02:24]               │ info [canvas/default] Deleted existing index [".kibana_2",".kibana_1"]
[00:02:24]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] [.kibana_1] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:02:24]               │ info [canvas/default] Created index ".kibana_1"
[00:02:24]               │ debg [canvas/default] ".kibana_1" settings {"index":{"number_of_replicas":"1","number_of_shards":"1"}}
[00:02:24]               │ info [canvas/default] Indexed 3 docs into ".kibana_1"
[00:02:24]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] [.kibana_1/KfXI6iuFRceTjHI4PqG7zA] update_mapping [_doc]
[00:02:24]               │ debg Migrating saved objects
[00:02:25]               │ proc [kibana]   log   [10:57:14.197] [info][savedobjects-service] Creating index .kibana_2.
[00:02:25]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:02:25]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] updating number_of_replicas to [0] for indices [.kibana_2]
[00:02:25]               │ proc [kibana]   log   [10:57:14.305] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:02:25]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] [.kibana_2/Dj1cAVApQECxxdGmertT1g] update_mapping [_doc]
[00:02:25]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-16-tests-xl-1591438687640536471] [.kibana_2/Dj1cAVApQECxxdGmertT1g] update_mapping [_doc]
[00:02:25]               │ proc [kibana]   log   [10:57:14.466] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:02:25]               │ proc [kibana]   log   [10:57:14.514] [info][savedobjects-service] Finished in 320ms.
[00:02:25]               │ debg navigating to canvas url: http://localhost:6131/app/canvas#/
[00:02:25]               │ debg navigate to: http://localhost:6131/app/canvas#/
[00:02:25]               │ debg browser[INFO] http://localhost:6131/app/canvas?_t=1591441034524#/ 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:25]               │
[00:02:25]               │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 11:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:25]               │ debg ... sleep(700) start
[00:02:26]               │ debg ... sleep(700) end
[00:02:26]               │ debg returned from get, calling refresh
[00:02:29]               │ debg browser[INFO] http://localhost:6131/33672/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 380:106115 "INFO: 2020-06-06T10:57:16Z
[00:02:29]               │        Adding connection to http://localhost:6131/elasticsearch
[00:02:29]               │
[00:02:29]               │      "
[00:02:29]               │ debg browser[INFO] http://localhost:6131/app/canvas?_t=1591441034524#/ 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:29]               │
[00:02:29]               │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 11:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:29]               │ debg browser[INFO] http://localhost:6131/33672/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 380:106115 "INFO: 2020-06-06T10:57:18Z
[00:02:29]               │        Adding connection to http://localhost:6131/elasticsearch
[00:02:29]               │
[00:02:29]               │      "
[00:02:29]               │ debg currentUrl = http://localhost:6131/app/canvas#/
[00:02:29]               │          appUrl = http://localhost:6131/app/canvas#/
[00:02:29]               │ debg TestSubjects.find(kibanaChrome)
[00:02:29]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:02:29]               │ debg ... sleep(501) start
[00:02:30]               │ debg ... sleep(501) end
[00:02:30]               │ debg in navigateTo url = http://localhost:6131/app/canvas#/
[00:02:30]               │ debg TestSubjects.exists(statusPageContainer)
[00:02:30]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:02:32]               │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:02:33]               │ debg navigating to canvas url: http://localhost:6131/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:33]               │ debg navigate to: http://localhost:6131/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:33]               │ debg browser[INFO] http://localhost:6131/app/canvas?_t=1591441041956#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:33]               │
[00:02:33]               │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 11:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:33]               │ debg ... sleep(700) start
[00:02:34]               │ debg ... sleep(700) end
[00:02:34]               │ debg returned from get, calling refresh
[00:02:35]               │ debg browser[INFO] http://localhost:6131/app/canvas?_t=1591441041956#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:02:35]               │
[00:02:35]               │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 11:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:35]               │ debg currentUrl = http://localhost:6131/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:35]               │          appUrl = http://localhost:6131/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:35]               │ debg TestSubjects.find(kibanaChrome)
[00:02:35]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:02:36]               │ debg browser[INFO] http://localhost:6131/33672/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 380:106115 "INFO: 2020-06-06T10:57:24Z
[00:02:36]               │        Adding connection to http://localhost:6131/elasticsearch
[00:02:36]               │
[00:02:36]               │      "
[00:02:36]               │ debg ... sleep(501) start
[00:02:36]               │ debg ... sleep(501) end
[00:02:36]               │ debg in navigateTo url = http://localhost:6131/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:36]               │ debg TestSubjects.exists(statusPageContainer)
[00:02:36]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:02:39]               │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:02:39]             └-> creates a custom element from an element when prompted
[00:02:39]               └-> "before each" hook: global before each
[00:02:39]               │ debg TestSubjects.click(canvasWorkpadPage > canvasWorkpadPageElementContent)
[00:02:39]               │ debg Find.clickByCssSelector('[data-test-subj="canvasWorkpadPage"] [data-test-subj="canvasWorkpadPageElementContent"]') with timeout=20000
[00:02:39]               │ debg Find.findByCssSelector('[data-test-subj="canvasWorkpadPage"] [data-test-subj="canvasWorkpadPageElementContent"]') with timeout=20000
[00:02:39]               │ debg TestSubjects.click(canvasWorkpadEditMenuButton)
[00:02:39]               │ debg Find.clickByCssSelector('[data-test-subj="canvasWorkpadEditMenuButton"]') with timeout=20000
[00:02:39]               │ debg Find.findByCssSelector('[data-test-subj="canvasWorkpadEditMenuButton"]') with timeout=20000
[00:02:40]               │ debg TestSubjects.click(canvasWorkpadEditMenu__saveElementButton)
[00:02:40]               │ debg Find.clickByCssSelector('[data-test-subj="canvasWorkpadEditMenu__saveElementButton"]') with timeout=20000
[00:02:40]               │ debg Find.findByCssSelector('[data-test-subj="canvasWorkpadEditMenu__saveElementButton"]') with timeout=20000
[00:02:40]               │ debg TestSubjects.setValue(canvasCustomElementForm-name, My New Element)
[00:02:40]               │ debg TestSubjects.click(canvasCustomElementForm-name)
[00:02:40]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-name"]') with timeout=10000
[00:02:40]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-name"]') with timeout=10000
[00:02:41]               │ debg TestSubjects.setValue(canvasCustomElementForm-description, An excellent new element)
[00:02:41]               │ debg TestSubjects.click(canvasCustomElementForm-description)
[00:02:41]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-description"]') with timeout=10000
[00:02:41]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-description"]') with timeout=10000
[00:02:41]               │ debg TestSubjects.click(canvasCustomElementForm-submit)
[00:02:41]               │ debg Find.clickByCssSelector('[data-test-subj="canvasCustomElementForm-submit"]') with timeout=10000
[00:02:41]               │ debg Find.findByCssSelector('[data-test-subj="canvasCustomElementForm-submit"]') with timeout=10000
[00:02:41]               │ debg TestSubjects.exists(canvasCustomElementCreate-success)
[00:02:41]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="canvasCustomElementCreate-success"]') with timeout=30000
[00:02:42]               └- ✓ pass  (2.7s) "Canvas app custom elements creates a custom element from an element when prompted"
[00:02:42]             └-> adds the custom element to the workpad when prompted
[00:02:42]               └-> "before each" hook: global before each
[00:02:42]               │ debg TestSubjects.click(add-element-button)
[00:02:42]               │ debg Find.clickByCssSelector('[data-test-subj="add-element-button"]') with timeout=10000
[00:02:42]               │ debg Find.findByCssSelector('[data-test-subj="add-element-button"]') with timeout=10000
[00:02:42]               │ debg TestSubjects.click(saved-elements-menu-option)
[00:02:42]               │ debg Find.clickByCssSelector('[data-test-subj="saved-elements-menu-option"]') with timeout=10000
[00:02:42]               │ debg Find.findByCssSelector('[data-test-subj="saved-elements-menu-option"]') with timeout=10000
[00:02:42]               │ debg Find.findByCssSelector('.canvasElementCard__wrapper') with timeout=10000
[00:02:42]               │ info Taking screenshot "/dev/shm/workspace/kibana/x-pack/test/functional/screenshots/failure/Canvas app custom elements adds the custom element to the workpad when prompted.png"
[00:02:43]               │ info Current URL is: http://localhost:6131/app/canvas#/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1
[00:02:43]               │ info Saving page source to: /dev/shm/workspace/kibana/x-pack/test/functional/failure_debug/html/Canvas app custom elements adds the custom element to the workpad when prompted.html
[00:02:43]               └- ✖ fail: "Canvas app custom elements adds the custom element to the workpad when prompted"
[00:02:43]               │

Stack Trace

Error: expected '' to contain 'My New Element'
    at Assertion.assert (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:100:11)
    at Assertion.contain (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:442:10)
    at Context.it (test/functional/apps/canvas/custom_elements.ts:68:53)
    at process._tickCallback (internal/process/next_tick.js:68:7)

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@cauemarcondes cauemarcondes merged commit 07e3c9c into elastic:master Jun 8, 2020
@cauemarcondes cauemarcondes deleted the observability-landing-page branch June 8, 2020 07:07
cauemarcondes added a commit to cauemarcondes/kibana that referenced this pull request Jun 8, 2020
* creating overview page and menu

* styling the home page

* adjusting breadcrumb

* renaming isnt working

* renaming isnt working

* renaming isnt working

* fixing import

* fixing scroll when resize window

* fixing eslint errors

* prepending links

* adding target option

* refactoring

* adding dark mode support

* fixing prettier format

* fixing i18n

* reverting some unnecessary changes

* addressing PR comments

* fixing functional tests

* ordering observability menu

* fixing tests

* addressing PR comments

* fixing test

* fixing scroll

* addressing pr comments

* addressing pr comments

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
gmmorris added a commit to gmmorris/kibana that referenced this pull request Jun 8, 2020
* master: (57 commits)
  Add app arch team as owner of datemath package (elastic#66880)
  [Observability] Landing page for Observability (elastic#67467)
  [SIEM] Fix timeline buildGlobalQuery (elastic#68320)
  Optimize saved objects getScopedClient and HTTP API (elastic#68221)
  [Maps] Fix mb-style interpolate style rule (elastic#68413)
  update script to always download node (elastic#68421)
  [SECURITY SOLEIL] Fix selection of event type when no siem index signal created (elastic#68291)
  [DOCS] Adds note about configuring File Data Visualizer (elastic#68407)
  [DOCS] Adds link from remote clusters to index patterns (elastic#68406)
  [QA] slack notify on failure (elastic#68126)
  upgrade eslint-plugin-react-hooks from 2.3.0 to 4.0.4 (elastic#68295)
  moving to jira to a gold license (elastic#67178)
  [DOCS] Revises doc on adding data (elastic#68038)
  [APM] Add ThemeProvider to support dark mode (elastic#68242)
  Make welcome screen disabling first action in loginIfPrompted (elastic#68238)
  [QA] Code coverage: unskip tests, collect tests results, exclude bundles from report (elastic#64477)
  [ML] Functional tests - disable flaky regression and classification creation test
  [Alerting] change eventLog ILM requests to absolute URLs (elastic#68331)
  Report page load asset size (elastic#66224)
  [SIEM][CASE] Change SIEM to Security (elastic#68365)
  ...
cauemarcondes added a commit that referenced this pull request Jun 8, 2020
* creating overview page and menu

* styling the home page

* adjusting breadcrumb

* renaming isnt working

* renaming isnt working

* renaming isnt working

* fixing import

* fixing scroll when resize window

* fixing eslint errors

* prepending links

* adding target option

* refactoring

* adding dark mode support

* fixing prettier format

* fixing i18n

* reverting some unnecessary changes

* addressing PR comments

* fixing functional tests

* ordering observability menu

* fixing tests

* addressing PR comments

* fixing test

* fixing scroll

* addressing pr comments

* addressing pr comments

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Observability Landing - Milestone 1 release_note:enhancement Team:APM All issues that need APM UI Team support Team:Uptime - DEPRECATED Synthetics & RUM sub-team of Application Observability v7.9.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Observability] Landing page for Observability
10 participants