Prometheus: Improve handling of special chars in label values (#96067)

* fix: handling of special chars

* docs: add clarity

* fix: escaping

* refactor: put changes behind new feature toggle

* docs: use consistent comment style

* refactor: rename feature toggle for brevity

* use single quotes

* fix unit tests

* remove redundant json entry

* fix: keep all changes behind feature toggle

* fix: support builder mode

* fix: don't escape when using regex operators

* fix: code mode label values completions with special chars

* refactor: remove unneeded changes

* move feature toggle up so new changes from main won't conflict with ours

* fix: escape label values in metric select scene

* refactor: ensure changes are behind feature toggle

---------

Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
This commit is contained in:
Nick Richmond
2024-12-18 16:31:08 -05:00
committed by GitHub
co-authored by ismail simsek
parent c9c77a6a6c
commit 721c50a304
14 changed files with 513 additions and 109 deletions
+7
View File
@@ -1608,6 +1608,13 @@ var (
FrontendOnly: true,
HideFromDocs: true,
},
{
Name: "prometheusSpecialCharsInLabelValues",
Description: "Adds support for quotes and special characters in label values for Prometheus queries",
FrontendOnly: true,
Stage: FeatureStageExperimental,
Owner: grafanaObservabilityMetricsSquad,
},
{
Name: "enableExtensionsAdminPage",
Description: "Enables the extension admin page regardless of development mode",
+1
View File
@@ -213,6 +213,7 @@ dashboardSchemaV2,experimental,@grafana/dashboards-squad,false,false,true
playlistsWatcher,experimental,@grafana/grafana-app-platform-squad,false,true,false
passwordlessMagicLinkAuthentication,experimental,@grafana/identity-access-team,false,false,false
exploreMetricsRelatedLogs,experimental,@grafana/observability-metrics,false,false,true
prometheusSpecialCharsInLabelValues,experimental,@grafana/observability-metrics,false,false,true
enableExtensionsAdminPage,experimental,@grafana/plugins-platform-backend,false,true,false
zipkinBackendMigration,GA,@grafana/oss-big-tent,false,false,false
enableSCIM,experimental,@grafana/identity-access-team,false,false,false
1 Name Stage Owner requiresDevMode RequiresRestart FrontendOnly
213 playlistsWatcher experimental @grafana/grafana-app-platform-squad false true false
214 passwordlessMagicLinkAuthentication experimental @grafana/identity-access-team false false false
215 exploreMetricsRelatedLogs experimental @grafana/observability-metrics false false true
216 prometheusSpecialCharsInLabelValues experimental @grafana/observability-metrics false false true
217 enableExtensionsAdminPage experimental @grafana/plugins-platform-backend false true false
218 zipkinBackendMigration GA @grafana/oss-big-tent false false false
219 enableSCIM experimental @grafana/identity-access-team false false false
+4
View File
@@ -863,6 +863,10 @@ const (
// Display Related Logs in Explore Metrics
FlagExploreMetricsRelatedLogs = "exploreMetricsRelatedLogs"
// FlagPrometheusSpecialCharsInLabelValues
// Adds support for quotes and special characters in label values for Prometheus queries
FlagPrometheusSpecialCharsInLabelValues = "prometheusSpecialCharsInLabelValues"
// FlagEnableExtensionsAdminPage
// Enables the extension admin page regardless of development mode
FlagEnableExtensionsAdminPage = "enableExtensionsAdminPage"
+13
View File
@@ -2931,6 +2931,19 @@
"codeowner": "@grafana/observability-metrics"
}
},
{
"metadata": {
"name": "prometheusSpecialCharsInLabelValues",
"resourceVersion": "1734047568531",
"creationTimestamp": "2024-12-12T23:52:48Z"
},
"spec": {
"description": "Adds support for quotes and special characters in label values for Prometheus queries",
"stage": "experimental",
"codeowner": "@grafana/observability-metrics",
"frontend": true
}
},
{
"metadata": {
"name": "prometheusUsesCombobox",