Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik IConfiguration om instrumenten te filteren voor aangepaste listeners voor metrische gegevens die integreren met afhankelijkheidsinjectie (DI). Deze filters bepalen op welke instrumenten een listener zich kan abonneren, niet hoe deze metingen aggregeert of exporteert.
Listeners voor metriek
Een listener voor metrische gegevens ontvangt metingen van instrumenten, zoals tellers en histogrammen, gemaakt door een Meter. De MeterListener klasse biedt een API op laag niveau om instrumenten te detecteren en zich rechtstreeks op hun meetgegevens te abonneren. In de zelfstudie voor het verzamelen van metrische gegevens ziet u hoe u deze API gebruikt.
Met de IMetricsListener interface kunnen aangepaste listeners worden geïntegreerd met di- en op configuratie gebaseerde filters. De infrastructuur voor metrische gegevens maakt intern voor elke geregistreerde IMetricsListener-implementatie een MeterListener aan. Het past de geconfigureerde regels toe voordat het InstrumentPublished aanroept om de implementatie een instrument aan te bieden. Als de listener het instrument accepteert, levert de infrastructuur metingen aan de callbacks die de implementatie biedt.
Als u een aangepaste listener wilt registreren, gebruikt u AddListener. De configuratie in dit artikel is van toepassing op deze geregistreerde listeners, niet op MeterListener exemplaren die uw code of een collector rechtstreeks configureert.
Configuratie laden
Algemene hosttoepassingen die gebruikmaken van de standaard builder-instellingen, roepen automatisch AddMetrics aan en laden de sectie Metrics uit IConfiguration. Roep in een niet-gehoste DI-toepassing AddMetrics en AddConfiguration(IMetricsBuilder, IConfiguration) expliciet aan om dezelfde sectie te binden:
services.AddMetrics(metrics =>
metrics.AddConfiguration(configuration.GetSection("Metrics")));
Als u deze extensiemethoden wilt gebruiken, importeert u de Microsoft.Extensions.DependencyInjection en Microsoft.Extensions.Diagnostics.Metrics naamruimten.
Important
De Metrics configuratie filtert alleen instrumenten voor geregistreerde IMetricsListener implementaties. Er worden geen listeners geregistreerd of hun abonnementen geactiveerd, metrische gegevens gemaakt, metingen samengevoegd, gegevens geëxporteerd of automatisch OpenTelemetry, Prometheus of dotnet-counters een andere collector geconfigureerd.
Meters en instrumenten selecteren
Gebruik de volgende secties om te kiezen op welke meters de regels van toepassing zijn:
| Gedeelte | Geldt voor |
|---|---|
EnabledMetrics |
Zowel globale als lokale meters. |
EnabledGlobalMetrics |
Meters zonder bereik, zoals meters die rechtstreeks met Meter zijn aangemaakt. |
EnabledLocalMetrics |
Meters binnen het bereik van de servicecontainer IMeterFactory. |
Een EnabledMetrics, EnabledGlobalMetricsof EnabledLocalMetrics sectie direct onder Metrics is van toepassing op elke geregistreerde listener. Als u één listener wilt targeten, plaatst u de sectie genest onder de Name-waarde van de listener, zoals Metrics:MyListener:EnabledMetrics. Listener- en instrumentnamen vereisen exacte overeenkomsten, zonder rekening te houden met hoofdletters en kleine letters.
Binnen elk van deze secties schakelt een Booleaanse meterinvoer elk instrument waarvan de meternaam overeenkomt, in of uit. Als u regels op instrumentniveau wilt instellen, gebruikt u een object met instrumentnamen als sleutels. De speciale Default item levert een fallback. Een Booleaanse Default vermelding op meterniveau is van toepassing op niet-overeenkomende meters. Binnen een meterobject is Default dit van toepassing op instrumenten waarvoor anders geen overeenkomst is. Een listener ontvangt geen instrument als geen enkele regel ermee overeenkomt.
In het volgende appsettings.json voorbeeld worden instrumenten van meters ingeschakeld waarvan de namen beginnen met Contoso.Web, met uitzondering van instrumenten met de naam request-duration:
{
"Metrics": {
"EnabledMetrics": {
"Contoso.Web": {
"Default": true,
"request-duration": false
}
}
}
}
Regels koppelen en conflicten oplossen
Meternamen maken gebruik van hoofdletterongevoelige prefixovereenkomst. Een meternaam kan maximaal één * jokerteken bevatten om een voor- en achtervoegsel te matchen. Meer specifieke regels hebben voorrang in deze volgorde: listenerspecifieke regels, langere meternaampatronen, instrumentspecifieke regels en bereikspecifieke regels. Als er even specifieke regels conflicteren, wint de laatst geconfigureerde regel.