Dashboards: Prevent shared queries from being unnecessarily re-run (#77490)
* Dashboards: Prevent shared queries from being unnecessarily re-run
* Minor change
* Set solo panel as being viewed
---------
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
(cherry picked from commit 5f78542366)
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Logs: Use "labels" data frame field if type "other" in log details (#77806)
* Logs: Use labels field if time other
* Keep loki test
(cherry picked from commit cb711660f1)
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Dashboards: Fix dashboard listing when user can't list any folders (#77983)
* return empty list of folder if the user doesn't have the permissions to view folders
* fix the empty folder list initialisation
(cherry picked from commit 6097ff255c)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
docs: remove alertmanager from angular plugins (#77888)
V2.0.0 released today which migrated to react
(cherry picked from commit 3559cb4e81)
Co-authored-by: David Harris <david.harris@grafana.com>
Logs: Update logic to process logs dataPlane frame with labels field (#77708)
* Logs: Update dataplane logic to use labels instead of attributes
* Update Loki logs data plane data frame according to specs
* Remove only in test
(cherry picked from commit d4a257bc8e)
* Update grafana-plugin-go-sdk to v0.185.0 and otel to v1.19.0 (#76704)
(cherry picked from commit 42f5e42b54)
* Update google.golang.org/grpc
---------
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
InfluxDB: Fix query call with flux and sql when backend migration disbaled (#77760)
Only run through with classicQuery if the language is influxql and backend migration is disabled
(cherry picked from commit 581b93c124)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
PanelInspector: Always use the latest panel data (#77732)
PanelInspector: Always use the latest panel data
(cherry picked from commit dff8dc86d6)
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
[DOC] Add videos for Tempo data source (#77534)
* Add videos for Tempo data source
* Update docs/sources/datasources/tempo/span-filters.md
* Update docs/sources/datasources/tempo/span-filters.md
(cherry picked from commit 224279fe0e)
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Plugins: Fix plugin alias ID being used in PluginContext.ID (#77206)
* Fix PluginID being populated with alias in plugincontext Get and GetWithDataSource
* Add tests
* pr review suggestion
* pr review suggestion
(cherry picked from commit 45bcbff115)
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
RBAC: Allow scoping access to root level dashboards (#76987)
* correctly check permissions to list dashboards on the root
* correctly display the access inherited from general folder for dashboards
* Update pkg/services/sqlstore/permissions/dashboard.go
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Update dashboard_filter_no_subquery.go
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
(cherry picked from commit 159bb3c032)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Explore: Fix support for angular based datasource editors (#77486)
(cherry picked from commit 7737226786)
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
CI: Fix race condition when building docker on main (#77504)
* build docker after packages are updated
* use my branch for main pipelines for testing
* use my branch for main pipelines for testing
* use main instead now
* formatting
(cherry picked from commit f6d3238505)
CI: Update RGM steps to use the artifacts command (#77470)
* update rgm steps to use artifacts subcmd
* format-drone
* make drone
(cherry picked from commit 8a5d4c4c6e)
Docs: deprecate API key reference docs and update API tutorial to use service accounts (#77429)
* deprecate API key reference docs and update API tutorial to use service accounts
* Update create-api-tokens-for-org.md
(cherry picked from commit 9c47161c14)
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
InfluxDB: Fix parsing multiple tags on backend mode (#77340)
* Multiple tags separated by comma in the result
* A non-flaky unit test
(cherry picked from commit 6b13064cf6)
Explore: Ensure logs volume data points are in order (#77268)
* Ensure logs volume data points are ordered
* Add a test for data points order
(cherry picked from commit 03ca9c7c66)
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
User: remove empty email / username check from update in service (#77347)
User: remove empty email / username check from update in service
(cherry picked from commit 87eba34745)
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Explore: Avoid reinitializing graph on every query run (#77281)
(cherry picked from commit bf554d121c)
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Docs: add dashgpt information (#77177)
* Added notes about AI features
* Added link to LLM content, copy edited, and fixed linting errors
* Fixed references to dashgpt setup in create dashboards, added links and fixed linting issues
* Added links to panel option config docs and fixed linting issues
* Fixed link label
* Added dashgpt info to build first dashboard
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Fixed links and heading level of new section
* Updated feature name
* Recast sentence
* Fixed formatting
* Added code formatting to feature flag
* Fixed link
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 91784076c7)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Use latest grafana/docs-base image (#77299)
* Use latest grafana/docs-base image
The pinned tag does not support recent shortcodes like `docs/public-preview`.
* Always pull the image
---------
(cherry picked from commit d8d7a40d13)
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Docs: add youtube links to 10.2 what's new (#77244)
* Added youtube links and removed some other images and videos
* Removed a video and moved some text
* Added more youtube videos
(cherry picked from commit 2e05134089)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
CI: Fix release-npm-packages action (#77127)
* Remove dependency of NpmReleaseAction to the git binary
* Switch to using the node image for the release-npm-packages step
(cherry picked from commit aa9fc3be72)
* Bug fix: Correctly set permissions on provisioned dashboards (#77155)
* set default basic role permissions for dashboards even if dash creator permissions can't be set
* temporarily increase the test threshold until we can tweak the page
(cherry picked from commit f6e2a775d3)
* Fix error handling typo
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Alerting: Improve the docs on templating labels and annotations (#76593)
The previous version of this page I wrote with the expectation that
readers would first learn the templating language and then write
their templates. This doesn't seem to have worked out as well as I
had expected, and so I've rewritten the documentation to explain
the language using relevant and useful examples instead.
(cherry picked from commit e743aa54b8)
Co-authored-by: George Robinson <george.robinson@grafana.com>
"Release: Updated versions in package to 10.2.1"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
Update `doc-validator` workflow (#77024)
Update doc-validator
No longer produce errors for the use of https://grafana.com/ links. This is the first step towards just using fully qualified URLs everywhere. The website link render-hook will internally transform these URLs into the partial URL that works across all hostnames.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
(cherry picked from commit 07909464f1)
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Docs: Updates based on UI changes, support request (#76907)
* added additional links on Lucene queries
* cosmetic updates to query editor
* updated config doc to reflect UI changes
* removed Explore elements from query editor doc
* ran prettier
(cherry picked from commit b2eda16023)
Co-authored-by: lwandz13 <126723338+lwandz13@users.noreply.github.com>
Alerting: Fix confusion around what can and cannot be customized in notifications (#77032)
* Alerting: Fix confusion around what can and cannot be customized in notifications
* Small fix
* Second small fix
(cherry picked from commit 1cb1d174fd)
Co-authored-by: George Robinson <george.robinson@grafana.com>
CI: Rename scripts that build artifacts to use _build_ (#77005)
Rename scripts that build artifacts to use _build_
(cherry picked from commit 442e533803)
InfluxDB: Fix table parsing with backend mode (#76899)
* Add resultFormat to query model
* don't add row name if the result format is table
* No need special formatting since we use unified dataframes
* betterer
* specify visualization type in response
* Unit tests
* fix unit tests
(cherry picked from commit 63abe25b74)
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Alerting: Alert rule constraint violations return as 400s in provisioning API (#76396)
Constraint violations become 400s
(cherry picked from commit 39599fa7f7)
Co-authored-by: Alexander Weaver <weaver.alex.d@gmail.com>
Reduce flakiness of e2e tests caused by write contention in sqlite
Write contention in sqlite on startup intermittently causes failed tests because
of failed service runs. This can have various root causes, one example is
dashboard provisioning:
Dashboard provisioning's frequent commits can cause other read transaction
snapshots to invalidate and throw SQLITE_BUSY/SQLITE_BUSY_SNAPSHOT. If those
failing transactions have a long length but not long enough to ensure all of
the dashboards have finished provisioning it will run out of retries and fail
entirely.
This change helps indirectly reduce these write contentions by limiting the
connection pool for e2e tests.
As a bonus, having our e2e tests run using `max_open_conn = 2` means it acts
as a guard against regressions that would affect certain internal instances
that run with these settings.
* update with sdk
* do sql
* fix core plugins
* fix proxy settings
* bump SDK version
* tidy
* enable pdc for test
* add codeowners
* bump dep
* go mod tidy
* bump SDK
* docs: fix minor inaccuracies
- give content on the type of data that needs persistence
- Use more precise terminology
- persistent storage != Docker volumes
- filesystem changes remains in a stopped container
and only discard when container removed
- 'directory' is more accurate than 'folder'
- fix typo: `grafana_data` should be `grafana-storage`
* docs: fix grammar and use 'directory' consistently
* docs: replace 'sqlite3' with 'SQLite version 3'
* Replace FixedRoleUID function with a common function to generate these prefixes
* Use common function to generate prefixed uid for external service accounts
Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
---------
Co-authored-by: Gabriel MABILLE <gabriel.mabille@grafana.com>
* Remove legacy form from LokiQuerySettings
With this commit, legacy form components are remvoed from loki query
settings page. Form is now using InlineField instead.
* Fix the width of loki predefined ops input
* Fix the width of loki predefined ops input
* Fix type in loki query component input field
* Added content outline to what's new
* Fixed formatting
* add docs link
* Added version syntax
* Added page anchor and removed text reference to page section
---------
Co-authored-by: harisrozajac <haris.rozajac12@gmail.com>
fetch fresh permissions for global in AuthorizeInOrgMiddleware
Update pkg/services/accesscontrol/authorize_in_org_test.go
do not load viewer permissions in global ID
* Added public dashboards content
* Updated Loom link
* Added back old Loom embed to help troubleshoot new embed
* Add video
* Added video embed shortcode
* Fixed embed code
* update data migration to update rows that have changes
* fix migration for sqlite
* remove id; fix postgres
* Fix for MySQL
* delete old items from folder table
* change integer to boolean
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* Add images
* Basic button functionality; TODO placeholders for dispatching contentOutlineToggle and rendering content outline component
* Basic content outline container
* Content outline toggles
* Remove icon files from explore
* Scroll into view v1
* outline that reflect's explore's order of vizs
* Update icon name
* Add scrollId to PanelChrome; scrolling enabled for Table
* Add queries icon
* Improve scroll behavior in split view
* Add wrapper so the sticky navigation doesn't scroll when on the bottom of the window
* Fix the issue with logs gap; center icons
* Memoize register and unregister functions; adjust content height
* Make displayOrderId optional
* Use Node API for finding position of panels in content outline; add tooltip
* Dock content outline in expanded mode; at tooltip to toggle button
* Handle content outline visibility from Explore and not redux; pass outlineItems as a prop
* Fix ContentOutline test
* Add interaction tracking
* Add padding to fix test
* Replace string literals with objects for styles
* Update event reporting payloads
* Custom content outline button; content outline container improvements
* Add aria-expanded to content outline button in ExploreToolbar
* Fix vertical and horizontal scrolling
* Add aria-controls
* Remove unneccessary css since ExploreToolbar is sticky
* Update feature toggles; Fix typos
* Make content outline button more prominent in split mode; add padding to content outline items;
* Diego's UX updates
* WIP: some scroll fixes
* Fix test and type error
* Add id to ContentOutline to differentiate in split mode
* No default exports
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Stub types
* Update applicator
* Type and functionality updates
* Format time applicator
* Group by applicator
* Groupy to matrix applicator
* Use applicability levels
* Add organize fields applicator
* Add applicator to heatmap
* Add disabled icons
* Update presentation
* Prettier
* Why run prettier once when you can do it twice?
* Update presentation
* Prettier
* Update presentation
* Prefer object syntax
* Betterer and Prettier
* Fix issue getting current labels that would only grab values to the left of the cursor
* Loki: Fix Autocomplete in stream selector overwriting existing label names, or inserting autocomplete result within label value (#76485)
* Better autocomplete functionality in loki, changing the word pattern to include label value separator (=), include valid sting chars (-), and value wrapper ("), adding some more logic in the range calculation to prevent autocomplete results from partially overwriting adjacent label names or portions of the current label value
* Use apache/arrow v13
* remove apache/thrift
* go mod tidy with go1.21.1
* add metrics team as owner
---------
Co-authored-by: Kyle Brandt <kyle@grafana.com>
* Dashboard: Fixes save changes diff after first save
* Lots of type issues
* better fix
* Update some more places to use new function
* Fix
* Update
* Update
* remove console.log
* Update
* Fixed so we will return default timeZone to extensions if empty is provided.
* Update public/app/features/dashboard/utils/getPanelMenu.test.ts
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
---------
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* Added spans to trace.go
* Added spans to search_stream.go
* Added spans to parca datasource
* Added spans for pyroscope
* Fix tests
* Fix another test
* Lint
* Revert "Fix another test"
This reverts commit a1639049e3.
* Use grafana-sdk-go tracing
* moved themecontext to data
* chore(grafana-ui): re-export ThemeContext from grafana/data for backwards compatibility
* Moved icon bundling to core.
* feat(plugins): share react-inlinesvg with plugins for grafana/ui bundling
* chore(codeowners): add generate-icon-bundle.js to file
* chore(storybook): update path to iconBundle file for theme
* feat(plugins): share i18n dependency via systemjs
* Make sure that icon bundle is initialized for tests.
* Removed comment.
* added tests for icon root.
* Removing the need of having an init variable.
* feat(grafana-ui): add icon svgs to bundle for projects that don't rely on grafana
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Add role mapping support for Google OIDC
* Added note about entry already being in on-prem
* Add line
* Fixed version syntax
* Fixed typo
* Removed index.md from link
* Added release date
* Fix migration of custom dashboard permissions
Dashboard alert permissions were determined by both its dashboard and
folder scoped permissions, while UA alert rules only have folder
scoped permissions.
This means, when migrating an alert, we'll need to decide if the parent folder
is a correct location for the newly created alert rule so that users, teams,
and org roles have the same access to it as they did in legacy.
To do this, we translate both the folder and dashboard resource
permissions to two sets of SetResourcePermissionCommands. Each of these
encapsulates a mapping of all:
OrgRoles -> Viewer/Editor/Admin
Teams -> Viewer/Editor/Admin
Users -> Viewer/Editor/Admin
When the dashboard permissions (including those inherited from the parent
folder) differ from the parent folder permissions alone, we need to create a
new folder to represent the access-level of the legacy dashboard.
Compromises:
When determining the SetResourcePermissionCommands we only take into account
managed and basic roles. Fixed and custom roles introduce significant complexity
and synchronicity hurdles. Instead, we log a warning they had the potential to
override the newly created folder permissions.
Also, we don't attempt to reconcile datasource permissions that were
not necessary in legacy alerting. Users without access to the necessary
datasources to edit an alert rule will need to obtain said access separate from
the migration.
Remove legacy form from InfluxConfigEditor
With this commit, legacy form components are remvoed from influxdb
config eidtor page. Form is now using FieldSet instead.
There is a sentence in the [Built-in query](https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/#built-in-query) section of the page that could use a "the" (emphasis added by me 😄) :
> When you copy a dashboard using the Save As feature it will get a new dashboard id, **so annotations created on source dashboard** will no longer be visible on the copy. You can still show them if you add a new Annotation Query and filter by tags. However, this only works if the annotations on the source dashboard had tags to filter by.
This PR adds "the" so the phrase reads "so annotations created on the source dashboard"
* Manage service account secrets
* Wip
* WIP
* WIP
* Revert to keep a light interface
* Implement SaveExternalService
* Remove unecessary functions from the interface
* Remove unused field
* Better log
* Leave ext svc credentials out of the extsvcauth package for now
* Remove todo
* Add tests to SaveExternalService
* Test that secret has been removed from store
* Lint
* Nit.
* Rename commands and structs
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* Account for PR feedback
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Linting
* Add nosec comment G101 - this is not a hardcoded secret
* Lowercase kvStoreType
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Update @testing-library/dom to v9.3.3
* Update @testing-library/dom to v9.3.3 in packages
* Update yarn.lock
* Revert "Update yarn.lock"
This reverts commit 0cc2084273.
* point all @testing-library/dom packages to v9.3.3
* Add context to editor so field calculation does not return undefined variable and shows on next transform
* fix bug where default alias would get interpolated
* Update origin annotation names
k8s does not support annotation names with multiple slashes in them, so this PR updates the origin annotations to match the format for updated and created annotations.
* fix tests
This PR replaces the vendored models in the migration with their equivalent ngalert models. It also replaces the raw SQL selects and inserts with service calls.
It also fills in some gaps in the testing suite around:
- Migration of alert rules: verifying that the actual data model (queries, conditions) are correct 9a7cfa9
- Secure settings migration: verifying that secure fields remain encrypted for all available notifiers and certain fields migrate from plain text to encrypted secure settings correctly e7d3993
Replacing the checks for custom dashboard ACLs will be replaced in a separate targeted PR as it will be complex enough alone.
* Canvas: Button API - Block Calls to Grafana
* Move origin check inside of api logic
* Change grafana url source from href to origin
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* Move errors to error file
* Move check for both empty username and email to user service
* Move check for empty email and username to user service Update
* Wrap inner error
* Set username in test
* Add option to calculate min max per field
* Fix eslint warnings
* Add back hideFromDefaults that went missing
* whitespace
* Add tests
* Refactor range calculation
* Rename localMinMax -> fieldMinMax
* Remove the lint exceptions
Removing these as to not hide these once we get around to fixing the
underlying typing issue.
* Update docs
* support google oauth allowed_groups. unify allowed groups logic
* add role mapping for google oauth
* add documentation
* add addendums
* remove extra isGroupMember
* add to sample ini
* Apply suggestions from code review
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* improved the sentence to make it clear for entering admin in both the username and password
* Update docs/sources/getting-started/build-first-dashboard.md
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* extend threshold command with second evaluator called `unloadEvaluator`
* Introduce a new expression command Hysteresis and update Threshold unmarshaller to create the HysteresisCommand if the second eval
* add feature flag `recoveryThreshold`
* update unmarshal threshold command to not re-marshall because it breaks frame definition by shuffling the schema and data fields
* Create a state for dockedMegaMenu and the function to manage it
* Add the dockedMenu icon and handle the status when clicking it
* Add Megamenu to section nav area when it is docked
* get logic working
* fix mobile
* refactor state + persist in localStorage
* adjust icon and don't use position absolute
* restore old rudderstack tracking
* use Flex instead
* adjust feature toggle to be experimental
* extract out localStorage handling into utils
* don't need separate file
* use store.set/get instead
---------
Co-authored-by: eledobleefe <laura.fernandez@grafana.com>
* Sandbox: initial dummy datasource plugin for e2e
* WIP: tests
* Add metrics to plugin.json so it shows up in explore
* Fix false positives in frontend-sandbox-datasource.spec.ts
* Change typed name to be static
* Add code to delete the datasource after tests are complete
* Add fail on status code
* Update tests for more config
* Replace visit with existing page
* Delete cleanup code
* Don't show error when editor is empty
* Added multi-line support for error markers
* Fixed bug where new lines weren't being counted as characters
* Take startLine and endLine into account in column calculations
* Fix
* IDForwarding: change audience to be prefixed by org and remove JTI
* IDForwarding: Construct new signer each time we want to sign a token.
* SigningKeys: Simplify storage layer and move logic to service
* SigningKeys: Add private key to local cache
* Extract code to manage service accounts
* Add test with client credentials grants
* Fix test with the changed interface
* Wire
* Fix HandleTokenRequest
* Add tests to extsvcaccounts
* Rename Retrieve function
* Document the interface
* Use production gcom api for nightly builds
* Use production package repositories
* Remove unused confusing env variable
* Comment out previous gcom nightly pipeline
* Remove unused grafana-com-nightly pipeline
* Remove unused import from cron.star
* Unfurl OrgRole in pkg/api to allow using identity.Requester interface
* Unfurl Email in pkg/api to allow using identity.Requester interface
* Update UserID in pkg/api to allow using identity.Requester interface
* fix authed test
* fix datasource tests
* guard login
* fix preferences anon testing
* fix anonymous index rendering
* do not error with user id 0
* Only call preventDefault if it exists
* Change "View Traces" link to use traceQLSearch instead of the deprecated nativeSearch
* Thank you again test. Update tests
* Update test
* Update betterer
* Type fix
* Small type change
* Update betterer
* Loki completion: add more context to comments
* Improve grammar of comment
* Completions: expand on parser-offering part
* Update public/app/plugins/datasource/loki/components/monaco-query-field/monaco-completion-provider/completions.ts
* Formatting
* clean up legacy access control code for teams
* remove editorsCanAdmin config from the frontend
* add editorsCanAdmin config option back for the frontend
* Update _index.md
* Update _index.md
Run through Prettier
* Update _index.md
ran Prettier again
* Prettier
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* update storage's method InstertRules to return ids of added rules as slice to keep the same order as rules in the argument
* schematize response of update rule group endpoint, add created, updated, deleted fields that contain UID of affected rules.
* update integration tests to use the new fields
* display datasource information under each section
* Minor - change legend to multi in some panels that were missing it
* Don't show ds info to grafana sections
* Remove unused classname
* Remove unused import
* Fix pickers styling by placing it to the right
* Logfmt autocompletion: better handling of trailing commas
* Situation: refactor getSituation and getErrorNode
Looking for simplicity, removing redundancy, and looking for a more accurate node resolution
* Autocompletion: refactor logfmt and top level
* Update tests
* Autocompletion: better handling of trailing characters
* Completions: Update data to type changes
* Update log query in test situation
* Format code
* Autocomplete: support offering partial labels
* Completion: expand test cases
* Add unary operations to add field from calc transform
* Refactor layout to use new UI components. fix 'as' type assertions
* rename exp
* more docs
* fix docs
* feat: added markup for data source picker title
* feat: added markup for builtin data source list
* feat: added markup for datasource list
* chore: generated markup files
* feat: added markup for new data source button
* chore: generated markup files
* fix: fixed prefix names
* chore: updated markup files
* fix: removed extra spaces
* test mimir image drone
* add mimir service to services.star
* change name for mimir step
* change remote alertmanager step names, add commands for integration tests
* add tag to mimir image
* OnGoing
* Continue migrating structure
* Comment
* Add intermediary service
* Remove unused error so far
* no need for fmt use errors
* use RoleNone
* Docs
* Fix test
* Accounting for review feedback
* Rename oauthserver.ExternalService to OAuthClient
* Revert as the interface looks weird
* Update pluginintegration
* Rename oauthserver.ExternalService
* closer to what it was before
* Geomap: Add Symbol Anchor Options
* Update displacement for svg case
* For square and x, account for 45 degree offset
* Simplify displacement function
* Remove unused todo
* Update test defaults to include anchor
* Add missing anchor default to tests
* Move displacement function into utils and add test
* Simplify anchor position options UX
* Change verbage to alignment and swap direction
* Include missing alignment rename
* Update tests
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
* After the first auto-generate, the button changes to improve
* When clicking "improve" a toggletip appears with different ways to interact with the model to refine the result
* Analytics: Add analytics to history
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
* trying to remove tracing
* trying to remove tracing
* use plugin sdk tracing
* tracing is not init
* add infra tracing back
* remove infra trace
* Update pkg/tsdb/azuremonitor/metrics/azuremonitor-datasource.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* pr feedback
* remove code from other pr
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Fix legend for grafana missed iterations panel
* Change panel titles capitalization
* Change tooltip mode to "multi" for timeseries panels
* Add panel tooltips
* Change colors of series (red for firing, blue for neutral)
* Remove unneeded import
* Change panel title and firing alert colors
* Change constant timeseries panels to stat
* Avoid showing legend in panels with just one metric
* Add eval duration / interval ratio panel
* Fix legend
* Fix lint
* Rename panel titles
* Make firing instances table entries have link styling
* Fix betterer
* Add section subheaders
* Override colors and tooltip mode
* Address latest feedback
* Rename table to reflect we're showing rules data and not instances
* Rework most fired rules panel to show numbers instead of trend
* Improve legends and colors
* Fix most fired rules panel
* Missed Iterations: Override legend to display it in a more user friendly way
* Change tab names
* Position grafana-managed scenes under collapsible row
* Show breakdown of alert instances state panels
* Addressing UX feedback
- Making stat panels display area
- Change layout for grafana-managed panels
- Refactor Duration/Interval ratio scene (make calculation directly in PromQL)
* set no value as 0 in stats panels
* Refactor color overriding to use a common function
* fix missing legend for status panels (needed to override color)
* Fix legends for Grafana alertmanager Notifications scene
* Add nightly prerelease builds
* Fix duplicated pipeline names
* Fix misnamed dependencies
* Fix misnamed dependencies
* Fix string formatting
* Add option to specify bucket to RGM pipeline
* Fix trigger?
* Comment out cron triggers
* Fix windows bucket for nightly
* Fix versioning for windows and verify pipelines
* Use grafana/grafana-build:dev-209553c
* Fix version on windows steps
* Fix version on windows steps
* Fix windows .zip path
* Fix windows .zip path
* Remove windows builds from nightly for now
* Remove verify release pipeline from nightly
* Add docstring to rgm_release
* Revert changes to get_windows_steps
* Simplify changes to rgm.star
* Use grafana/grafana-build:dev-f5a15d4
* Add rgm copy step
* Use grafana/grafana-build:dev-d88be0f
* Fix destination variable
* Escape copy destination environment variable
* Add -r flag to rgm copy command
* Add dependency to rgm-copy step
* Add dist volume
* Use absolute path for dist volume
* Move dist folder to drone workspace
* Delegate drone workspace path to grafana-build
* Use grafana/grafana-build:dev-66149b8
* Lower folder depth
* Use grafana/grafana-build:dev-7355791
* Add rgm-nightly-publish pipeline
* Merge imports on rgm.star
* Fix rgm_copy to allow copying to local destination
* Use grafana/grafana-build:dev-36ec1e2
* Use grafana/grafana-build:dev-634d8dc
* Use grafana/grafana-build:dev-7a93728
* Use grafana/grafana-build:dev-5e36725
* Use grafana/grafana-build:dev-f5ebe1f
* Fix copy source for nightly builds
* Fix drone build number on rgm-copy step
* Use grafana/grafana-build:dev-637583f
* Use grafana/grafana-build:dev-f2cc524
* Allow tag trigger on grafana/grafana for testing
* Use grafana/grafana-build:dev-c71d4b7
* Use grafana/grafana-build:dev-63beac8
* Use grafana/grafana-build:dev-224a0dd
* Add environment variables for package publishing
* Revert unintentional change to dataquery.cue
* Add package publish step to nightly pipeline
* Use GCS path for package publish
* Pre-evaluate drone workspace on packages path
* Use hardcoded drone workspace path
* Remove unused env from publish packages step
* Use grafana/grafana-build:dev-657ea6a
* Use grafana/grafana-build:dev-1a9beec
* Use grafana/grafana-build:dev-f0053c8
* Use grafana/grafana-build:main
* Use grafana/grafana-build:dev-ae5182f
* Use grafana/grafana-build:dev-ec3ec36
* Use grafana/grafana-build:dev-5e160d8
* Use grafana/grafana-build:dev-142d2dc
* Use grafana/grafana-build:dev-db6bff1
* Use grafana/grafana-build:main
* Change nightly trigger to cron
* Use double quotes instead of backticks
* render time field as datetime
* add @react-awesome-query-builder/core
* Add time range filtering
* Update test
* Update macro test
* variables for filterforvalue
* use datalinkinput for basic matcher
* fix user select issue
* heatmap transformation variable interpolation
* clean code
* interpolate sort by
* add options interpolation in histogram transformation
* interpolation for limit
* Add suggestions UI to Filter by data value Transformation
Co-authored-by: oscarkilhed <oscar.kilhed@grafana.com>
* add validation for number/variable fields
* Add variables to add field from calculation
* Add validator to limit transformation
* Refactor validator
* Refactor suggestionInput styles
* Add variable support in heatmap calculate options to be in sync with tranform
* Refactor SuggestionsInput
* Fix histogram, limit and filter by value matchers
* clean up weird state ref
* Only interpolate when the feature toggle is set
* Add feature toggle to ui
* Fix number of variable test
* Fix issue with characters typed after opening suggestions still remains after selecting a suggestion
* Clean up from review
* Add more tests for numberOrVariableValidator
---------
Co-authored-by: Victor Marin <victor.marin@grafana.com>
* remove local graf templateSrv and use @grafana/runtime
* tests broken still 0.0
* wip
* moving around tests and fixing
* template var test using mocking and stuff
* AM ds tests fixed
* fix filter tests
* all tests work
* remove comment
* Update azure_log_analytics_datasource.ts
* remove deferred util - not used
* mock instead of spying
* not calling getTemplateSrv each time
* pass range down to filter instead of doing werid stuff
* use default time range if no time range
* prettierer
* remove note
* Show color of row as a border under the row. Hide service name for sequential spans
* Increase default span name column width. Smaller font for service and span names in span list
* New background color on spans. Fixed hover of indent markers
* Service name and span name style tweaks
* Collapse hidden levels
* Fixed test
* Small tweak to Buffer size to make sure tests pass
* Trigger runs
* Update betterer results
* Address comment
* Style tweaks
* Remove duplicated code
* Rollback change to join <span> since they are needed for the tests
* feat: display the deprecation context for a plugin if it is available
* Update public/app/features/plugins/admin/components/PluginDetailsDeprecatedWarning.tsx
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* feat: only extend the basic message with custom context
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* signing key wip
use db keyset storage
add signing_key table
add testing for key storage
add ES256 key tests
Remove caching and implement UpdateOrCreate
Stabilize interfaces
* Encrypt private keys
* Fixup signer
* Fixup ext_jwt
* Add GetOrCreatePrivate with automatic key rotation
* use GetOrCreate for ext_jwt
* use GetOrCreate in id
* catch invalid block type
* fix broken test
* remove key generator
* reduce public interface of signing service
* Start adding correlations editor mode
* Add selector for merge conflict resolution
* Enable saving
* Build out new corelation helper component
* flesh out save with label/description, change color
* Have breadcrumb exit correlation editor mode
* Add extension property to show/hide, use it for correlations
* Bring in feature toggle
* Remove unnecessary param
* Cleanup
* Parse logs json
* Work on correlation edit mode bar
* Tinker with a top element for the editor mode
* Handle various explore state changes with correlations editor mode
* WIP - add unsaved changes modal
* Have correlation bar always rendered, sometimes hidden
* Add various prompt modals
* Clear correlations data on mode bar unmount, only use not left pane changes to count as dirty
* Move special logic to explore
* Remove all shouldShow logic from plugin extensions
* remove grafana data changes
* WIP - clean up correlations state
* Interpolate data before sending to onclick
* Override outline button coloring to account for dark background
* More cleanup, more color tweaking
* Prettier formatting, change state to refer to editor
* Fix tests
* More state change tweaks
* ensure correlation save ability, change correlation editor state vars
* fix import
* Remove independent selector for editorMode, work close pane into editor exit flow
* Add change datasource post action
* Clean up based on PR feedback, handle closing left panel with helper better
* Remove breadcrumb additions, add section and better ID to cmd palette action
* Interpolate query results if it is ran with a helper with vars
* Pass the datasource query along with the correlate link to ensure the datasource unique ID requirement passes
* Use different onmount function to capture state of panes at time of close instead of time of mount
* Fix node graph’s datalink not working
* Actually commit the fix to saving
* Fix saving correlations with mixed datasource to use the first query correlation UID
* Add tracking
* Use query datasources in mixed scenario, move exit tracking to click handler
* Add correlations to a place where both can be used in the correlations editor
* Be more selective on when we await the datasource get
* Fix CSS to use objects
* Update betterer
* Add test around new decorator functionality
* Add tests for decorate with correlations
* Some reorganization and a few tweaks based on feedback
* Move dirty state change to state function and out of component
* Change the verbiage around a little
* Various suggestions from Gio
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* More small Gio-related tweaks
* Tie helper data to datasource - clear it out when the datasource changes
* Missed another Gio tweak
* Fix linter error
* Only clear helper data on left pane changes
* Add height offset for correlation editor bar so it doesn’t scroll off page
---------
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* feat: i18n dashboard settings
* run i18n extract
* rename titles and use vars
* json editor title
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* feat(plugins): allow filtering of plugin errors by plugin type
* refactor(plugins): migrate PluginsErrorsInfo component to use Alert component
* chore(plugins): remove redundant d3 import
* feat(datasources): filter plugin errors by plugin type
* refactor(plugins): pass plugin.type from selector rather than guess from pluginId
* refactor(plugins): move filtering to selector
* Extend support for variables in filter by name
* Simlpify help and include variable support
* Simplify regexp
* Remove id that was left from an erlier implementation attempt
* Update docs/sources/panels-visualizations/query-transform-data/transform-data/index.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Improve variable name and fix react warning
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* tidy up some styles
* remove NavBarMenuItemWrapper + consolidate components
* lots of renaming
* use object syntax in FeatureHighlight
* fix a couple of missing find+replace
* adjust li positioning
* fix text truncation
* bit more tidy up
* refactor indent into it's own component
* memoize styles in Indent
This is necessary to allow version inference in CI builds.
Shortcodes like `docs/reference` and `docs/shared` use version inference to avoid the writer having to hardcode specific versions or use relative paths within the documentation set.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add functions to detect build edition and env
* Prevent showing insights for OSS
* Use common functions for Declare Incident button
* Address review comments
* extend RuleStore interface to get namespace by UID
* add new export API endpoints
* implement request handlers
* update authorization and wire handlers to paths
* add folder error matchers to errorToResponse
* add tests for export methods
* Alerting: Expose metrics for Alertmanager Alerts
In Grafana, the alert evaluation and alert delivery are combined. We're always used a metric named `grafana_alerting_alerts` to get a sense of what are the alerts that are currently firing (these come from the evaluation side) and opted to not map the alertmanager alerts metric directly.
I think it's important that we make a disction between alerts that happen at evaluation vs alerts that are received for delivery by the internal Alertmanager as we have options to skip the delivery of these alerts to the internal alertmanager altogether.
* Migrate old alerting templates to use $labels
* Fix imports
* Add test coverage and separate rewriting to Go templates
* Fix lint
* Check for additional closing braces
* Add logging of invalid message templates
* Fix tests
* Small fixes
* Update comments
* Panic on empty token
* Use logtest.Fake
* Fix lint
* Allow for spaces in variable names by not tokenizing spaces
* Add template function to deduplicate Labels in a Value map
* Fix behavior of mapLookupString
* Reference deduplicated labels in migrated message template
* Fix behavior of deduplicateLabelsFunc
* Don't create variable for parent logger
* Add more tests for deduplicateLabelsFunc
* Remove unused function
* Apply suggestions from code review
Co-authored by: Yuri Tseretyan <yuriy.tseretyan@grafana.com>
* Give label val merge function better name
* Extract template migration and escape literal tokens
* Consolidate + simplify template migration
---------
Co-authored-by: William Wernert <william.wernert@grafana.com>
* Error handling for the hook to expose `error` as part of the state
* Monitor errors at the hook level to catch common OpenAI issues
* Allow retry when the request fails
* Optimize onGenerate number of calls
* Re-enable component tests
* Alerting: Manage remote Alertmanager silences
* fix typo
* check errors when encoding json in fake external AM
* take path from configured URL, check for nil responses
* Replace use of `relref` shortcode with `docs/reference` so links work in Grafana Cloud
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Link to Grafana Cloud content
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Details in https://github.com/grafana/website/pull/15518.
This canonical should never be used.
This page is the only consistent page that exists in Grafana Cloud documentation but not in "latest" Grafana open source documentation.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Publish documentation from the HEAD of the matching version branch on tag events
Tags aren't necessarily made to the HEAD of the version branch.
The documentation that should be published is always on the HEAD of the version branch.
This is another mismatch between the code and documentation but is desirable as the "What's new" documentation is typically added much later than commit the tag targets.
Technically it would be more correct for the "What's new" documentation to be in place before the commit that is tagged.
However, the significant lag between the start of a release and the actual publishing of the tag would be challenging to codify in this action's logic.
It would also require a side channel for non-code related documentation updates to be made to the docs released by the tag.
This would likely require a long lived branch to be created at the tag commit and I'm not sure that the additional work is justified.
In practice, I think we can get away with publishing more recent documentation than the code given the assumption that no significant feature is going to be absent from the initial major/minor release.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Switch to detached remote branch reference
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Plugins: Add client middlware that forwards the signed grafana id token if present
* DsProxy: Set grafana id header if id token exists
* Add util function to apply id token to header
* Only add id forwarding middleware if feature toggle is enabled
* Add feature toggles to ds proxy and check if id forwarding is enabled
* Clean up test setup
* Change to use backend.ForwardHTTPHeaders interface
* PluginProxy: Forward signed identity when feature toggle is enabled
* PluginProxy: forrward signed id header
* Replaced legends shared content with text
* Copy and structuring edits
* Removed redundant link
* Prettier
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* added the feature parity table to our iam strategy
* wip
* updated the table with current features
* added better formatting for explanations
* change emoji to words
* sample of new table approach
* changing the name from unsupported to N/A
* add describtion of N/A and remove warning
---------
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
* throw error when converting into visual query when parser detects that an aggregation expression node contains a function that contains a binary expression to detect queries that are ambiguously parsed
* Teams: Implement backend sorting
* Add docs
* Make name ordering case insensitive
* lint
* Fix no lowercasing on memberCount
* Add test to double check the filters or correctly OrderBy
* DataSourceAPI: Add adhoc filters to DataQueryRequest and some methods to make it not depend on global templateSrv
* Minor tweaks/fixes
* Renamed to filters
* Fix test
* Log deprecation warning
* I give up
* Initial POC for modified rule expor
* Add rule and group export options to modified export
* Add feature toggle for modifier export
* Rename GrafanaRuleDesigner to ModifyExportRuleForm to identify it easily as a rule form
* Refactor naming and folder for RuleDesigner => ModifyExport
* Don't render more action drop-down button when no more actions are allowed
* Redirect cancel button to alert list view
* Fix modify export page being reloaded correctly without errors
* Fix test
* Protect modify-export route when toggle-feature is not enabled
* Fix css betterer error
* Address pr review coments
---------
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
* Remove second "Legend values" heading
I'm not honestly sure if this is the correct choice but there are two "Legend values" in the current document because the shared page "visualizations/legend-mode.md" has that heading.
I'm assuming because of the use of the shared page, that the information there is preferred.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Prefer alternative text
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* User: Add sort option to user search
* Switch to an approach that uses the dashboard search options
* Cable user sort on the org endpoint
* Alias user table with u in org store
* Add test and cover orgs/:orgID/users/search endpoint
* Add test to userimpl store
* Simplify the store_test with sortopts.ParseSortQueryParam
* Account for PR feedback
* Positive check
* Update docs
* Update docs
* Switch to ErrOrFallback
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* AuthN: Move identity struct to its own file
* IDForwarding: Add IDToken property to usr and identity structs and add GetIDToken to requester interface
* Inject IDService into background services
* IDForwarding: Register post auth hook when feature toggle is enabled
* spelling in error message
* imguploader: fix template for webdav url
Since a few years ago, when loading the config file, the template gets replaced in the expanding
env var phase (see ##25075) and introduced a bug in the webdav public_url config option. This commit
changes the template syntax to be {{file}}. This doesn't get expanded and removed when the config file
is loaded.
* devenv: add a block for a WebDAV server
* Adding alerting as codeowners for webdav
---------
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
* Alerting docs: fixes next and latest link errors
* fixes bracket
* more link fixes
* fixes numbering
* prettier
* Fix build errors, a broken link, and use more appropriate destination for Grafana Cloud OnCall links
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* fixes for jacks feedback
* fixes note
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update set-up-for-high-availability.md
Added a note to Enforce the need to setup separately the Alerting HA, as some customers keep opening tickets complaining about duplicate alerts when setting up Grafana HA.
* Update set-up-for-high-availability.md
Corrected note (alerts instead of wueries)
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
* Update docs/sources/setup-grafana/set-up-for-high-availability.md
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Add comments to indicate which page I believe each alias is intending to redirect
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove difference-old-new redirect from migrating-alerts page since an alternative page exists
The alternative page is `docs/sources/alerting/difference-old-new.md`.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add comment to show intended absolute path redirect
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove `unified-alerting/difference-old-new/` redirect because it already exists in `docs/sources/alerting/difference-old-new.md`.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove `unified-alerting/` alias since the absolute URL already redirects to `/docs/grafana/latest/alerting/`
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix `/docs/grafana/<GRAFANA VERSION>/alerting/migrating-alerts/` redirect
The following example uses `latest` as _`GRAFANA VERSION`_ for simplicity and readability.
The desire is the following redirect:
```
src: /docs/grafana/latest/alerting/migrating-alerts/
dst: /docs/grafana/latest/alerting/set-up/migrating-alerts/
```
`dst` is the Hugo pretty URL for the current page (`docs/sources/alerting/set-up/migrating-alerts/_index.md`).
When constructing Hugo aliases we are working from the page's containing directory and not the page itself.
The path element `.` represents that directory.
For example:
```
page: /docs/grafana/latest/alerting/set-up/migrating-alerts/
alias: ./
dst: /docs/grafana/latest/alerting/set-up/
```
The path element `..` represents the parent directory of the page's containing directory.
For example:
```
page: /docs/grafana/latest/alerting/set-up/migrating-alerts/
alias: ../
dst: /docs/grafana/latest/alerting/
```
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add initial e2e tests for sandboxing
* Add tests for sandbox on
* Add additional sandbox tests
* Move sandbox into various suite
* Test drone setup
* Move variable
* Update drone
* Update plugins path for e2e
* Revert drone changes
* use drone from main
* Use lib.star from main
* Move sandbox test to its own suite
* Expand methods to inject iframes
* Restore e2e script
* Add back change to script
* Update tests for trusted types
* Integrate custom plugins into grafana-server
* Echo for deubging
* add debugging message
* Expand message
* Add extra for ci
* fix path
* Improve start-server logic
* Remove duplicated logic
* Restore file deleted by mistake
* Restore file to main
p
* restore file
* Restore start script
* Update e2e/panels-suite/frontend-sandbox-panel.spec.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* flag vector aggregations containing metric expressions (i.e.`(...)`) containing binary operation expressions with ambiguous error in the UI when switching between code and visual query builders.
Fix unexpected error when creating a new cloudwatch datasource.
Involves a fair amount of refactoring, so if this causes unexpected issues related to region fetching we can turn this off with the cloudwatchNewRegionsHandler feature toggle, although we do not predict it will so we are enabling it to default to true and hope to remove it shortly.
* show row index as percentage in add field from calc transform
* prettier
* add test + modify docs
* show quantile and add percentage unit default. add explanatory tooltip and docs
* fix test
* set unit percent only on quantile mode
* Change naming to percentile
* Rename to As Percentile
* docs mods
* remove API tagging method and authed tagging
* add anonstore
move debug to after cache
change test order
fix issue where mysql trims to second
* add old device cleanup
lint
utc-ize everything
trim whitespace
* remove dangling setting
* Add delete devices
* Move anonymous authnclient to anonimpl
* Add simple post login hook
* move registration of Background Service
cleanup
* add updated_at index
* do not untag device if login err
* add delete device integration test
* Alerting: Don't use a separate collection system for metrics
The state package had a metric collection system that ran every 15s updating the values of the metrics - there is a common pattern for this in the Prometheus ecosystem called "collectors".
I have removed the behaviour of using a time-based interval to "set" the metrics in favour of a set of functions as the "value" that get called at scrape time.
* Following similar changes made to prometheus in #47198, reverse the order of binary operator parameter array, and fix bugs introduced by importing prometheus lezer constants into loki parser
* add unit test asserting buildVisualQueryFromString does not properly parse queries with nested binary operations
* fix onOrIgnoring parsing logic which was always stripping out the value of the matcher when a boolean was found
* style(betterer): add emotion/syntax-preference to betterer rules
* chore(betterer): refresh betterer.results for addition of emotion/syntax-preference
* WIP Dashboard to Scenes: Annotations
* Bump scenes
* Enable annotations and controls
* Betterer
* Update snapshots
* Test fix
* DashboardScene: Prepare annotations support for public dashboards
* Use latest scenes
* issue loki queries in parallel so total query time is only the slowest query rather than the sum of all query times.
* Fix lint
* Add running of queries in parallel behind feature toggle to test the functonality before release
* Add span end
* Move shared logic to separate function
* Add logging and tracing around running of all queries
---------
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
* Elasticsearch: Add tracing do data source
* Fix tests
* Address feedback
* Update pkg/tsdb/elasticsearch/response_parser.go
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Update pkg/tsdb/elasticsearch/response_parser.go
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Track error across both spans
* Add span for decoding of response
* Fix test
* Update setting of errors + fix test
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Add export formats drawer when exporting contact points
* Add 'export by format' drawer in policies (root policy)
* Add test for showing export policies button
* Add tests for Policy.tsx
* Add tests for export functionality in receivers
* Add exporter drawer for receivers
* Fix prettier warnings
* Allow HCL only for alert rules exports
* Add tests for Policies
* Fix tests
* Refactor: Update ExportProviders types for limiting the avaliable export formats when using GrafanaExportDrawer
* Delete unused shouldShowExportOption method and tests
* Use useAlertmanagerAbility hook to check if canReadSecrets
* Update snapshot for useAbilities test
* Fix prettier
* Convert decrypt to boolean
* Fix prettier
* Rename CanReadSecrets action to DecryptSecrets
* Update the string value for DecryptSecrets
* Fix snapshor for useAbilities after renaming the can-read-secrets
* Change way of obtaining external datasources info
* Remove unneeded import
* Create function to getExternalDsAlertManagers in datasource srv
* Remove unused import
* Check if the user has permissions to access the plugin custom page
* If plugin does not have includes we should show the plugin
* chngaes after review, added the test for AppRootPage
* fix the type error
* add more test cases
* test: wrap location pushes to act() calls
* Add no existing role to test
* fix name of the test
* fix not existing role test
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* use grafana/public instead
* parameterise script (still need to fix + run drone locally)
* make drone
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Changes SSE to not always fail all queries when one fails. Now only the query itself, and nodes that depend on it will error.
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Allow creating correlations for provisioned data sources
* Update docs
* Fix linting
* Add missing props
* Add missing props
* Fix linting
* Fix linting
* Clarify error name
* Removed error handling for a non-existing use case
* Create a list of deleted data datasources based on all configs
* Add org_id to correlations
* Add tests
* Allow org_id to be null in case org_id=0 is used
* Create organization to ensure stable id is generated
* Fix linting
* Ensure backwards compatibility
* Add deprecation information
* Update comments
* Override existing datasSource variable so the UID is retrieved correctly
* Migrate correlations indices
* Default org_id when migrating
* Remove redundant default
* Make PK non-nullable
* Post merge fixes
* Separate data sources / correlations provisioning
* Adjust comments
* Store new data sources in spy store so it can be used to test correlations as well
* Fix linting
* Update tests
* Ensure response is closed
* Avoid creating duplicates during provisioning
* Fix updating provisioned column and update tests
* Rename error message
* Fix linting errors
* Fix linting errors and rename variable
* Update test
* Update pkg/services/sqlstore/migrations/correlations_mig.go
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Remove unused error
* Fix lining
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* remove scenario wrapping in cypress tests
* remove more hardcoded logins
* don't forget the various suite!
* make sure we log in for every test
* fix afterAll revert
* stability
* BrowseDashboards: Only remember the most recent expanded folder
* set to null
* cleanup
* only clear removed folder if it was the most recently opened
* comments + variable
* fix: revoked tokens within last hours
adds check for unlimited sessions out of index
adds a function for specifing the hours to look back when revoking users tokens, otherwise we "assume" the clean up takes care of them adds a index for the `user_auth_token` - `revoked_at` for faster queries when using `revoked_at`
* fix: sqllite datetime conversion with unixtimestamps
* fix: postgres dialect
* fix: mysql dialect
* fix: mysql dialect missing closing )
* refactor: delete revoked tokens directly
* fix: tests for sqlite
* AuthToken: Simplify DeleteUserRevokedTokens and add test
* fix: linting newline
* Reset get time after test
* fix: test order by revoked
* fix: order by different db
* ascending
* test with seen at
---------
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* Add necessary fields to edges
* Add information about name and namespace to edge when available
* Use new fields to build search taking into account namespace
* Remove new fields from NodeGraphDataFrameFieldNames, define them locally
* various type fixes
* candlestick panel type fixes
* few more fixes
* some fixes
* more :)
* moar!
* undo change to SilencesFilter
* undo change to configureStore
* Page has been moved to the website repository
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Update .codespellignore to ignore 'Operator Windrose' and fix typo
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Plugins: Dynamic angular patterns: Send If-None-Match to GCOM, store ETag
* Fix SetETag settings the wrong key in underlying kvstore
* Fix wrong type in GCOMResponse.Patterns and wrong content being saved
* Fix ctx passing to GetETag in background job
* Added more ETag tests
* More ETag tests
* Set last updated and log when not modified is returned
* Fix missing in-memory detectors update when etag matches, add comments
* Fix mutex usage
* adding contain:strict to let browsers know the layout of logs panel can be rendered independently
* add new prop to allow LogRow component to contain content
* Alerting docs: adds oncall integration docs and release note
* adds oncall integ to structure
* corrects link
* updates links
* Update docs/sources/alerting/monitor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* updates metamonitoring link
* update to product name
* Update docs/sources/alerting/alerting-rules/manage-contact-points/configure-oncall.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/alerting/alerting-rules/manage-contact-points/configure-oncall.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Modify reference links to ensure that `doc-validator` ignores them
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* breaks up sentence
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* feat: add a `isDeprecated` field to `CatalogPlugin`
* tests: update the tests for merging local & remote
* feat: display a deprecated badge in the plugins list
* feat: show a deprecated warning if the plugin is deprecated
* Fix linting issues
* Review notes
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* refactor: remove `isDeprecated` from the details (it's already in the main CatalogPlugin object)
* refactor: use an enum for remote statuses
---------
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* delete PanelHeader
* PanelHeaderMenuItem is only used in PageHeader
* PanelHeaderCorner only used by PanelEditorTableView
* PanelHeaderMenuTrigger not used anywhere
* PanelHeaderMenuWrapperNew is PanelHeaderMenuWrapper, old one is deleted
* remove newPanelChromeUI from test
* delete feature flag newPanelChromeUI
* PanelHeaderMenuWrapperNew is PanelHeaderMenuWrapper, old one is deleted
* Add new tutorial for alerting with Logs
* Begin formatting the tutorial
* Formatted the tutorial with markdown
* Small edits
* Updating for version 10
* Edits for Grafana 10 & formatting
* Deleted rough draft that I accidentally added.
* Update docs/sources/tutorials/create-alerts-with-logs/index.md
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Update docs/sources/tutorials/create-alerts-with-logs/index.md
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Apply suggestions from code review
Commit suggestions from reviewer
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Updated to use instant query
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Refactor data tab to be usable from scenes
* DashboardScene: Inspect data tab
* Everything seem to work now
* don't change drawer size in this PR
* Remove uncommented code
* Fix layout issues for data actions
* Added comment explaining retry
* add token count
* wip
* user count method for tag reporting
* remove non functioning mysql clientFoundRows check
* Update pkg/services/auth/authtest/testing.go
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* add user ID guard
---------
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
* Handle the response with different field key order
* More unit tests to cover edge cases
* Cover more edge cases
* make it simpler
* Better test inputs
* Update filter tag doc
* Update docs/sources/shared/datasources/tempo-search-traceql.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
---------
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Elasticsearch: Adjust naming in logging according to convention
* Log response parsing per response
* Update
* Fix logging of errors when no response
* Add path to error loggigng
* Update pkg/tsdb/elasticsearch/response_parser.go
* adjust Loki to logging convention
* Fix call resource logging
* Update dataquery
* Update
* Remove redundant logging
* Fix TODO
* Rename action to stage and use variables
* `resp` might be `nil`
* `resp` might be `nil` here as well
* change to `statusCode`
* use correct logger
* also here
* add query information to logging
---------
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
Adapt document language
HTML "lang" attribute should reflect the actual language used in texts. Important for accessibility functions (screen readers), but also usable in CSS.
* Docs alerting: adds insights logs and updates metamonitoring topic
* updates meta monitoring
* Update docs/sources/alerting/monitor/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* removes alias
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
* updates numbering
* adds codeblock
* updates
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: George Robinson <george.robinson@grafana.com>
* Update docs/sources/alerting/monitor/meta-monitoring/_index.md
Co-authored-by: George Robinson <george.robinson@grafana.com>
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Jennifer Villa <jvilla2013@gmail.com>
Co-authored-by: George Robinson <george.robinson@grafana.com>
* fix(plugins): support edge cases where default extension was not added
* fix(plugins): only apply AMD wrapper to AMD format plugins
* refactor(plugins): update regex for codeql warnings
* refactor(plugins): remove check for commented out dependency strings in AMD regex
* test(plugins): add tests for systemjs hook amd detection
* create new feature toggle + start to put stuff behind it
* block move, tidy up interfaces
* fix new/folder actions buttons
* show warning when deleting library panels/alert rules + run i18n:extract
* pseudo
* update unit tests
* pass alert in description
* Add support for MI authentication to MSSQL
This adds support for managed identity authentication for MSSQL managed
instances running in Azure.
Co-authored-by: baldm0mma <jev.forsberg@grafana.com>
* adjustments based on user feedback
* makes prettier
* Apply suggestions from code review
* Update docs/sources/setup-grafana/installation/debian/index.md
* Update docs/sources/setup-grafana/installation/debian/index.md
* don't use legacy AC fallback for frontend access control checks
* extend tests
* more test fixes
* more test fixes
* more test fixes
* final test fix
* team test fix
* finally fix tests
* GA toggleable labels
* Logs integration: update readme with new features
* Build a logs data source: update docs with the new interface
* Plugin docs: update example function signatures and arguments
* Plugin docs: update modifyQuery function names
* Formatting
* Remove character
* Remove `expr` from docs
* Plugin docs: improve code
* Plugin docs: further code improvements
* Reduce restrictions with non-user accounts
* Revert restrictions on anonymous accounts
* Change log level from warning to debug
* Change log messages to upper case
* add configuration options to .ini file and parse them
* updates on config options, add external AM config to the main config struct
* separate external AM configs from general alerting configs, naming
* comments about usage of tenantID in basic auth & not using config options yet
* Adds levitate levignore configuration file to prevent breaking change notifications from expected typescript symbols
* Add root file to codeowners
* Remove unnecessary word boundary
* Exand it to changes and a\dditions too
* Progress
* think this a bad approach
* Scene panel repeats looking good
* Update
* update
* Update
* Use key instead for inspect/view
* refactorings to improve tests
* Update
* More tests
* Update
* added support for key / value variables
* Update
* Fixes
* remove log
* Update
* Removed old gdev templating dashboard and added new and improved one
* Update
* Added repeating panels coded demo
* Update to latest scenes lib
* review feedback fixes
* update
* Sync schema
* Alerting docs: link fixes and a note for expressions
* changes format of note
* fixes extra space
* Update docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* update prometheus link
---------
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* added new config doc
* edits to config doc
* updates to config and index docs
* minor edits to config page
* updates to query editor
* query editor update, added data source keyword
* index file updates
* updates to quey editor, index
* edits to index, configure and query editor docs
* final updates to config and index docs
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/query-editor/index.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/query-editor/index.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/datasources/elasticsearch/configure-elasticsearch-data-source.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* added date histogram options
* suggestions from Chris
* added bucket aggregations options
* bucket aggregation
* updates based on feedback
* removed panels info under logs query
* inspector now query inspector
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* feat: add ability to launch targeted dskit modules in the grafana server CLI command
This commit adds a ModuleServer and ModuleRunner suitable for launching dskit services and updates the server cli command to use this instead of the full Server. The default behavior is unchanged and will launch the full Grafana server. Individual services are targeted by setting target=comma,seperated,list in the config file.
* require dev mode to target dskit modules
* remove unused type
* replace setting.CommandLineArgs w/setting.Cfg; the caller can deal with calling setting.NewCfg
* Update pkg/server/module_server.go
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
---------
Co-authored-by: Serge Zaitsev <serge.zaitsev@grafana.com>
* Add tabs for Insights/Getting Started in home page
* Display panels using the scenes framework
* Hide Insights page under a feature flag
* Add a new panel and improve ASH queries
* Improve panels layout
* Add more panels
* Change datasource UID
* Rename most fired alerts table title
* Show navigation cards on top
* Improve panels
* Add transformation to display link to view alert rule
* Restructure panels
* Fix panels layout
* Fix grid layout in landing tab
* Add transformation to most fired rules table
* Move grafana-specific scenes under dedicated folder
* Add scene with custom datasource that queries an API
* Add scenes panels for more datasources
Not just ASH but including grafanacloud-usage and grafanacloud-prom metrics
* Changes to grafana panels
* Add per rule group scenes with query variables
Also improve existing panels legends/formatting
* Fix lint
* Fix legends for some panels
* Fix lint
* Move files under new alerting home directory
* Refactor transformation in MostFiredInstancesTable scene
* fix lint
* Display panels in collapsable sections
* Improvements to data displayed in several panels
* chore(plugins): bump systemjs to latest version
* refactor(plugins): switch runtime over to use latest systemjs, add typings
* refactor(plugins): use latest systemjs APIs for runtime dependency resolution
* refactor(plugins): return valid urls from backend for latest systemjs import to work
* revert(plugins): remove cfg from assetpath in favour of relative paths
* fix(plugins): useDefault for systemjs deps to solve undefined errors
* feat(plugins): add basic support for loading plugins via CDN
* fix(plugins): load nested plugins with latest systemjs
* feat(plugins): add back ability to transform plugin src for cdns
* feat(plugins): get caching for module.js working, clean up
* refactor(plugin_loader): create buildImportMap fn and more clean up
* refactor(angularapp): use buildImportMap for dependencies and clean up
* test(plugin_loader): fix failing test due to systemjs update
* test(jest): mock systemjs amd extra in tests to prevent it breaking tests
* chore(plugins): remove systemjs module-types extra, already included with system
* fix(plugins): update key for invalidating cached plugins
* fix: move systemjs amd define to another global so monaco can load
* refactor(plugins): clean up cache buster and tests
* chore(plugins): remove debug
* refactor(plugins): move systemjs define to keep global cleaner
* fix(plugins): set useDefault so system modules lodash references dont fail
* feat(plugins): hook systemjs onload so stylesheets are applied to the dom
* refactor(plugins): wrap amd formatted plugins in iife to prevent define collision
* feat(plugins): support system module format for legacy plugins
* test(plugincachebuster): update tests to match latest implementation
* test(plugins-loader): fix up tests post module property change
* fix test
* Update pkg/plugins/manager/loader/assetpath/assetpath.go
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* chore(plugin_loader): remove stray import from merge conflict
* Revert "Update pkg/plugins/manager/loader/assetpath/assetpath.go"
This reverts commit 0df57d1cf20f49c22c93369001c70aae46a97c42.
* fix(plugin_loader): set use default for shared plugin dependencies
* refactor(plugins): use leading slash for Module and BaseUrl
* fix(plugins): fix resolve appending extension to cache query param
* refactor(plugins): align baseurl and module paths
* refactor(plugins): update builtInPlugins keys to match naming convention
* refactor(plugins): minor loader clean up, fix up types
* test(plugins): fix failing tests
* refactor(plugins): rename cache buster systemjs plugin to cache
* refactor(plugins): separate plugin_loader into smaller files
* chore(plugins): clean up plugin_loader types
* chore(plugin_sandbox): fix typescript error
* chore(npm): remove unplug debug and pin systemjs to 6.14.1
* refactor(plugins-cdn): update loaders to use absolute module url from backend
* fix(plugins): escape period in systemjs module regex
* chore(plugins): delete redundant systemjs plugins
* refactor(plugin_loader): move hooks into own file, add types
* test(plugins): add tests for systemjs loader hooks
* chore(plugins): rename systemjshooks file
* chore(plugins): remove redundant systemjs cdn backend code
* fix(plugins): handle loading with config.appSubUrl
* chore(plugins): delete redundant plugin-cdn angular code
* test(plugins): fix failing systemjs test missing pluginsCDNBaseUrl
* refactor(plugins): backend provides base and module properties with AppSubUrl
* fix(plugins): consider AppSubUrl for plugin logos
* fix(plugins): use isHostedOnCDN util when checking for cdn hosted plugins
* add new appSubURL field to config
* refactor relative URL func
* fix path for core app
* refactor asset path input
* fix(plugins): catch errors in loadPluginCss
* feat(plugins-cdn): selectively transform sourceMapURL
* re-add deleted test case
* chore(plugins): bump to latest systemjs@6.14.2
* feat(plugins): add systemjs-cjs-extra for loading commonjs plugins
---------
Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* Changed docs version in link
* Removed reference to dashboard previews docs
* Added back reference and replaced partial URL with relref
* Remove reference to removed docs
* check languageProvider to work with non-indexed metadata
* change loki devenv to work with non-indexed metadata
* trigger ci
* add forced labels after parsers
* add comment
* Update public/app/plugins/datasource/loki/modifyQuery.ts
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Update all use of docs/shared in Grafana to use keyword arguments
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add version inference to remaining Grafana docs/shared usage
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* updates
* make save button always visible but disabled
* only reset toggles if there isn't an error response
* make linters happy
* update post body to match backend
* fix linter again
* be smarter about sorting of empty descriptions
* run prettier
* fix payload
* Re-add disabled to switch
---------
Co-authored-by: Joao Calisto <joao.santana.calisto@gmail.com>
Co-authored-by: Michael Mandrus <michael.mandrus@grafana.com>
* SQLStore: fix issue where postgres would not find the existing org
Grafana using a postgres databases would fail to find the created org when the CreatedAt and UpdatedAt times are (inaccurately) populated. This issue only occurs in postgres, and only shows up when getOrCreateOrg run to create the admin user AND the organization already exists. See https://github.com/grafana/grafana/issues/71781 for more information and a reproduction.
* add an integration test
* Make identity.Requester available at Context
* Clean pkg/services/guardian/guardian.go
* Clean guardian provider and guardian AC
* Clean pkg/api/team.go
* Clean ctxhandler, datasources, plugin and live
* Clean dashboards and guardian
* Implement NewUserDisplayDTOFromRequester
* Change status code numbers for http constants
* Upgrade signature of ngalert services
* log parsing errors instead of throwing error
* removed infra logs
* improve health check
* remove debug and error logs
* feedback
* Update pkg/tsdb/azuremonitor/azuremonitor-resource-handler.go
* Update pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource.go
* fix close body error
* update test
* resource request should return errors
* go linter
* go linter
* [LDAP] Disable removed users on login
* Fix tests
* Add test for user disabling
* Add tests for disabling user behind auth proxy
* Linting.
* Rename setup func
* Account for reviews comments
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
---------
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* accept uid to pubdash creation
* add accesstoken back
* add uid validation unit tests
* unit test for create pubdash with uid
* update err declaration
* remove white space
* add comment
* remove trailing spaces
* remove space
* suggested changes
* baldm0mma/help_button/ force QueryOperationRow to expand on showHelp click
* baldm0mma/help_button/ remove comment
* baldm0mma/help_button/ add comment to onClose()
* baldm0mma/help_button/ remove useToggle for showing help
* baldm0mma/help_button/ remove comment
* baldm0mma/help_button/ update comment
* baldm0mma/help_button/ add full toggle control for parent of QueryOperationRow
* baldm0mma/help_button/ update inline comments
* baldm0mma/help_button/ update annos
* Add angularDeprecationUI feature toggle
* Add angular notice in angular panel header
* Show angular notice for angular datasources
* Show angular notice at the top of the dashboard
* Changed Angular deprecation messages
* Fix angular deprecation alert displayed for new dashboards
* re-generate feature flags
* Removed unnecessary changes
* Add angular deprecation dashboard notice tests
* Add test for angular deprecation panel icon
* Update test suite name
* Moved isAngularDatasourcePlugin to app/features/plugins/angularDeprecation
* Add hasAngularPlugins to DashboardModel
* re-generate feature toggles
* Fix tests
* Fix data source spelling
* Fix typing issues
* Extract plugin type into a separate function
* re-generate feature flags
* reportInteraction on angular dashboard notice dismiss
* re-generate feature flags
* Re-generate feature flags
* lint
* Refactor: move ldap auth registration to OSS
* Update public/app/features/auth-config/types.ts
* fix: permission settingswrite
* fix: types for typescript find()
* fix: linting
* fix: removed types that are implicit
* added text for no available authentication providers
* refactor: make use of ldapenabled instead for minimal changes
* SceneDashboard: Discard changes now works
* To save model works and start at save drawer
* Update
* Added missing file
* Refactorings to keep responsibility more logical
* Refactorings
* Removed file
* Fixed state issue
* Update
* Update
* Dashboard: Save original JSON to state
* Dashboards: Update tests
* Dashboards: Fix original json access
* Dashboard: Save original to the DashboardModel
* Dashboard: Cleanup tests
* Remove original db setter
* fix some event.target as stuff
* segment async story
* segmentinput story
* SegmentSelect
* fixing some tests
* more test fixes
* undo change to SilencesFilter
* Add Dashboard data source guidance
Add guidance about how the special Dashboard data source affects repeating rows
* Update link to repeating rows content
* Fixed broken relrefs and updated wording
* Updated wording for clarity
* Fixed typo
* Make identity.Requester available at Context
* Clean pkg/services/guardian/guardian.go
* Clean guardian provider and guardian AC
* Clean pkg/api/team.go
* Clean ctxhandler, datasources, plugin and live
* Question: what to do with the UserDisplayDTO?
* Clean dashboards and guardian
* Remove identity.Requester from ReqContext
* Implement NewUserDisplayDTOFromRequester
* Fix tests
* Change status code numbers for http constants
* Upgrade signature of ngalert services
* log parsing errors instead of throwing error
* Fix tests and add logs
* linting
* Unify default value
* Use variable to keep default precisions in sync
* Use default precision variable
* Update precision description
* Update defaultPrecisionString and move
* Be more specific in naming of variabkle
* Revert "Merge remote-tracking branch 'origin' into ivana/es-precision-default-value"
This reverts commit 599f236a77, reversing
changes made to 6742be0c6d.
* Revert wrong merge
* Revert wrong merge with turned off lefthook
* Metrics summary
* Update query
* Remove colors
* Update states
* Add group by into its own component
* Add group by to search and traceql tabs
* Add spacing for group by
* Update span kind values
* Update span status code values
* Update query based on target + group by
* Cleanup
* Only add targetQuery if not empty
* Add kind=server to table
* Update groupBy query logic
* Add feature toggle
* Use feature toggle
* Self review
* Update target query
* Make gen-cue
* Tweak query
* Update states
* useRef for onChange
* Fix for steaming in search tab
* Add loading state tests
* metricsSummary tests
* Datasource tests
* Review updates
* Update aria-label
* Update test
* Simplify response state
* More manual testing and feedback from sync call
* Prettier and fix test
* Remove group by component from traceql tab
* Cleanup, tests, error messages
* Add feature tracking
- The util/converter Prometheus response json parse was not checking for errors while parsing. It now does. In particular, if `[dataproxy]/response_limit` is set in Grafana's config, it will now recognize the limit error.
- Fixes#73747
- Adds `jsonitere` package, which wraps json-iterator/go's Iterator's Methods with methods that return errors, so errcheck linting can be relied upon
- Impact:
- If something was sending malformed JSON to the prometheus or loki datasources, the previous code might have accepted that and partially processed the data
- Before there may have been partial data with no error, where as no there may be errors but they will have no partial results, just the error.
* Plugins: Dynamic angular patterns: Return error for != 2xx status code
* Add test for status code check
* Plugins: Dynamic angular patterns: Add random skew to periocic GCOM api calls
* Add test for random skew
* Changed randomSkew signature, ensure it is always positive
* experiment: attempt to tag only UI devices
* lint frontend
* use await
* use shorthand check
* do not assume build info exists
* do not assume build info exists
* Apply suggestions from code review
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
---------
Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
* move truncating to helper function, to start of array
* Prometheus: Add 1000 result warning as sticky footer in metric select (#73649)
add 1000 result warning as sticky footer in metric select
* Prometheus: Only show truncated results warning if results have been truncated (#73650)
only show truncated warning if results have been truncated
* add test to metric select
---------
Co-authored-by: Brendan O'Handley <brendan.ohandley@grafana.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
* Updated toggletip to use strategy fixed, added tests and temporary story so it can easily be checked
* Added FocusScope restoreFocus and appropriate tests to toggletip
* Open toggletip in test for making sure focus remains when using escape
* Add aria-expanded to toggletip toggle child
* Added to temp story for Toggletip
* Remove focusScope for toggletip and handle focus restoration manually
* Remove toggletip temp story and add toggletip long content story
---------
Co-authored-by: joshhunt <josh@trtr.co>
`grafana-ml` was added to the `availableIconsIndex` object in
<commit> but no corresponding SVG was added, nor was the Icon
bundle updated.
This commit adds the real Grafana ML icon as gf-ml.svg, renames
the key in the availableIconsIndex accordingly, and updates the
Icon bundle using the documented script. Note that the name
was changed to `gf-ml` rather than `grafana-ml` because otherwise
the wrong directory is used (unicons rather than custom).
The main motivation for adding this is because plugin extensions
need to specify a valid icon name, and we want to use the Grafana ML
icon for our extensions, which requires the icon to be part of
core Grafana.
* InfluxDB/QueryEditor: Add delete buttons to measurement, part and tag sections
The diff provides an additional "delete" button to measurement section, part list section and tags section in the influxdb datasource editor. This improves user experience by allowing users to delete measurements, parts and tags directly from the user interface. The commit also slightly refactors the options generation for these sections, removing the "-- remove filter --" option as it becomes redundant with the new delete button.
* InfluxDB/QueryEditor: Replace Button with AccessoryButton
Changed the Button components to AccessoryButton from the '@grafana/experimental' package, used for the delete functionality in data source components for influxdb query editor. The AccessoryButton is more visually consistent with our current Grafana UI aesthetic and provides better user experience. The change was implemented in FromSection.tsx, PartListSection.tsx, and TagsSection.tsx files.
* Update public/app/plugins/datasource/influxdb/components/editor/query/influxql/visual/FromSection.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* Update public/app/plugins/datasource/influxdb/components/editor/query/influxql/visual/PartListSection.tsx
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
---------
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
* RBAC: remove unnessisary guardian construction and update tests
* RBAC: remove usage of guardian in UpdateFolderPermissions and refactor test
* RBAC: remove usage of guardian in update and get permissions for dashboards
* Improve naming; fix tests
* Pass countWarning to titleItems
* Center warning text
* Revert variable name
* Switch from arrow function to direct assignment
* Add ability to make component controlled
* Replace remaining isOpen with collapsed
* Fix test; update story and docs
* Add test; add uncontrolled functionality
* Add org_id to correlations
* Add tests
* Allow org_id to be null in case org_id=0 is used
* Create organization to ensure stable id is generated
* Fix linting
* Ensure backwards compatibility
* Add deprecation information
* Migrate correlations indices
* Default org_id when migrating
* Remove redundant default
* Make PK non-nullable
* Kinds: Reconcile verify-kinds.go with kind-registry changes
* Remove handwritten value specific for manual test
* Update grafana/kindsys dep
* Revert "Update grafana/kindsys dep"
This reverts commit e437e1879e.
* Fix generated code
* disable a feature toggle that is on by default
We document how to enable a feature toggle, but not how to disable one. This adds the config setting to disable a toggle that is on by default.
* remove "alpha"
Alpha features are not the only ones that can be enabled, and we don't use the term "alpha" anymore.
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* makes prettier
---------
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Chris Moyer <chris.moyer@grafana.com>
Update config editor
- Use Field instead of InlineField
- Make use of new ConfigSection structural components
- Add DataSourceDescription component
- Add secureSocksProxy to types
* set panel z-index to a descending number once they are ordered before they are rendered
* set styling inside grid item
* fix unresponsive RGL when style is overwritten entirely
Execute all queries to the same datasource in a single request.
Uses the query index and the graph node ID index, and then a stable dependency graph sort based on node input index number in attempt to keep the original query order intact.
* move access control api to SignedInUser interface
* remove unused code
* add logic for reading perms from a specific org
* move the specific org logic to org_user.go
* add a comment
---------
Co-authored-by: IevaVasiljeva <ieva.vasiljeva@grafana.com>
* add `id` field to elasticsearch
* add comment
* slightly better perf
* only add `id` to logs frames
* only add `id` for logs responses
* concat `index` and `id`
* change snapshot generation to false
* use better loop
* fix tests
* moved up
* Authn: Add interface for external identity sync
This interface is implemented by authnimpl.Service and just triggers PostAuthHooks and skipping last seen update by default
* Authn: Add SyncIdentity to fake and add a new mock
This commit updates the screenshot package to make From and To
optional. It also updates the docs for ScreenshotOptions so
this behavior is well documented.
* Logs: Hide filters in log details if the data source doesn't support them
* Logs Container: use logsQueries prop
* Log details: add filters visibility test
* remove unused datasource pages
* move useDataSourceSettingsNav from datasources to connections
without any modification in the code yet
The reason for this is that its only usage is in this file, so we are
going to merge it with the other useDataSourceSettingsNav hook in the
next commit.
* merge two useDataSourceSettingsNav's
and rename consts and remove duplicated calls
* simplify useDataSourceSettingsNav
* Fix parsing absolute range
* Silence warning issued by moment js
* Introduce URLRangeValue to enforce better type-checking
* Fix unit tests
* Allow not passing range to generate ExploreUrl
* Use updated time range format in a test
* Allow empty object to be passed as a data link for backward compatibility
* Update mocks
* Post-merge fixes
* Simplify checking if range is passed as an empty object
* Update docs
* Switch from husky+precommit to lefthook
Migrate from husky/precommit to lefthook
h
old husky precommit
lefthook so far
remove husky folder
switch to new lefthook package
Add postinstall script to clean up after husky
preinstall to remove husky config
package.json
package.json
package.json
script
v
Reduce lefthook output
Cleanup
testing
reduce output
testing betterer
testing betterer
testing betterer
testing betterer
testing betterer
testing betterer
testing betterer
skip skipping execution info
small cleanup
remove comment from testing
clean up old husky hooks in .git/hooks path
run scripts in parallel
update codeowners
don't auto-install lefthook
install lefthook with make command
fix yarn checksum
* update codeowners
* don't use source because it isn't available in ubuntu/debian's /bin/sh
* Ensure lefthook commits files fixed by precommit hooks
* add comment to lefthook.rc explaining what it does
* add i18n:pseudo precommit
* Don't create .husky/safe-to-delete file anymore
* cleanup old lint-staged config
* contribute docs
* update lefthook to 1.4.8
* Move frontend encouragement docs
* rewrite husky cleanup script in bash so we can run it with make
* Make old husky precommit script reject commits until husky is removed
* log precommit warning for everyone
* fix package.json
* run lefthook hooks from old husky hook
* run lefthook hooks from old husky hook
* comments
* codeowners
* codeowners
* Update index.md
The word `Configuration` was used to describe an action for getting started, when the actual UI has the word `Administration` and not Configuration. Updated the docs to reflect the actual environment created.
* Update index.md
Updated the tutorial to match the current UI options
* Made copy edits for styling and consistency with Cloud fundamentals tutorial
Made some copy edits to match our style guide and to make this tutorial a bit more consistent with the Cloud version. Also added the step for updating the legend back to the build dashboards section.
* Ran linter
* Edited text to match updated UI
Made edits to match UI behaviour as well as some further style edits.
* Made final copy edits
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
* Add tests for service accounts metrics usage
* Add service account store implementation
* Add service account service implementation
* Add tests for org metrics usage
* Add org implementation
* Add service implementation
* add metrics and tracing to state manager
* propagate tracer to state manager
* add scheduler metrics
* fix backtesting
* add test for state metrics
* remove StateUpdateCount
* update docs
* metrics can be null
* add tracer to new tests
* make discord url secure
* support migrating unsecure settings to secure settings
* Update public/app/features/alerting/unified/utils/receiver-form.ts
Co-authored-by: William Wernert <william.wernert@grafana.com>
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: William Wernert <william.wernert@grafana.com>
* added what's new 10.1
* created new upgrade guide
* updated index file to 10.1
* updated whats new index file
* Dataviz: add disconnect values whats new content
* Docs: Add Configure refresh token handling separately for OAuth providers to what's new 10.1 (#71648)
* Add what s new section for configuring refresh token handling
---------
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Whats new: Add step editor and copy link (#71964)
* Add step editor and copu link to the whats new
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Add flamegraph section
* Added TraceQL response streaming section
* Updated tempo-streaming video link
* What's new: Add Loki, Elasticsearch, and Log changes (#72101)
* What's new: Add Loki, Elasticsearch, and Log changes
* Remove Lucene parser mention
* added contributor name to each entry
* Alerting: adds whats new entries and structure
* Elasticsearch: logs sample in explore
* Add span filtering is GA to whats new doc
* Transformations redesign and metrics explorer
* ran prettier
* What's new 10.1: Recategorize contents and add missing data (#72199)
What's new: recategorize content and add missing data
* Revert whats new refresh token handling (#72191)
Revert refresh token handling
* docs: What’s New & Upgrade Guide 10.1 AuthNZ (#72000)
* add what's new authnz
* Update docs/sources/upgrade-guide/upgrade-v10.1/index.md
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Alerting: screenshots and updates
* Alerting: delete couple of entries
* Docs: Add Visualizations and Widgets Split to what's new 10.1 (#72009)
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1 (#72221)
* Docs: Add CloudWatch Logs Monaco query editor to what's new in 10.1
* Add guidance for Cloud users to enable the feature
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* Alerting: adds notification policy entry
* Add Plugins/Angular deprecation sections to What's new 10.1
* Add Plugins/ds uid deprecation section to What's new 10.1
* Alerting: adds label color entry
* Adds whats new features for AWS Datasources
* Update what's new 10.1 angular deprecation section
* Docs: what's new for preventing manual role updates (#72279)
* what's new for disabling manual role updates
* add a reference to the feature toggle
* fix spelling
* Apply suggestions from code review
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* PR feedback
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* wording fixes
* whatsnew-10.1.0: add logs-context info (#72240)
* whatsnew-10.1.0: add logs-context info
* explain what log context is
* improved description
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* better phrasing
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Subfolders: folder picker
* Influxdb backend mode
* Dataviz: heatmap datalink support
* DataViz: geomap new beta network layer
* Dataviz: update geomap network layer image
* Dataviz: update availability wording to public preview from experimental for geomap network layer
* Docs: Add Activate draft reports section to what's new in 10.1
* Docs: Add format time transformation to what's new
* Docs: Adjust format time transformation language
* Explore: Add what's new about panel plugins (#72338)
* Add what's new about panel plugins
* Update docs/sources/whatsnew/whats-new-in-v10-1.md
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
* add tabular outer join to whats new
* Update traceql streaming section
* Added new tempo search section
* Update traceql streaming video name
* docs: what's new 10.1.0, easier to use elastic query editor (#72513)
* docs: elasticsearch: new mode selector
* improved text
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
---------
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* mitch edits
* Added product labels
* Made general copy edits
* Removed editing notes
* Fixed broken relref
* Fixed typo and added contributor name
* Added contributor name
* Made minor copy edits
* Update format time transformation docs
* A small edit to the role list
* Added missing information and committed copy edits
* Move Reports item to under Dashboards & visualizations
* Changed heading level of Activate draft reports
* Fixed wording of Choose which fields to display in log line entry
* Made edits to Logs improved performance entry
* Added availability for Transformations redesign
* Added availability for Join by fields
* Made final copy edits
* Removed Loki query splitting
---------
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: André Pereira <adrapereira@gmail.com>
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Gareth Dawson <gwdawson.work@gmail.com>
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
Co-authored-by: catherineymgui <catherine.gui@grafana.com>
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Alexa V <239999+axelavargas@users.noreply.github.com>
Co-authored-by: Kevin Yu <kevinwcyu@users.noreply.github.com>
Co-authored-by: Giuseppe Guerra <giuseppe@guerra.in>
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
Co-authored-by: Zsofia <zsofia.komaromi@gmail.com>
Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
Co-authored-by: Robert Horvath <robert.horvath@grafana.com>
Co-authored-by: Kyle Cunningham <kyle@codeincarnate.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Isabel Matwawana <isabel.matwawana@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
* Add nested option to DataFrame. Refactor Table to use nested dataframes for sub-tables
* Use nested frames for TraceQL response
* debugging
* Fix cell text and table position
* Update getItemSize
* noHeader size
* Update sub table renderer
* Update table container height
* Cleanup and fix RawPrometheusContainer height
* Update resultTransformer and docker script
* Updates to TableContainer, resultTransformer after merge
* Fixes for table pagination in dashboards
* Cell height and show footer enhancement/fix
* Sub table links
* Update RawPrometheusContainer
* Remove console log
* Update tests
* Update storybook
* Remove Tempo demo
* Store nested data in single field via its values
* Move nested prop into custom
* Tempo demo
* Add field type & update incorrect logic
* Update docker compose image for Tempo
* Update packages/grafana-data/src/field/fieldOverrides.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Simplify logic for getting nestedFrames and rendering sub tables
* Update docs for table
* Update nested table bg color
* Lighten nested table bg color
* Renames
* Migrate frames using parentRowIndex and add deprecation notice
* Update title
* Align expander icon size between Table and interactive table
* Table: Refactor out the expanded rows bits
* fix spacing
* Add line along left side for expanded rows
* Disable hover row background when expanded
---------
Co-authored-by: André Pereira <adrapereira@gmail.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* wip
* scope active user to 1 org
* remove TODOs
* add render auth namespace
* import cycle fix
* make condition more readable
* convert Evaluate to user Requester
* only use active OrgID for SearchUserPermissions
* add cache key to interface definition
* change final SignedInUsers to interface
* fix api key managed roles fetch
* fix anon auth id parsing
* Update pkg/services/accesscontrol/acimpl/accesscontrol.go
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Dashboards: Fix tests when authn broker is enabled.
StarService was not configured for tests, the call was guarded by !c.IsSignedIn
* Change default to be anon user to match expectations from tests
* OAuth: rewrite tests to work with authn.Service
* Setup template renderer by default
* Extract cookie options from cfg instead of relying on global variables
* Fix test to work with authn service
* Middleware: rewrite auth tests
* Remvoe session cookie if we cannot refresh access token
A partner complained in the name of a customer. They have 6k datasources and it took them some time to figure out why they only had 5k coming back.
This commit add a warning for this edge case, content is pretty clear.
* introduce a new action "alert.provisioning.secrets:read" and role "fixed:alerting.provisioning.secrets:reader"
* update alerting API authorization layer to let the user read provisioning with the new action
* let new action use decrypt flag
* add action and role to docs
* Make it clear that MariaDB is also supported as datasource
MariaDB is now the default relational DB on lots of Linux distribution,
it's important to make it clear that it is perfectly supported.
* Fix 404 and make MySQL docs URL more robust
And lint with prettier.
* Review from lwandz13
Use the same code path to interpolate both metric variables and
filter/tag variables when the data source is accessed either directly or
via the expressions datasource.
partial fix for #48141 (opentsdb datasource only)
Signed-off-by: Uri Okrent <uokrent@gmail.com>
* Auth: prevent auto_login redirect if user is already authenticated
Before attempting an auto-login for OAuth, verifies if current context has already been
authenticated.
Fixes: #72476
Co-authored-by: Karl Persson <kalle.persson92@gmail.com>
* calculate cacheID instead of literals
* use mocked clocks
* advance clocks with the eval results
* use clearer timestamp aliases
* make expected state labels be more clear to read
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
* sets skip_org_role_sync to true for google
* add google skiporgrolesync and sets to true always
* add field
* Update docs/sources/setup-grafana/configure-security/configure-authentication/google/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add AKS to words
* script back to mina
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
This doc fragment is included on multiple pages including this one: https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
the only flaw is it's missing "sudo". Modern linux practice suggests using sudo for all administrative edits like this, and this change reinforces parallel structure in the target docs page. There may potentially be some other context this fragment is used in where sudo isn't appropriate, but this makes it easier to copy/paste the command and have it work on modern linuxes.
This is preparative work for extending the grafana server cli command to target individual dskit modules that seemed worth breaking into this smaller PR. This moves the CLI flags and various reusable chunks of code into variables and methods.
* add termination stage
* uid -> pluginID (for now)
* also fix fakes
* add simple test
* Fix logger name
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* inline stop func call
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
---------
Co-authored-by: Giuseppe Guerra <giuseppe.guerra@grafana.com>
* Search: Attempt to support folderUID filter
* Search: Use folder UID instead of ID for searching folders
* Update swagger
* Fix JSON property casing
* Add integration test
* Remove redundant query condition
* Fix frontend test
* Fix listing dashboards in General/root
* Add support for fetching top level folders
using `folderUIDs=` (empty string) query parameter
* Add deprecation notice
* Send uid of general in sql.ts
* Use 'general' for query folderUIDs query param for fetching folder
* Add tests
* Fix FolderUIDFilter
---------
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* update copy of ConnectionsRedirectNotice
The Connections page is not that new anymore
* extend NavLandingPage with optional header
* show ConnectionsRedirectNotice on Admin landing page
* make ConnectionsRedirectNotice dismissable
* make ConnectionsRedirectNotice informational
* activeTab for public dashboard matches others
* add analytics action for going through categories of sharing modal
* add analytics for going through actions of any cateogry in sharing modal
* change 'tab' to 'category'; add key 'sharing_category' to actions for easier distinction
* sharedCategory sounds like a category is shared; changed naming to shareDashboardType
* remove hard-coded analytic event name
* wrap the reportInteraction call for all actions when sharing dashboard
---------
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>
* add missing cfg for skiporgrolesync
* add google skiporgrolesync
* removed google skip
* update docs to reflect google
* remove docs update for google
* Update _index.md
Adding popular open-source proxy options so users don't have to do further research if they don't want to
* ran Prettier
* Update docs/sources/setup-grafana/configure-security/_index.md
Co-authored-by: Ieva <vasiljeva.ieva@gmail.com>
---------
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <vasiljeva.ieva@gmail.com>
* Do not update statistics at service collector startup
* Configurable collector interval
* Introduce initial random delay
* Prevent reporting metrics until the stats have been collected
* Apply suggestion from code review
* Add influxdbSqlSupport feature toggle
* Add SQL option to the config page
* Add SQL backend
* Add metadata support in config page
* Implement unified querying
* Fix healthcheck query
* fsql tests
* secure grpc by default
* code cleanup
* Query handing for sql mode
* Implement a placeholder sql editor
* Fix query language dropdown
* drop in SQL editor
* switch to use rawSql, get sql editor working
* fix healthcheck
* WIP
* memoize component to stop unwanted rerender onQuery
* dont reinit datasource on each render of the editor
* remove useless memo
* clean up
* Fix the link
* Alpha state warning
* Remove console.logs
* update model for fsql
* remove unused
---------
Co-authored-by: Galen <galen.kistler@grafana.com>
* Add tests
* Fix query for nested folders with zero self-contained permissions
* Fix query behind permissionsFilterRemoveSubquery flag
* Apply suggestion from code review
* clear selection state when indeterminate
* ensure search state is properly cleared when toggling the indeterminate checkbox
* select everything in view
* Add feature flag
* Introduce interface and dummy implementation
* Add tests for the new filter
* accessControlDashboardPermissionFilterNoFolderSubquery implementation
* join only if it's necessary
* force ordering for tests
* Temporarily enable new query for benchmarks
The existing link will take new users to the Data Source Management page which falls under that administration section and is perhaps more advanced that we want for a new user. The updated link takes new users to what I think was the intended "Data Sources" page.
* lock down server admin role updates on the frontend if the user is externally synced
* add tests
* lock Grafana Server admin role updates from the backend
* rename variables
* check that the user has auth info
* add LDAP to providers for which Grafana Server admin role can be synced
* linting
* UI update of providercards
* fixed the naming of the providercard and margin to top
* fix: add settings to the AuthConfigPage for the provider card to get the displayname
* removes the ldap name check
* refactor to account for the configured/enabled sitation and removed the LDAP name check
* added type to authstatus instead
* remove the settings from initiation of the component
* added name to the type
* removed the configAuth
* do not export all types
* add back types
* Replacing the regex based approach and integrating the lezer-traceql grammar in the editor
* Added some tests
* Added path to capture error in filter root
* Tests are great and help fix issues 👍
* Fix autocomplete tests
* WIP: Show annotations markers in TimeSeries panel when using Loki as alert state history
* WIP changes
* Fix converting log records to data frame for panel
* Move fetching alert state history with Loki to the PannelQueryRunner to keep the panel flow
* use dasboardUID and panelUID for requesting Loki ash
* fix wrong prettier change
* Only request loki ash when having alertstate
* Use panelID as param in history query
* Refactor: move getRuleHistoryRecordsForPanel and remove filtering code as is not used
* Adress PR review comments
* Add try catch for ash request
* Add tests for updatePanelDataWithASHFromLoki method
* Address PR review suggestions
* review suggestion
* Add test for logRecordsToDataFrameForPanel method
* pr Review nit suggestion
* Dont show toast messages from Loki request
* add folder data migration, fix unique index
* fix unique index
* pass a fake store in tests
* pass store into other providers in tests
* and now with alerting!
* fixed: added id token expiry check to oauth token sync
* use go-jose and id token in cache
* Update pkg/services/authn/authnimpl/sync/oauth_token_sync.go
* refactored getOAuthTokenCacheTTL and added unit tests
* Small changes to oauth_token_sync
* Remove unnecessary contexthandler changes
---------
Co-authored-by: linoman <2051016+linoman@users.noreply.github.com>
Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com>
* Allow overriding internal data link supplier
* Remove SplitOpen and getFieldLinksForExplore dependencies
* Fix checking if row index is provided
* Fix unit test
* Add a comment
* Mark SplitOpen as deprecated
* Use Panel Context to provide internal data link supplier
* Update packages/grafana-ui/src/components/PanelChrome/PanelContext.ts
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
* Update packages/grafana-data/src/utils/dataLinks.ts
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
* Add missing eventsScope
* Fix infinite render loops
* Rename internal data link supplier to data link post processor
* Update packages/grafana-data/src/field/fieldOverrides.ts
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
---------
Co-authored-by: Haris Rozajac <58232930+harisrozajac@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* updated screenshots in explore index page
* add advanced data picker option to jaeger, tempo, and zipkin data source docs
* Revert changes to data source files
Reverting changes to data source files to maintain scope of this PR as just updating Explore. Changes to other areas where DS picker has been updated will be addressed on another PR when that scope has been decided.
* Fixed indentation and made advanced ds picker language more robust
* Chore: Turn validate-modfile failure into blocking drone step
* test to see if removal of dependency owner causes validate-modfile to fail and block pipeline
* revert change
* Make RGM the main pipeline for prerelease
* Use grafana/grafana-build:dev-bd41660
* Use grafana/grafana-build:dev-fda506a
* Fix destination url
* Update vault secrets
* Move bucket path to environment
* Use grafana/grafana-build:dev-2f36afa
* Revert to grafana/grafana-build:main
* Add repo to rgm_main trigger
* API: fix docs of users API (#62365)
Behaviour described in the issue is correct.
So with this we add comment explaining this behaviour.
Resolves: #62365
* fixing formating
* Update docs/sources/developers/http_api/user.md
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
---------
Co-authored-by: Eve Meelan <81647476+Eve832@users.noreply.github.com>
* Lucene: add dependency
* ModifyQuery: use Lucene parser to detect key:values in queries
* ModifyQuery: use Lucene parser to remove filters
* Remove test code
* Modify query: switch to recursive implementation
* Modify query: implement remove filter
* Update query normalizing function
* FlagElasticToggleableFilters: remove feature flag
* Remove unused feature flag from test
* Elasticsearch: escape quotes in filter values
* RBAC: Make the SplitScope migration concurrent
* Benchmark multiple alternatives: (updates in a loop, batch update, concurrent batch update)
* Only keep batching since mysql 5.7 does not seem to support concurrent batching
* Update pkg/services/accesscontrol/migrator/migrator.go
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
---------
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Collapsible PanelChrome v1
* Enable either Collapsible or HoverHeader modes
* Clean up
* Update story
* Add test
* Revert to 'strict'
* Use useToggle
* Allow collapsibility when title is not passed
* Fix semantics and ellipsis wrapping
* Improve accessibility
* Add documentation
"Release: Updated versions in package to 10.2.0-pre"
Co-authored-by: grafana-delivery-bot[bot] <132647405+grafana-delivery-bot[bot]@users.noreply.github.com>
2023-07-27 09:21:29 +03:00
4534 changed files with 181611 additions and 134890 deletions
@@ -1294,7 +1294,7 @@ This option to group query variable values into groups by tags has been an exper
**Deprecation warnings**
- Scripted dashboards is now deprecated. The feature is not removed but will be in a future release. We hope to address the underlying requirement of dynamic dashboards in a different way. [#24059](https://github.com/grafana/grafana/issues/24059)
- The unofficial first version of backend plugins together with usage of [grafana/grafana-plugin-model](https://github.com/grafana/grafana-plugin-model) is now deprecated and support for that will be removed in a future release. Please refer to [backend plugins documentation](/developers/plugin-tools/introduction/backend-plugins) for information about the new officially supported backend plugins.
- The unofficial first version of backend plugins together with usage of [grafana/grafana-plugin-model](https://github.com/grafana/grafana-plugin-model) is now deprecated and support for that will be removed in a future release. Please refer to [backend plugins documentation](/developers/plugin-tools) for information about the new officially supported backend plugins.
// need to ignore emotion's `css` prop, see https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md#rule-options
description: 'Needs to match, exactly, the name of a milestone. The version to be released please respect: major.minor.patch, major.minor.patch-preview or major.minor.patch-preview<number> format. example:7.4.3,7.4.3-preview or 7.4.3-preview1'
{pkg="io/ioutil",desc="Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details."},
{pkg="gopkg.in/yaml.v2",desc="Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available"},
{pkg="github.com/pkg/errors",desc="Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library."},
{pkg="github.com/xorcare/pointer",desc="Use pkg/util.Pointer instead, which is a generic one-liner alternative"},
{pkg="github.com/gofrs/uuid",desc="Use github.com/google/uuid instead, which we already depend on."},
{pkg="io/ioutil",desc="Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details."},
{pkg="gopkg.in/yaml.v2",desc="Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available"},
{pkg="github.com/pkg/errors",desc="Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library."},
{pkg="github.com/xorcare/pointer",desc="Use pkg/util.Pointer instead, which is a generic one-liner alternative"},
{pkg="github.com/gofrs/uuid",desc="Use github.com/google/uuid instead, which we already depend on."},
]
[linters-settings.depguard.rules.coreplugins]
deny=[
{pkg="github.com/grafana/grafana/pkg/",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/api",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/cmd",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/cuectx",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/extensions",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/kinds",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/middleware",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/modules",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/registry",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/services",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/build",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/codegen",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/events",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/ifaces",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/kindsysreport",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/mocks",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/plugins",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/setting",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/util",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/bus",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/components",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/expr",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/infra",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/login",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/models",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/server",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/tests",desc="Core plugins are not allowed to depend on Grafana core packages"},
{pkg="github.com/grafana/grafana/pkg/web",desc="Core plugins are not allowed to depend on Grafana core packages"},
- **Auth:** Fix email verification bypass when using basic authentication. [#83492](https://github.com/grafana/grafana/issues/83492)
<!-- 10.1.8 END -->
<!-- 10.1.7 START -->
# 10.1.7 (2024-01-29)
### Bug fixes
- **Annotations:** Split cleanup into separate queries and deletes to avoid deadlocks on MySQL. [#80678](https://github.com/grafana/grafana/issues/80678), [@alexweav](https://github.com/alexweav)
<!-- 10.1.7 END -->
<!-- 10.1.6 START -->
# 10.1.6 (2023-12-18)
# 10.2.0 (2023-10-24)
### Features and enhancements
- **Alerting:** Attempt to retry retryable errors. [#79211](https://github.com/grafana/grafana/issues/79211), [@gotjosh](https://github.com/gotjosh)
- **Unified Alerting:** Set `max_attempts` to 1 by default. [#79102](https://github.com/grafana/grafana/issues/79102), [@gotjosh](https://github.com/gotjosh)
- **Canvas:** Promote Button to beta. [#76582](https://github.com/grafana/grafana/issues/76582), [@adela-almasan](https://github.com/adela-almasan)
- **BarChart:** Improve data links UX in tooltip. [#76514](https://github.com/grafana/grafana/issues/76514), [@torkelo](https://github.com/torkelo)
- **PluginExtensions:** Make sure to pass default timeZone in context. [#76513](https://github.com/grafana/grafana/issues/76513), [@mckn](https://github.com/mckn)
- **PublicDashboards:** Enable feature by default for GA and remove public preview text. [#76484](https://github.com/grafana/grafana/issues/76484), [@juanicabanas](https://github.com/juanicabanas)
- **Alerting:** Add support for msteams contact point in external Alertmanagers. [#76392](https://github.com/grafana/grafana/issues/76392), [@alexweav](https://github.com/alexweav)
- **Explore:** Use short units in graphs. [#76358](https://github.com/grafana/grafana/issues/76358), [@Elfo404](https://github.com/Elfo404)
- **Auth:** Enable `None` role for 10.2. [#76343](https://github.com/grafana/grafana/issues/76343), [@eleijonmarck](https://github.com/eleijonmarck)
- **Transformations:** Add context to transformation editor. [#76317](https://github.com/grafana/grafana/issues/76317), [@mdvictor](https://github.com/mdvictor)
- **Transformations:** Add support for setting timezone in Format time and Convert field type transformations. [#76316](https://github.com/grafana/grafana/issues/76316), [@codeincarnate](https://github.com/codeincarnate)
- **Playlist:** Add create+update timestamps to the database. [#76295](https://github.com/grafana/grafana/issues/76295), [@ryantxu](https://github.com/ryantxu)
- **Live:** Allow setting the engine password. [#76289](https://github.com/grafana/grafana/issues/76289), [@jcalisto](https://github.com/jcalisto)
- **Auth:** Add support for role mapping and allowed groups in Google OIDC. [#76266](https://github.com/grafana/grafana/issues/76266), [@Jguer](https://github.com/Jguer)
- **Alerting:** Add provenance field to /api/v1/provisioning/alert-rules. [#76252](https://github.com/grafana/grafana/issues/76252), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **PluginExtensions:** Made it possible to control modal size from extension. [#76232](https://github.com/grafana/grafana/issues/76232), [@mckn](https://github.com/mckn)
- **Loki:** Change run query button text based on number of queries. [#76196](https://github.com/grafana/grafana/issues/76196), [@ivanahuckova](https://github.com/ivanahuckova)
- **CloudWatch Logs:** Add pattern command to syntax. [#76152](https://github.com/grafana/grafana/issues/76152), [@iwysiu](https://github.com/iwysiu)
- **Flamegraph:** Make color by package the default color mode. [#76137](https://github.com/grafana/grafana/issues/76137), [@aocenas](https://github.com/aocenas)
- **Service Accounts:** Enable adding folder, dashboard and data source permissions to service accounts. [#76133](https://github.com/grafana/grafana/issues/76133), [@Jguer](https://github.com/Jguer)
- **Transformations:** Add variable support to join by field. [#76056](https://github.com/grafana/grafana/issues/76056), [@oscarkilhed](https://github.com/oscarkilhed)
- **Alerting:** Add rules export on a folder level. [#76016](https://github.com/grafana/grafana/issues/76016), [@konrad147](https://github.com/konrad147)
- **PanelConfig:** Add option to calculate min/max per field instead of using the global min/max in the data frame. [#75952](https://github.com/grafana/grafana/issues/75952), [@oscarkilhed](https://github.com/oscarkilhed)
- **Transformations:** Add unary operations to Add field from calculation. [#75946](https://github.com/grafana/grafana/issues/75946), [@mdvictor](https://github.com/mdvictor)
- **Bar Gauge:** Add field name placement option. [#75932](https://github.com/grafana/grafana/issues/75932), [@nmarrs](https://github.com/nmarrs)
- **Alerting:** Export of contact points to HCL. [#75849](https://github.com/grafana/grafana/issues/75849), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **BrowseDashboards:** Enable new Browse Dashboards UI by default. [#75822](https://github.com/grafana/grafana/issues/75822), [@joshhunt](https://github.com/joshhunt)
- **Alerting:** Use new endpoints in the Modify Export. [#75796](https://github.com/grafana/grafana/issues/75796), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Transformations:** Rename "Transform" tab to "Transform data". [#75757](https://github.com/grafana/grafana/issues/75757), [@codeincarnate](https://github.com/codeincarnate)
- **Loki:** Support X-ray as internal link in derived fields. [#75756](https://github.com/grafana/grafana/issues/75756), [@harshabaddam](https://github.com/harshabaddam)
- **Table:** Make sparkline cell respect no value option. [#75750](https://github.com/grafana/grafana/issues/75750), [@oscarkilhed](https://github.com/oscarkilhed)
- **Transformations:** Extended support for variables in filter by name. [#75734](https://github.com/grafana/grafana/issues/75734), [@oscarkilhed](https://github.com/oscarkilhed)
- **Tempo:** TraceQL results as a spans list. [#75660](https://github.com/grafana/grafana/issues/75660), [@adrapereira](https://github.com/adrapereira)
- **Transformations:** Add naming mode to partition by value. [#75650](https://github.com/grafana/grafana/issues/75650), [@oscarkilhed](https://github.com/oscarkilhed)
- **Transformations:** Correct description of rename by regex. [#75641](https://github.com/grafana/grafana/issues/75641), [@oscarkilhed](https://github.com/oscarkilhed)
- **Team:** Support `sort` query param for teams search endpoint. [#75622](https://github.com/grafana/grafana/issues/75622), [@gamab](https://github.com/gamab)
- **CloudWatch Logs:** Make monaco query editor general availability. [#75589](https://github.com/grafana/grafana/issues/75589), [@iwysiu](https://github.com/iwysiu)
- **DataSourceAPI:** Add adhoc filters to DataQueryRequest and make it not depend on global templateSrv. [#75552](https://github.com/grafana/grafana/issues/75552), [@torkelo](https://github.com/torkelo)
- **Playlist:** Remove unused/deprecated api and unused wrapper. [#75503](https://github.com/grafana/grafana/issues/75503), [@ryantxu](https://github.com/ryantxu)
- **Explore:** Make Explore Toolbar sticky. [#75500](https://github.com/grafana/grafana/issues/75500), [@harisrozajac](https://github.com/harisrozajac)
- **Elasticsearch:** Added support for calendar_interval in ES date histogram queries. [#75459](https://github.com/grafana/grafana/issues/75459), [@NikolayTsvetkov](https://github.com/NikolayTsvetkov)
- **TimeSeries:** Implement ad hoc y-zoom via Shift-drag. [#75408](https://github.com/grafana/grafana/issues/75408), [@leeoniya](https://github.com/leeoniya)
- **Transformations:** Add support for dashboard variable in limit, sort by, filter by value, heatmap and histogram. [#75372](https://github.com/grafana/grafana/issues/75372), [@oscarkilhed](https://github.com/oscarkilhed)
- **GrafanaUI:** Smaller padding around Drawer's title, subtitle, and tabs. [#75354](https://github.com/grafana/grafana/issues/75354), [@polibb](https://github.com/polibb)
- **Trace View:** Span list visual update. [#75238](https://github.com/grafana/grafana/issues/75238), [@adrapereira](https://github.com/adrapereira)
- **User:** Support `sort` query param for user and org user, search endpoints. [#75229](https://github.com/grafana/grafana/issues/75229), [@gamab](https://github.com/gamab)
- **Admin:** Use backend sort. [#75228](https://github.com/grafana/grafana/issues/75228), [@Clarity-89](https://github.com/Clarity-89)
- **Breadcrumbs:** Enable plugins to override breadcrumbs that are generated by pages defined in plugin.json. [#75218](https://github.com/grafana/grafana/issues/75218), [@torkelo](https://github.com/torkelo)
- **Cloudwatch:** Add Documentation on Temporary Credentials. [#75178](https://github.com/grafana/grafana/issues/75178), [@sarahzinger](https://github.com/sarahzinger)
- **Tracing:** Span filters reset show matches only. [#75150](https://github.com/grafana/grafana/issues/75150), [@joey-grafana](https://github.com/joey-grafana)
- **Toggle:** Enable Recorded Queries Multi support by default. [#75097](https://github.com/grafana/grafana/issues/75097), [@kylebrandt](https://github.com/kylebrandt)
- **GrafanaUI:** Support memoization of useStyles additional arguments. [#75000](https://github.com/grafana/grafana/issues/75000), [@joshhunt](https://github.com/joshhunt)
- **NodeGraph:** Allow to set node radius in dataframe. [#74963](https://github.com/grafana/grafana/issues/74963), [@piggito](https://github.com/piggito)
- **AdhocFilters:** Improve typing and signature of getTagKeys and getTagValues and behaviors. [#74962](https://github.com/grafana/grafana/issues/74962), [@torkelo](https://github.com/torkelo)
- **OpenSearch:** Add timeRange to parameters passed to getTagValues. [#74952](https://github.com/grafana/grafana/issues/74952), [@iwysiu](https://github.com/iwysiu)
- **SSE:** Reduce to apply Mode to instant vector (mathexp.Number). [#74859](https://github.com/grafana/grafana/issues/74859), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **CloudWatch:** Correctly add dimension values to labels. [#74847](https://github.com/grafana/grafana/issues/74847), [@iwysiu](https://github.com/iwysiu)
- **Alerting:** Add export drawer when exporting all Grafana managed alerts. [#74846](https://github.com/grafana/grafana/issues/74846), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Feature:** Allow to disable a plugin. [#74840](https://github.com/grafana/grafana/issues/74840), [@andresmgot](https://github.com/andresmgot)
- **Alerting:** Always show expression warnings and errors. [#74839](https://github.com/grafana/grafana/issues/74839), [@gillesdemey](https://github.com/gillesdemey)
- **Admin:** Use InteractiveTable for user and team tables. [#74821](https://github.com/grafana/grafana/issues/74821), [@Clarity-89](https://github.com/Clarity-89)
- **Canvas:** Button API Editor support template variables. [#74779](https://github.com/grafana/grafana/issues/74779), [@adela-almasan](https://github.com/adela-almasan)
- **PublicDashboards:** Title logo and footer redesign. [#74769](https://github.com/grafana/grafana/issues/74769), [@juanicabanas](https://github.com/juanicabanas)
- **Tempo:** Highlight errors in TraceQL query. [#74697](https://github.com/grafana/grafana/issues/74697), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Folders:** Do not allow modifying the folder UID via the API. [#74684](https://github.com/grafana/grafana/issues/74684), [@papagian](https://github.com/papagian)
- **Pyroscope:** Remove support for old pyroscope. [#74683](https://github.com/grafana/grafana/issues/74683), [@aocenas](https://github.com/aocenas)
- **Canvas:** Button API Editor support setting parameters. [#74637](https://github.com/grafana/grafana/issues/74637), [@adela-almasan](https://github.com/adela-almasan)
- **Alerting:** Support for single rule and multi-folder rule export. [#74625](https://github.com/grafana/grafana/issues/74625), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Loki:** Added query editor and builder support for new Logfmt features. [#74619](https://github.com/grafana/grafana/issues/74619), [@matyax](https://github.com/matyax)
- **Alerting:** Add export drawer with yaml and json formats, in policies and contact points view. [#74613](https://github.com/grafana/grafana/issues/74613), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Canvas:** Button API - Add support for GET requests. [#74566](https://github.com/grafana/grafana/issues/74566), [@adela-almasan](https://github.com/adela-almasan)
- **Alerting:** Add Grafana-managed groups and rules export. [#74522](https://github.com/grafana/grafana/issues/74522), [@konrad147](https://github.com/konrad147)
- **Internationalization:** Set lang of HTML page to user language preference. [#74513](https://github.com/grafana/grafana/issues/74513), [@ypnos](https://github.com/ypnos)
- **Logging:** Add `WithContextualAttributes` to pass log params based on the given context. [#74428](https://github.com/grafana/grafana/issues/74428), [@svennergr](https://github.com/svennergr)
- **Transformations:** Show row index as percent in 'Add field from calculation'. [#74322](https://github.com/grafana/grafana/issues/74322), [@mdvictor](https://github.com/mdvictor)
- **Geomap:** Add Symbol Alignment Options. [#74293](https://github.com/grafana/grafana/issues/74293), [@drew08t](https://github.com/drew08t)
- **Dashboard:** Auto-generate panel title and description using AI. [#74284](https://github.com/grafana/grafana/issues/74284), [@nmarrs](https://github.com/nmarrs)
- **Alerting:** Adds additional pagination to several views. [#74268](https://github.com/grafana/grafana/issues/74268), [@gillesdemey](https://github.com/gillesdemey)
- **Chore:** Replace entity GRN with infra/grn GRN. [#74198](https://github.com/grafana/grafana/issues/74198), [@DanCech](https://github.com/DanCech)
- **Dashboard:** Remove old panel code and leave only new panel design. [#74196](https://github.com/grafana/grafana/issues/74196), [@polibb](https://github.com/polibb)
- **Tempo:** Update default editor to TraceQL tab. [#74153](https://github.com/grafana/grafana/issues/74153), [@joey-grafana](https://github.com/joey-grafana)
- **Plugins:** Move filter back to DataSourceWithBackend. [#74147](https://github.com/grafana/grafana/issues/74147), [@ryantxu](https://github.com/ryantxu)
- **Axis:** Add separate show axis option. [#74117](https://github.com/grafana/grafana/issues/74117), [@Develer](https://github.com/Develer)
- **Alerting:** Do not show grouping when grouplabels are empty in email template. [#74090](https://github.com/grafana/grafana/issues/74090), [@gillesdemey](https://github.com/gillesdemey)
- **Dashlist:** Use new nested folder picker. [#74011](https://github.com/grafana/grafana/issues/74011), [@joshhunt](https://github.com/joshhunt)
- **Plugins:** Add dependency column in version table. [#73991](https://github.com/grafana/grafana/issues/73991), [@oshirohugo](https://github.com/oshirohugo)
- **Elasticsearch:** Unify default value for geo hash grid precision across the code to 3. [#73922](https://github.com/grafana/grafana/issues/73922), [@ivanahuckova](https://github.com/ivanahuckova)
- **Dashboard:** Store original JSON in DashboardModel. [#73881](https://github.com/grafana/grafana/issues/73881), [@Clarity-89](https://github.com/Clarity-89)
- **Grafana/ui:** Expose trigger method from `useForm` to children. [#73831](https://github.com/grafana/grafana/issues/73831), [@javiruiz01](https://github.com/javiruiz01)
- **RBAC:** Enable permission validation by default. [#73804](https://github.com/grafana/grafana/issues/73804), [@mgyongyosi](https://github.com/mgyongyosi)
- **Alerting:** Update provisioning to validate user-defined UID on create. [#73793](https://github.com/grafana/grafana/issues/73793), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Correlations:** Allow creating correlations for provisioned data sources. [#73737](https://github.com/grafana/grafana/issues/73737), [@ifrost](https://github.com/ifrost)
- **Alerting:** Add contact point for Grafana OnCall. [#73733](https://github.com/grafana/grafana/issues/73733), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Tempo:** Improve autocompletion and syntax highlighting for TraceQL tab. [#73707](https://github.com/grafana/grafana/issues/73707), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Auth:** Make sure that SAML responses with default namespaces are parsed correctly. [#73701](https://github.com/grafana/grafana/issues/73701), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **ArrayVector:** Add vector field value warning. [#73692](https://github.com/grafana/grafana/issues/73692), [@Develer](https://github.com/Develer)
- **Loki:** Implement `keep` and `drop` operations. [#73636](https://github.com/grafana/grafana/issues/73636), [@ivanahuckova](https://github.com/ivanahuckova)
- **Explore Logs:** Update log filtering functions to only have effect in the source query. [#73626](https://github.com/grafana/grafana/issues/73626), [@matyax](https://github.com/matyax)
- **Explore:** Improve handling time range keyboard shortcuts inside Explore. [#73600](https://github.com/grafana/grafana/issues/73600), [@ifrost](https://github.com/ifrost)
- **MSSQL:** Add support for MI authentication to MSSQL. [#73597](https://github.com/grafana/grafana/issues/73597), [@oscarkilhed](https://github.com/oscarkilhed)
- **Tracing:** Support remote, rate-limited, and probabilistic sampling in tracing.opentelemetry config section. [#73587](https://github.com/grafana/grafana/issues/73587), [@hairyhenderson](https://github.com/hairyhenderson)
- **Cloudwatch:** Add back support for old Log Group picker. [#73524](https://github.com/grafana/grafana/issues/73524), [@sarahzinger](https://github.com/sarahzinger)
- **Elastic:** Add `id` field to Elastic responses to allow permalinking. [#73382](https://github.com/grafana/grafana/issues/73382), [@svennergr](https://github.com/svennergr)
- **Correlations:** Add an editor in Explore. [#73315](https://github.com/grafana/grafana/issues/73315), [@gelicia](https://github.com/gelicia)
- **Tempo:** Replace template variables in TraceQL tab when streaming is enabled. [#73259](https://github.com/grafana/grafana/issues/73259), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **CloudWatch Logs:** Wrap sync error from executeGetQueryResults. [#73252](https://github.com/grafana/grafana/issues/73252), [@iwysiu](https://github.com/iwysiu)
- **Elasticsearch:** Enable running of queries trough data source backend. [#73222](https://github.com/grafana/grafana/issues/73222), [@ivanahuckova](https://github.com/ivanahuckova)
- **Alerting:** Export of alert rules in HCL format. [#73166](https://github.com/grafana/grafana/issues/73166), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **SSE:** Localize/Contain Errors within an Expression. [#73163](https://github.com/grafana/grafana/issues/73163), [@kylebrandt](https://github.com/kylebrandt)
- **Dashboards:** PanelChrome - remove untitled placeholder and add border when panel is transparent. [#73150](https://github.com/grafana/grafana/issues/73150), [@axelavargas](https://github.com/axelavargas)
- **Flamegraph:** Move to package. [#73113](https://github.com/grafana/grafana/issues/73113), [@aocenas](https://github.com/aocenas)
- **Plugins:** Forward feature toggles to plugins. [#72995](https://github.com/grafana/grafana/issues/72995), [@oshirohugo](https://github.com/oshirohugo)
- **SSE:** Group data source node execution by data source. [#72935](https://github.com/grafana/grafana/issues/72935), [@kylebrandt](https://github.com/kylebrandt)
- **Dashboard:** Support template variables in Search tab for Tempo. [#72867](https://github.com/grafana/grafana/issues/72867), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Cloudwatch:** Upgrade aws-sdk and display external ids for temporary credentials. [#72821](https://github.com/grafana/grafana/issues/72821), [@sarahzinger](https://github.com/sarahzinger)
- **Dashboards:** Add megawatt hour (MWh) unit. [#72779](https://github.com/grafana/grafana/issues/72779), [@zuchka](https://github.com/zuchka)
- **Dashboard:** Add support for Tempo query variables. [#72745](https://github.com/grafana/grafana/issues/72745), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Auth:** Add key_id config param to auth.jwt. [#72711](https://github.com/grafana/grafana/issues/72711), [@mgyongyosi](https://github.com/mgyongyosi)
- **Alerting:** Move legacy alert migration from sqlstore migration to service. [#72702](https://github.com/grafana/grafana/issues/72702), [@JacobsonMT](https://github.com/JacobsonMT)
- **Loki:** Introduce `$__auto` range variable for metric queries. [#72690](https://github.com/grafana/grafana/issues/72690), [@ivanahuckova](https://github.com/ivanahuckova)
- **GLDS:** Move Text component from the `unstable` package to `grafana-ui`. [#72660](https://github.com/grafana/grafana/issues/72660), [@eledobleefe](https://github.com/eledobleefe)
- **Datasource Plugins:** Allow tracking for configuration usage. [#72650](https://github.com/grafana/grafana/issues/72650), [@sarahzinger](https://github.com/sarahzinger)
- **Cloudwatch Logs:** Set Alerting timeout to datasource config's logsTimeout (#72611). [#72611](https://github.com/grafana/grafana/issues/72611), [@idastambuk](https://github.com/idastambuk)
- **Flamegraph:** Add nice empty state for dashboard panel. [#72583](https://github.com/grafana/grafana/issues/72583), [@aocenas](https://github.com/aocenas)
- **Tracing:** Split name column in search results. [#72449](https://github.com/grafana/grafana/issues/72449), [@joey-grafana](https://github.com/joey-grafana)
- **Tracing:** Trace to metrics default range. [#72433](https://github.com/grafana/grafana/issues/72433), [@joey-grafana](https://github.com/joey-grafana)
- **Alerting:** Show annotations markers in TimeSeries panel when using Loki as …. [#72084](https://github.com/grafana/grafana/issues/72084), [@soniaAguilarPeiron](https://github.com/soniaAguilarPeiron)
- **Alerting:** Custom contact point for OnCall in Grafana AM. [#72021](https://github.com/grafana/grafana/issues/72021), [@konrad147](https://github.com/konrad147)
- **Frontend:** Allows PanelChrome to be collapsed. [#71991](https://github.com/grafana/grafana/issues/71991), [@harisrozajac](https://github.com/harisrozajac)
- **Elasticsearch:** Implement modify query using a Lucene parser. [#71954](https://github.com/grafana/grafana/issues/71954), [@matyax](https://github.com/matyax)
- **Table:** Support display of multiple sub tables. [#71953](https://github.com/grafana/grafana/issues/71953), [@joey-grafana](https://github.com/joey-grafana)
- **A11y:** Make Annotations and Template Variables list and edit pages responsive . [#71791](https://github.com/grafana/grafana/issues/71791), [@juanicabanas](https://github.com/juanicabanas)
- **Dashboard:** Select the last used data source by default when adding a panel to a dashboard. [#71777](https://github.com/grafana/grafana/issues/71777), [@axelavargas](https://github.com/axelavargas)
- **Trace to logs:** Add service name and namespace to default tags. [#71776](https://github.com/grafana/grafana/issues/71776), [@connorlindsey](https://github.com/connorlindsey)
- **Alerting:** Add new metrics and tracings to state manager and scheduler. [#71398](https://github.com/grafana/grafana/issues/71398), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Add configuration options to migrate to an external Alertmanager. [#71318](https://github.com/grafana/grafana/issues/71318), [@santihernandezc](https://github.com/santihernandezc)
- **SSE:** Support hysteresis threshold expression. [#70998](https://github.com/grafana/grafana/issues/70998), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Dashboards:** Add alert and panel icon for dashboards that use Angular plugins. [#70951](https://github.com/grafana/grafana/issues/70951), [@xnyo](https://github.com/xnyo)
- **Chore:** Update ubuntu image to 22.04. [#70719](https://github.com/grafana/grafana/issues/70719), [@orgads](https://github.com/orgads)
- **Auth:** Add support for OIDC RP-Initiated Logout. [#70357](https://github.com/grafana/grafana/issues/70357), [@venkatbvc](https://github.com/venkatbvc)
- **Dashboard:** Field Config - Add CFP franc currency (XPF). [#70036](https://github.com/grafana/grafana/issues/70036), [@smortex](https://github.com/smortex)
- **Auth:** Check id token expiry date. [#69829](https://github.com/grafana/grafana/issues/69829), [@akselleirv](https://github.com/akselleirv)
- **Alerting:** Update Discord settings to treat 'url' as a secure setting. [#69588](https://github.com/grafana/grafana/issues/69588), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Prometheus:** Add $\_\_rate_interval_ms to go along with $\_\_interval_ms. [#69582](https://github.com/grafana/grafana/issues/69582), [@ywwg](https://github.com/ywwg)
- **Alerting:** Update state manager to change all current states in the case when Error\NoData is executed as Ok\Nomal. [#68142](https://github.com/grafana/grafana/issues/68142), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **GrafanaUI:** Add aria-label prop to RadioButtonGroup. [#67019](https://github.com/grafana/grafana/issues/67019), [@khushijain21](https://github.com/khushijain21)
- **Search API:** Search by folder UID. [#65040](https://github.com/grafana/grafana/issues/65040), [@joshhunt](https://github.com/joshhunt)
- **Alerting:** Migrate old alerting templates to Go templates. [#62911](https://github.com/grafana/grafana/issues/62911), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **TeamGroupSync:** Delete group sync entries on team delete. (Enterprise)
- **ServiceAccounts:** Add SAs to managed permissions. (Enterprise)
- **PublicDashboards:** Title logo config. (Enterprise)
- **Caching:** Make cache payload serialization more resistant to out-of-memory crashes. (Enterprise)
- **Caching:** Change error logs for cache items not found to debug logs. (Enterprise)
- **Chore:** Add test console.warn catch. (Enterprise)
- **Emails:** Light theme. (Enterprise)
- **Reporting:** Switch to using dashboard UID. (Enterprise)
- **Recorded Queries:** Use new DS picker. (Enterprise)
- **Alerting:** Fix deleting rules in a folder with matching UID in another organization. [#79007](https://github.com/grafana/grafana/issues/79007), [@papagian](https://github.com/papagian)
- **Provisioning:** Ensure that enterprise provisioning runs [10.1.x]. [#76686](https://github.com/grafana/grafana/issues/76686), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Make shareable alert rule link work if rule name contains forward slashes. [#75950](https://github.com/grafana/grafana/issues/75950), [@domasx2](https://github.com/domasx2)
- **DataSourcePicker:** Disable autocomplete for the search input . [#75900](https://github.com/grafana/grafana/issues/75900), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Plugins:** Refresh plugin info after installation. [#75225](https://github.com/grafana/grafana/issues/75225), [@oshirohugo](https://github.com/oshirohugo)
- **Loki:** Fix filters not being added with multiple expressions and parsers. [#75172](https://github.com/grafana/grafana/issues/75172), [@svennergr](https://github.com/svennergr)
- **Recorded Queries:** Add org isolation (remote write target per org), and fix cross org Delete/List. (Enterprise)
- **Snapshots:** Fix breakage of some panel types due to missing structureRev. [#76586](https://github.com/grafana/grafana/issues/76586), [@leeoniya](https://github.com/leeoniya)
- **Loki:** Fix Autocomplete in stream selector overwriting existing label names, or inserting autocomplete result within label value. [#76485](https://github.com/grafana/grafana/issues/76485), [@gtk-grafana](https://github.com/gtk-grafana)
- **Alerting:** Prevent cleanup of non-empty folders on migration revert. [#76439](https://github.com/grafana/grafana/issues/76439), [@JacobsonMT](https://github.com/JacobsonMT)
- **Flamegraph:** Fix inefficient regex generating error on some function names. [#76377](https://github.com/grafana/grafana/issues/76377), [@aocenas](https://github.com/aocenas)
- **Authn:** Prevent empty username and email during sync. [#76330](https://github.com/grafana/grafana/issues/76330), [@kalleep](https://github.com/kalleep)
- **Rendering:** Fix Windows plugin signature check. [#76123](https://github.com/grafana/grafana/issues/76123), [@AgnesToulet](https://github.com/AgnesToulet)
- **Dashboards:** It always detect changes when saving an existing dashboard . [#76116](https://github.com/grafana/grafana/issues/76116), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Pyroscope:** Fix backend panic when querying out of bounds. [#76053](https://github.com/grafana/grafana/issues/76053), [@aocenas](https://github.com/aocenas)
- **DataSourcePicker:** Disable autocomplete for the search input . [#75898](https://github.com/grafana/grafana/issues/75898), [@ivanortegaalba](https://github.com/ivanortegaalba)
- **Tempo:** Fix service graph menu item links. [#75748](https://github.com/grafana/grafana/issues/75748), [@adrapereira](https://github.com/adrapereira)
- **Flamegraph:** Fix bug where package colors would be altered after focusin on a node. [#75695](https://github.com/grafana/grafana/issues/75695), [@aocenas](https://github.com/aocenas)
- **Legend:** Fix desc sort so NaNs are not display first. [#75685](https://github.com/grafana/grafana/issues/75685), [@nmarrs](https://github.com/nmarrs)
- **Transformations:** Fix bug with calculate field when using reduce and the all values calculation. [#75684](https://github.com/grafana/grafana/issues/75684), [@oscarkilhed](https://github.com/oscarkilhed)
- **Plugins:** Fix sorting issue with expandable rows. [#75553](https://github.com/grafana/grafana/issues/75553), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Alerting:** Show panels within collapsed rows in dashboard picker. [#75490](https://github.com/grafana/grafana/issues/75490), [@VikaCep](https://github.com/VikaCep)
- **Tempo:** Use timezone of selected range for timestamps. [#75438](https://github.com/grafana/grafana/issues/75438), [@fabrizio-grafana](https://github.com/fabrizio-grafana)
- **Flamegraph:** Fix css issues when embedded outside of Grafana. [#75369](https://github.com/grafana/grafana/issues/75369), [@aocenas](https://github.com/aocenas)
- **Alerting:** Make shareable alert rule link work if rule name contains forward slashes. [#75362](https://github.com/grafana/grafana/issues/75362), [@domasx2](https://github.com/domasx2)
- **SQLStore:** Fix race condition in RecursiveQueriesAreSupported. [#75274](https://github.com/grafana/grafana/issues/75274), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Connections:** Make the "Add new Connection" page work without internet access. [#75272](https://github.com/grafana/grafana/issues/75272), [@leventebalogh](https://github.com/leventebalogh)
- **TimeSeries:** Apply selected line style to custom pathBuilders. [#75261](https://github.com/grafana/grafana/issues/75261), [@leeoniya](https://github.com/leeoniya)
- **Alerting:** Fix non-applicable error checks for cloud and recording rules. [#75233](https://github.com/grafana/grafana/issues/75233), [@gillesdemey](https://github.com/gillesdemey)
- **TabsBar:** Fix height so that it aligns with grid, and alignItems center . [#75230](https://github.com/grafana/grafana/issues/75230), [@torkelo](https://github.com/torkelo)
- **Prometheus:** Fix creation of invalid dataframes with exemplars. [#75187](https://github.com/grafana/grafana/issues/75187), [@kylebrandt](https://github.com/kylebrandt)
- **Loki:** Fix filters not being added with multiple expressions and parsers. [#75152](https://github.com/grafana/grafana/issues/75152), [@svennergr](https://github.com/svennergr)
- **Pyroscope:** Fix error when no profile types are returned. [#75143](https://github.com/grafana/grafana/issues/75143), [@aocenas](https://github.com/aocenas)
- **BarChart:** Axes centered zero, borders, and colors. [#75136](https://github.com/grafana/grafana/issues/75136), [@leeoniya](https://github.com/leeoniya)
- **Plugins:** Refresh plugin info after installation. [#75074](https://github.com/grafana/grafana/issues/75074), [@oshirohugo](https://github.com/oshirohugo)
- **Snapshots:** Use appUrl on snapshot list page. [#74944](https://github.com/grafana/grafana/issues/74944), [@evictorero](https://github.com/evictorero)
- **Canvas:** Fix inconsistent element placement when changing element type. [#74942](https://github.com/grafana/grafana/issues/74942), [@linghaoSu](https://github.com/linghaoSu)
- **Connections:** Display the type of the datasource. [#74808](https://github.com/grafana/grafana/issues/74808), [@leventebalogh](https://github.com/leventebalogh)
- **Alerting:** Indicate panels without identifier. [#74746](https://github.com/grafana/grafana/issues/74746), [@gillesdemey](https://github.com/gillesdemey)
- **Notifications:** Don't show toasts after refreshing. [#74712](https://github.com/grafana/grafana/issues/74712), [@joshhunt](https://github.com/joshhunt)
- **CloudWatch Logs:** Fix log query display name when used with expressions. [#74497](https://github.com/grafana/grafana/issues/74497), [@iwysiu](https://github.com/iwysiu)
- **Transformations:** Fix group by field transformation field name text-overflow. [#74173](https://github.com/grafana/grafana/issues/74173), [@oscarkilhed](https://github.com/oscarkilhed)
- **LDAP:** Disable removed users on login. [#74016](https://github.com/grafana/grafana/issues/74016), [@gamab](https://github.com/gamab)
- **Time Range:** Using relative time takes timezone into account. [#74013](https://github.com/grafana/grafana/issues/74013), [@ashharrison90](https://github.com/ashharrison90)
- **Loki:** Fix filtering with structured metadata. [#73955](https://github.com/grafana/grafana/issues/73955), [@svennergr](https://github.com/svennergr)
- **Dashboard embed:** Use port instead of callbackUrl. [#73883](https://github.com/grafana/grafana/issues/73883), [@Clarity-89](https://github.com/Clarity-89)
- **Alerting:** Fix data source copy when switching alert rule types. [#73854](https://github.com/grafana/grafana/issues/73854), [@gillesdemey](https://github.com/gillesdemey)
- **LDAP:** Fix active sync with large quantities of users. [#73834](https://github.com/grafana/grafana/issues/73834), [@gamab](https://github.com/gamab)
- **PublicDashboards:** Data discrepancy fix. Use real datasource plugin when it is a public dashboard. . [#73708](https://github.com/grafana/grafana/issues/73708), [@juanicabanas](https://github.com/juanicabanas)
- **Template Variables:** Fix conversion from non standard data to dataFrame. [#73486](https://github.com/grafana/grafana/issues/73486), [@aocenas](https://github.com/aocenas)
- **A11y:** Fix canvas element accessibility. [#73483](https://github.com/grafana/grafana/issues/73483), [@Develer](https://github.com/Develer)
- **Tempo:** Fix [object Object] shown as an Event message in Trace view. [#73473](https://github.com/grafana/grafana/issues/73473), [@aocenas](https://github.com/aocenas)
- **PublicDashboards:** Query order bug fixed. [#73293](https://github.com/grafana/grafana/issues/73293), [@juanicabanas](https://github.com/juanicabanas)
- **DatePicker:** Fix calendar not showing correct selected range when changing time zones. [#73273](https://github.com/grafana/grafana/issues/73273), [@ashharrison90](https://github.com/ashharrison90)
- **Cloud Monitoring:** Support AliasBy property in MQL mode. [#73116](https://github.com/grafana/grafana/issues/73116), [@alyssabull](https://github.com/alyssabull)
- **Gauge:** Add overflow scrolling support for vertical and horizontal orientations. [#71690](https://github.com/grafana/grafana/issues/71690), [@nmarrs](https://github.com/nmarrs)
- **Export:** Remove DS input when dashboard is imported with a lib panel that already exists. [#69412](https://github.com/grafana/grafana/issues/69412), [@juanicabanas](https://github.com/juanicabanas)
- **Auditing and UsageInsights:** FIX Loki configuration to use proxy env variables. (Enterprise)
- **PDF:** Fix parenthesis in dashboard title. (Enterprise)
- **Reporting:** Handle commas in variables. (Enterprise)
- **Caching:** Fix caching metrics being doubled. (Enterprise)
<!-- 10.1.6 END -->
### Breaking changes
The deprecated `/playlists/{uid}/dashboards` API endpoint has been removed. Dashboard information can be retrieved from the `/dashboard/...` APIs. Issue [#75503](https://github.com/grafana/grafana/issues/75503)
The `PUT /api/folders/:uid` endpoint no more supports modifying the folder's `UID`. Issue [#74684](https://github.com/grafana/grafana/issues/74684)
This is a breaking change as we're removing support for `Intersection` (although it is replaced with an option that is nearly the same). Issue [#74675](https://github.com/grafana/grafana/issues/74675)
<Breaking change description>
Removed all components for the old panel header design. Issue [#74196](https://github.com/grafana/grafana/issues/74196)
### Deprecations
Correlations created before 10.1.0 do not have an organization id assigned and are treated as global. In some rare cases, it may lead to confusing behavior described in #72259. Organization id is now added when a correlation is created. Any existing correlations without organization id will be kept intact and work as before for backward compatibility during the deprecation period that is set to 6 months after handling organization id is released. After that time, correlations without org_id (or org_id = 0 in the database) will stop showing up in Grafana.
To migrate existing correlations to handle organization id correctly:
- re-provision any correlations that were created as part of provisioning
- re-create any correlations created with Admin/Correlations page Issue [#72258](https://github.com/grafana/grafana/issues/72258)
Starting with 10.2, `parentRowIndex` is deprecated. It will be removed in a future release. From 10.2, sub-tables are supported by adding `FieldType.nestedFrames` to the field that contains the nested data in your dataframe. Issue [#71953](https://github.com/grafana/grafana/issues/71953)
### Plugin development fixes & changes
- **Toggletip:** Add support to programmatically close it. [#75846](https://github.com/grafana/grafana/issues/75846), [@adela-almasan](https://github.com/adela-almasan)
- **Drawer:** Make content scroll by default. [#75287](https://github.com/grafana/grafana/issues/75287), [@ashharrison90](https://github.com/ashharrison90)
- **NestedFolders:** Move `New folder` into a drawer. [#69706](https://github.com/grafana/grafana/issues/69706), [@ashharrison90](https://github.com/ashharrison90)
- **Nested folders:** Improve loading states. [#69556](https://github.com/grafana/grafana/issues/69556), [@ashharrison90](https://github.com/ashharrison90)
@@ -517,6 +796,55 @@ Starting with 10.0, changing the folder UID is deprecated. It will be removed in
- **Grafana/ui:** Fix margin in RadioButtonGroup option when only icon is present. [#68899](https://github.com/grafana/grafana/issues/68899), [@aocenas](https://github.com/aocenas)
<!-- 10.1.0 END -->
<!-- 10.0.9 START -->
# 10.0.9 (2023-10-11)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.10. [#76365](https://github.com/grafana/grafana/issues/76365), [@zerok](https://github.com/zerok)
### Bug fixes
- **BrowseDashboards:** Only remember the most recent expanded folder. [#74819](https://github.com/grafana/grafana/issues/74819), [@joshhunt](https://github.com/joshhunt)
- **Licensing:** Pass func to update env variables when starting plugin. [#74679](https://github.com/grafana/grafana/issues/74679), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **Azure:** Add support for Workload Identity authentication. [#75732](https://github.com/grafana/grafana/issues/75732), [@aangelisc](https://github.com/aangelisc)
<!-- 10.0.8 END -->
<!-- 10.0.6 START -->
# 10.0.6 (2023-09-18)
### Features and enhancements
- **Chore:** Upgrade Alpine base image to 3.18.3. [#74994](https://github.com/grafana/grafana/issues/74994), [@zerok](https://github.com/zerok)
- **Chore:** Upgrade Go to 1.20.8. [#74983](https://github.com/grafana/grafana/issues/74983), [@zerok](https://github.com/zerok)
<!-- 10.0.6 END -->
<!-- 10.0.5 START -->
# 10.0.5 (2023-09-05)
### Features and enhancements
- **SSE:** DSNode to update result with names to make each value identifiable by labels (only Graphite and TestData. [#73646](https://github.com/grafana/grafana/issues/73646), [@yuri-tceretian](https://github.com/yuri-tceretian)
### Bug fixes
- **LDAP:** Fix user disabling. [#74107](https://github.com/grafana/grafana/issues/74107), [@gamab](https://github.com/gamab)
<!-- 10.0.5 END -->
<!-- 10.0.4 START -->
# 10.0.4 (2023-08-22)
@@ -543,7 +871,7 @@ Starting with 10.0, changing the folder UID is deprecated. It will be removed in
<!-- 10.0.4 END -->
<!-- 10.0.3 START -->
# 10.0.3 (2023-07-18)
# 10.0.3 (2023-07-26)
### Features and enhancements
@@ -551,12 +879,14 @@ Starting with 10.0, changing the folder UID is deprecated. It will be removed in
- **Alerting:** No longer silence paused alerts during legacy migration. [#71761](https://github.com/grafana/grafana/issues/71761), [@JacobsonMT](https://github.com/JacobsonMT)
- **Auth:** Add support for custom signing keys in auth.azure_ad. [#71708](https://github.com/grafana/grafana/issues/71708), [@Jguer](https://github.com/Jguer)
- **Chore:** Upgrade Go to 1.20.6. [#71445](https://github.com/grafana/grafana/issues/71445), [@sakjur](https://github.com/sakjur)
- **Auth:** Remove ldap init sync. (Enterprise)
- **Chore:** Upgrade Go to 1.20.6. (Enterprise)
### Bug fixes
- **Alerting:** Fix edit / view of webhook contact point when no authorization is set. [#71972](https://github.com/grafana/grafana/issues/71972), [@gillesdemey](https://github.com/gillesdemey)
- **AzureMonitor:** Set timespan in Logs Portal URL link. [#71910](https://github.com/grafana/grafana/issues/71910), [@aangelisc](https://github.com/aangelisc)
- **Plugins:** Only configure plugin proxy transport once. [#71742](https://github.com/grafana/grafana/issues/71742), [@wbrowne](https://github.com/wbrowne)
- **Elasticsearch:** Fix multiple max depth flatten of multi-level objects. [#71636](https://github.com/grafana/grafana/issues/71636), [@fridgepoet](https://github.com/fridgepoet)
- **Elasticsearch:** Fix histogram colors in backend mode. [#71447](https://github.com/grafana/grafana/issues/71447), [@gabor](https://github.com/gabor)
@@ -572,6 +902,7 @@ Starting with 10.0, changing the folder UID is deprecated. It will be removed in
- **AzureMonitor:** Fix metric names for multi-resources. [#70994](https://github.com/grafana/grafana/issues/70994), [@asimpson](https://github.com/asimpson)
- **Logs:** Do not insert log-line into log-fields in json download. [#70954](https://github.com/grafana/grafana/issues/70954), [@gabor](https://github.com/gabor)
- **Auth:** Show invite button if disable login form is set to false. [#70155](https://github.com/grafana/grafana/issues/70155), [@IevaVasiljeva](https://github.com/IevaVasiljeva)
- **Alerting:** Fix email template for text/plain emails. [#70111](https://github.com/grafana/grafana/issues/70111), [@grobinson-grafana](https://github.com/grobinson-grafana)
- **Explore:** Fixed Starred query history tab to show all starred queries. [#70092](https://github.com/grafana/grafana/issues/70092), [@harisrozajac](https://github.com/harisrozajac)
- **CodeEditor:** Ensure suggestions only apply to the instance of the edit…. [#70067](https://github.com/grafana/grafana/issues/70067), [@ashharrison90](https://github.com/ashharrison90)
@@ -983,6 +1314,69 @@ The `database` field has been deprecated in the Elasticsearch datasource provisi
- **InteractiveTable:** Updated design and minor tweak to Correlactions page. [#66443](https://github.com/grafana/grafana/issues/66443), [@torkelo](https://github.com/torkelo)
<!-- 10.0.0-preview END -->
<!-- 9.5.13 START -->
# 9.5.13 (2023-10-11)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.10. [#76367](https://github.com/grafana/grafana/issues/76367), [@zerok](https://github.com/zerok)
- **BrowseDashboards:** Only remember the most recent expanded folder. [#74817](https://github.com/grafana/grafana/issues/74817), [@joshhunt](https://github.com/joshhunt)
- **Licensing:** Pass func to update env variables when starting plugin. [#74681](https://github.com/grafana/grafana/issues/74681), [@leandro-deveikis](https://github.com/leandro-deveikis)
- **Azure:** Add support for Workload Identity authentication. [#75730](https://github.com/grafana/grafana/issues/75730), [@aangelisc](https://github.com/aangelisc)
<!-- 9.5.12 END -->
<!-- 9.5.10 START -->
# 9.5.10 (2023-09-18)
### Features and enhancements
- **Chore:** Upgrade Alpine base image to 3.18.3. [#74995](https://github.com/grafana/grafana/issues/74995), [@zerok](https://github.com/zerok)
- **Chore:** Upgrade Go to 1.20.8. [#74982](https://github.com/grafana/grafana/issues/74982), [@zerok](https://github.com/zerok)
<!-- 9.5.10 END -->
<!-- 9.5.9 START -->
# 9.5.9 (2023-09-05)
### Features and enhancements
- **SSE:** DSNode to update result with names to make each value identifiable by labels (only Graphite and TestData). [#73642](https://github.com/grafana/grafana/issues/73642), [@yuri-tceretian](https://github.com/yuri-tceretian)
- **Alerting:** Improve performance of matching captures. [#71998](https://github.com/grafana/grafana/issues/71998), [@grobinson-grafana](https://github.com/grobinson-grafana)
### Bug fixes
- **LDAP:** Fix user disabling. [#74096](https://github.com/grafana/grafana/issues/74096), [@gamab](https://github.com/gamab)
<!-- 9.5.9 END -->
<!-- 9.5.8 START -->
# 9.5.8 (2023-08-16)
### Features and enhancements
- **GenericOAuth:** Set sub as auth id. [#73223](https://github.com/grafana/grafana/issues/73223), [@kalleep](https://github.com/kalleep)
### Bug fixes
- **DataSourceProxy:** Fix url validation error handling. [#73320](https://github.com/grafana/grafana/issues/73320), [@ricci2511](https://github.com/ricci2511)
<!-- 9.5.8 END -->
<!-- 9.5.7 START -->
# 9.5.7 (2023-07-20)
@@ -1346,6 +1740,48 @@ Users who use LDAP role sync to only sync Viewer, Editor and Admin roles, but gr
- **ContextMenu:** Fix padding and show border based on items. [#63948](https://github.com/grafana/grafana/pull/63948), [@aocenas](https://github.com/aocenas)
<!-- 9.5.0 END -->
<!-- 9.4.17 START -->
# 9.4.17 (2023-10-11)
### Features and enhancements
- **Chore:** Upgrade Go to 1.20.10. [#76370](https://github.com/grafana/grafana/issues/76370), [@zerok](https://github.com/zerok)
- **SSE:** DSNode to update result with names to make each value identifiable by labels (only Graphite and TestData). [#74615](https://github.com/grafana/grafana/issues/74615), [@yuri-tceretian](https://github.com/yuri-tceretian)
### Bug fixes
- **BrowseDashboards:** Only remember the most recent expanded folder. [#74812](https://github.com/grafana/grafana/issues/74812), [@joshhunt](https://github.com/joshhunt)
- **SQL Datasources:** Fix variable throwing error if query returns no data. [#74609](https://github.com/grafana/grafana/issues/74609), [@mdvictor](https://github.com/mdvictor)
- **LDAP:** Fix user disabling. [#74318](https://github.com/grafana/grafana/issues/74318), [@gamab](https://github.com/gamab)
- **Plugins:** Only configure plugin proxy transport once. [#71740](https://github.com/grafana/grafana/issues/71740), [@wbrowne](https://github.com/wbrowne)
- **Azure Monitor:** Fix bug that did not show alert rule preview. [#68561](https://github.com/grafana/grafana/issues/68561), [@alyssabull](https://github.com/alyssabull)
@@ -44,7 +44,7 @@ If you believe you've found a security vulnerability, please read our [security
### Suggest enhancements
If you have an idea of how to improve Grafana, submit an [enhancement request](https://github.com/grafana/grafana/discussions/new).
If you have an idea of how to improve Grafana, submit a [feature request](https://github.com/grafana/grafana/issues/new?assignees=&labels=type%2Ffeature-request&projects=&template=1-feature_requests.md).
We want to make Grafana accessible to even more people. Submit an [accessibility issue](https://github.com/grafana/grafana/issues/new?labels=type%3A+accessibility&template=3-accessibility.md) to help us understand what we can improve.
@@ -73,7 +73,7 @@ Unsure where to begin contributing to Grafana? Start by browsing issues labeled
If you're looking to make a code change, see how to set up your environment for [local development](contribute/developer-guide.md).
When you're ready to contribute, it's time to [Create a pull request](/contribute/create-pull-request.md).
When you're ready to contribute, it's time to [create a pull request](/contribute/create-pull-request.md).
@@ -105,7 +105,9 @@ Should explain what happened, what was expected and how to reproduce it together
#### Enhancement requests
Enhancement requests (aka. feature requests) should be created as a [Github discussion](https://github.com/grafana/grafana/discussions). When submitting an enhancement request we ask that users focus on the problem they'd like to solve and why it’s a problem rather than focusing on the solution itself. To facilitate this we recommend using the following template:
Prior to August, 2023, community-submitted feature requests were submitted as [Github discussions](https://github.com/grafana/grafana/discussions). These are now submitted using the [feature request issue template](https://github.com/grafana/grafana/issues/new?assignees=&labels=type%2Ffeature-request&projects=&template=1-feature_requests.md).
When submitting an enhancement request we ask that users focus on the problem they'd like to solve and why it’s a problem rather than focusing on the solution itself. To facilitate this the feature requests template includes the following:
- What would you like to be added?:
- Why is this needed (describe your use case and goals)\*\*?:
@@ -193,8 +195,8 @@ If it's not perfectly clear that it's an actual bug, quickly try to reproduce it
### Enhancement/feature?
1.Remind the contributor that enhancement/featurerequest should be created as a GitHub discussion. See [Enhancements requests.](https://github.com/grafana/grafana/blob/main/ISSUE_TRIAGE.md#enhancement-requests)
2.Label the issue `type/feature-request` and at least one `area/*` or `datasource/*` label.
1.Label the issue `type/feature-request` and add at least one `area/*` or `datasource/*` label.
2.Make sure the submitter has justified why this featurerequests is important.
@@ -43,9 +43,8 @@ Once a PR is approved as per above, any team member MAY merge the PR.
## Backporting a PR
PRs intended for inclusion in the next PATCH release they must be backported to the release branch. The bot can do this automatically. [Read more on backport PRs](https://github.com/grafana/grafana/blob/main/.github/bot.md). Both the source PR and the backport PR should be assigned to the patch release milestone, unless you are backporting to many releases then it can differ.
Backport PRs are also needed during the beta period to get fixes into the stable release.
Critical bug fixes needed for a previous minor release should be backported to the respective release branches after coordinating with the delivery team.
Please see the [contibution guide](./contribute/merge-pull-request.md#should-the-pull-request-be-backported) for further details.
# The timeout string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
evaluation_timeout=30s
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. The default value is 1.
max_attempts=1
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. This option has a legacy version in the `[alerting]` section that takes precedence.
max_attempts=3
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time. This option has a legacy version in the `[alerting]` section that takes precedence.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
@@ -1220,6 +1217,25 @@ loki_basic_auth_password =
# ex.
# mylabelkey = mylabelvalue
# NOTE: this configuration options are not used yet.
[remote.alertmanager]
# Enable the use of the configured remote Alertmanager and disable the internal one.
# The default value is `false`.
enabled=false
# URL of the remote Alertmanager that will replace the internal one.
# Required if `enabled` is set to `true`.
url=
# Tenant ID to use in requests to the Alertmanager.
# It will also be used for the basic auth username.
tenant=
# Optional password for basic authentication.
# If not present, the tenant ID will be set in the X-Scope-OrgID header.
# Enable the legacy alerting sub-system and interface. If Unified Alerting is already enabled and you try to go back to legacy alerting, all data that is part of Unified Alerting will be deleted. When this configuration section and flag are not defined, the state is defined at runtime. See the documentation for more details.
# Options to configure the experimental Feature Toggle Admin Page feature, which is behind the `featureToggleAdminPage` feature toggle. Use at your own risk.
[feature_management]
# Allows editing of feature toggles in the feature management page
allow_editing=false
# Allow customization of URL for the controller that manages feature toggles
update_webhook=
# Allow configuring an auth token for feature management update requests
update_webhook_token=
# Hides specific feature toggles from the feature management page
hidden_toggles=
# Disables updating specific feature toggles in the feature management page
# # <list, required> list of rules that are part of the rule group
# rules:
# # <string, required> unique identifier for the rule
# # <string, required> unique identifier for the rule. Should not exceed 40 symbols. Only letters, numbers, - (hyphen), and _ (underscore) allowed.
# - uid: my_id_1
# # <string, required> title of the rule, will be displayed in the UI
# title: my_first_rule
@@ -82,7 +82,7 @@ apiVersion: 1
# # <string, required> name of the contact point
# name: cp_1
# receivers:
# # <string, required> unique identifier for the receiver
# # <string, required> unique identifier for the receiver. Should not exceed 40 symbols. Only letters, numbers, - (hyphen), and _ (underscore) allowed.
# The timeout string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;evaluation_timeout = 30s
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. The default value is 1.
;max_attempts = 1
# Number of times we'll attempt to evaluate an alert rule before giving up on that evaluation. This option has a legacy version in the `[alerting]` section that takes precedence.
;max_attempts = 3
# Minimum interval to enforce between rule evaluations. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we'll schedule fewer evaluations over time. This option has a legacy version in the `[alerting]` section that takes precedence.
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
@@ -1296,6 +1294,18 @@
[tracing.opentelemetry]
# attributes that will always be included in when creating new spans. ex (key1:value1,key2:value2)
;custom_attributes = key1:value1,key2:value2
# Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote
; sampler_type = remote
# Sampler configuration parameter
# for "const" sampler, 0 or 1 for always false/true respectively
# for "probabilistic" sampler, a probability between 0.0 and 1.0
# for "rateLimiting" sampler, the number of spans per second
# for "remote" sampler, param is the same as for "probabilistic"
# and indicates the initial sampling rate before the actual one
# is received from the sampling server (set at sampling_server_url)
; sampler_param = 0.5
# specifies the URL of the sampling server when sampler_type is remote
# Options to configure the experimental Feature Toggle Admin Page feature, which is behind the `featureToggleAdminPage` feature toggle. Use at your own risk.
# Allow editing of feature toggles in the feature management page
;allow_editing = false
# Allow customization of URL for the controller that manages feature toggles
;update_webhook =
# Allow configuring an auth token for feature management update requests
;update_webhook_token =
# Hide specific feature toggles from the feature management page
;hidden_toggles =
# Disable updating specific feature toggles in the feature management page
Above functions uses `errutil.NewBase(status, messageID, opts...)` under the covers, and that function should in general only be used outside the `errutil` package for `errutil.StatusUnknown`, e.g. when there are no accurate status code available/provided.
The status code loosely corresponds to HTTP status codes and provides a
default log level for errors to ensure that the request logging is
@@ -93,6 +106,18 @@ unfortunately not readily available on pkg.go.dev because Grafana is not
fully Go modules compatible, but can be viewed using
[godoc](https://go.dev/cmd/godoc/) from the Grafana directory.
### Error source
You can optionally specify an error source that describes from where an
error originates. By default it's _server_ and means the error originates
from within the application, e.g. Grafana. The `errutil.WithDownstream()`
option may be appended to the NewBase function call to denote an error
originates from a _downstream_ server/service. The error source information
is used in the API layer to distinguish between Grafana errors and
non-Grafana errors to include this information when instrumenting the
application and by that allowing Grafana operators to define SLO's
based on actual Grafana errors.
### Handling errors in the API
API handlers use the `github.com/grafana/grafana/pkg/api/response.Err`
@@ -140,13 +140,15 @@ If you want to guarantee the existence of metrics before any observations has ha
### How to collect and visualize metrics locally
1. Ensure you have Docker installed and running on your machine
1. Start Prometheus
```bash
make devenv sources=prometheus
```
2. Use Grafana Explore or dashboards to query any exported Grafana metrics
1. Run Grafana, and create a Prometheus datasource if you do not have one yet. Set the server URL to `http://localhost:9090`, enable basic auth, and type in the same auth you have for local Grafana
1. Use Grafana Explore or dashboards to query any exported Grafana metrics. You can also view them at http://localhost:3000/metrics
## Traces
@@ -154,7 +156,7 @@ A distributed trace is data that tracks an application request as it flows throu
### Usage
Grafana currently supports two tracing implementations, [OpenTelemetry](https://opentelemetry.io/) and [OpenTracing](https://opentracing.io/). OpenTracing is deprecated, but still supported until we remove it. The two different implementations implements the `Tracer` and `Span` interfaces, defined in the _pkg/infra/tracing_ package, which you can use to create traces and spans. To get a hold of a `Tracer` you would need to get it injected as dependency into your service, see [Services](services.md) for more details.
Grafana uses [OpenTelemetry](https://opentelemetry.io/) for distributed tracing. There's an interface `Tracer` in the _pkg/infra/tracing_ package that implements the [OpenTelemetry Tracer interface](go.opentelemetry.io/otel/trace), which you can use to create traces and spans. To get a hold of a `Tracer` you would need to get it injected as dependency into your service, see [Services](services.md) for more details. For more information, see https://opentelemetry.io/docs/instrumentation/go/manual/.
@@ -241,6 +244,22 @@ If span names, attribute or event values originates from user input they **shoul
Be **careful** to not expose any sensitive information in span names, attribute or event values, e.g. secrets, credentials etc.
### Span attributes
Consider using `attributes.<Type>("<key>", <value>)` in favor of `attributes.Key("<key>").<Type>(<value>)` since it requires less characters and thereby reads easier.
### How to collect, visualize and query traces (and correlate logs with traces) locally
#### 1. Start Jaeger
@@ -253,20 +272,11 @@ make devenv sources=jaeger
To enable tracing in Grafana, you must set the address in your config.ini file
opentelemetry tracing (recommended):
```ini
[tracing.opentelemetry.jaeger]
address = http://localhost:14268/api/traces
```
opentracing tracing (deprecated/not recommended):
```ini
[tracing.jaeger]
address = localhost:6831
```
#### 3. Search/browse collected logs and traces in Grafana Explore
You need provisioned gdev-jaeger and gdev-loki datasources, see [developer dashboard and data sources](https://github.com/grafana/grafana/tree/main/devenv#developer-dashboards-and-data-sources) for setup instructions.
A background service runs in the background of the lifecycle between Grafana startup and shutdown. To run your service in the background, it must satisfy the `registry.BackgroundService` interface. Pass it through to the `NewBackgroundServiceRegistry` call in the [ProvideBackgroundServiceRegistry](/pkg/server/backgroundsvcs/background_services.go) function to register it.
A background service runs in the background of the lifecycle between Grafana startup and shutdown. To run your service in the background, it must satisfy the `registry.BackgroundService` interface. Pass it through to the `NewBackgroundServiceRegistry` call in the [ProvideBackgroundServiceRegistry](/pkg/registry/backgroundsvcs/background_services.go) function to register it.
You can see an example implementation above of the Run method.
@@ -131,7 +131,7 @@ There's a [wireexts_oss.go](/pkg/server/wireexts_oss.go) that has the `wireinjec
Similarly, there's a wireexts_enterprise.go file in the Enterprise source code repository where other service implementations can be overridden/be registered.
To extend an OSS background service, create a specific background interface for that type and inject that type to [ProvideBackgroundServiceRegistry](/pkg/server/backgroundsvcs/background_services.go) instead of the concrete type. Then add a wire binding for that interface in [wireexts_oss.go](/pkg/server/wireexts_oss.go) and in the enterprise wireexts file.
To extend an OSS background service, create a specific background interface for that type and inject that type to [ProvideBackgroundServiceRegistry](/pkg/registry/backgroundsvcs/background_services.go) instead of the concrete type. Then add a wire binding for that interface in [wireexts_oss.go](/pkg/server/wireexts_oss.go) and in the enterprise wireexts file.
Make sure to run `make drone` so that changes to `.star` files are reflected and `drone.yml` is generated.
### Additional files to change
- Take a look in `.github/workflows` folder for what `go` version is being used there in various workflows.
- Make sure to create a PR with the corresponding changes in `grafana/grafana-enterprise` repository.
## Updating the go.mod file
Please avoid updating the `go.mod` to the newest version unless really necessary. This ensures backwards compatibility and introduces less breaking changes. Always upgrade Go version in the runtime files above first, let them run for a couple of weeks and only then consider updating the `go.mod` file if necessary.
@@ -45,6 +45,25 @@ it's as easy as running `yarn dlx @yarnpkg/sdks vscode` or `yarn dlx @yarnpkg/sd
More information can be found [here](https://yarnpkg.com/getting-started/editor-sdks).
### Configure precommit hooks
We use pre-commit hooks (via [lefthook](https://github.com/evilmartians/lefthook)) to lint, fix, and format code as you commit your changes. Previously the Grafana repository automatically installed these hook when you did `yarn install`, but they are now opt in for all contributors
Install the lefthook precommit hooks with:
```sh
make lefthook-install
```
To remove precommit hooks, run
```sh
make lefthook-uninstall
```
> [!NOTE]
> Contributors working on the frontend are highly encouraged to install the precommit hooks, even if your IDE formats on save, so the `.betterer.results` file is kept up to sync.
## Build Grafana
Grafana consists of two components; the _frontend_, and the _backend_.
@@ -14,4 +14,4 @@ The Drone pipelines are built with [Starlark](https://github.com/bazelbuild/star
- Open a PR where you can do test runs for your changes. If you need to experiment with secrets, create a PR in the [grafana-ci-sandbox repo](https://github.com/grafana/grafana-ci-sandbox), before opening a PR in the main repo.
- Run `make drone` after making changes to the Starlark files. This builds the `.drone.yml` file.
For further questions, reach out to the grafana-release-guild squad.
For further questions, reach out to the grafana-delivery squad.
This guide helps you get started adding your feature behind a feature flag in Grafana.
## Steps to adding a feature toggle
1. Define the feature toggle in [registry.go](../pkg/services/featuremgmt/registry.go). To see what each feature stage means, look at the comments [here](../pkg/services/featuremgmt/features.go). If you are a community member, use the [CODEOWNERS](../.github/CODEOWNERS) file to determine which team owns the package you are updating.
2. Run the go tests mentioned at the top of [this file](../pkg/services/featuremgmt/toggles_gen.go). This will generate all the additional files needed: `toggles_gen` for the backend, `grafana-data` for the frontend, and docs. You can run the test by running `go test ./pkg/services/featuremgmt/...`. This will say the tests failed the first time, but it will have generated the right code. If you re-run the tests, it will pass.
## How to use it in the code
Once your feature toggle is defined, you can then wrap your feature around a check if the feature flag is enabled on that Grafana instance. Here are examples of how to do that:
- [Backend](https://github.com/grafana/grafana/blob/feb2b5878b3e3ec551d64872c35edec2a0187812/pkg/services/authn/clients/session.go#L57): Use the `IsEnabled` function and pass in your feature toggle.
- [Frontend](https://github.com/grafana/grafana/blob/feb2b5878b3e3ec551d64872c35edec2a0187812/public/app/features/search/service/folders.ts#L14): Check the config for your feature toggle.
@@ -183,8 +183,8 @@ Once extracted with `yarn i18n:extract` you will need to manually edit the [Engl
```json
{
"inbox":{
"heading__one":"You got {{count}} message",
"heading__other":"You got {{count}} messages"
"heading_one":"You got {{count}} message",
"heading_other":"You got {{count}} messages"
}
}
```
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.