* MVP of a new datasource picker
* Add datasource select history, naming DatasourceSelect -> DataSourceDrawer
* refactor cards
* Cleanup and fixing sort order for recents
* add feature flag
* fix feature flag name and use it
* Highlight selected
* Move new ds picker to core
* Restore original datasource picker
* Remove unused property
* update yarn.lock
* Rename folder, update codeowners
* add test for util functions
* Remove es-lint exception
* Change feature toggle description
* remove unnecessary if
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Make test a bit more clear
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Clean up api, filter once and before maps, minor code cleanup
* Fix prettier issue
---------
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
* Reworked header
* Remove toggle from merge
* Update test
* Update how span is retrived
* Tests
* Update tests
* Move new trace page header into its own component
* Remove tests already covered in TracePageHeader.test.tsx
* Update findHeaderTags
* Tooltip updates
* Update dependency rollup to v3
* build(rollup): update all rollup related deps to latest version
* chore(runtime): update peerDeps to match other package semver ranges
* chore(yarn): refresh lock file
* refactor(packages): migrate to esm for rollup@3 configs
* build(packages): remove unused rollup dependencies
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* bring in source from database
* bring in transformations from database
* add regex transformations to scopevar
* Consolidate types, add better example, cleanup
* Add var only if match
* Change ScopedVar to not require text, do not leak transformation-made variables between links
* Add mappings and start implementing logfmt
* Add mappings and start implementing logfmt
* Remove mappings, turn off global regex
* Add example yaml and omit transformations if empty
* Fix the yaml
* Add logfmt transformation
* Cleanup transformations and yaml
* add transformation field to FE types and use it, safeStringify logfmt values
* Add tests, only safe stringify if non-string, fix bug with safe stringify where it would return empty string with false value
* Add test for transformation field
* Do not add null transformations object
* Break out transformation logic, add tests to backend code
* Fix lint errors I understand 😅
* Fix the backend lint error
* Remove unnecessary code and mark new Transformations object as internal
* Add support for named capture groups
* Remove type assertion
* Remove variable name from transformation
* Add test for overriding regexes
* Add back variable name field, but change to mapValue
* fix go api test
* Change transformation types to enum, add better provisioning checks for bad type name and format
* Check for expression with regex transformations
* fix any's in tests
* fix more any's in tests
* more test type fixes
* fixing any's in tests part 3
* more test type fixes
* fixing test any's p5
* some tidy up
* fix template_srv
* Range splitting: range splitting function
* Range splitting: experiment with 1 hour splits
* Range splitting: reorganize code
* Range splitting: improve code readability and meaning
* Range splitting: add partition limit to prevent infinite loops
* Range splitting: add error handling
* Range splitting: disable for logs queries
* Range splitting: support any arbitrary time splitting + respect original from/to in the partition
* Chore: remove console logs
* Chore: delete unused import
* Range splitting: actually send requests in sequence
* Range splitting: do not split when > 1 query
* Range splitting: combine frames
* Chore: rename function
* split in reverse
* polished reversing
* keep reference to the right frame in the result
* Range splitting: change request state to Streaming
* Range splitting: fix moving only 1 unit of time instead of the provided one
* Chore: change default parameter to timeShift = 1
* Range splitting: do not split for range queqries
* Range splitting: add initial support for log queries
* Range splitting: do not use MutableDataFrame
It has bad performance and it's not required
* Chore: remove unused export
* Query Splitting: move to module
* loki: split: fix off-by-one error (#62966)
loki: split: fix off-by-one loop
* Range splitting: disable for logs volume queries
* Range splitting: combine any number of fields, not just hardcoded 2
* Range splitting: optimize frame-combining function
* Range splitting: further optimize
* Range splitting: combine frame length
* Range splitting: combine stats
* Range splitting: combine stats without assuming the same order
* Query splitting: catch and raise errors
* Range splitting: create feature flag
* Range splitting: implement feature flag
* Range splitting: add unit test for datasource query
* Range splitting: add basic test for runPartitionedQuery
* Range splitting: add unit test for resultLimitReached
* Range splitting: test frame merging
* Chore: fix unit test
---------
Co-authored-by: Sven Grossmann <svennergr@gmail.com>
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
* Navigation: Translate nav tree in store
* Remove usage of getNavTitle
* properly translate children
* add pubdash translation
* remove extraneous calls to translation in PageHeader
* empty commit
* correctly allow subtitle to be overrwitten (thank you tests!)
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* added extensions to plugin.json and exposing it via frontend settings.
* added extensions to the plugin.json schema.
* changing the extensions in frontend settings to a map instead of an array.
* wip
* feat(pluginregistry): begin wiring up registry
* feat(pluginextensions): prevent duplicate links and clean up
* added test case for link extensions.
* added tests and implemented the getPluginLink function.
* wip
* feat(pluginextensions): expose plugin extension registry
* fix(pluginextensions): appease the typescript gods post rename
* renamed file and will throw error if trying to call setExtensionsRegistry if trying to call it twice.
* added reafactorings.
* fixed failing test.
* minor refactorings to make sure we only include extensions if the app is enabled.
* fixed some nits.
* Update public/app/features/plugins/extensions/registry.test.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update packages/grafana-runtime/src/services/pluginExtensions/registry.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update packages/grafana-runtime/src/services/pluginExtensions/registry.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update public/app/features/plugins/extensions/registry.test.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Moved types for extensions from data to runtime.
* added a small example on how you could consume link extensions.
* renamed after feedback from levi.
* updated the plugindef.cue.
* using the generated plugin def.
* added tests for apps and extensions.
* fixed linting issues.
* wip
* wip
* wip
* wip
* test(extensions): fix up failing tests
* feat(extensions): freeze registry extension arrays, include type in registry items
* added restrictions in the pugindef cue schema.
* wip
* added required fields.
* added key to uniquely identify each item.
* test(pluginextensions): align tests with implementation
* chore(schema): refresh reference.md
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Consolidate logs volume logic (full range and limited)
* Fix showing limited histogram message
* Test passing meta data to logs volume provider
* Improve readability
* Clean up types
* Move the comment back to the right place
* Improve readability
* *Create Caching Config interface and OSS impl
*Create front-end facing DS Cache config
*Populate Caching Config on Datasource DTO
*Update OSS wire deps
* fix unit test
* handle query caching TTL override on the frontend
* Make sure the override works with pubdash
* move caching config to the right place in the ds info
* move caching config logic to enterprise index hook
* move queryCachingTTL to pubdash query payload
* Remove from metadata (not needed)
* rename struct and add comment
* remove invalid wire dependency
* manual revert of 395c74b
* fix frontend test
* fix backend test
* fix tests for real this time
* truly fix frontend test
* fix back end unit test for real
* SplitOpen: Update API to accept multiple queries
* Explore: Deprecate query in SplitOpenOptions and add queries
* Use queries in log samples
* Fix test
* WIP
* Update pkg/services/login/authinfo.go
* fix: merge
* change order to internal last
* adds: docs
* add: configuration for defaults and sample
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Jo <joao.guerreiro@grafana.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
---------
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add loki contextfilter component
* add `getLogRowContextUi` support to DataSourceAPI
* add `runContextQuery` to LogRowContextProvider
* pass `getRowContextUi` to `LogRowContext`
* adapt LogRowContext to show datasource ui
* implement LogRowContextUi in Loki
* add `logsContextDatasourceUi` feature flag
* change state to `Alpha`
* disable the feature if `logsContextDatasourceUi` is not set
* don't fetch labels in the constructor
* adjust to right height
* remove unnecessary eslint disable
* add test for LokiContextUi
* move code down in datasource.ts
* rename `refresh` to `runContextQuery`
* update datasource tests
* don't update if `updateFilter` fn changes
* organized imports in datasource.test.ts
* don't trigger on intialization changes
* change tag to `experimental`
* move `getLogRowContextUi` to props
* Update dependency @testing-library/dom to v8.20.0
* do some lockfile surgery
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Add config to remove Snapshot functionality (frontend is hidden and validation in the backend)
* Add test cases
* Remove unused mock on the test
* Moving Snapshot config from globar variables to settings.Cfg
* Removing warnings on code
* chore(d3-color): resolve all copies to 3.1.0 to fix vulnerability
* chore(yarn): fix resolution version
* chore(jest): compile d3-color from esm to cjs
* chore(d3): bump d3 to latest, set jest config to transpile es modules
* chore: bump visx packages to resolve d3-color to latest
* chore(jest): add missing es modules to config
* chore(storybook): prevent storybook config failure due to nested esm imports
* chore(storybook): use a direct path to avoid es modules breaking config build
* build(sass): use esbuild to generate sass theme vars for esm deps
* chore: clean up swc dependencies
* revert: remove debug console.log breaking tests
* add: skip_org_role_sync setting for github
* fix: frontend
* rearranged tests
* refactor: assignGrafanaAdmin skip also
* Add: tests for allowGrafanaAdmin
- both for the case when both settings are set and the setting for only
allowGrafanaAdmin
* Apply suggestions from code review
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update pkg/login/social/github_oauth.go
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* added vairable inside scope
* Update docs/sources/setup-grafana/configure-security/configure-authentication/github/index.md
* Update docs/sources/setup-grafana/configure-security/configure-authentication/github/index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
* Reduce size of topnav search 'input' to 1/5th of the width, min width 200px
* Open command palette on topnav search box click
* Rename component
* fix comment
* feature flag the change
* update feature flag description
* rename routes and fix access control for support bundles
* AccessControl: Hide menu if not authorized
* AccessControl: Add AC guards for create and delete
* lint
* build(webpack): replace babel-loader with esbuild-loader
* build(webpack): add esbuild minifier to production builds
* Wip
* Removed ngInject and replaced with manual inject params
* chore: bump esbuild to 0.15.13
* Fixed angular issues
* build(frontend): update esbuild to 0.16.16
* chore(webpack): support browserslist for esbuild
* build(esbuild): unify versions of esbuild to 0.16.17 and esbuild-loader to 2.21.0
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Create DataSourceWithLogsSampleSupport check and move to 1 place
* Add new SupplementaryQueryType
* Add and change utility functions for loading, storing ancd checking supp queries
* Add logic to redux for processing of new type of supp query
* Implement queryLogsSample used to run samples queries
* Fix tests to include also Log samples
* Add tests
* Temporarily, default to false
* Change comment
* Fix lint error
* Refactor handling of supplementary queries in query.ts
* Fix looping over array
* Remove changes for any => unknowns as in utils.ts
* Fix logic
* Fix incorrect imports after function was moved to different file
* Migrate old log volume key
* Update public/app/features/explore/utils/supplementaryQueries.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Refactor to use DataSourceWithSupplementaryQueriesSupport
* Refactor, improve tests, change internal API
* Update packages/grafana-data/src/types/logs.ts
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* Add deprecation for DataSourceWithLogsVolumeSupport, but still support it
* Update comment with correct new issue
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* New pfs impl
* Reached codegen parity with old system
* Update all models.cue inputs
* Rename all models.cue files
* Remove unused prefixfs
* Changes Queries->DataQuery schema interface
* Recodegen
* All tests passing, nearly good now
* Add SchemaInterface to kindsys props
* Add pascal name deriver
* Relocate plugin cue files again
* Clarify use of injected fields
* Remove unnecessary aliasing
* Move DataQuery into mudball
* Allow forcing ExpandReferences on go type generation
* Move DataQuery def into kindsys, add generator to copy it to common
* Fix copy generator to replace package name correctly
* Fix duplicate type, test failure
* Fix linting issues
* Add new config option
* Add frontend control
* Condition new auth broker with config option
* Condition old auth broker with config option
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* [WIP] Auth: add backend skipOrgRoleSync to AzureAD OAuth
- add: skipOrgRoleSync
- rename: skipOrgRoleSync to skipOrgRoleSyncBase (to make it clear that
it is the base version of SocialBase)
- add: tests for skipOrgRoleSync in AzureAD
TODO:
- [ ] frontend changes
* add: docs
* refactor: remove role from basicinfo
* add: settings for grafanacom
* add: settigns for frontend
* add: logic for azureAD user skip org role
* add: docs for skip_org_role_sync
* refactor: docs a bit
* add: tests for userinfo
* refactor: to only extract if skiporgrolesync false
* refactor: based on review comments
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Update docs/sources/setup-grafana/configure-grafana/_index.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* add feature flag `alertingNoNormalState`
* update instance database to support exclusion of state in list operation
* do not save normal state and delete transitions to normal
* update get methods to filter out normal state
* feat: add draft version of validate button
* feat: add some styling and basics
* temp: intermediate result
* refactor: solve TODOs
* refactor: replace string in state
* refactor: replace error message style
* refactor: set validate state on change in ds
* refactor: add QueryRunner
* refactor: add QueryRunner
* temp: temporary status
* Emit PanelData to check if the query is valid
* refactor: clean up
* refactor: improve a11y of error message and adjust test
* Remove deprecated property call, change equality
* refactor: add changes from code review
* refactor: remove memory leak
* refactor: replace query runner
* refactor: adjust error handling
* refactor: move testing to related unit test
* refactor: clean up test for QueryEditorField
* refactor: clean up test for CorrelationsPage
* refactor: repair test
* refactor: clean up
* refactor: add refId in order avoid errors when running Loki queries
* refactor: replace buildQueryTransaction + set query to invalid if query is empty
* refactor: add empty query value to test cases
* refactor: end handleValidation after setIsValidQuery()
* refactor: refactor test
* refactor: fix last two tests
* refactor: modify validation
* refactor: add happy path
* refactor: clean up
* refactor: clean up tests (not final)
* refactor: further clean up
* refactor: add condition for failing
* refactor: finish clean up
* refactor: changes from code review
* refactor: add response state to condition
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
* refactor: fix prettier issue
* refactor: remove unused return
* refactor: replace change in queryAnalytics.ts
* refactor: remove correlations from query analytics
* refactor: remove unnecessary test preparation
* refactor: revert changes from commit 4997327
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
* Add icons, use them for split pane resizing
* Change icons
* Apply scale to child div
* Use fancier logic for displaying icon
* Remove color fill on icon
* Change icons, remove scale
* Change icons and logic
* feat: grouping matrix transformer empty value
Allow grouping matrix data transformer to define the value used when the matrix entry is not defined
* fix: grouping to matrix empty value test
* remove balel width for empty value text
Co-authored-by: bohandley <brendan.ohandley@gmail.com>
* Update dependency @testing-library/dom to v8.19.0
* refresh lockfile
* fix unit tests
* Revert "fix unit tests"
This reverts commit eb40f3207a.
* Revert "refresh lockfile"
This reverts commit c0cd5822da.
* ensure a consistent version of @testing-library/dom
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Implement backtesting engine that can process regular rule specification (with queries to datasource) as well as special kind of rules that have data frame instead of query.
* declare a new API endpoint and model
* add feature toggle `alertingBacktesting`
* Remove TraceID tab when TraceQL is enabled. Use TraceQL editor to query for trace IDs by checking whether the content is an hex only string
* Highlight valid trace IDs in traceql editor
* Update trace and span links to use TraceQL tab when feature flag is enabled
* Remove traceqlEditor feature flag.
* Remove traceId query type from Tempo and replace it with traceQl
* Auth: Session cache [v9.2.x] (#59907)
* add cache wrapper
only cache token if not to rotate
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
anticipate next rotation
Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
(cherry picked from commit 07a4b2343d)
* FeatureToggle: for storing sessions in a Remote Cache
Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>
(cherry picked from commit b8a8c15148)
* use feature flag for session cache
* ensure ttl is minimum 1 second
Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* ensure 2 ttl window to prevent caching of tokens near rotation
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
* fix description of toggle
Co-authored-by: gamab <gabi.mabs@gmail.com>
Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>
Co-authored-by: Kalle Persson <kalle.persson@grafana.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
(cherry picked from commit 2919588a82)
* fix broken quota test
* deprecate timeseries-many in favor of timeseries-multi
* deprecate timeseries-many, do not just remove it
* undo changes to jsonc files
* update deprecation message
* return TimeSeriesMulti for prepareTimeSeries transformer
* Lattice: Point to private prerelease of aws-sdk-go (#515)
* point to private prerelease of aws-sdk-go
* fix build issue
* Lattice: Adding a feature toggle (#549)
* Adding a feature toggle for lattice
* Change name of feature toggle
* Lattice: List accounts (#543)
* Separate layers
* Introduce testify/mock library
Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com>
* point to version that includes metric api changes (#574)
* add accounts component (#575)
* Test refactor: remove unneeded clientFactoryMock (#581)
* Lattice: Add monitoring badge (#576)
* add monitoring badge
* fix tests
* solve conflict
* Lattice: Add dynamic label for account display name (#579)
* Build: Automatically sync lattice-main with OSS
* Lattice: Point to private prerelease of aws-sdk-go (#515)
* point to private prerelease of aws-sdk-go
* fix build issue
* Lattice: Adding a feature toggle (#549)
* Adding a feature toggle for lattice
* Change name of feature toggle
* Lattice: List accounts (#543)
* Separate layers
* Introduce testify/mock library
Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com>
* point to version that includes metric api changes (#574)
* add accounts component (#575)
* Test refactor: remove unneeded clientFactoryMock (#581)
* Lattice: Add monitoring badge (#576)
* add monitoring badge
* fix tests
* solve conflict
* add account label
Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com>
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
* fix import
* solve merge related problem
* add account info (#608)
* add back namespaces handler
* Lattice: Parse account id and return it to frontend (#609)
* parse account id and return to frontend
* fix route test
* only show badge when feature toggle is enabled (#615)
* Lattice: Refactor resource response type and return account (#613)
* refactor resource response type
* remove not used file.
* go lint
* fix tests
* remove commented code
* Lattice: Use account as input when listing metric names and dimensions (#611)
* use account in resource requests
* add account to response
* revert accountInfo to accountId
* PR feedback
* unit test account in list metrics response
* remove not used asserts
* don't assert on response that is not relevant to the test
* removed dupe test
* pr feedback
* rename request package (#626)
* Lattice: Move account component and add tooltip (#630)
* move accounts component to the top of metric stat editor
* add tooltip
* CloudWatch: add account to GetMetricData queries (#627)
* Add AccountId to metric stat query
* Lattice: Account variable support (#625)
* add variable support in accounts component
* add account variable query type
* update variables
* interpolate variable before its sent to backend
* handle variable change in hooks
* remove not used import
* Update public/app/plugins/datasource/cloudwatch/components/Account.tsx
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
* Update public/app/plugins/datasource/cloudwatch/hooks.ts
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
* add one more unit test
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
* cleanup (#629)
* Set account Id according to crossAccountQuerying feature flag in backend (#632)
* CloudWatch: Change spelling of feature-toggle (#634)
* Lattice Logs (#631)
* Lattice Logs
* Fixes after CR
* Lattice: Bug: fix dimension keys request (#644)
* fix dimension keys
* fix lint
* more lint
* CloudWatch: Add tests for QueryData with AccountId (#637)
* Update from breaking change (#645)
* Update from breaking change
* Remove extra interface and methods
Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com>
* CloudWatch: Add business logic layer for getting log groups (#642)
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
* Lattice: Fix - unset account id in region change handler (#646)
* move reset of account to region change handler
* fix broken test
* Lattice: Add account id to metric stat query deep link (#656)
add account id to metric stat link
* CloudWatch: Add new log groups handler for cross-account querying (#643)
* Lattice: Add feature tracking (#660)
* add tracking for account id prescense in metrics query
* also check feature toggle
* fix broken test
* CloudWatch: Add route for DescribeLogGroups for cross-account querying (#647)
Co-authored-by: Erik Sundell <erik.sundell87@gmail.com>
* Lattice: Handle account id default value (#662)
* make sure right type is returned
* set right default values
* Suggestions to lattice changes (#663)
* Change ListMetricsWithPageLimit response to slice of non-pointers
* Change GetAccountsForCurrentUserOrRole response to be not pointer
* Clean test Cleanup calls in test
* Remove CloudWatchAPI as part of mock
* Resolve conflicts
* Add Latest SDK (#672)
* add tooltip (#674)
* Docs: Add documentation for CloudWatch cross account querying (#676)
* wip docs
* change wordings
* add sections about metrics and logs
* change from monitoring to observability
* Update docs/sources/datasources/aws-cloudwatch/_index.md
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
* Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md
Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
* Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md
Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
* Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
* Update docs/sources/datasources/aws-cloudwatch/query-editor/index.md
Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
* apply pr feedback
* fix file name
* more pr feedback
* pr feedback
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
* use latest version of the aws-sdk-go
* Fix tests' mock response type
* Remove change in Azure Monitor
Co-authored-by: Sarah Zinger <sarah.zinger@grafana.com>
Co-authored-by: Shirley Leu <4163034+fridgepoet@users.noreply.github.com>
Co-authored-by: Fiona Artiaga <89225282+GrafanaWriter@users.noreply.github.com>
* WIP
* TablePanel: Add support for Count calculation per column or per entire dataset
* refactor
* refactor
* refactor + fixes
* refactor + tests
* Docs and cue model fix
* Update jest monorepo to v29
* update snapshots + wrap test in act
* fix linting errors: jest.mocked now defaults to deep mocking
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* TimeseriesPanel: Preserve string fields for data link interpolation
* clean code
* Modify tests so that string fields are allowed only when a valid time/number dataframe exists
* performance mods
* fix wrong length
* remove console.log
* Check if aligned dataframe has links
* initial implementation for quick add
* add new isCreateAction prop on NavModel
* adjust separator margin
* switch to primary button
* undo changes to plugin.json
* remove unused props from interface
* use a consistent dropdown overlay type
* memoize findCreateActions
* add prop description
* use a function so that menus are only rendered when the dropdown is open
* Introduce a new feature flag for prometheus buffered client
* Use querydata client as default and put buffered client behind the feature flag
* Remove prometheusStreamingJSONParser feature flag as it is not needed anymore
* Update tests
* Fix unit tests
* Update feature flag description
* Added labels
* App page fixes
* Switch to switch
* wip
* Updates
* I am stuck
* Minor tweak
* This props interface could work
* removed change
* use new page extensions in plugin details page
* add link separator, fix action button spacing
* some renaming
* Move PageInfo into it's own folder + add tests
* add support for new props in old page header
* remove PluginDetailsHeader as it's no longer used
* Fix unit tests
* fix some badge alignments
* center align actions
* badge alignment + only show downloads for community/commercial plugins
* better link alignment
* conditionally render description
* move install control warnings to below subtitle + refactor
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* chore: fix go lint issues
* feat(Routing): route standalone plugin pages to the `AppRoutePage`
* feat(plugin.json): introduce a new field called `isCorePage` for `includes`
* chore: add explanatory comments for types
* refactor(AppRootPage): receive the `pluginId` and `pluginSection` through the props
Now we are able to receive these as props as the pluginId is defined on navLinks
that are registered by plugins.
* chore: update teests for AppRootPage
* fix: remove rebase issue
* tests(applinks): add a test for checking isCorePage plugin page setting
* refactor(applinks): update tests to use FindById() and be more resilient to changes
* fix: Go lint issues
* refactor(routes): use cleaner types when working with plugin nav nodes
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* chore: fix linting issues
* t: remove `isCorePage` field from includes
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* feat(Navigation): add `pluginId` to NavLink and override sibling navlinks with the same URL
* test replacing page from plugin
* chore: fix go lint issues
* fix(NavLink): change `PluginId` to `PluginID`
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* fix(NavLink): make the `PluginId` -> `PluginID` change everywhere
* chore(navModel.ts): update explanatory comment for `pluginId`
Co-authored-by: Miklós Tolnai <miklos.tolnai@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* first stab at context away plugin tracking.
* adding a plugin context and a hook to get hold of a tracker that always appends the plugin context information.
* wip
* improved the code a bit.
* wip
* Fixed type errors.
* added datasource_uid to data sources.
* fixed error message when trying to use hook outside of context.
* small refactoring according to feedback.
* using the correct provider for data source context.
* check not needed.
* enforcing the interaction name to start with grafana_plugin_
* exposing guards for the other context type.
* added structure for writing reporter hook tests.
* added some more tests.
* added tests.
* reverted back to inheritance between context types.
* adding mock for getDataSourceSrv
* feat: add new Folder table migration
Add a new folder table to support the Nested Folders feature.
https://github.com/grafana/grafana/issues/56880
* register nested folders feature flag (unused)
* feat: nested folder service (experiment)
This commit adds a NestedFolderSvc interface and stubbed out implementation as an alternative to the existing folder service. This is an experimental feature to try out different methods for backwards compatibility and parallelization, so that Grafana can continue to store folders in the existing (non-nested) manner while also using the new nested folder service.
Eventually the new service will (hopefully) become _the_ service, at which point the legacy service can be deprecated (or remain, with the new service methods replacing the original. whatever makes sense at the time).
* nested folders: don't run the new migration
This commit removes the nested folder migration from the list of active migrations so we can merge this branch and continue development without impacting Grafana instances built off main.
* Theme: Inter font change with new line-height
* Add it behind feature toggle
* make buildVariant easier to read + enforce integer multiples of 2 (#56486)
* Minor update
* Update
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* add api route for validating a dashboard json
* add feature flag for showDashboardValidationWarnings
* tidy up
* comments and messages
* swagger specs
* fix typo
* more swagger
* tests!
* tidy test a little bit
* no more ioutil
* api will return different status code depending on validation error
* clean up
* handle 4xx errors
* remove console.log
* fix backend tests
* tidy up
* Swagger: Exclude alpha endpoints
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
* LDAP: Add skip_org_role_sync option
* Document the new config option
* Nit on docs
* Update docs/sources/setup-grafana/configure-security/configure-authentication/ldap.md
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
* Docs suggestions
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Jguer <joao.guerreiro@grafana.com>
* Add test, Fix disabled user when no role
Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Jguer <joao.guerreiro@grafana.com>
* Flamegraph
* Updated flame graph width/height values
* Fix top table rendering issue
* Add feature toggle for flamegraph in explore
* Update tests
* Hide flamegraph from dash panel viz list if feature toggle not enabled
* Show table if no flameGraphFrames
* Add flame graph to testdata ds
* Minor improvement
* loki: switch to a monaco-based query field, step 1 (#46291)
* loki: use monaco-logql (#46318)
* loki: use monaco-logql
* updated monaco-logql
* fix all the tests (#46327)
* loki: recommend parser (#46362)
* loki: recommend parser
* additional improvements
* more improvements
* type and lint fixes
* more improvements
* trigger autocomplete on focus
* rename
* loki: more smart features (#46414)
* loki: more smart features
* loki: updated syntax-highlight version
* better explanation (#46443)
* better explanation
* improved help-text
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* Fix label
* feat(loki-monaco-editor): add monaco-logql as a dependency
* feat(loki-monaco-editor): add back range function removed during merge
* feat(loki-monaco-editor): sync imports with recent changes
* feat(loki-monaco-editor): add missing lang provider functions
* feat(loki-monaco-editor): fix imports
* feat(loki-monaco-editor): display monaco editor by default
Temporarily
* Chore: remove commented code
* Chore: minor refactor to NeverCaseError
* Chore: minor code cleanups
* feat(loki-monaco-editor): add history implementation
Will see how it behaves and base the history slicing on tangible feedback
* feat(loki-monaco-editor): turn completion data provider into a class
* Chore: fix missing imports
* feat(loki-monaco-editor): refactor data provider methods
Move complexity scattered everywhere to the provider
* Chore: clean up redundant code
* Chore: minor comments cleanup
* Chore: simplify override services
* Chore: rename callback
* feat(loki-monaco-editor): use query hints implementation to parse expression
* feat(loki-monaco-editor): improve function name
* Chore: remove superfluous variable in favor of destructuring
* Chore: remove unused imports
* Chore: make method async
* feat(loki-monaco-editor): fix deprecations and errors in situation
* feat(loki-monaco-editor): comment failing test case
* Chore: remove comment from test
* Chore: remove duplicated completion item
* Chore: fix linting issues
* Chore: update language provider test
* Chore: update datasource test
* feat(loki-monaco-editor): create feature flag
* feat(loki-monaco-editor): place the editor under a feature flag
* Chore: add completion unit test
* Chore: add completion data provider test
* Chore: remove unwanted export
* Chore: remove unused export
* Chore(loki-query-field): destructure all props
* chore(loki-completions): remove odd string
* fix(loki-completions): remove rate_interval
Not supported
* fix(loki-completions): remove line filters for after pipe case
We shouldn't offer line filters if we are after first pipe.
* refactor(loki-datasource): update default parameter
* fix(loki-syntax): remove outdated documentation
* Update capitalization in pkg/services/featuremgmt/registry.go
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
* refactor(situation): use node types instead of names
* Chore: comment line filters pending implementation
It's breaking the build due to a linting error.
* Chore: update feature flag test after capitalization change
* Revert "fix(loki-completions): remove line filters for after pipe case"
This reverts commit 3d003ca4bc.
* Revert "Chore: comment line filters pending implementation"
This reverts commit 84bfe76a6a.
Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana Huckova <ivana.huckova@gmail.com>
Prior to this change, all alert instance writes and deletes happened
individually, in their own database transaction. This change batches up
writes or deletes for a given rule's evaluation loop into a single
transaction before applying it.
These new transactions are off by default, guarded by the feature toggle "alertingBigTransactions"
Before:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8 398 2991381 ns/op 1133537 B/op 27703 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
util.go:127: alert definition: {orgID: 1, UID: FovKXiRVzm} with title: "an alert definition FTvFXmRVkz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: foDFXmRVkm} with title: "an alert definition fovFXmRVkz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: VQvFuigVkm} with title: "an alert definition VwDKXmR4kz" interval: 60 created
PASS
ok github.com/grafana/grafana/pkg/services/ngalert/store 1.619s
```
After:
```
goos: darwin
goarch: arm64
pkg: github.com/grafana/grafana/pkg/services/ngalert/store
BenchmarkAlertInstanceOperations-8 1440 816484 ns/op 352297 B/op 6529 allocs/op
--- BENCH: BenchmarkAlertInstanceOperations-8
util.go:127: alert definition: {orgID: 1, UID: 302r_igVzm} with title: "an alert definition q0h9lmR4zz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: 71hrlmR4km} with title: "an alert definition nJ29_mR4zz" interval: 60 created
util.go:127: alert definition: {orgID: 1, UID: Cahr_mR4zm} with title: "an alert definition ja2rlmg4zz" interval: 60 created
PASS
ok github.com/grafana/grafana/pkg/services/ngalert/store 1.383s
```
So we cut time by about 75% and memory allocations by about 60% when
storing and deleting 100 instances.
* fix(toolkit): package without dist folder so config file paths are correct
* chore(packages): make sure to bundle readme, changelog and apache2 license
* refactor(packages): recursively copy src when prepacking toolkit
* chore(toolkit): lock down babel dependencies. use grafana-eslint-config@5 for TS4.8 support
* NewIA: Plugin nav config
* progress
* Progress
* Things are working
* Add monitoring node
* Add alerts and incidents
* added experiment with standalone page
* Refactoring by adding a type for navtree root
* First test working
* More tests
* more tests
* Progress on richer config and sorting
* Sort weight working
* Path config
* Improving logic for not including admin or cfg nodes, making it the last step so that enterprise can add admin nodes without having to worry about the section not existing
* fixed index routes
* removed file
* Fixes
* Fixing tests
* Fixing more tests and adding support for weight config
* Updates
* Remove unused fake
* More fixes
* Minor tweak
* Minor fix
* Can now control position using sortweight even when existing items have no sortweight
* Added tests for frontend standalone page logic
* more tests
* Remove unused fake and fixed lint issue
* Moving reading settings to navtree impl package
* remove nav_id setting prefix
* Remove old test file
* Fix trailing newline
* Fixed bug with adding nil node
* fixing lint issue
* remove some code we have to rethink
* move read settings to PrivideService and switch to util.SplitString
* PluginDetails: Make plugin details page look good in topnav
* Minor style tweak aligning things
* minor refactoring where I moved the logic to decide the default tab into its own hook.
* refactor(plugindetails): first pass at using navmodel for usePluginDetailsTabs hook
* refactor(plugindetails): move "reset page when uninstalling plugin" to installcontrols
this prevents a user from seeing a blank page if they uninstall an app plugin whilst viewing a
config page
* refactor(plugindetails): remove usage of toIconName and reduce nested if
* Trying to fix tests
* minor fix
* test(plugindetails): update selectors causing failing tests
* chore(plugindetails): remove commented out test code
* test(plugindetails): clean up - remove unnecesary usage of waitFor
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* add help menu to top search bar
* fixes
* handle preventDefault in node graph specifically
* use icon prop of MenuItem
* undo changes to ContextMenuPlugin/DataLinksContextMenu
* remove unused component
* revert storybook changes
* Tweaks
* remove unused style
* stop propagation on the header so version can be highlighted
* make sure useContextMenu has the exact same logic as before
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
* Hide Correlations Page behind a toggle
* Remove redundant defaults
* Ensure top nav is rendered when correlations are disabled
This is for the case when:
[feature_toggles]
topnav = true
* add context button to right side of log row
* add context button to right side of log row
* add context button to right side of log row
* add context button to right side of log row
* add show-context icon
Co-authored-by: Sven Grossmann <svennergr@gmail.com>
* Progress
* Progress
* Things are working
* More tweaks
* Fixing unit test
* Tweaks and fixing e2e tests
* Remove ... in Save as
* Fixing unit test
* Fixing e2e test
* Fixes
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* Change nav structure when topnav is enable to do initial tests with new information architecture
* Support for nested sections
* Updated
* sentance case
* Progress on plugin challange
* Rewrite to functional component
* Progress
* Updates
* Progress
* Progress on things
* missing file
* Fixing issue with runtime, need to use setter way to set component exposed via runtime
* Move PageLayoutType to grafana/data
* Fixing breadcrumb issue, adding more tests
* reverted backend change
* fix recursive issue with cleanup
* Toggle on the mixed mode option
* Ensure switching to mixed gives existing query prev datasource
* WIP - Populate datasource when switching between mixed and not
* WIP - handle change from mixed
* Remove preimport filter, refine filter to work for queries
* WIP debugging datasource transition
* Ensure creating a new query gets target data source if switching with no matches between
* Add mixed datasource to rich history display
* Cleanup console logs, add relevant comments
* Add feature toggle for mixed datasource
* Fix Wrapper tests
* Fix tests!
* Fix test types and add feature tracking
* Remove unnecessary default, remove explore/mixed workarounds for D2E
* Move display text logic to mixed datasource file
* Add in the default query parameters to a generated empty query
* Condense some code
* Apply suggestions from code review
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Add more logic around mixed datasource being off for explore
* Build out logic to handle different datasource scenarios
* Add tests
* Finalize last test
* Fix mixed URL with mixed ds off, and relevant test
* Fix datasource to explore workflow
* Add datasource change function, call import queries if needed
* add logic for changing single query ds
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Update dependency @testing-library/user-event to v14.4.3
* use ReturnType instead of using a nested import
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* First working version of the TraceQL editor with syntax highlighting and autocomplete
* Add feature flag around the new editor option
* Fix tests and cleanup
* Fix misspelling
* Scenes: Support new top nav
* Page: Make Page component support new and old dashboard page layouts
* Pass scrollbar props
* Fixing flex layout for dashboard
* Progress on dashboard settings working with topnav
* Updated
* Annotations working
* Starting to work fully
* Fix merge issue
* Fixed tests
* Added buttons to annotations editor
* Updating tests
* Move Page component to each page
* fixed general settings page
* Fixed versions
* Fixed annotation item page
* Variables section working
* Fixed tests
* Minor fixes to versions
* Update
* Fixing unit tests
* Adding add variable button
* Restore annotations edit form so it's the same as before
* Fixed semicolon in dashboard permissions
* Fixing unit tests
* Fixing tests
* Minor test update
* Fixing unit test
* Fixing e2e tests
* fix for e2e test
* fix a11y issues
* Changing places Settings -> General
* Trying to fix a11y
* I hope this fixes the e2e test
* Fixing merge issue
* tweak
* Add fixture-factories for all variable types
* clean up variable guards
* add tests for isMulti, hasCurrent, and hasOptions variable type guards
* create VariableSupport type to try and work around ts wonkiness
* Revert "Chore: Bump terser to fix security vulnerability (#53052)"
This reverts commit 7ae74d2a18.
* feat: use tsc and rollup directly with esbuild and publishConfig, files props
* refactor(grafana-data): fix isolatedModules re-export type error
* refactor(grafana-data): import paths from src not package name
* refactor(rollup): fix dts output.file
* chore(grafana-schema): delete dashboard_experimental.gen.ts - cannot work with isolatedModules
* refactor(grafana-e2e-selectors): fix export types isolatedModules error
* refactor(grafana-runtime): fix isolatedModules re-export type error
* refactor(grafana-ui): fix isolatedModules re-export type error
* feat(grafana-ui): use named imports for treeshaking
* refactor(grafana-ui): use named imports for treeshaking
* feat: react and react-dom as peerDeps for packages
* feat(grafana-ui): emotion packages as peerDeps
* feat(grafana-e2e): use tsc, rollup, esbuild for bundling
* chore(packages): clean up redundant dependencies
* chore(toolkit): deprecate unused package:build task
* chore(schema): put back dashboard_experimental and exclude to prevent isolatedModules error
* docs(packages): update readme
* chore(storybook): disable isolatedModules for builds
* chore: relax peerDeps for emotion and react
* revert(grafana-ui): put @emotion dependencies back
* refactor: replace relative package imports with package name
* build(packages): set emitDeclaration false for typecheck scripts to work
* test(publicdashboarddatasource): move test next to implementation. try to appease the betterer gods
* chore(storybook): override ts-node config for storybook compilation
* refactor(grafana-data): use ternary so babel doesnt complain about expecting flow types
* chore(toolkit): prefer files and publishConfig package.json props over copying
* build(npm): remove --contents dist arg from publishing commands
* chore(packages): introduce sideEffects prop to package.json to hint package can be treeshaken
* chore(packages): remove redundant index.js files
* feat(packages): set publishConfig.access to public
* feat(packages): use yarn berry and npm for packaging and publishing
* refactor(packages): simplify rollup configs
* chore(schema): add comment explaining need to exclude dashboard_experimental
* revert(toolkit): put back clean to prevent cli failures
* ci(packages): run packages:pack before a canary publish
* chore(gitignore): add npm-artifacts directory to ignore list
* test(publicdashboarddatasource): fix module mocking
* chore(packages): delete package.tgz when running clean
* chore(grafana-data): move dependencies from devDeps to prevent build resolution errors