Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Utilice IConfiguration para filtrar instrumentos para los oyentes de métricas personalizados que se integran con la inyección de dependencias (DI). Estos filtros controlan a qué instrumentos puede suscribirse un oyente, no cómo agrega o exporta las mediciones.
Oyentes de métricas
Un oyente de métricas recibe mediciones de instrumentos, como contadores e histogramas, creados por un Meter. La MeterListener clase proporciona una API de bajo nivel para detectar instrumentos y suscribirse directamente a sus mediciones. El tutorial de recopilación de métricas muestra cómo usar esta API.
La interfaz IMetricsListener permite que los oyentes personalizados se integren con DI y con filtros basados en la configuración. La infraestructura de métricas crea un MeterListener internamente para cada implementación IMetricsListener registrada. Aplica las reglas configuradas antes de llamar a InstrumentPublished para ofrecer un instrumento a la implementación. Si el listener acepta el instrumento, la infraestructura entrega medidas a los callbacks que proporciona la implementación.
Para registrar un listener personalizado, use AddListener. La configuración de este artículo se aplica a estos listeners registrados, no a las instancias MeterListener que el código o un colector configuran directamente.
Carga de la configuración
Las aplicaciones de host genérico que usan la configuración predeterminada del generador de host genérico llaman automáticamente a AddMetrics y cargan la sección Metrics desde IConfiguration. En una aplicación de inyección de dependencias no hospedada, llame explícitamente a AddMetrics y AddConfiguration(IMetricsBuilder, IConfiguration) para vincular la misma sección:
services.AddMetrics(metrics =>
metrics.AddConfiguration(configuration.GetSection("Metrics")));
Para usar estos métodos de extensión, importe los espacios de nombres Microsoft.Extensions.DependencyInjection y Microsoft.Extensions.Diagnostics.Metrics.
Importante
La configuración Metrics solo filtra los instrumentos para las implementaciones de IMetricsListener registradas. No registra oyentes ni activa sus suscripciones, no crea métricas, no agrega mediciones, no exporta datos ni configura automáticamente OpenTelemetry, Prometheus, dotnet-counters ni ningún otro colector.
Seleccionar medidores e instrumentos
Utilice las secciones siguientes para elegir a qué medidores se aplican las reglas:
| Section | Se aplica a |
|---|---|
EnabledMetrics |
Medidores globales y locales. |
EnabledGlobalMetrics |
Medidores sin ámbito, como los creados directamente con Meter. |
EnabledLocalMetrics |
Medidores con ámbito limitado al IMeterFactory del contenedor de servicios. |
Una sección EnabledMetrics, EnabledGlobalMetrics o EnabledLocalMetrics situada directamente bajo Metrics se aplica a todos los oyentes registrados. Para dirigirse a un oyente concreto, anida la sección bajo el valor Name del oyente, como Metrics:MyListener:EnabledMetrics. Los nombres del listener y de los instrumentos requieren coincidencias exactas sin tener en cuenta las mayúsculas y minúsculas.
Dentro de cualquiera de estas secciones, una entrada de medidor booleano habilita o deshabilita todos los instrumentos cuyo nombre de medidor coincida. Para establecer reglas de nivel de instrumento, use un objeto con nombres de instrumento como claves. La entrada especial Default proporciona una alternativa. Una entrada booleana Default en el nivel de medidor se aplica a medidores que, de otro modo, no coincidirían. Dentro de un objeto medidor, Default se aplica a los instrumentos que no coincidan con ninguna otra regla. Un oyente no recibe un instrumento si ninguna regla coincide con él.
En el ejemplo siguiente appsettings.json se habilitan instrumentos procedentes de medidores cuyos nombres comienzan por Contoso.Web, excepto los instrumentos denominados request-duration:
{
"Metrics": {
"EnabledMetrics": {
"Contoso.Web": {
"Default": true,
"request-duration": false
}
}
}
}
Hacer coincidir reglas y resolver conflictos
Los nombres de medidor usan la coincidencia de prefijos que no distinguen mayúsculas de minúsculas. El nombre de un medidor puede contener como máximo un comodín * para coincidir con un prefijo y un sufijo. Las reglas más específicas tienen prioridad en este orden: reglas específicas del oyente, patrones de nombre de medidor más largos, reglas específicas del instrumento y reglas específicas del ámbito. Si hay conflictos de reglas igualmente específicas, la última regla configurada gana.