Nano Hash - криптовалюты, майнинг, программирование

Внедрение App Insights для пользовательских событий и показателей

Как правильно использовать пользовательские события и показатели для анализа приложений в ASP.NET Core с внедрением зависимостей? Есть ли способ ввести TelemetryClient?

Все, что я могу найти, создает экземпляр TelemetryClient напрямую, а TelemetryClient не реализует интерфейс.


Ответы:


1

TelemetryClient автоматически внедряется в DI при настройке Application Insights с помощью методов .UseApplicationInsights() или AddApplicationInsights(). Вы можете использовать внедрение конструктора, чтобы получить экземпляр TelemetryClient, как показано ниже.

public class HomeController : Controller
{
    private TelemetryClient telemetry;

    public HomeController(TelemetryClient telemetry)
    {
        this.telemetry = telemetry;
    }

    public IActionResult Index()
    {
        this.telemetry.TrackEvent("HomePageRequested");
        return View();
    }
}

https://github.com/Microsoft/ApplicationInsights-aspnetcore/wiki/Custom-Configuration#track-custom-traceeventmetric

19.06.2018
  • Я нашел 2 способа протестировать telemetryClient: 1. Обернуть telemetryClient в пользовательский класс и внедрить его в свои сервисы. 2. Создайте поддельный канал телеметрии согласно следующей статье: medium.com /@jrolstad/ 13.02.2019

  • 2

    я не уверен, что вам нужно делать внедрение зависимостей для этой части.

    другие вещи, внедряемые зависимостями, например .UseApplicationInsights(), обеспечивают настройку информации о приложении и т. д.

    после этого код, выполняющий пользовательские события или метрики, обычно создает TelemetryClient по запросу, устанавливает общий контекст для экземпляра, а затем записывает события/метрики сквозь его с помощью методов TrackEvent, TrackMetric и т. д. Предполагая, что ИИ правильно настроен в других местах, эти новые экземпляры клиентов телеметрии будут иметь другие общие/предварительно настроенные/внедренные параметры, готовые к работе.

    18.06.2018
  • Кажется, что внедрение зависимостей противоречит сути, не так ли? И интересно, как он поведет себя в юнит-тестах? Спасибо за ответ, кстати, спасибо ????! 19.06.2018
  • верно, но если нет интерфейса для клиента телеметрии (на самом деле, не знаю, почему его нет), это не то, что хорошо внедряется, поскольку его нелегко заменить. 19.06.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..