Azure / Azure/azure-functions-host

Add telemetry to the custom metadata provider path

Open
#10,475 0 comments 0 reactions 0 assignees View on GitHub
Logging and Metrics supportability
Dominant language
C#
Stars
2k
Forks
482
Avg merge
2d 12h
Merged PRs (30d)
38

Description

Related to: https://github.com/Azure/azure-functions-dotnet-worker/issues/788

When the host is reading metadata via a custom metadata provider ([code](https://github.com/Azure/azure-functions-host/blob/91e0bf7eca21fb9bb380450cf9d148745b0f4870/src/WebJobs.Script/Host/FunctionMetadataManager.cs#L219)), we do not validate the metadata like we do in our other code path (i.e. the [worker metadata provider](https://github.com/Azure/azure-functions-host/blob/91e0bf7eca21fb9bb380450cf9d148745b0f4870/src/WebJobs.Script/Host/WorkerFunctionMetadataProvider.cs#L126)).

Without the validation, function names can have unwanted characters such as `/` which can lead to further failures down the line i.e. with function keys, storage etc.

Updating the custom provider code path to validate the metadata would be a breaking change. To analyze if this should be a hard failure or if we should make any further changes here, we should add telemetry to this code path to give us a good idea of how many Function Apps would be impacted if we made changes here.

Contributor guide

Open the contributing guide

Research direction

Start with the custom provider path in src/WebJobs.Script/Host/FunctionMetadataManager.cs and compare it with validation in src/WebJobs.Script/Host/WorkerFunctionMetadataProvider.cs. Review existing host telemetry patterns, then add telemetry that shows how many apps and metadata entries would be affected by validation, including unwanted function-name characters. Done means the telemetry is emitted for the custom path and can support the breaking-change analysis.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp
Domain
backend, observability
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.