In the following Azure function, TrackEvent only fires events from the constructor. TrackEvent calls from TestTelemetryFunc
function are never fired.
The TestTelemetryFunc
function is using a cached telemetry client received in the constructor.
public class TestApi
{
private readonly TelemetryConfiguration telemetryConfiguration;
private readonly TelemetryClient telemetryClient;
private readonly TelemetryClient telemetryClientFromConfig;
public TestApi(TelemetryConfiguration telemetryConfiguration, TelemetryClient telemetryClient)
{
this.telemetryConfiguration = telemetryConfiguration;
this.telemetryClient = telemetryClient;
this.telemetryClient.TrackEvent(new EventTelemetry("Constructor.telemetryClient"));
this.telemetryClientFromConfig = new TelemetryClient(telemetryConfiguration);
this.telemetryClientFromConfig.TrackEvent(new EventTelemetry("Constructor.telemetryClientFromConfig"));
}
[FunctionName("TestTelemetryFunc")]
public async Task TestTelemetryFunc([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "test-telemetry/site/{siteId}")] HttpRequest req, string siteId)
{
this.telemetryClient.TrackEvent(new EventTelemetry("TestTelemetryFunc.telemetryClient"));
this.telemetryClientFromConfig.TrackEvent(new EventTelemetry("TestTelemetryFunc.telemetryClientFromConfig"));
}
}
Application Insights Results
6/4/2021, 3:08:04 PM | IngestionApi.TestTelemetry.Constructor | customEvent | TestTelemetryFunc
6/4/2021, 3:08:04 PM | Constructor.telemetryClientFromConfig | customEvent | TestTelemetryFunc
6/4/2021, 3:08:04 PM | Constructor.telemetryClient | customEvent | TestTelemetryFunc
6/4/2021, 3:08:03 PM | IngestionApi.TestTelemetry.Constructor | customEvent | TestTelemetryFunc
6/4/2021, 3:08:03 PM | Constructor.telemetryClientFromConfig | customEvent | TestTelemetryFunc
6/4/2021, 3:08:03 PM | Constructor.telemetryClient | customEvent | TestTelemetryFunc
6/4/2021, 3:08:02 PM | IngestionApi.TestTelemetry.Constructor | customEvent | TestTelemetryFunc
6/4/2021, 3:08:02 PM | Constructor.telemetryClientFromConfig | customEvent | TestTelemetryFunc
6/4/2021, 3:08:02 PM | Constructor.telemetryClient | customEvent | TestTelemetryFunc
6/4/2021, 3:05:21 PM | IngestionApi.TestTelemetry.Constructor | customEvent | TestTelemetryFunc
6/4/2021, 3:05:21 PM | Constructor.telemetryClientFromConfig | customEvent | TestTelemetryFunc
6/4/2021, 3:05:21 PM | Constructor.telemetryClient | customEvent | TestTelemetryFunc
6/4/2021, 2:49:19 PM | IngestionApi telemetry client | customEvent | TestTelemetryFunc
6/4/2021, 2:49:19 PM | Constructor.telemetryClientFromConfig | customEvent | TestTelemetryFunc
6/4/2021, 2:49:19 PM | Constructor.telemetryClient | customEvent | TestTelemetryFunc