Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie IConfiguration, um Instrumente für benutzerdefinierte Metrik-Listener zu filtern, die in die Abhängigkeitsinjektion (Dependency Injection, DI) integriert sind. Diese Filter steuern, welche Instrumente ein Listener abonnieren kann und nicht, wie es Messungen aggregiert oder exportiert.
Metrik-Listener
Ein Metrik-Listener empfängt Messungen von Instrumenten, z. B. Zählern und Histogrammen, die von einem Meter erstellt wurden. Die MeterListener-Klasse stellt eine API auf niedriger Ebene bereit, um Instrumente zu finden und ihre Messwerte direkt zu abonnieren. Das Tutorial zur Erfassung von Metriken zeigt, wie Sie diese API verwenden.
Über die IMetricsListener- Schnittstelle lässt sich die Integration benutzerdefinierter Listener mit DI und konfigurationsbasierten Filtern umsetzen. Die Metrikinfrastruktur erstellt eine MeterListener intern für jede registrierte IMetricsListener Implementierung. Sie wendet die konfigurierten Regeln an, bevor sie InstrumentPublished aufruft, um der Implementierung ein Instrument anzubieten. Wenn der Listener das Instrument akzeptiert, liefert die Infrastruktur Messungen an die Callbacks, die die Implementierung bereitstellt.
Verwenden Sie AddListenerzum Registrieren eines benutzerdefinierten Listeners . Die Konfiguration in diesem Artikel bezieht sich auf diese registrierten Listener, nicht auf MeterListener-Instanzen, die Ihr Code oder ein Collector direkt konfiguriert.
Laden der Konfiguration
Generische Hostanwendungen, die die Standard-Generator-Einstellungen verwenden, rufen AddMetrics automatisch auf und laden den Abschnitt Metrics aus IConfiguration. Rufen Sie in einer nicht gehosteten DI-Anwendung AddMetrics und AddConfiguration(IMetricsBuilder, IConfiguration) explizit auf, um denselben Abschnitt zu binden:
services.AddMetrics(metrics =>
metrics.AddConfiguration(configuration.GetSection("Metrics")));
Um diese Erweiterungsmethoden zu verwenden, importieren Sie die Microsoft.Extensions.DependencyInjection Und Microsoft.Extensions.Diagnostics.Metrics Namespaces.
Important
Die Metrics Konfiguration filtert nur Instrumente für registrierte IMetricsListener Implementierungen. Es registriert keine Listener oder aktiviert deren Abonnements, erstellt Metriken, aggregiert Messungen, exportiert Daten oder konfiguriert OpenTelemetry, Prometheus, dotnet-counters oder einen anderen Collector automatisch.
Meter und Instrumente auswählen
Verwenden Sie die folgenden Abschnitte, um auszuwählen, für welche Meter die Regeln gelten:
| Abschnitt | Gilt für: |
|---|---|
EnabledMetrics |
Sowohl globale als auch lokale Zähler. |
EnabledGlobalMetrics |
Meter ohne Bereich, wie z. B. Meter, die direkt mit Meter erstellt wurden. |
EnabledLocalMetrics |
Zähler, die auf den Servicecontainer von IMeterFactory ausgerichtet sind. |
Ein EnabledMetrics, EnabledGlobalMetrics oder EnabledLocalMetrics Abschnitt direkt unter Metrics gilt für jeden registrierten Listener. Um einen Listener als Ziel festzulegen, schachteln Sie den Abschnitt unter dem Wert von Name des Listeners, z. B. Metrics:MyListener:EnabledMetrics. Listener- und Instrumentnamen erfordern genaue Übereinstimmungen ohne Beachtung der Groß-/Kleinschreibung.
In jedem dieser Abschnitte aktiviert oder deaktiviert ein boolescher Verbrauchseinheit-Eintrag jedes Instrument, dessen Name mit dem des Verbrauchseinheiteintrags übereinstimmt. Verwenden Sie ein Objekt mit Instrumentennamen als Schlüssel, um Regeln auf Instrumentsebene festzulegen. Der spezielle Default Eintrag liefert einen Fallback. Ein Boolean-Default-Eintrag auf Meterebene gilt für anderweitig nicht zugeordnete Zähler.
Default gilt innerhalb eines Verbrauchseinheitsobjekts für andernfalls nicht übereinstimmende Instrumente. Ein Listener empfängt kein Instrument, wenn keine Regel auf es zutrifft.
Im folgenden appsettings.json-Beispiel werden Instrumente aus Messgeräten aktiviert, deren Namen mit Contoso.Web beginnen, mit Ausnahme von Instrumenten mit dem Namen request-duration:
{
"Metrics": {
"EnabledMetrics": {
"Contoso.Web": {
"Default": true,
"request-duration": false
}
}
}
}
Regeln abgleichen und Konflikte lösen
Meternamen verwenden eine groß-/kleinschreibungsunabhängige Präfixübereinstimmung. Ein Metername kann höchstens einen * Platzhalter enthalten, um ein Präfix und ein Suffix abzugleichen. Spezifischere Regeln haben Vorrang in dieser Reihenfolge: Listenerspezifische Regeln, längere Meternamenmuster, instrumentspezifische Regeln und bereichsspezifische Regeln. Wenn gleichermaßen spezifische Regeln in Konflikt geraten, gewinnt die zuletzt konfigurierte Regel.