Использование LogMetric в изолированном режиме Azure Function 8.0

Я установил Microsoft.Extensions.Logging, но получаю следующую ошибку компилятора:

«ILogger» не содержит определения «LogMetric» и доступного метода расширения «LogMetric».

Есть какие-нибудь указания о том, что нужно установить, чтобы иметь возможность войти в метрики из приложения-функции Azure 8.0?

<PackageReference Include = "Microsoft.Azure.Functions.Worker" Version = "1.22.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http" Version = "3.2.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version = "1.3.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues" Version = "5.4.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Timer" Version = "4.3.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.Sdk" Version = "1.17.2" />
<PackageReference Include = "Microsoft.ApplicationInsights.WorkerService" Version = "2.22.0" />
<PackageReference Include = "Microsoft.Azure.Functions.Worker.ApplicationInsights" Version = "1.2.0" />
<PackageReference Include = "Microsoft.Azure.WebJobs" Version = "3.0.39" />
<PackageReference Include = "Microsoft.Azure.WebJobs.Extensions.Storage" Version = "5.3.0" />
<PackageReference Include = "Microsoft.Data.SqlClient" Version = "5.2.0" />
<PackageReference Include = "Microsoft.Extensions.Logging" Version = "8.0.0" />

Можете ли вы предоставить свою конфигурацию

RithwikBojja 05.06.2024 12:40

У меня это работает, и у меня есть следующие пакеты: <PackageReference Include = "Microsoft.ApplicationInsights.WorkerService" Version = "2.22.0" /> <PackageReference Include = "Microsoft.Azure.Functions.Worker.ApplicationInsight‌​s" Version = "1.2.0" />

RithwikBojja 05.06.2024 12:44

Спасибо. Я добавил это в основной пост. Какое у тебя применение?

Thomas Segato 05.06.2024 14:19
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
3
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, проблема связана с вашими пакетами, и после изменения пакетов, указанных ниже, у меня это сработало:

Я использовал пакет Microsoft.Azure.Functions.Worker.ApplicationInsights.

Мои пакеты в csproj:

  <ItemGroup>
    <FrameworkReference Include = "Microsoft.AspNetCore.App" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker" Version = "1.21.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http" Version = "3.1.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version = "1.2.1" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Sdk" Version = "1.17.0" />
    <PackageReference Include = "Microsoft.ApplicationInsights.WorkerService" Version = "2.22.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.ApplicationInsights" Version = "1.2.0" />
    <PackageReference Include = "Microsoft.Extensions.Configuration.UserSecrets" Version = "8.0.0" />
  </ItemGroup>
  

Функция1.cs:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace FunctionApp182
{
    public class Function1
    {
        private readonly ILogger<Function1> _logger;
        public Function1(ILogger<Function1> logger)
        {
            _logger = logger;
        }
        [Function("Function1")]
        public IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
        {
            _logger.LogInformation("Hello Rithwik, Func Started");
            _logger.LogMetric("rithwik", 8);
            return new OkObjectResult("Hello Rithwik, Func Ended");
        }
    }
}

Программа.cs:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .Build();

host.Run();

Выход:

В Application Insights:

В местном:

Работал для меня. Спасибо, очень ценю.

Thomas Segato 05.06.2024 16:27

Другие вопросы по теме