Prometheus: PromQAIL frontend, drawer, feature toggle, workflow, etc. (#73020)

* initial commit for PromQAIL

* add feature toggle and start button

* add drawer

* set up drawer and state

* fix styles and start the conditional text display

* add data info list going to ai

* add logos and style

* metric display table style, neeed to make responsive

* make feature toggle frontend only

* add logic for want prompt for list or not, add helpers, addquerysuggestion type

* make query suggestion component

* add buttons to add or refine prompt

* refactor logic to add interactions to have multiple AI or historical interactions

* refactor and enable multiple questions, all flow

* add colorful AI icon to drawer open button

* fix linting

* refactor for hooking up promQail app and only giving one suggestion

* design fixes

* fix next prompt button styling

* historical suggestions give us 5, fixed that and some design things

* hook up the api, provide defense filler if it's down, refactor lots

* use query, fix linting

* add metadata to explain for ai suggestions

* styling fixes

* give metadata for historical suggestions by parsing query on the fly

* no prompt field to query-suggestion endpoint if prompt is empty

* fix linting

* use suggest rte for historical list, fix long code style

* use suggest rte for historical list, fix long code style

* fix historical bug

* added prompt file

* updated llm logic in explainer helper

* bump @grafana/experimental from 1.7.0 to 1.7.2

* use llmservice and vectorservice

* cleanup prompts + streaming explainer

* promqail feature toggle: fix re-order

* PromQL non-llm failback recommendation logic (#75469)

* added template recommendation logic directly in helpers

* also added selected labels to recommendation

* PromQail: query gen: fix prompt formatting and fetch metric labels to be used (#75450)

* PromQail: query gen: fix prompt formatting and fetch metric labels to be used

* Code fixes as suggested

* Use newly decided collection name for promql templates

* Prometheus: Promqail tests and bug fixes (#75852)

* add tests for drawer

* refine one prompt at a time, fix css

* scroll into view on interaction change

* fix styles for light

* disable prompt input after getting sugestions for that interaction

* make buttons disappear after selecting refine prompt or show historical queries to prevent user from clicking many times

* fix border radius

* fix new eslint rule about css requiring objects and not template literals

* add scrollIntoView for test

* grafana_prometheus_promqail_explanation_feedback - add feedback rudderstack interaction for explanation

* add form link to feedback for query suggestions

* fix bugs

* for prettier

* PromQL Builder Explainer: Added promql documentation and updated prompt (#75593)

* added promql documentation and updated prompt

* refactor prompt generation into isolated function

* updated prompt to answer with a question

* removed commented code

* updated metadata logic

* updated documentation body logic

* Prometheus: PromQAIL UI fixes (#76654)

* align buttons at 16px

* only autoscroll when an interaction has been added or the suggestions have been updated

* add 12px below explain for suggested queries

* add . after suggestion number

* fix linting error

* Prometheus: PromQAIL feedback improvements (#76711)

* align buttons at 16px

* only autoscroll when an interaction has been added or the suggestions have been updated

* add 12px below explain for suggested queries

* add . after suggestion number

* add text indication for explanation feedback

* add form for suggestion feedback, add form for not helpful explanation feedback

* fix linting error

* make radio button feedback required

* required text, padding additions, thank you for your feedback

* PromQL Builder Suggestion: Added type level templates and removed explainer steps for fallback suggestion logic (#75764)

* adding more detailed templates to promql fallback suggest

* remove debug logs

* added missing explain logic

* Fix brendan's type issue

---------

Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>

* make yarn.lock equal to current in main

* fix feature toggles

* fix prettier issues

---------

Co-authored-by: Edward Qian <edward.qian@grafana.com>
Co-authored-by: Yasir Ekinci <yas.ekinci@grafana.com>
Co-authored-by: Edward Qian <edward.c.qian@gmail.com>
Co-authored-by: Gerry Boland <gerboland@users.noreply.github.com>
This commit is contained in:
Brendan O'Handley
2023-10-19 10:45:32 -05:00
committed by GitHub
co-authored by bohandley Edward Qian Yasir Ekinci Edward Qian Gerry Boland
parent d16a274e3a
commit 5580d06101
17 changed files with 1955 additions and 0 deletions
+7
View File
@@ -911,5 +911,12 @@ var (
RequiresDevMode: false,
Owner: grafanaPluginsPlatformSquad,
},
{
Name: "prometheusPromQAIL",
Description: "Prometheus and AI/ML to assist users in creating a query",
Stage: FeatureStageExperimental,
FrontendOnly: true,
Owner: grafanaObservabilityMetricsSquad,
},
}
)
+1
View File
@@ -129,3 +129,4 @@ panelTitleSearchInV1,experimental,@grafana/backend-platform,true,false,false,fal
pluginsInstrumentationStatusSource,experimental,@grafana/plugins-platform-backend,false,false,false,false
costManagementUi,experimental,@grafana/databases-frontend,false,false,false,false
managedPluginsInstall,experimental,@grafana/plugins-platform-backend,false,false,false,false
prometheusPromQAIL,experimental,@grafana/observability-metrics,false,false,false,true
1 Name Stage Owner requiresDevMode RequiresLicense RequiresRestart FrontendOnly
129 pluginsInstrumentationStatusSource experimental @grafana/plugins-platform-backend false false false false
130 costManagementUi experimental @grafana/databases-frontend false false false false
131 managedPluginsInstall experimental @grafana/plugins-platform-backend false false false false
132 prometheusPromQAIL experimental @grafana/observability-metrics false false false true
+4
View File
@@ -526,4 +526,8 @@ const (
// FlagManagedPluginsInstall
// Install managed plugins directly from plugins catalog
FlagManagedPluginsInstall = "managedPluginsInstall"
// FlagPrometheusPromQAIL
// Prometheus and AI/ML to assist users in creating a query
FlagPrometheusPromQAIL = "prometheusPromQAIL"
)