influxdata / influxdata/telegraf
Update azure_monitor output plugin to supported SDK. Current module is EoL in March
- Dominant language
- Go
- Stars
- 17.8k
- Forks
- 5.8k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 161
Description
### Use Case
The Azure authentication module used by the `azure_monitor` output plugin will be retired in March. Please consider updating the plugin to use `azidentity` instead.
The notice _does_ indicate the current module will continue to work after March 31st, but that could break at any time in the future without notice - not to mention the increasing risk over time of security incident running an unsupported SDK, and the lack of new feature/compatibility development (e.g. the current plugin isn't compatible with Azure Arc enabled hybrid machines, but [would be](https://github.com/Azure/go-autorest/issues/644) if it used the newer `azidentity` SDK)
**References:**
* [azure_monitor: `import "github.com/Azure/go-autorest/autorest/azure/auth"`](https://github.com/influxdata/telegraf/blob/410226051daa56ced3acde1df97d5e147299ce7f/plugins/outputs/azure_monitor/azure_monitor.go#L21)
* [azure_monitor: `auth.NewAuthorizerFromEnvironmentWithResource`](https://github.com/influxdata/telegraf/blob/410226051daa56ced3acde1df97d5e147299ce7f/plugins/outputs/azure_monitor/azure_monitor.go#L161)
* [go-autorest/autorest/azure/auth at main · Azure/go-autorest](https://github.com/Azure/go-autorest/tree/main/autorest/azure/auth)
* [Update your Azure SDK libraries by 31 March 2023 | Azure updates | Microsoft Azure](https://azure.microsoft.com/en-us/updates/support-for-azure-sdk-libraries-that-do-not-conform-to-our-current-azure-sdk-guidelines-will-be-retired-as-of-31-march-2023/):
> NOTE: This module will go out of support by March 31, 2023. For authenticating with Azure AD, use module [azidentity](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity) instead. For help migrating from `auth` to `azidentiy` please consult the [migration guide](https://aka.ms/azsdk/go/identity/migration). General information about the retirement of this and other legacy modules can be found [here](https://azure.microsoft.com/updates/support-for-azure-sdk-libraries-that-do-not-conform-to-our-current-azure-sdk-guidelines-will-be-retired-as-of-31-march-2023/).
### Expected behavior
N/A
### Actual behavior
N/A
### Additional info
_No response_
Contributor guide
Research direction
Start in plugins/outputs/azure_monitor/azure_monitor.go, especially the legacy Azure authentication import and NewAuthorizerFromEnvironmentWithResource call identified in the issue. Read the azidentity migration guide and trace how the authorizer is used by the output plugin. Done means the plugin uses the supported SDK while preserving its existing Azure authentication behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, go
- Domain
- cloud
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100