* start marking up azuremonitor
* more markup
* finish mark up
* add package and correct imports
* convert to functional component + use correct t import
* fix duplicate key + typo
* add extract config + fake french translations to test
* run prettier and fix unit tests
* use nx
* enable i18n lint rules for azure monitor
* remove fake french translations
* await initPluginTranslations
* top level await breaks unit tests
* leave as class component for now
* Add function for retrieving logs table plan
- Add URL builder method
- Add types
* Add auto-switching for basic logs tables
* Set dashboardTime property
* Ensure useEffect doesn't run on every query change
* Fix basicLogs property
* Add isLoading for schema
* refactor(frontend): rename all @grafana/data/src imports to @grafana/data
* feat(grafana-data): introduce internal entrypoint for sharing code only with grafana
* feat(grafana-data): add test entrypoint for data test utils usage in core
* refactor(frontend): update import paths to use grafana/data exports entrypoints
* docs(grafana-data): update comment in internal/index.ts
* refactor(frontend): prefer public namespaced exports over re-exporting via internal
* chore(frontend): fix a couple more weird paths that typescript complains about
* markup or ignore remaining grafana-ui translations
* fix unit tests, commit betterer results which somehow didn't get autocommitted?! :o
* fix SharedPreferences unit test
* fix remaining unit tests
* fix azure e2e test
* better solution
* refactor(frontend): rename all @grafana/data/src imports to @grafana/data
* feat(grafana-data): introduce internal entrypoint for sharing code only with grafana
* feat(grafana-data): add test entrypoint for data test utils usage in core
* refactor(frontend): update import paths to use grafana/data exports entrypoints
* docs(grafana-data): update comment in internal/index.ts
* refactor(frontend): prefer public namespaced exports over re-exporting via internal
* feat(grafana-ui): introduce development exports to prevent importing from grafana/ui/src
* refactor(theme-generation): move theme templates into scripts so themes continue to build
* refactor(frontend): replace grafana/ui paths that use nested src with /internal or /unstable
* chore(betterer): update better results file
* feat(grafana-ui): support enterprise, remove Text component from internal
* docs(packages): update readme with exporting code conventions
* Update namespace endpoint to filter out only relevant namespaces
* Update tests
* Fix url builder tests
* Add todo comments
* Update func to use ARG to retrieve namespaces with metrics
* Refactor getMetricNamespaces for readability
* Lint
* Remove comments
* Remove type assertion
* Refactor ARG query
* Update tests and refactor class to use ARG
* Update resource group query
- Updates the resource groups query to support users/apps with restricted permissions
* Update resources request to be paginated
- Also order by name
- Add tests
* Start refactoring azure monitor util functions to resource graph
* Minor lint
* Add getMetricNamespaces resource graph function
* Modify getMetricNamespaces call
- Use resource graph function for variable queries
* Return names for getResourceNames values
* Use getMetricNamespaces variable specific req in editor
* Substantial refactor
- Update Azure Resource Graph data source with a method for making paged requests and a method for retrieving metric namespaces (and add tests)
- Extract helpers from azure_monitor_datasource to utils and generalise them (also revert previous changes to datasource and test file)
- Update mock with Azure Resource Graph data source
- Revert response parser changes
- Revert url builder changes
- Update get metric namespaces query to use the resource graph method for variable queries
- Update docs
* Lint
* Oops
* Fix type
* Lint and betterer
* Simplify imports
* Improve type
* Simplify resource picker class
* Start updating tests
* Fix naming and include missing error
* Update resource graph data source mock
* Update tests
* Remove unneeded parser
* Add get subscriptions to resource graph
* Generalise resource groups request
* Fix resource names request to ensure no clashing
* Update types
* Use resource graph queries for resource picker
* Correctly map resource group names
* Update mocks
* Update tests
* Fix mapping
* Refactor getResourceNames
- Remove most of the logic from resourcePickerData
- Add helper for parsing resource names as template vars
- Some renames for clarity
- Update types
- Update tests
* Ensure namespaces are lowercase
* Update docs/sources/datasources/azure-monitor/template-variables/index.md
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* Prettier write
* Ensure we return all namespaces if resourceGroup isn't specified
---------
Co-authored-by: alyssabull <alyssabull@gmail.com>
Co-authored-by: Larissa Wandzura <126723338+lwandz13@users.noreply.github.com>
* Add better error messaging
- Ensure it's clear to users what action needs to be taken if an operation ID cannot be found
- Add test
* Display resource picker for trace exemplar queries
* Remove unneeded test
* Update tests
* build(typescript): switch module resolution to bundler for exports imports goodness
* chore: bump react-calendar and temp patch prometheus-io package
* Wip
* feat(decoupled-plugin): fix types errors in tests by including testing-library/jest-dom
* chore(betterer): pass custom tsconfig so betterer continues to run
* Azure Monitor: Add a feature flag to toggle user auth for Azure Monitor only
* Fix condition for userIdentityEnabled
* Re-add removed test
* Remove unused prop
* Refactor onAuthTypeChange in AzureCredentialsForm
* Add frontend unit tests
* Lint
* if result format is null from previous query, it will be null and not correct to a different format
* update to not have empty value in result format field
* fix tests
* add check to see if options are in list
* reformat stuff so logic lives on the right layer
* linterrrrrrrrrrrrrrrrrrRR
* Apply suggestions from code review
* if result format is null from previous query, it will be null and not correct to a different format
* update to not have empty value in result format field
* fix tests
* add check to see if options are in list
* reformat stuff so logic lives on the right layer
* linterrrrrrrrrrrrrrrrrrRR
* frontend linter
* linter
* feedback :)
* Ensure default subscription is set
* Include some info for when the default subscription is required
* Rename settings mock
- Add mockDatasourceSettings function
* Add MonitorConfig test
* Revert "Rename settings mock"
- Avoid issues when backporting
* Remove description
* Remove required field
* Remove unused import
* update eslint, tsconfig + esbuild to handle new jsx transform
* remove thing that breaks the new jsx transform
* remove react imports
* adjust grafana-icons build
* is this the correct syntax?
* try this
* well this was much easier than expected...
* change grafana-plugin-configs webpack config
* fixes
* fix lockfile
* fix 2 more violations
* use path.resolve instead of require.resolve
* remove react import
* fix react imports
* more fixes
* remove React import
* remove import React from docs
* remove another react import
* Update types
* Mark datasource as supporting traces
* Add logic to transform exemplar query to traces query
* Render appropriate editor
* Run trace query for exemplars
* Refactor out common functions
- Add function to retrieve first/default subscription
* Add route for trace exemplars
* Update logic to appropriately query exemplars
* Update traces query builder
* Update instance test
* Remove unneeded import
* Set traces pseudo data source
* Replace deprecated function calls
* Add helper for setting default traces query
* Don't show resource field for exemplars query
* When resetting operation ID for exemplars set query to default
- Update tests
* Update query header to appropriately set the service value
* Fix response frame creation and update tests
* Correctly select resource
* Convert subscriptionsApiVersion to const
* Add feature toggle
* AzureMonitor: get the list of azure clouds from the SDK instead of from a hard coded list
* add azure-sdk to yarn.lock
* merge legacy with custom options
* Normalize legacy cloud names
* Workaround: send new credential format to backend while we wait to migrate to the new format
* Lint fix
* resolveLegacyCloudName should not return undefined
* re-add undefined handling in resolveLegacyCloudName so that we fallback to getDefaultAzureCloud when not defined
---------
Co-authored-by: Jeremy Angel <jeremyangel@microsoft.com>
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Azure monitor: Basic Logs frontend (#85905)
* adds datasource level config for enabling basic logs
* add basiclogsquery type to query json
* add toggle between basic and analytics
* adds basic logs toggle from UI, blocks time picker to only dashboard if basic logs is selected
* add check to remove UI if alerting
* tests for logsmanagement component
* tests for logs query editor
* tests for time mangement control
* remove unused imports
* clears query whenever toggle changes from basic <-> analytics
* add test to account for clearning query
* Update public/app/plugins/datasource/azuremonitor/components/ConfigEditor/BasicLogsToggle.tsx
wording
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* update dependency list
* clear basic logs if resources change
* fix tests
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Azure Monitor: Basic Logs modal acknowledgement (#86244)
* adds datasource level config for enabling basic logs
* add basiclogsquery type to query json
* add toggle between basic and analytics
* adds basic logs toggle from UI, blocks time picker to only dashboard if basic logs is selected
* add check to remove UI if alerting
* tests for logsmanagement component
* tests for logs query editor
* tests for time mangement control
* remove unused imports
* add confirm modal
* clears query whenever toggle changes from basic <-> analytics
* add test to account for clearning query
* adds modal acknowledgement for basic logs query
* tests for handling modal logic
* basic logs ack type
* Update public/app/plugins/datasource/azuremonitor/components/ConfigEditor/BasicLogsToggle.tsx
wording
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsQueryEditor.tsx
spelling
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* update dependency list
* clear basic logs if resources change
* remove modal from config page
* remove basic logs query ack type
* add modal acknowledgement to toggle between basic and analytics
* clear query if resources change
* fix tests
* fix tests
* Update public/app/plugins/datasource/azuremonitor/components/LogsQueryEditor/LogsManagement.tsx
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* fix tests
---------
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Azure Monitor: Basic Logs Backend (#87653)
* fix logic for showingBasicLogsToggle
* move to utils function and add basiclogsquery in apply template variable
* add backend safeguards for basiclogsqueries
* adds support for calling search or query apis based on whether it is basic logs or not
* add tests for utils
* initial test for basic logs query in the backend
* tests for basic logs
* remve comment
* simplify checks for basic logs
* adds fromAlert prop for azure monitor backend services
* adds fromAlert check fo basic logs
* fix working and empty tags
* add telemetry for basic logs
* remove import from grafana core package
* change fromAlert true in tests
* change the way tests catch errors
* Update pkg/tsdb/azuremonitor/loganalytics/utils.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update pkg/tsdb/azuremonitor/loganalytics/utils.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update pkg/tsdb/azuremonitor/loganalytics/utils.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* Update pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* restructure code to only run basic logs checks if basiclogsflag is true
* data retention warning
* tests for calculate time range
* Simplify determining if request is from alerting
* Fix lint and bool check
* Fix tests
* clarify data retention
---------
Co-authored-by: Jocelyn <jcolladokuri@microsoft.com>
Co-authored-by: jcolladokuri <jocelyncollado52@gmail.com>
* Azure Monitor: Basic Logs data volume notification (#88009)
* frontend changes for data ingested warning
* initial logic for getResource
* payload processing
* create basicLogs usage function
* add utils for converting time and getting the data volume query for basic logs
* frontend updates for showing the data ingested for the given query
* frontend tests
* add check for when no dataIngested is returned
* remove backend.logger prints
* comment on what function does
* fix merge
* make resource URI regex case insensitive
* add support for workspace variables in basic logs flow
* add undefined check
* structure and add tests for variable support
* Update pkg/tsdb/azuremonitor/loganalytics/azure-log-analytics-datasource.go
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
* add tracing for basic logs usage request
* clean up data volume query struct
* use async/await instead of callback
* fix parameters for getApiURL
* restrict time on usage query to 8 days max
* add time to dependency array to refetch basic logs usage
* move time check implementation to backend
* fix utils tests
---------
Co-authored-by: Jocelyn <jcolladokuri@microsoft.com>
Co-authored-by: jcolladokuri <jocelyncollado52@gmail.com>
---------
Co-authored-by: jcolladokuri <jcolladokuri@microsoft.com>
Co-authored-by: jcolladokuri <jocelyncollado52@gmail.com>
* set selected config type before save
* use effect once and move in mssql
* add to prom
* Update ConfigurationEditor.tsx
* Update ConfigurationEditor.tsx
* Delete public/app/plugins/datasource/mssql/configuration/ConfigurationEditor.tsx
* omadsfdsa
* remove unneeded assign
* chore(monaco): bump monaco-editor to latest version
* feat(codeeditor): use esm to load monaco editor
* revert(monaco): put back previous version
* feat(monaco): setup MonacoEnvironment when bootstrapping app
* feat(monaco): load monaco languages from registry as workers
* feat(webpack): clean up warnings, remove need to copy monaco into lib
* fix(plugins): wip - remove amd loader workaround in systemjs hooks
* chore(azure): clean up so QueryField passes typecheck
* test(jest): update config to fix failing tests due to missing monaco-editor
* test(jest): update config to work with monaco-editor and kusto
* test(jest): prevent message eventlistener in nodeGraph/layout.worker tripping up monaco tests
* test(plugins): wip - remove amd related tests from systemjs hooks
* test(alerting): prefer clearAllMocks to prevent monaco editor failing due to missing matchMedia
* test(parca): fix failing test due to undefined backendSrv
* chore: move monacoEnv to app/core
* test: increase testing-lib timeout to 2secs, fix parca test to assert dom element
* feat(plugins): share kusto via systemjs
* test(e2e): increase timeout for checking monaco editor in exemplars spec
* test(e2e): assert monaco has loaded by checking the spinner is gone and window.monaco exists
* test(e2e): check for monaco editor textarea
* test(e2e): check monaco editor is loaded before assertions
* test(e2e): add waitForMonacoToLoad util to reduce duplication
* test(e2e): fix failing mysql spec
* chore(jest): add comment to setupTests explaining need to incresae default timeout
* chore(nodegraph): improve comment in layout.worker.utils to better explain the need for file
* Grafana/ui: Add Space component
* Add responsive styles and prop docs
* Use the Box component
* Docs
* Replace the component from grafana/experimental
* Update story
* Tweak docs
* Adjust docs
* use floating-ui instead of react-popper-tooltip in Tooltip
* remove useTheme2 usage
* remove escape handling logic in favour of useDismiss
* don't need this useEffect anymore
* convert Toggletip to use floating-ui
* use explicit version
* convert OperationInfoButton to use Toggletip
* convert nestedFolderPicker to use floating-ui
* convert Dropdown to use floating-ui and remove react-popper-tooltip
* fix Modal/Tooltip tests
* revert to old toggletip behaviour
* revert OperationInfoButton to not use Toggletip
* add mock for requestAnimationFrame
* remove requestAnimationFrame mock
* remove fakeTimers where they're not used
* use floating-ui in ButtonSelect
* Fix filters unit tests
* only attach description if label is different
* use 'fixed' strategy for Toggletip
* use stroke and strokeWidth
* set move: false to only show the tooltip if a hover event occurs
* update type for onClose