Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj IConfiguration, aby filtrować instrumenty dla odbiorników metryk niestandardowych, które integrują się z wstrzykiwaniem zależności (DI). Filtry te kontrolują, z których instrumentów komponent nasłuchujący może subskrybować dane, a nie sposób agregowania lub eksportowania pomiarów.
Nasłuchiwacze metryk
Listener metryk odbiera pomiary z instrumentów, takich jak liczniki i histogramy, utworzone przez Meter. Klasa MeterListener udostępnia interfejs API niskiego poziomu do odnajdywania instrumentów i subskrybowania ich pomiarów bezpośrednio. W samouczku dotyczącym zbierania metryk pokazano, jak używać tego interfejsu API.
Interfejs IMetricsListener umożliwia niestandardowym listenerom integrację z DI i filtrami opartymi na konfiguracji. Infrastruktura metryk tworzy wewnętrznie obiekt MeterListener dla każdej zarejestrowanej implementacji IMetricsListener. Stosuje skonfigurowane reguły przed wywołaniem InstrumentPublished, aby udostępnić implementacji mechanizm. Jeśli listener zaakceptuje instrument, infrastruktura dostarcza pomiary do callbacków zapewnianych przez implementację.
Aby zarejestrować niestandardowy listener, użyj polecenia AddListener. Konfiguracja w tym artykule dotyczy tych zarejestrowanych listenerów, a nie wystąpień MeterListener, które kod lub kolektor konfiguruje bezpośrednio.
Załaduj konfigurację
Aplikacje Generic Host, które używają domyślnych ustawień buildera, automatycznie wywołują AddMetrics i ładują sekcję Metrics z IConfiguration W aplikacji DI bez hosta jawnie wywołaj AddMetrics i AddConfiguration(IMetricsBuilder, IConfiguration), aby powiązać tę samą sekcję:
services.AddMetrics(metrics =>
metrics.AddConfiguration(configuration.GetSection("Metrics")));
Aby użyć tych metod rozszerzeń, zaimportuj przestrzenie nazw Microsoft.Extensions.DependencyInjection i Microsoft.Extensions.Diagnostics.Metrics.
Important
Konfiguracja Metrics filtruje tylko instrumenty zarejestrowanych implementacji IMetricsListener. Nie rejestruje odbiorników ani nie aktywuje ich subskrypcji, nie tworzy metryk, nie agreguje miar, nie eksportuje danych ani nie konfiguruje automatycznie OpenTelemetry, Prometheus, dotnet-counters ani żadnego innego modułu zbierającego.
Wybierz mierniki i przyrządy
Użyj poniższych sekcji, aby wybrać liczniki, do których mają zastosowanie reguły:
| Section | Dotyczy |
|---|---|
EnabledMetrics |
Zarówno mierniki globalne, jak i lokalne. |
EnabledGlobalMetrics |
Mierniki bez zakresu, takie jak mierniki utworzone bezpośrednio za pomocą Meter. |
EnabledLocalMetrics |
Mierniki objęte zakresem kontenera usługi IMeterFactory. |
Sekcja EnabledMetrics, EnabledGlobalMetrics lub EnabledLocalMetrics bezpośrednio pod Metrics dotyczy każdego zarejestrowanego odbiornika. Aby wskazać jeden odbiornik, zagnieżdżaj sekcję pod wartością odbiornika Name, na przykład Metrics:MyListener:EnabledMetrics. Nazwy odbiorników i instrumentów wymagają dokładnych dopasowań bez względu na wielkość liter.
W dowolnej z tych sekcji wpis miernika boolowskiego włącza lub wyłącza każdy instrument, którego nazwa miernika pasuje do wpisu. Aby ustawić reguły na poziomie instrumentu, użyj obiektu z nazwami instrumentów jako kluczami. Specjalny wpis Default dostarcza mechanizm zastępczy. Wpis typu Boolean Default na poziomie miernika ma zastosowanie do mierników, które w przeciwnym razie nie zostały dopasowane. W obiekcie miernika parametr Default ma zastosowanie do instrumentów, które w przeciwnym razie nie zostały dopasowane. Nasłuchiwacz nie otrzymuje instrumentu, jeśli nie pasuje do niego żadna reguła.
appsettings.json Poniższy przykład uwzględnia instrumenty z mierników o nazwach zaczynających się od Contoso.Web, z wyjątkiem instrumentów o nazwie request-duration:
{
"Metrics": {
"EnabledMetrics": {
"Contoso.Web": {
"Default": true,
"request-duration": false
}
}
}
}
Dopasuj reguły i rozwiąż konflikty
Nazwy mierników używają dopasowania prefiksu bez uwzględniania wielkości liter. Nazwa miernika może zawierać co najwyżej jeden * symbol wieloznaczny, aby dopasować prefiks i sufiks. Bardziej szczegółowe reguły mają pierwszeństwo w tej kolejności: reguły specyficzne dla listenera, dłuższe wzorce nazw metryk, reguły specyficzne dla instrumentów i reguły specyficzne dla zakresu. Jeśli równie specyficzne reguły są ze sobą sprzeczne, wygrywa ostatnia skonfigurowana reguła.