How to setup Application Insights with Asp.Net-Core HealthChecks
Asked Answered
A

2

6

Asp.Net Core released version 2.2 and together with it comes HealthChecks feature. (Read more). One of the features it has is to push health check results to Azure Application Insights. But I have not found any way how to see those results in Azure portal. To send the results I am using following extension:

        services.AddHealthChecks()
            .AddSqlServer("...")
            .AddApplicationInsightsPublisher();

Is there a way to view those Health Check reports in Application Insights?

EDIT 1: I took the example from official github docs.

EDIT 2: If I go to the Azure portal query analytics I see following results:

Querying requests:

enter image description here

Querying customEvents

enter image description here

here: GET /health is my healthCheck endpoint. By querying requests logs I can see if health check failed or not, but I want to see more details about each health check, also I don't think I need any extension for this, so I don't understand what AddApplicationInsightsPublisher() actually does.

Articular answered 17/1, 2019 at 16:24 Comment(4)
Where is AddApplicationInsightsPublisher() defined and what does it do? I am not aware of any automatic way to publish result to application insights - Application Insights continue to collect requests as usual.Abacus
Please see this for more info: github.com/Xabaril/… It is defined as extansion method to the AddHealthChecks service and it should push health check results to Application insightsLi
Once published to Application Insights, you can query them in the related resource by using Analytics (customEvents) or Metrics (Custom).Adze
@StefanPrugg I am not getting any customEvents with health check information. The only place where I can see it is in requests logs, but there I can only know if request succeded or failed, I would like to see which part of health check is failing exactly.Li
B
3

There is currently an issue with the registration of the publisher (HealthCheckPublisherHostedService) which will be fixed for aspnet core 3. Currently the workaround is to manually register correctly the class :

services.AddHealthChecks()
        .AddApplicationInsightsPublisher();

// This is a hack to fix an issue with the AddApplicationInsightsPublisher() call above
services.TryAddEnumerable(ServiceDescriptor.Singleton(typeof(IHostedService), typeof(HealthCheckPublisherOptions).Assembly.GetType("Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckPublisherHostedService")));

See : https://github.com/aspnet/Extensions/issues/639

Bouncer answered 24/1, 2019 at 9:56 Comment(0)
A
1

It looks the health events are sent to Application Insights as custom events using TravkEvent api. You can see them in Analytics or Search in the portal.

Abacus answered 18/1, 2019 at 14:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.