Commit Graph

89 Commits

Author SHA1 Message Date
Andreas Christou
c52d4e2a64 AzureMonitor: Automate location retrieval (#59602)
* Automate location retrieval

- Add function to retrieve provider information
- Add function to retrieve subscription locations
- Add parsers for each function
- Add types
- Update resourcePickerData with new functions
- Remove old location metadata file

* Improve types

- Add types for responses
- Use correct name parameter
- Update response parser (parseProvider unnecessary)

* Fix tests

- Add necessary mocks

* Fix logic and ensure maps are consistent

* Add tests

* Review

* Lint issue
2022-12-02 13:23:15 +00:00
renovate[bot]
e84a01e870 Update jest monorepo to v29 (#58261)
* 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>
2022-11-24 14:00:41 +00:00
Andreas Christou
462ca50512 AzureMonitor: Ensure resourceURI template variable is migrated (#56095)
* Ensure resourceURI template vars are migrated

- Do not filter queries containing a resource URI template
- Update migration
- Add test

* Update condition

* Review
2022-10-04 04:44:34 -04:00
Adam Simpson
879ee82b83 AzureMonitor: Fix custom namespaces (#54937) 2022-09-12 12:10:51 +02:00
Andres Martinez Gotor
366129c14e AzureMonitor: Fix metric namespace list (#54826) 2022-09-09 10:17:10 +02:00
Andres Martinez Gotor
a4f56446ee Azure Monitor: Restore Metrics query parameters: subscription, resourceGroup, metricNamespace and resourceName (#52897)
* Azure Monitor: (Components) deprecate ResourceURI (#52982)
2022-08-01 17:48:49 +02:00
Andres Martinez Gotor
7505cf418b Azure Monitor: Deprecate metricDefinition (#52793) 2022-07-27 15:26:32 +02:00
Andres Martinez Gotor
2538fca53a Azure Monitor: Add support for Metric Names variables (#52322)
* Azure Monitor: Add support for Metric Names variables

* Azure Monitor: Add support for Workspaces variables (#52323)
2022-07-20 11:04:01 +02:00
Andres Martinez Gotor
10b9830cec Azure Monitor: Add template variables for namespaces and resource names (#52247) 2022-07-15 13:10:03 +02:00
Andres Martinez Gotor
438c76252a Azure Monitor: Add support to migrate some queries with template variables (#51881) 2022-07-07 14:44:53 +02:00
Andreas Christou
0a6eeaa636 AzureMonitor: Update curated dashboards (#51331)
* Ensure resource name is appended to URI

* Add storage account check to ensure default subresource is appended

* Update storage dashboard

* Bump storage version

* Remove ADX StreamingIngestRequestRate panel as the metric is unavailable

* Refactor condition for storage namespaces

* Add more tests for URI builder

* Do not migrate resource URI if resource name or metric definition uses template variables

* Revert change to metricNamespace
2022-07-06 15:37:17 +01:00
Andreas Christou
ecaa1dcbfd AzureMonitor: Migrate to backend checkHealth API (#50448)
* Add check health functions for each datasource and generic checkHealth function

* Log backend errors

* Update testDatasource function

- Remove unused testDatasource functions from pseudo datasources

* Switch datasource to extend DataSourceWithBackend

* Improve errors and responses from health endpoint

* Fix backend lint issues

* Remove unneeded frontend tests

* Remove unused/unnecessary datasource methods

* Update types

* Improve message construction

* Stubbing out checkHealth tests

* Update tests

- Remove comments
- Simplify structure

* Update log analytics health check to query data rather than retrieve workspace metadata

* Fix lint issue

* Fix frontend lint issues

* Update pkg/tsdb/azuremonitor/azuremonitor.go

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>

* Updates based on PR comments

- Don't use deprecated default workspace field
- Handle situation if no workspace is found by notifying user
- Correctly handle health responses

* Remove debug line

* Make use of defined api versions

* Remove field validation functions

* Expose errors in frontend

* Update errors and tests

* Remove instanceSettings

* Update error handling

* Improve error handling and presentation

* Update tests and correctly check error type

* Refactor AzureHealthCheckError and update tests

* Fix lint errors

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2022-06-20 11:33:13 +01:00
Andres Martinez Gotor
1f0c951bce AzureMonitor: Update supported namespaces (#50788) and filter resources by the right type (#50880) 2022-06-17 10:15:20 +02:00
Ashley Harrison
803473f479 Chore: Enable useUnknownInCatchVariables for stricter type checking in catch blocks (#50591)
* wrap a bunch of errors

* wrap more things!

* fix up some unit tests

* wrap more errors

* tiny bit of tidy up
2022-06-15 08:59:29 +01:00
Andreas Christou
c8094b33cd AzureMonitor: Ensure original query properties are included unchanged (#49642)
* Ensure original query properties are included unchanged

* Remove refId from pseudo datasources

* Include testing for interpolateVariablesInQueries

- Add util function to create template variables
- Update mock query with missing props
- Additional tests on each ds for template variables

* Correct typo and add explicit check for datasource
2022-05-26 14:53:12 +01:00
Andreas Christou
34fa7b493c AzureMonitor: Fixes metric definition for Azure Storage queue/file/blob/table resources. (#49101)
* Appropriately set metric definition

- Nested storage account resources (queues/blobs/tables/files) require metric definition of Microsoft.Storage/storageAccounts
- Update tests accordingly

* Restructure getResourceNames test

- Add expect on getResource args

* Update to fix issue for new query editor

- Reconstruct resourceUri if the resource is a storage account
- Correctly push storage namespaces as options for metric namespaces
- Filter options appropriately

* Fix duplicate options

* Fix lint issues

* Add comment explaining URI modification
2022-05-20 16:36:42 +01:00
Andreas Christou
2bd9e9aca5 AzureMonitor: Add support for selecting multiple options when using the equals and not equals dimension filters (#48650)
* Add support for multiselect

- Add filters param to Dimensions
- Update existing tests
- Add MultiSelect component
- Add helper function to determine valid options
- Update labels hook to account for custom values
- Update go type
- Add function to build valid filters string

* Additional go tests

- Ensure query targets are built correctly

* Update DimensionFields frontend test

- Corrently rerender components
- Additional test for multiple labels selection
- Better selection of options in react-select components

* Fix lint issue

* Reset filters when operator or dimension changes

* Terminology

* Update test

* Add backend migration

- Update types (deprecate Filter field)
- Add migration logic
- Update tests
- Update dimension filters buliding

* Add migration test code

* Simplify some logic

* Add frontend deprecation notice

* Add frontend migration logic and migration tests

* Update setting of filter values

* Update DimensionFields test

* Fix linting issues

* PR comment updates

- Remove unnecessary if/else condition
- Don't set filter default value as queries should be migrated
- Add comment explaining why sw operator only accepts one value
- Remove unnecessary test for merging of old and new filters

* Nit on terminology

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>

* Rename migrations for clarity

Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
2022-05-10 15:05:48 +01:00
jcolladokuri
3ee99821bc AzureMonitor: Updates allowed namespaces (#48468) 2022-05-03 14:41:05 +02:00
Josh Hunt
3c6e0e8ef8 Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import

* Fix the lint:ts npm command

* Autofix + prettier all the files

* Manually fix remaining files

* Move jquery code in jest-setup to external file to safely reorder imports

* Resolve issue caused by circular dependencies within Prometheus

* Update .betterer.results

* Fix missing // @ts-ignore

* ignore iconBundle.ts

* Fix missing // @ts-ignore
2022-04-22 14:33:13 +01:00
Kevin Yu
01c22ee366 Azure Monitor: Migrate metrics queries to use a resource URI (#47696)
* migrate old query to new query

* remove new prefixed data fetchers

* fix lint

* add test cases for v7 and v8 query versions

* add mock ids in test

* add clarifying comment

* add types for azure monitor api data fetchers

* add additional comment to explain the types
2022-04-20 05:00:39 -07:00
Andres Martinez Gotor
2d8d9bc137 AzureMonitor: Fix Microsoft.ClassicCompute/domainNames namespace (#47877) 2022-04-19 16:23:52 +02:00
Kevin Yu
ebe5f3646f AzureMonitor: Use Resource Picker in Metrics Query Editor (#47164)
* wip: new metrics query editor

* prepend subscriptions to url path

* remove duplicated setQueryValue file

* add tests for new metrics query editor

* wip start extracting resource field into a shared component

* fix query editor test

* fix up backend tests

* move azure monitor specific getters to azure_monitor_datasource

* use existing useAsyncState hook

* extract useAsyncState into separate file

* add datahooks tests

* extract resource field component

* cleanup

* clarify variable names

* remove logs query specific resource field component

* add url_builder test

* add azure_monitor_datasources tests

* address comments

* add types

* pass resourceUri to resource field component

* add test to check we reset the query fields when changing resources
2022-04-08 08:49:46 -07:00
renovate[bot]
d87cd6f26c Update dependency prettier to v2.5.1 (#43473)
* Update dependency prettier to v2.5.1

* prettier fixes

* chore(toolkit): bump prettier to 2.5.1

* style(eslint): bump grafana config to 2.5.2 in core and toolkit

* style(mssql-datasource): fix no-inferrable-types eslint errors

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2022-02-02 12:02:32 +00:00
Andres Martinez Gotor
46caa1af66 AzureMonitor: Request multiple pages of resource names (#44208) 2022-01-20 09:30:09 +01:00
Andres Martinez Gotor
de4ac8ae59 AzureMonitor: Filter list of resources by resourceType (#43522) 2022-01-10 11:22:06 +01:00
James D
beb3a8f02d Azure Monitor: Added Microsoft.Cdn/profiles to supported namespace list (#42745)
* Added Microsoft.Cdn/profiles to Azure Monitor Plugin

Microsoft.Cdn/profiles is the Azure Front Door Standard/Premium resource which is not present in the supported namespaces. I would like to use this with Grafana.

* Azure Monitor: Added CDN WAF namespace

Added Microsoft.Cdn/cdnwebapplicationfirewallpolicies
Ensured both Microsoft.Cdn/cdnwebapplicationfirewallpolicies and Microsoft.Cdn/profiles are available in all azure clouds
2021-12-07 10:31:31 +01:00
Andres Martinez Gotor
c15f444296 AzureMonitor: Add Microsoft.Insights/components metric namespace to other clouds (#42349) 2021-11-26 11:48:24 +01:00
Erik Sundell
07754351b7 Azure monitor: Make sure alert rule editor is not enabled when template variables are being used (#41335)
* check if variable exist in query

* add tests

* pr feedback
2021-11-05 12:21:28 +01:00
Sarah Zinger
3da4e1cdcd Azure Monitor: Add Resource Picker to Template Variable Query Editor (#40841)
Azure Monitor: Add Resource Picker to Template Variable Query Editor
- Should fix bug related broken template variables that relied on a deprecated default workspace.
2021-11-02 15:30:15 -04:00
Andres Martinez Gotor
ed68056b88 AzureMonitor: Make ResourceNames() case insensitive (#40690) 2021-10-20 16:35:35 +02:00
Isabella Siu
bf9be975ac AzureMonitor: move metric deep link code to backend (#39524) 2021-09-28 09:24:18 -04:00
Josh Hunt
17306217aa AzureMonitor: Support PostgreSQL and MySQL Flexible Servers (#38075) 2021-08-19 16:56:58 +02:00
Ashley Harrison
3004a650b5 Chore: Fix more TypeScript strict errors (#37066)
* Chore: Fix more TypeScript strict errors

* whoops
2021-07-22 08:09:55 +01:00
Andres Martinez Gotor
96efbbaed1 Azure Monitor: Implement CallResourceHandler in the backend (#35581) 2021-07-16 12:47:26 +02:00
Josh Hunt
43ee7acecd AzureMonitor: Make all query properties optional (#36701)
* start to make all query fields optional

* fix other types

* fix optional types in fields

* Pfeedback!

* Clean up types
2021-07-14 12:36:11 +02:00
shuotli
83860bdcc3 AzureMonitor: Add cloud specific deep linking (#35784) 2021-06-23 10:26:09 +02:00
Tom Pickles
b05b5d5e3b AzureMonitor: Fix queries with Microsoft.NetApp/../../volumes resources (#32661)
* Extend description of existing tests (#28350)

* Tests for building MetricNamespaces URL (#28350)

* Added tests that break the URL builder (#28350)

* Arbitrary length of metric definition (#28350)

* Change var to const as requested (#32661)

* Adding tests to datasource url builder (#28350)

* Fixes to datasource url builder (#28350)

* Fixed linting issue that broke build (#28350)
2021-06-21 13:05:13 +01:00
Josh Hunt
3be0a2d328 AzureMonitor: Use resource type display names in the UI (#35060)
* AzureMonitor: Use display names for resource types and locations

* de-pluralize resource types

* Rename Namespace field to Resource Type, and use display names

* add comments
2021-06-02 12:47:04 +02:00
Sergey Kostrukov
179eb0898e AzureMonitor: remove requirement for default subscription (#34787)
* Do not require default subscription for Azure Monitor

* Fix explore URLs when default subscription not set

* Test datasource fixes

* Added comment

* Fix first or default subscription/workspace

* SubscriptionField doesn't depend on Log Analytics

* Tests fixed

* Select default subscription only when user clicked
2021-05-28 10:19:31 +01:00
Sergey Kostrukov
de86114b66 AzureMonitor: reset default subscription when credentials change (#34707)
* Update default subscription on credentials change

* Fix secret reset when subscription selected

* Remove unused exports
2021-05-27 19:03:36 +01:00
Sergey Kostrukov
afbd4dec52 AzureMonitor: Managed Identity configuration UI (#34170)
* Basic UI for Managed Identity

* Credentials logic

* Fix datasource validation

* Do not offer Managed Identity for Log Analytics

* Logic fixes

* Show Log Analytics credentials only for App Registration

* Fix tests

* Datasource validation refactoring
2021-05-19 21:48:53 +02:00
Sergey Kostrukov
24b878ca4f AzureMonitor: Credentials UI logic encapsulation (#33620)
* Convert credentials form to a functional component

* Encapsulation of Azure credentials logic

* Fix selection of subscriptions

* Load subscriptions on init and save options only if they're unsaved

* Functions for resolution of routes

* Resolve routes of all API requests

* Reset default value if not found anymore

* Fix tests

* Symbol to conceal secret
2021-05-11 20:34:41 +01:00
Sarah Zinger
ed2388bfea Azure Monitor: Fix aggregation reset bug (#33287)
Fix aggregation reset bug
2021-04-26 17:41:02 +01:00
Roman
561fd4162e Azure Monitor: Add support for Microsoft.SignalRService/SignalR metrics (#33246)
* Add Microsoft.SignalRService/SignalR to supported namespaces.

For Azure Monitor.

* Add missing comma.
2021-04-22 09:32:42 +02:00
kay delaney
bad048b7ba Performance: Standardize lodash imports to use destructured members (#33040)
* Performance: Standardize lodash imports to use destructured members
Changes lodash imports of the form `import x from 'lodash/x'` to
`import { x } from 'lodash'` to reduce bundle size.

* Remove unnecessary _ import from Graph component

* Enforce lodash import style

* Fix remaining lodash imports
2021-04-21 09:38:00 +02:00
Josh Hunt
a7d18bbc89 AzureMonitor: Add support for Virtual WAN namespaces (#32935)
* AzureMonitor: Add support for additional Microsoft.Network namespaces

* Update supported_namespaces.ts

* Update supported_namespaces.ts
2021-04-13 15:24:58 +01:00
deesejohn
45051ad2c1 Added Azure Monitor support for Microsoft.AppConfiguration/configurationStores namespace (#32123)
Closes #28733
2021-04-13 10:59:02 +01:00
shuotli
ad6010a7b3 AzureMonitor: Add deep links to Azure Portal for Metrics (#32273)
* Add Explore in azure portal functionality to Grafana AM data sources for Metrics

* fix url

* fix build

* Fix the URL with metric and aggregation

* user new version of metric blade

* use lookup object instead of enum for converting aggregation type

Co-authored-by: joshhunt <josh@trtr.co>
2021-04-06 11:28:49 +02:00
Josh Hunt
f1917f81b9 AzureMonitor: use undefined for empty Metrics values in jsonData (#32230)
* Remove old angular Metrics view controller code

* Make Metrics unset fields "undefined"

* add checks for 'select' in filterQuery

* fix tests
2021-03-23 12:31:04 +00:00
Hugo Häggmark
c8b59b79c3 Chore: Fix strict errors, down to 340 (#32109)
* Chore: reduces misc reducerTester strict issues

* Chore: fixes various strict errors in reducer tests for ElasticSearch

* Chore: lowers errors in AzureMonitor DataSource tests
2021-03-19 13:10:03 +01:00