Search code examples
c#.net-coreazure-application-insightsazure-appservice

Custom Metrics stop saving in App Insight after one hour


I am using Azure services in my application (AppService, AppInsight)

Also, I've implemented my project int .net Core6

I am using Microsoft.ApplicationInsights.AspNetCore library (version 2.22.0)

My Application Insight configuration in appsetting.json is like this

  "ApplicationInsights": {
     "ConnectionString": "InstrumentationKey=a91c943b-5268-42e1-80c3-dc03c5e9bf0c;IngestionEndpoint=https://easteurope.in.applicationinsights.azure.com/;LiveEndpoint=https://easteurope.livediagnostics.monitor.azure.com/"
 }

I've registered the Application insight service like this:

builder.Services.AddApplicationInsightsTelemetry();

and my code is

private readonly TelemetryClient telemetryClient;

public SaveMetricsUseCase(TelemetryClient telemetryClient)
{
    this.telemetryClient = telemetryClient;
}

...

private void SaveMetrics() {

   telemetryClient.GetMetric("ProjectName.PromptTokens", "CategoryId", "Model", "UserId")
      .TrackValue(input.Prompt, input.CategoryId, input.ModelName, input.UserId);

   telemetryClient.GetMetric("ProjectName.CompletionTokens", "CategoryId", "Model", "UserId")
      .TrackValue(input.Completion, input.CategoryId, input.ModelName, input.UserId);
}

Whenever I deploy my changes on AppService, the custom metrics are saved properly but after one hour the metrics stop storing and I can not see any metrics in the App Insight portal anymore (other logs and exceptions saved in AppInsight without problem, only metrics do not store anymore)

Have you any idea what the problem might be?


Solution

  • SOLVED

    The problem was related to valuesPerDimensionLimit property in MetricConfiguration, based on Microsoft documentation the unique values for each dimension have a limitation. When we use TrackValue with different dimension values (more than the limit) the track will not be saved anymore.