* refactor breakdown scene
* refactor BreakdownScene along with LayoutSwitcher
* rename
* don't pass default layout
* better type handling
* betterer
* add @bsull/augurs
* implement LabelBreakdownScene
* integrate SortByScene in LabelBreakdownScene
* move to new directory
* introduce BreakdownSearchScene
* integrate searchScene
* cleaning
* initialize @bsull/augurs
* add interaction
* use new breakdown scene
* resolve merge conflicts
* ugrade @bsull/augurs
* update import
* update css
* update tooltip text
* refine sorting
* fix unit test
* fix
* implement outlier detector
* support wasm
* jest testing fix
* localization fix
* use unknown instead of any
* update i18n
* update betterer
* fix locales
* update test
* fix tests maybe
* prettier
* chore: update jest config
* chore: create mock for @bsull/augurs (#92156)
chore: create mock for bsull/augurs
@bsull/augurs assumes it will be running as an ESM, not
a CommonJS module, so can't be loaded by Jest (specifically
because it contains a reference to import.meta.url).
This PR provides a mock implementation which gets tests passing
again.
Ideally we'd be able to load the actual @bsull/augurs module
in tests so this is just a stopgap really, until a better
solution appears.
* fix unit tests
* remove unused BreakdownScene.tsx
* set outliers as undefined if an error occurs
* Add labels
* betterer
* reset event implemented
* fix controls positioning
* update augurs
* betterer
* i18n
* conflict fixes
* update texts
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Ben Sully <ben.sully@grafana.com>
* wip: homepage (new user)
* fix: spacing between button and text; wip refactor: separating bookmarks and recent metrics from home page
* feat: new user homepage; wip: need to clean up code
* fix: change rocket icon to svg
* wip feat: rendering recent metrics
* chore: add comments to understand code, will need to delete / cleanup later / pare down into documentation comments
* wip: new recent metric card design
* wip: display recent metrics cards in rows of 3 (height still incorrect)
* feat: apply conditional styling to remainder recent metrics exploration cards (any cards that are not a complete row of 3)
* fix: render new recent metrics explorations without refresh
* style: render recent metrics explorations in rows of 3 using grid instead of flex; fix: remove remainder card styling
* fix: remove delete button from recent metrics exp cards
* style: make background color for each card take up the entire card/grid space; make height of cards for each row the tallest card
* chore: clean up code
* fix: fix eslint errors
* style: implement recent metrics card header styling
* style: in recent metrics exp cards, format datasource line
* fix: add initial value for _lastModified to fix eslint err
* style: format date correctly; chore: clean up code; wip: get date to render properly on bottom left
* style: make inner card height match outer card height; style: add date footer; style: wrap last metric name; style: wrap labels
* style: adjust font for label name and label value
* style: truncate singular label if value is greater than 35 characters
* style: truncate singular long labels at 44 characters; style: truncate multiple labels at 3 lines; style: correct the border width and radius
* style: make background border radius match the border
* style: correct gap between rows and columns of cards; style: correct padding inside card
* chore: clean up code
* refactor: apply new card UI to DataTrailCard component
* feat: add bookmarks (not formatted correctly), only render section if there are bookmarks, hook up delete functionality
* style: add horizontal line above bookmarks header; style: add bookmarks header
* style: add additional padding above bookmarks divider; chore: delete unused code
* style: add carrot button to bookmarks; style: format heading font style
* refactor: separate bookmarks into functional component; feat: make bookmarks section collapsed by default; feat: allow toggle to expand bookmarks section
* style: position delete button for bookmarks in bottom right of card
* fix: only render recent metrics and bookmarks headings if there are any
* style: add show more button (not functional); style: fix padding around show more button
* chore: delete unused code
* fix: add back gap underneath bookmarks header
* feat: implement show more/less button for recent metrics
* fix: do not show select metric card if user does not actually select a metric
* chore: preliminary code clean up
* chore: delete console.logs, comments
* chore: clean up styling
* Update public/app/features/trails/DataTrailCard.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* fix: add i18nKey to Trans tags
* fix: attempt to remove go.work.sum changes that are unrelated to my PR
* fix: add Trans tags
* refactor: sepearate recent metrics into functional component; chore: delete unused code; fix: add Trans tags
* chore: generate translation json
* trigger drone
* trigger drone
* fix: add trans tag to date
* chore: abbreviate descriptive key, regenerate json
* Update public/app/features/trails/DataTrailBookmarks.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* Update public/app/features/trails/DataTrailsRecentMetrics.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* Update public/app/features/trails/DataTrailBookmarks.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* fix: revert trans tag on date created to fix formatting
* chore: return null immediately if no recent metrics
* style: add margin between bookmarks header and carrot toggle button
* style: adjust margin to 8px between bookmarks header and carrot toggle button
* style: make margins multiples of 4
* Update public/app/features/trails/DataTrailBookmarks.tsx
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
* style: fix light mode styles; style: fix border radius
* fix: save select metric view as recent metric card if labels are applied
* Update public/app/features/trails/DataTrailCard.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* refactor: move rocket svgs into assets folder
* chore: add back accidentally deleted console log
* Update public/app/features/trails/DataTrail.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* Update public/app/features/trails/DataTrailBookmarks.tsx
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
* chore: revert lastModified related changes since behavior appears to remain the same
* fix: add back lastModified changes because they make the recent metrics show more functionality work
---------
Co-authored-by: Nick Richmond <5732000+NWRichmond@users.noreply.github.com>
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
* Update texts for gm rr in the form
* fix translations
* Fix test
* address review comments
* address review comments - part2
* translations
* update docs for new term: output
* Extract shared add to dashboard flow
* Change how we save and add the new panels
* More cleanup
* Began updating tests
* Move and update tests
* set time range
* Fix lint / ts issues
* Fix time history step issue
* fix test
* Update betterer
* remove more tests that are now not needed
* work around cyclic dep
* Update
* Fixes
* fix lint
* remove unused type
* use name in fe
* store parent folder name in local db
* clean up
* tiny test
* trial react
* rename to parent name
* go lint
* generate api and ts
* go tests
* rearrange
* clean
* update with suggestions from josh
* make library elements work
* updates from comments
* global migration types
* parent name for alter table
* Style nits for the simple query mode
* update translations
* update text
* update translations
* update disable word to deactivate
* update preview text when not advanced options
* update text
* update text
* Mark Scenes feature toggles as GA
* Move old arch e2e to a new folder
* Run E2E on scenes by default
* Upgrade e2e-selectors to ensure the tests in Playwright works
* Add showPolicies prop
* Add manage permissions component for easier reuse within alerting
* Add method for checking whether to show access control within alerting
* Remove accidental console.log from main
* Tweak styling for contact point width and add manage permissions drawer
* Improve typing for access control type response
* Add basic test for manage permissions on contact points list
* Only show manage permissions if grafana AM and alertingApiServer is enabled
* Update i18n
* Add test utils for turning features on and back off
* Add access control handlers
* Update tests with new util
* Pass AM in and add tests
* Receiver OSS resource permissions
There is a complication that is not fully addressed: Viewer defaults to read:*
and Editor defaults to read+write+delete:*
This is different to other resource permissions where non-admin are not granted
any global permissions and instead access is handled solely by resource-specific
permissions that are populated on create and removed on delete.
This allows them to easily remove permission to view or edit a single resource
from basic roles.
The reason this is tricky here is that we have multiple APIs that can
create/delete receivers: config api, provisioning api, and k8s receivers api.
Config api in particular is not well-equipped to determine when creates/deletes
are happening and thus ensuring that the proper resource-specific permissions
are created/deleted is finicky.
We would also have to create a migration to populate resource-specific
permissions for all current receivers. This migration would need to be reset so
it can run again if the flag is disabled.
* Add access control permissions
* Pass in contact point ID to receivers form
* Temporarily remove access control check for contact points
* Include access control metadata in k8s receiver List & Get
GET: Always included.
LIST: Included by adding a label selector with value `grafana.com/accessControl`
* Include new permissions for contact points navbar
* Fix receiver creator fixed role to not give global read
* Include in-use metadata in k8s receiver List & Get
GET: Always included.
LIST: Included by adding a label selector with value `grafana.com/inUse`
* Add receiver creator permission to receiver writer
* Add receiver creator permission to navbar
* Always allow listing receivers, don't return 403
* Remove receiver read precondition from receiver create
Otherwise, Creator role will not be able to create their first receiver
* Update routes permissions
* Add further support for RBAC in contact points
* Update routes permissions
* Update contact points header logic
* Back out test feature toggle refactor
Not working atm, not sure why
* Tidy up imports
* Update mock permissions
* Revert more test changes
* Update i18n
* Sync inuse metadata pr
* Add back canAdmin permissions after main merge
* Split out check for policies navtree item
* Tidy up utils and imports and fix rules in use
* Fix contact point tests and act warnings
* Add missing ReceiverPermissionAdmin after merge conflict
* Move contact points permissions
* Only show contact points filter when permissions are correct
* Move to constants
* Fallback to empty array and remove labelSelectors (not needed)
* Allow `toAbility` to take multiple actions
* Show builtin alertmanager if contact points permission
* Add empty state and hide templates if missing permissions
* Translations
* Tidy up mock data
* Fix tests and templates permission
* Update message for unused contact points
* Don't return 403 when user lists receivers and has access to none
* Fix receiver create not adding empty uid permissions
* Move SetDefaultPermissions to ReceiverPermissionService
* Have SetDefaultPermissions use uid from string
Fixes circular dependency
* Add FakeReceiverPermissionsService and fix test wiring
* Implement resource permission handling in provisioning API and renames
Create: Sets to default permissions
Delete: Removes permissions
Update: If receiver name is modified and the new name doesn't exist, it copies
the permissions from the old receiver to the newly created one. If old receiver
is now empty, it removes the old permissions as well.
* Split contact point permissions checks for read/modify
* Generalise getting annotation values from k8s entities
* Proxy RouteDeleteAlertingConfig through MultiOrgAlertmanager
* Cleanup permissions on config api reset and restore
* Cleanup permissions on config api POST
note this is still not available with feature flag enabled
* Gate the permission manager behind FF until initial migration is added
* Sync changes from config api PR
* Switch to named export
* Revert unnecessary changes
* Revert Filter auth change and implement in k8s api only
* Don't allow new scoped permissions to give access without FF
Prevents complications around mixed support for the scoped permissions causing
oddities in the UI.
* Fix integration tests to account for list permission change
* Move to `permissions` file
* Add additional tests for contact points
* Fix redirect for viewer on edit page
* Combine alerting test utils and move to new file location
* Allow new permissions to access provisioning export paths with FF
* Always allow exporting if its grafana flavoured
* Fix logic for showing auto generated policies
* Fix delete logic for contact point only referenced by a rule
* Suppress warning message when renaming a contact point
* Clear team and role perm cache on receiver rename
Prevents temporarily broken UI permissions after rename when a user's source of
elevated permissions comes from a cached team or basic role permission.
* Debug log failed cache clear on CopyPermissions
---------
Co-authored-by: Matt Jacobson <matthew.jacobson@grafana.com>
* Options pane, data pane queries tab and transformations tab working
* Update
* Discard works
* Panel inspect working
* Table viw works
* Repeat options
* Began fixing tests
* More tests fixed
* Progress on tests
* no errors
* init full width when enabling repeat
* Began moving VizPanelManager tests to where the code was moved
* Unlink libray panel code and unit test
* Fixes and unit tests for change tracking and resetting original state and dirty flag when saving
* migrating and improving unit tests
* Done with VizPanelManager tests refactoring
* Update
* Update
* remove console.log
* Removed unnesssary behavior and fixed test
* Update
* Fix unrelated test
* conditional options fix
* remove
* Fixing issue with editing repeated panels and scoping variable to first value
* Minor fix
* Fix discard query runner changes
* Review comment changes
* fix discard issue with new panels
* Add loading state to panel edit
* Fix test
* Update
* fix test
* fix lint
* lint
* Fix
* Fix overrides editing mutating fieldConfig
---------
Co-authored-by: alexandra vargas <alexa1866@gmail.com>
* Pass one
* Fix linter and add new betterer problem (sorry)
* fix swagger
* Add type to tests and update single correlations sql
* Fix provisioning test and other function that needs a type
* Add errors around query/external typing and add tests
* increment number of correlations tested as we added one for testing v1 type placement
* try merging back the swagger that is in main
* try again?
* Style form a little
* Update public/app/features/logs/components/logParser.ts
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* fix bad commit, simplify logic
* Demonstrating type difficulties
* Fix distributed union changes
* Additional type changes
* Update types in form
* Fix swagger
* Add comment around the assertion and explicit typing
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* refactor breakdown scene
* refactor BreakdownScene along with LayoutSwitcher
* rename
* don't pass default layout
* better type handling
* betterer
* add @bsull/augurs
* implement LabelBreakdownScene
* integrate SortByScene in LabelBreakdownScene
* move to new directory
* introduce BreakdownSearchScene
* integrate searchScene
* cleaning
* initialize @bsull/augurs
* add interaction
* use new breakdown scene
* resolve merge conflicts
* ugrade @bsull/augurs
* update import
* update css
* update tooltip text
* refine sorting
* fix unit test
* fix
* implement outlier detector
* support wasm
* jest testing fix
* localization fix
* use unknown instead of any
* update i18n
* update betterer
* fix locales
* update test
* fix tests maybe
* prettier
* chore: update jest config
* chore: create mock for @bsull/augurs (#92156)
chore: create mock for bsull/augurs
@bsull/augurs assumes it will be running as an ESM, not
a CommonJS module, so can't be loaded by Jest (specifically
because it contains a reference to import.meta.url).
This PR provides a mock implementation which gets tests passing
again.
Ideally we'd be able to load the actual @bsull/augurs module
in tests so this is just a stopgap really, until a better
solution appears.
* fix unit tests
* remove unused BreakdownScene.tsx
* set outliers as undefined if an error occurs
* Add labels
* betterer
* reset event implemented
* fix controls positioning
* remove sorting
* fix type guard
* more clean up
* remove wasm support from webpack
* betterer
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: Ben Sully <ben.sully@grafana.com>
* add OTel filter in metric select scene
* add resource query to get matching OTEL job&instance
* filter metrics by OTEL resources
* only add otel select if DS has OTEL matching job and instance
* add folder for otel resources
* upate metric select for new otel folder
* move otel api call
* get otel resources for labels for single series job/instance target_info
* add otel resources to adhoc variable dropdown
* update otel api to check for standardization and return labels
* label types for api
* check standardization, show otel variable, select depenv, update other variables
* remove otel target list from metric select scene
* load resources if dep_env label has already been selected
* exclude previously used filters
* do not check standardization if there are already otel filters
* drop filters when switching data sources
* add experience var for switching to otel experience
* remove otel from variables and place near settings
* add error for non-standard prom with otel resources
* fix typescript errors, remove ts-ignores
* add custom variable for deployment environment like app-olly
* fix name of otel variable
* add function for getting otel resources from variables
* add otel join query const
* update standard check to be simpler
* allow for unstandard otel data sources but give warning
* add otelJoinQuery to the base query and clean up variables when state changes
* refactor otel functions to return filters for targets, use targets to filter metrics
* update metric names on otel target filter change
* when no otel targets for otel resource filter, show no metrics
* move switch to settings, default to use experience, refactor otel checks
* clean code
* fix refactor to add hasOtelResources for showing the switch in settings
* sort otel resources by blessed list
* reset otel when data source is changed
* move otel experience toggle back outside settings
* move showPreviews into settings
* do not re-add otel resources from blessed list to filters when already selected
* add otel join query variable to histogram base query
* only show settings for appropriate scenes
* show info tooltip the same but show error on hover for disabling otel exp for unstandard DS
* refactor tagKeys and tagValues for otel resources variable, fix promoted list ordering, fix dep env state bug
* default dep env value
* apply var filters only where they are using VAR_FILTER_EXPR in queryies
* change copy for labels to attributes
* do not group_left job label when already joining by job
* update copy for label variable when using otel
* remove isStandard check for now because of data staleness in Prometheus
* default to showing heatmap for histograms
* add trail history for selecting dep env and otel resources
* add otel resource attributes tests for DataTrail
* move otel functions to utils
* write tests for otel api calls
* write tests for otel utils functions
* fix history
* standard otel has target_info metric and deployment_environment resource attributes
* fix tests
* refactor otel functions for updating state and variables
* clean code
* fix tests
* fix tests
* mock checkDataSourceForOtelResources
* fix tests
* update query tests with otelJoinQuery and default to heatmap for _bucket metrics
* fix tests for otel api
* fix trail history test
* fix trail store tests for missing otel variables
* make i18n-extract
* handle target_info with inconsistent job and instance labels
* fix otel copy and <Trans> component
* fix custom variable deployment environment bug when switchiing data sources from non otel to otel
* fix linting error for trans component
* format i18nKey correctly
* clean up old comments
* add frontend hardening for OTel job and instance metric list filtering
* fix test for deployment environment custom variable to use changeValueTo
* fix i18n
* remove comments for fixed bug
* edit skipped tests
* Display event name of a span
* Clean up
* Retrigger the build
* Show colon only when there are fields to display
* Rollback
* Use event name when exporting to OTLP
* Allow filtering spans by event name
* Remove redundant types
* Remove redundant TraceLog
* Update betterer report
Back-end:
* update alerting module
* update GetSecretKeysForContactPointType to extract secret fields from nested options
* Update RemoveSecretsForContactPoint to support complex settings
* update PostableGrafanaReceiverToEmbeddedContactPoint to support nested secrets
* update Integration to support nested settings in models.Integration
* make sigv4 fields optional
Front-end:
* add UI support for encrypted subform fields
* allow emptying nested secure fields
* Omit non touched secure fields in POST payload when saving a contact point
* Use SecretInput from grafana-ui instead of the new EncryptedInput
* use produce from immer
* rename mapClone
* rename sliceClone
* Don't use produce from immer as we need to delete the fileds afterwards
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
Co-authored-by: Matt Jacobson <matthew.jacobson@grafana.com>
* Export Combobox and add portalling
* Use floatingui fixed strategy and fix z-index
* Check non null
* Make value string type only
* Try with fiscal year setting
* Use combobox for WeekStartPicker
* Improve screen reader handling
* Fix faulty import
* Fix type issue
* Fix failing tests and export unstable
* Rename option and remove export
* Use comboboxMockSetup function
* Add support for number type
* menuClosed styles to emotion
* Display event name of a span
* Clean up
* Retrigger the build
* Show colon only when there are fields to display
* Rollback
* Use event name when exporting to OTLP
* Allow filtering spans by event name
* Show duration as a key/value pair
* Update betterer report (we do not translate panels that are planned to be externalized)
* Fix tests after changing how duration is rendered
* Handle long names
* Test handling long names
* Make parenthesis gray
* Fix a test
* Fix linting
* Fix tests
* Update label