Udostępnij za pośrednictwem


.NET .NET Aspire telemetria

Jednym z głównych celów .NET.NET Aspire jest zapewnienie, że aplikacje są proste do debugowania i diagnozowania. .NET .NET Aspire integracje automatycznie ustawiają konfiguracje rejestrowania, śledzenia i metryk, które są czasami znane jako filary obserwowalności, przy użyciu zestawu SDK .NETOpenTelemetry.

  • logowania: logi opisują, co dzieje się podczas działania aplikacji. Zestaw punktów odniesienia jest domyślnie włączony dla integracji .NET.NET Aspire, a bardziej rozbudowane rejestrowanie można włączyć na żądanie, aby zdiagnozować konkretne problemy.

  • trasowanie: Ślady korelują zdarzenia dziennika, które są częścią tych samych działań logicznych (np. obsługi pojedynczego żądania), nawet jeśli są one rozłożone na wiele maszyn lub procesów.

  • Metrics: Metryki uwidaczniają charakterystykę wydajności i kondycji aplikacji jako proste wartości liczbowe. W związku z tym mają one niskie obciążenie wydajnościowe i wiele usług konfiguruje je jako stale aktywną telemetrię. Ułatwia to również wyzwalanie alertów w przypadku wykrycia potencjalnych problemów.

Razem te typy danych telemetrycznych umożliwiają uzyskanie wglądu w zachowanie i wydajność aplikacji przy użyciu różnych narzędzi do monitorowania i analizy. W zależności od usługi pomocniczej niektóre integracje mogą obsługiwać tylko niektóre z tych funkcji.

integracja .NET AspireOpenTelemetry

Zestaw SDK .NETOpenTelemetry zawiera funkcje zbierania danych z kilku interfejsów API .NET, w tym ILogger, Activity, Meteri Instrument<T>. Te interfejsy API odpowiadają funkcjom telemetrii, takich jak rejestrowanie, śledzenie i metryki. projekty definiują konfiguracje zestawu SDK w projekcie ServiceDefaults. Aby uzyskać więcej informacji, zobacz ustawienia domyślne usługi .NET.NET Aspire.

Domyślnie metoda ConfigureOpenTelemetry umożliwia rejestrowanie, śledzenie i metryki dla aplikacji. Dodaje również eksporterów dla tych punktów danych, aby można je było zbierać za pomocą innych narzędzi do monitorowania.

Eksport danych OpenTelemetry w celu monitorowania

Zestaw SDK .NETOpenTelemetry ułatwia eksportowanie tych danych telemetrycznych do magazynu danych lub narzędzia do raportowania. Mechanizm eksportu danych telemetrycznych opiera się na protokole OpenTelemetry (OTLP), który służy jako standardowe podejście do przesyłania danych telemetrycznych za pośrednictwem REST lub gRPC. Metoda ConfigureOpenTelemetry rejestruje również eksporterów w celu udostępnienia danych telemetrycznych innym narzędziom monitorowania, takim jak Prometheus lub Azure Monitor. Aby uzyskać więcej informacji, zobacz OpenTelemetry konfigurację.

OpenTelemetry zmiennych środowiskowych

OpenTelemetry ma listę znanych zmiennych środowiskowych, które konfigurują najważniejsze zachowanie do zbierania i eksportowania danych telemetrycznych. zestawy SDK OpenTelemetry, w tym zestaw SDK .NET, obsługują odczytywanie tych zmiennych.

.NET Aspire projekty są uruchamiane ze zmiennymi środowiskowymi, które konfigurują nazwę i identyfikator aplikacji w wyeksportowanych danych telemetrycznych oraz ustawiają adres punktu końcowego OTLP server dla eksportu danych. Na przykład:

  • OTEL_SERVICE_NAME = myfrontend
  • OTEL_RESOURCE_ATTRIBUTES = service.instance.id=1a5f9c1e-e5ba-451b-95ee-ced1eee89c168
  • OTEL_EXPORTER_OTLP_ENDPOINT = http://localhost:4318

Zmienne środowiskowe są automatycznie ustawiane w środowisku lokalnym.

.NET .NET Aspire programowanie lokalne

Podczas tworzenia projektu .NET Aspire pulpit nawigacyjny .NET Aspire domyślnie udostępnia interfejs użytkownika do wyświetlania danych telemetrycznych aplikacji. Dane telemetryczne są wysyłane do pulpitu nawigacyjnego przy użyciu funkcji OTLP, a pulpit nawigacyjny implementuje server OTLP w celu odbierania danych telemetrycznych i przechowywania ich w pamięci. Przepływ pracy debugowania .NET.NET Aspire jest następujący:

  • Deweloper uruchamia projekt .NET.NET Aspire z debugowaniem, naciska F5.
  • .NET .NET Aspire start pulpitu nawigacyjnego i płaszczyzny sterowania deweloperów (DCP).
  • Konfiguracja aplikacji jest uruchamiana w projekcie AppHost.
    • OpenTelemetry zmienne środowiskowe są automatycznie dodawane do projektów .NET podczas konfigurowania aplikacji.
    • DcP udostępnia nazwę (OTEL_SERVICE_NAME) i identyfikator (OTEL_RESOURCE_ATTRIBUTES) aplikacji w wyeksportowanej telemetrii.
    • Punkt końcowy OTLP jest portem HTTP/2 uruchomionym przez pulpit nawigacyjny. Ten punkt końcowy jest ustawiany w zmiennej środowiskowej OTEL_EXPORTER_OTLP_ENDPOINT dla każdego projektu. To powoduje, że projekty eksportują dane telemetryczne z powrotem do pulpitu nawigacyjnego.
    • Małe interwały eksportu (OTEL_BSP_SCHEDULE_DELAY, OTEL_BLRP_SCHEDULE_DELAY, OTEL_METRIC_EXPORT_INTERVAL), dzięki czemu dane są szybko dostępne na pulpicie nawigacyjnym. Małe wartości są używane w środowisku lokalnym do określania priorytetów czasu odpowiedzi pulpitu nawigacyjnego w porównaniu z wydajnością.
  • Program DCP uruchamia skonfigurowane projekty, kontenery i pliki wykonywalne.
  • Po uruchomieniu aplikacje wysyłają dane telemetryczne do pulpitu nawigacyjnego.
  • Panel wyświetla prawie w czasie rzeczywistym dane telemetryczne wszystkich projektów .NET.NET Aspire.

Wszystkie te kroki są wykonywane wewnętrznie, więc w większości przypadków deweloper po prostu musi uruchomić aplikację, aby zobaczyć ten proces w działaniu.

Wdrożenie .NET.NET Aspire

.NET Aspire środowiskach wdrażania należy skonfigurować OpenTelemetry zmiennych środowiskowych, które mają sens dla ich środowiska. Na przykład OTEL_EXPORTER_OTLP_ENDPOINT należy skonfigurować dla lokalnego kolektora OTLP lub usługi monitorowania środowiska.

.NET .NET Aspire telemetria działa najlepiej w środowiskach obsługujących protokół OTLP. Eksportowanie OTLP jest wyłączone, jeśli nie skonfigurowano OTEL_EXPORTER_OTLP_ENDPOINT.

Aby uzyskać więcej informacji, zobacz .NET.NET Aspire deployments.