Azure / azure-functions-durable-extension

Durable Task Framework extension for Azure Functions
MIT License
717 stars 271 forks source link

Add "Durable Entity Method Invoked" in Request Telemetry #1355

Open brandonh-msft opened 4 years ago

brandonh-msft commented 4 years ago

Is your feature request related to a problem? Please describe. Out of the box telemetry for durable functions does not provide details about which method was invoked.

Describe the solution you'd like For durable function's telemetry to include which method was invoked so that individual durable entity operations can be observed and monitored.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context

The sample project from this repo can be used to repro these steps.

  1. Clone the repo.
  2. Open the project in Visual Studio 2019
  3. Run the Sample.Functions project
  4. Invoke the endpoint documented here
  5. From within Visual Studio click the Application Insights button and load ALL telemetry for last 30mins
  6. Inspect the request telemetry for "AccountEntity"

None of the properties on the request telemetry indicate the "Set" method was invoked.

We would have liked to see the operation invoked on the Durable Entity recorded in the request telemetry. This would have helped us observe critical individual operations for the application at a more wholistic level (encompassed our code plus the dependent api being invoked).

The customer is unable to isolate and observe individual durable entity operations. In a recent customer engagement, one of those operations is responsible for creating the shipping label with a carrier that will ultimately ship products. Therefore, its critical operation that should be closely monitored. If it fails, products are not getting shipped.

The customer is currently working around this by instead tracking the dependency telemetry produced from invoking the carrier's API for a particular route. However, this only captures what happened on the carrier side, it does not indicate behavior from within the customer's durable entity.

Internal Tracking CSEF 358757
ConnorMcMahon commented 3 years ago

@bachuv, this may not be distributed tracing specific, but it falls under the same category.