Konfigurace metrik

Slouží IConfiguration k filtrování instrumentů pro listenery vlastních metrik, které se integrují s dependency injection (DI). Tyto filtry řídí, které nástroje může listener odebírat, nikoli jak agreguje nebo exportuje měření.

Posluchače metrik

Posluchač metrik přijímá měření z nástrojů, jako jsou čítače a histogramy, vytvořených objektem Meter. Třída MeterListener poskytuje rozhraní API nízké úrovně pro zjišťování nástrojů a odběr jejich naměřených hodnot přímo. Návod ke sběru metrik ukazuje, jak používat toto rozhraní API.

Rozhraní IMetricsListener umožňuje, aby se vlastní listenery integrovaly s filtry založenými na DI a konfiguraci. Infrastruktura metrik interně vytvoří pro každou registrovanou implementaci IMetricsListener měřič MeterListener. Použije nakonfigurovaná pravidla předtím, než zavolá InstrumentPublished, aby implementaci nabídl nástroj. Pokud listener přijme nástroj, infrastruktura doručí měření zpětným voláním, která implementace poskytuje.

K registraci vlastního listeneru použijte AddListener. Konfigurace v tomto článku se vztahuje na tyto registrované listenery, ne na instance MeterListener, které váš kód nebo kolektor konfiguruje přímo.

Konfigurace načtení

Generic Host aplikace, které používají výchozí nastavení tvůrce, automaticky volají AddMetrics a načítají oddíl Metrics z IConfiguration. V nehostované aplikaci DI explicitně zavolejte AddMetrics a AddConfiguration(IMetricsBuilder, IConfiguration) pro navázání stejné sekce:

services.AddMetrics(metrics =>
    metrics.AddConfiguration(configuration.GetSection("Metrics")));

Chcete-li tyto rozšiřující metody použít, importujte obory názvů Microsoft.Extensions.DependencyInjection a Microsoft.Extensions.Diagnostics.Metrics.

Important

Konfigurace Metrics filtruje nástroje pouze pro registrované IMetricsListener implementace. Neregistruje posluchače ani neaktivuje jejich odběry, nevytváří metriky, neagreguje měření, neexportuje data ani automaticky nekonfiguruje OpenTelemetry, Prometheus, dotnet-counters ani žádný jiný kolektor.

Vyberte měřidla a nástroje

Pomocí následujících částí vyberte, na které měřiče se pravidla vztahují:

Sekce Vztahuje se na
EnabledMetrics Globální i místní měřiče.
EnabledGlobalMetrics Metriky bez rozsahu, například metriky vytvořené přímo pomocí Meter.
EnabledLocalMetrics Měřiče v rámci kontejneru služby IMeterFactory.

Oddíl EnabledMetrics, EnabledGlobalMetrics nebo EnabledLocalMetrics přímo pod Metrics platí pro všechny registrované posluchače. Pokud chcete cílit na jeden listener, vnořte oddíl pod hodnotu listeneru Name, například Metrics:MyListener:EnabledMetrics. Názvy listeneru a instrumentů vyžadují přesné shody bez ohledu na malá a velká písmena.

V kterémkoli z těchto oddílů položka booleovského měřiče povolí nebo zakáže každý přístroj, jehož název měřiče odpovídá. K nastavení pravidel na úrovni instrumentů použijte objekt s názvy instrumentů jako klíče. Speciální Default vstup poskytuje záložní řešení. Logická Default položka na úrovni měřiče se vztahuje na jinak nespárované měřiče. V objektu meter Default platí pro jinak nespárované nástroje. Listener neobdrží nástroj, pokud mu neodpovídá žádné pravidlo.

Následující appsettings.json příklad povolí nástroje z měřidel, jejichž názvy začínají Contoso.Web, s výjimkou nástrojů s názvem request-duration:

{
  "Metrics": {
    "EnabledMetrics": {
      "Contoso.Web": {
        "Default": true,
        "request-duration": false
      }
    }
  }
}

Porovnat pravidla a vyřešit konflikty

Názvy měřičů používají porovnávání předpon bez rozlišování malých a velkých písmen. Název měřiče může obsahovat maximálně jeden * zástupný znak pro shodu s předponou a příponou. Konkrétnější pravidla mají přednost v tomto pořadí: pravidla specifická pro listener, delší vzory názvů měřičů, pravidla specifická pro instrumentaci a pravidla specifická pro scope. Pokud dojde ke konfliktu stejně specifických pravidel, vyhraje poslední nakonfigurované pravidlo.

Viz také