PluginExtensions: Add extension point for overriding Observability home page (#110500)

* feat/add_observability_landing

* Add check for observability path

* Fix existing tests

* Test that we're rendering the component when in the correct path

* Reset all mocks after testing

* Check for extension only on observability route

* Undo changes to tests

* Extract strings to constants

* Remove unused validator

* Remove unnecesary ObservabilityLanding component

* Update subtitle for Observability section

* Use proper '

* Expose extension point, allow plugins to hook into it, and render received components

* Fix and test

* Remove no longer needed unit tests

* Readd validation checks, allow for regex like paths

* refactor(extensions): extract dynamic extension point ids to a separate enum

* Undo unwanted const to let change

* Update extension point id to better transmit intent and use

---------

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
This commit is contained in:
Javier Ruiz
2025-09-10 15:43:36 +02:00
committed by GitHub
co-authored by Levente Balogh
parent 0d6827eb75
commit 646dd8de06
7 changed files with 79 additions and 19 deletions
+1 -1
View File
@@ -236,7 +236,7 @@ func (s *ServiceImpl) addPluginToSection(c *contextmodel.ReqContext, treeRoot *n
treeRoot.AddSection(&navtree.NavLink{
Text: "Observability",
Id: navtree.NavIDObservability,
SubTitle: "Opinionated observability across applications, services, and infrastructure",
SubTitle: "Monitor infrastructure and applications in real time with Grafana Cloud's fully managed observability suite",
Icon: "heart-rate",
SortWeight: navtree.WeightObservability,
Children: []*navtree.NavLink{appLink},