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.
Metrische gegevens zijn numerieke metingen die in de loop van de tijd worden gerapporteerd. Gebruik deze om de status van een app te bewaken en waarschuwingen te genereren. Een webservice kan bijvoorbeeld bijhouden hoeveel:
- Aanvragen die per seconde worden ontvangen.
- Milliseconden die nodig zijn om te reageren.
- Reacties die het verzendt met een fout.
Rapporteer deze metrische gegevens met regelmatige tussenpozen aan een bewakingssysteem. Stel dashboards in om metrische gegevens weer te geven en waarschuwingen te maken om mensen op de hoogte te stellen van problemen. Als de webservice is bedoeld om te reageren op aanvragen binnen 400 ms en binnen 600 ms reageert, kan het bewakingssysteem de operationele medewerkers op de hoogte stellen dat het app-antwoord langzamer is dan normaal.
De uitgebreide lijst met alle instrumenten samen met hun kenmerken wordt beschreven in ASP.NET Core ingebouwde metrische gegevens.
Metrische gegevens gebruiken
Het gebruik van metrische gegevens omvat het volgende:
- Instrumentatie: Code in .NET-bibliotheken voert metingen uit en koppelt deze metingen aan een metrieknaam. .NET en ASP.NET Core bevatten veel ingebouwde metrische gegevens.
- Verzameling en opslag: Een .NET-app configureert benoemde metrische gegevens die moeten worden verzonden vanuit de app voor externe opslag en analyse. Sommige hulpprogramma's kunnen configuraties uitvoeren buiten de app met behulp van configuratiebestanden of een ui-hulpprogramma.
- Visualisatie: Een hulpprogramma waarmee de metrische gegevens in een door mensen leesbare indeling kunnen worden weergegeven. Bijvoorbeeld Grafana en Prometheus.
- Waarschuwen: Een hulpprogramma dat meldingen biedt wanneer een metrische waarde een drempelwaarde overschrijdt. Als de gemiddelde reactietijd voor een webservice bijvoorbeeld groter is dan 400 ms, kan er een waarschuwing worden verzonden naar het operationele personeel.
- Analyse: Een hulpprogramma waarmee de metrische gegevens in de loop van de tijd kunnen worden geanalyseerd. Dit hulpprogramma is vaak een webdashboard dat kan worden aangepast om de belangrijkste metrische gegevens voor een specifieke app weer te geven.
Geïnstrumenteerde code kan numerieke metingen vastleggen, maar om nuttige metrische gegevens te maken voor bewaking, moet u de metingen aggregeren, verzenden en opslaan. Het proces voor het samenvoegen, verzenden en opslaan van gegevens wordt verzameling genoemd. In deze zelfstudie ziet u verschillende voorbeelden van het verzamelen en weergeven van metrische gegevens:
- Metrische gegevens in Grafana vullen met OpenTelemetry en Prometheus.
- Metrische gegevens in realtime weergeven met
dotnet-counters
U kunt metingen ook koppelen aan sleutel-waardeparen genaamd tags waarmee u gegevens voor analyse kunt categoriseren. Zie Multidimensionale metrische gegevens voor meer informatie.
De starter-app maken
Maak een nieuwe ASP.NET Core-app met de volgende opdracht:
dotnet new web -o WebMetric
cd WebMetric
dotnet add package OpenTelemetry.Exporter.Prometheus.AspNetCore --prerelease
dotnet add package OpenTelemetry.Extensions.Hosting
Vervang de inhoud van Program.cs met de volgende code:
using OpenTelemetry.Metrics;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenTelemetry()
.WithMetrics(builder =>
{
builder.AddPrometheusExporter();
builder.AddMeter("Microsoft.AspNetCore.Hosting",
"Microsoft.AspNetCore.Server.Kestrel");
builder.AddView("http.server.request.duration",
new ExplicitBucketHistogramConfiguration
{
Boundaries = new double[] { 0, 0.005, 0.01, 0.025, 0.05,
0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 }
});
});
var app = builder.Build();
app.MapPrometheusScrapingEndpoint();
app.MapGet("/", () => "Hello OpenTelemetry! ticks:"
+ DateTime.Now.Ticks.ToString()[^3..]);
app.Run();
Metingen weergeven met dotnet-counters
dotnet-counters is een opdrachtregelprogramma waarmee live metrische gegevens voor .NET-apps op aanvraag kunnen worden weergegeven. Hiervoor is geen installatie vereist, waardoor het nuttig is voor ad-hoconderzoeken of om te controleren of metrische instrumentatie werkt. Het werkt met zowel System.Diagnostics.Metrics op gebaseerde API's als EventCounters.
Als het hulpprogramma dotnet-counters niet is geïnstalleerd, voert u de volgende opdracht uit:
dotnet tool update -g dotnet-counters
Terwijl de test-app wordt uitgevoerd, start dotnet-counters. De volgende opdracht toont een voorbeeld van het bewaken van dotnet-counters alle metrische gegevens van de Microsoft.AspNetCore.Hosting meter.
dotnet-counters monitor -n WebMetric --counters Microsoft.AspNetCore.Hosting
Uitvoer die lijkt op het volgende wordt weergegeven:
Press p to pause, r to resume, q to quit.
Status: Running
[Microsoft.AspNetCore.Hosting]
http-server-current-requests
host=localhost,method=GET,port=5045,scheme=http 0
http-server-request-duration (s)
host=localhost,method=GET,port=5045,protocol=HTTP/1.1,ro 0.001
host=localhost,method=GET,port=5045,protocol=HTTP/1.1,ro 0.001
host=localhost,method=GET,port=5045,protocol=HTTP/1.1,ro 0.001
host=localhost,method=GET,port=5045,protocol=HTTP/1.1,ro 0
host=localhost,method=GET,port=5045,protocol=HTTP/1.1,ro 0
host=localhost,method=GET,port=5045,protocol=HTTP/1.1,ro 0
Zie dotnet-counters voor meer informatie.
De metrische gegevens van de ASP.NET Core-aanvraag verrijken
ASP.NET Core heeft veel ingebouwde metrische gegevens. De http.server.request.duration metrische waarde:
- Registreert de duur van HTTP-aanvragen op de server.
- Legt aanvraaggegevens vast in tags, zoals de overeenkomende route- en antwoordstatuscode.
De http.server.request.duration metrische waarde biedt ondersteuning voor tagverrijking met behulp van IHttpMetricsTagsFeature. Verrijking is wanneer een bibliotheek of app zijn eigen tags toevoegt aan een metrische waarde. Deze functie is handig als een app een aangepaste categorisatie wil toevoegen aan dashboards of waarschuwingen die zijn gebouwd met metrische gegevens.
using Microsoft.AspNetCore.Http.Features;
var builder = WebApplication.CreateBuilder();
var app = builder.Build();
app.Use(async (context, next) =>
{
var tagsFeature = context.Features.Get<IHttpMetricsTagsFeature>();
if (tagsFeature != null)
{
var source = context.Request.Query["utm_medium"].ToString() switch
{
"" => "none",
"social" => "social",
"email" => "email",
"organic" => "organic",
_ => "other"
};
tagsFeature.Tags.Add(new KeyValuePair<string, object?>("mkt_medium", source));
}
await next.Invoke();
});
app.MapGet("/", () => "Hello World!");
app.Run();
Het voorgaande voorbeeld:
- Hiermee voegt u middleware toe om de metrische gegevens van de ASP.NET Core-aanvraag te verrijken.
- Haalt de IHttpMetricsTagsFeature van de
HttpContext. De functie is alleen aanwezig in de context als iemand naar de metrische gegevens luistert. ControleerIHttpMetricsTagsFeatureof het nietnullis voordat u deze gebruikt. - Hiermee voegt u een aangepaste tag toe die de marketingbron van de aanvraag bevat aan de
http.server.request.durationmetrische waarde.- De tag heeft de naam
mkt_mediumen een waarde op basis van de utm_medium querytekenreekswaarde. Deutm_mediumwaarde wordt omgezet in een bekend bereik met waarden. - Met de tag kunnen aanvragen worden gecategoriseerd op marketingmediumtype, wat nuttig kan zijn bij het analyseren van web-app-verkeer.
- De tag heeft de naam
Note
Volg de best practices voor multidimensionale metrische gegevens bij het verrijken met aangepaste tags. Tags die te veel zijn of een niet-afhankelijk bereik hebben, maken veel tagcombinaties, wat resulteert in hoge dimensies. Verzamelingshulpprogramma's hebben limieten voor ondersteunde dimensies voor een teller en kunnen resultaten filteren om overmatig geheugengebruik te voorkomen.
Afmelden voor HTTP-metrische gegevens voor bepaalde eindpunten en aanvragen
Het afmelden van metrische gegevens is nuttig voor eindpunten die vaak worden aangeroepen door geautomatiseerde systemen, zoals statuscontroles. Het vastleggen van metrische gegevens voor deze aanvragen is over het algemeen overbodig. Ongewenste telemetrie maakt gebruik van resources om te verzamelen en op te slaan en kan de resultaten vervormen die worden weergegeven in een telemetriedashboard.
U kunt HTTP-aanvragen uitsluiten voor een eindpunt van metrische gegevens door metagegevens toe te voegen, met het kenmerk DisableHttpMetrics of de methode DisableHttpMetrics :
- Voeg het kenmerk DisableHttpMetrics toe aan de web-API-controller, SignalR hub of gRPC-service.
- Roep DisableHttpMetrics aan bij het configureren van eindpunten tijdens het opstarten van de app.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHealthChecks();
var app = builder.Build();
app.MapHealthChecks("/healthz").DisableHttpMetrics();
app.Run();
Als alternatief werd de eigenschap IHttpMetricsTagsFeature.MetricsDisabled toegevoegd voor:
- Geavanceerde scenario's waarbij een verzoek niet aan een eindpunt wordt gekoppeld.
- Verzameling metrische gegevens dynamisch uitschakelen voor specifieke HTTP-aanvragen.
// Middleware that conditionally opts-out HTTP requests.
app.Use(async (context, next) =>
{
var metricsFeature = context.Features.Get<IHttpMetricsTagsFeature>();
if (metricsFeature != null &&
context.Request.Headers.ContainsKey("x-disable-metrics"))
{
metricsFeature.MetricsDisabled = true;
}
await next(context);
});
Aangepaste meetwaarden maken
U maakt metrische gegevens met behulp van API's in de System.Diagnostics.Metrics naamruimte. Zie Aangepaste metrische gegevens maken voor meer informatie.
Metrische gegevens maken in ASP.NET Core-apps met IMeterFactory
Maak Meter-instanties in ASP.NET Core-apps met IMeterFactory.
ASP.NET Core registreert standaard IMeterFactory in afhankelijkheidsinjectie (DI). De meterfactory integreert metrische gegevens met DI, waardoor het isoleren en verzamelen van metrische gegevens eenvoudig is.
IMeterFactory is vooral nuttig voor het testen. Hiermee kunnen meerdere tests naast elkaar worden uitgevoerd en worden alleen metrische waarden verzameld die zijn vastgelegd in een test.
Om IMeterFactory in een app te gebruiken, maakt u een type dat IMeterFactory gebruikt om de aangepaste metrische gegevens van de app te maken.
public class ContosoMetrics
{
private readonly Counter<int> _productSoldCounter;
public ContosoMetrics(IMeterFactory meterFactory)
{
var meter = meterFactory.Create("Contoso.Web");
_productSoldCounter = meter.CreateCounter<int>("contoso.product.sold");
}
public void ProductSold(string productName, int quantity)
{
_productSoldCounter.Add(quantity,
new KeyValuePair<string, object?>("contoso.product.name", productName));
}
}
Registreer het type metrische gegevens bij DI in Program.cs:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<ContosoMetrics>();
Injecteer waar nodig het type metrische gegevens en recordwaarden. Omdat het type metrische gegevens is geregistreerd in DI, kan het worden gebruikt met MVC-controllers, minimale API's of een ander type dat door DI wordt gemaakt:
app.MapPost("/complete-sale", (SaleModel model, ContosoMetrics metrics) =>
{
// ... business logic such as saving the sale to a database ...
metrics.ProductSold(model.ProductName, model.QuantitySold);
});
Als u de meter Contoso.Web wilt bewaken, gebruikt u de volgende opdracht dotnet-counters .
dotnet-counters monitor -n WebMetric --counters Contoso.Web
Uitvoer die lijkt op het volgende wordt weergegeven:
Press p to pause, r to resume, q to quit.
Status: Running
[Contoso.Web]
contoso.product.sold (Count / 1 sec)
contoso.product.name=Eggs 12
contoso.product.name=Milk 0
Metrische gegevens weergeven in Grafana met OpenTelemetry en Prometheus
Overview
- Is een leverancierneutraal opensource-project dat wordt ondersteund door de Cloud Native Computing Foundation.
- Standaardiseert het genereren en verzamelen van telemetrie voor cloudeigen software.
- Werkt met .NET met behulp van de metrische .NET-API's.
- Wordt goedgekeurd door Azure Monitor en veel APM-leveranciers.
Met ingang van ASP.NET Core 11 voldoen de ingebouwde metrische gegevens en traceringen voor de HTTP-server van het framework aan de vereiste onderdelen van de OpenTelemetry-semantische conventies voor HTTP-servers. De HTTP-serveraanvraagactiviteit verzendt deze kenmerken standaard, die overeenkomen met de ingebouwde metrische gegevens. Als gevolg hiervan is het NuGet-pakket optioneel voor het OpenTelemetry.Instrumentation.AspNetCore verzamelen van metrische gegevens en traceringen van HTTP-servers. Het voorbeeld in dit artikel maakt alleen gebruik van de ingebouwde meters (Microsoft.AspNetCore.Hosting en Microsoft.AspNetCore.Server.Kestrel) en verwijst niet naar het instrumentatiepakket. Zie ASP.NET Core ingebouwde HTTP-metrische gegevens voor de lijst met ingebouwde instrumenten en hun kenmerken.
Hoewel het pakket optioneel is, is het geen drop-in equivalent van de ingebouwde instrumentatie. De ingebouwde instrumentatie omvat alleen de vereiste onderdelen van de semantische conventies. Houd rekening met de volgende verschillen voordat u het pakket verwijdert:
- Sommige aanbevolen HTTP-serverkenmerken worden niet verzonden door de ingebouwde instrumentatie, zoals bepaalde client- en netwerkkenmerken (bijvoorbeeld
client.address). Volledige ondersteuning voor het voorwaardelijk vereisteurl.querykenmerk, inclusief redaction, wordt ook nog uitgevoerd. Als u op deze kenmerken vertrouwt, moet u het pakket behouden. Zie dotnet/aspnetcore#65873 voor meer informatie. - Het pakket is ook handig voor het inschakelen van telemetrie buiten de HTTP-server, waaronder Blazor en SignalR. Voor tracering worden extra activiteitsbronnen geregistreerd voor SignalR (
Microsoft.AspNetCore.SignalR.Serverop .NET 9 en hoger) en (Microsoft.AspNetCore.Componentsen BlazorMicrosoft.AspNetCore.Components.Server.Circuitsop .NET 10 en hoger). Voor metrische gegevens schakelt het de bijbehorende ingebouwde meetinstrumenten in (zoalsMicrosoft.AspNetCore.Components). Zonder het pakket registreert u de bronnen zelf metAddSourceen de meters metAddMeterom dezelfde telemetrie te verzamelen.
Wanneer u telemetrie toevoegt aan een app die alleen metrische gegevens en traceringen van HTTP-servers nodig heeft, kunt u vertrouwen op de ingebouwde instrumentatie en het pakket weglaten. Wanneer u een bestaande app bijwerken van .NET 10 naar .NET 11 die al naar het pakket verwijst, moet u deze behouden als u afhankelijk bent van de kenmerken, bronnen of meters die in de voorgaande lijst worden beschreven. Als u het pakket stilzwijgend verwijdert, valt die telemetrie weg.
Belangrijk
Wanneer u OpenTelemetry-tracering inschakelt (naast metrische gegevens) zonder het OpenTelemetry.Instrumentation.AspNetCore pakket, moet u de HTTP-server ActivitySource van het framework registreren zodat de aanvraagactiviteit wordt vastgelegd. De HTTP-serveractiviteitsbron van ASP.NET Core heet Microsoft.AspNetCore en het framework maakt voor elke aanvraag een requestactiviteit genaamd Microsoft.AspNetCore.Hosting.HttpRequestIn om traceringscontext te propagateren. Als de Microsoft.AspNetCore-bron niet is geregistreerd bij de OpenTelemetry-SDK, wordt de requestactiviteit niet vastgelegd en laat de standaard ParentBased sampler alle aangepaste onderliggende spans die tijdens de aanvraag zijn gestart stilzwijgend vallen.
Registreer de bron expliciet in uw bestaande traceringspijplijn:
builder.Services.AddOpenTelemetry()
.WithTracing(tracing => tracing
.AddSource("Microsoft.AspNetCore")
.AddSource("MyApp"));
In het voorgaande voorbeeld:
-
AddSource("Microsoft.AspNetCore")registreert de http-serveractiviteitsbron van ASP.NET Core zodat de aanvraagactiviteit wordt vastgelegd. -
AddSource("MyApp")registreert de eigen ActivitySourceapp. VervangMyAppdoor de naam die uw app gebruikt. - Er wordt geen exporteur weergegeven. In dit voorbeeld wordt ervan uitgegaan dat een exporteur al is geconfigureerd in uw traceringspijplijn.
U kunt ook AddAspNetCoreInstrumentation() aanroepen vanuit het OpenTelemetry.Instrumentation.AspNetCore-pakket, dat de bron voor u registreert.
In deze zelfstudie ziet u een van de integraties die beschikbaar zijn voor metrische gegevens van OpenTelemetry met behulp van de OSS Prometheus - en Grafana-projecten . De metrische gegevensstroom:
De ASP.NET Core-API's voor metrische API's registreren metingen uit de voorbeeld-app.
De OpenTelemetry .NET-bibliotheek die in de app wordt uitgevoerd, voegt de metingen samen.
De Prometheus-exportbibliotheek maakt de geaggregeerde gegevens beschikbaar via een eindpunt voor metrische HTTP-gegevens. 'Exporteur' is wat OpenTelemetry de bibliotheken aanroept die telemetrie verzenden naar leverancierspecifieke back-ends.
Een Prometheus-server:
- Peilt het eindpunt voor metrische gegevens.
- Leest de gegevens.
- Slaat de gegevens op in een database voor persistentie op lange termijn. Prometheus verwijst naar het lezen en opslaan van gegevens als het scrapen van een eindpunt.
- Kan worden uitgevoerd op een andere computer.
De Grafana-server:
- Query's uitvoeren op de gegevens die zijn opgeslagen in Prometheus en deze weergeven op een bewakingsdashboard op internet.
- Kan worden uitgevoerd op een andere computer.
Metrische gegevens weergeven vanuit voorbeeld-app
Ga naar de voorbeeld-app. De browser toont Hello OpenTelemetry! ticks:<3digits>, waarbij 3digits de laatste drie cijfers zijn van de huidige DateTime.Ticks.
Voeg toe /metrics aan de URL om het eindpunt voor metrische gegevens weer te geven. In de browser worden de verzamelde metrische gegevens weergegeven:
Prometheus instellen en configureren
Volg de eerste stappen van Prometheus om een Prometheus-server in te stellen en te bevestigen dat deze werkt.
Wijzig het prometheus.yml configuratiebestand zodat Prometheus het eindpunt voor metrische gegevens verwijdert dat de voorbeeld-app beschikbaar maakt. Voeg de volgende gemarkeerde tekst toe in de scrape_configs sectie:
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: 'MyASPNETApp'
scrape_interval: 5s # Poll every 5 seconds for a more responsive demo.
static_configs:
- targets: ["localhost:5045"] ## Enter the HTTP port number of the demo app.
Vervang 5045 in de hierboven gemarkeerde YAML door het poortnummer dat door de voorbeeldtoepassing wordt gebruikt.
Prometheus starten
- Laad de configuratie opnieuw of start de Prometheus-server opnieuw op.
- Controleer of OpenTelemetryTest de UP-status heeft op de pagina Statusdoelen> van de Prometheus-webportal.
Selecteer het pictogram Metrische verkenner openen om beschikbare metrische gegevens weer te geven:
Voer een itemcategorie in, zoals http_ in het invoervak Expressie om de beschikbare metrische gegevens weer te geven:
U kunt ook een tellercategorie invoeren, zoals kestrel in het invoervak Expressie , om de beschikbare metrische gegevens weer te geven:
Metrische gegevens weergeven op een Grafana-dashboard
Volg de installatie-instructies om Grafana te installeren en deze te verbinden met een Prometheus-gegevensbron.
Volg Het maken van een Prometheus-grafiek. U kunt ook vooraf gebouwde dashboards voor .NET-metrische gegevens downloaden op .NET-teamdashboards @ grafana.com. Gedownloade dashboard-JSON kan worden geïmporteerd in Grafana.
Metrische gegevens testen in ASP.NET Core-apps
U kunt metrische gegevens testen in ASP.NET Core apps. Een manier om dit te doen, is door metrische waarden te verzamelen en te bevestigen in ASP.NET Core integratietests met behulp van MetricCollector<T>.
public class BasicTests : IClassFixture<WebApplicationFactory<Program>>
{
private readonly WebApplicationFactory<Program> _factory;
public BasicTests(WebApplicationFactory<Program> factory) => _factory = factory;
[Fact]
public async Task Get_RequestCounterIncreased()
{
// Arrange
var client = _factory.CreateClient();
var meterFactory = _factory.Services.GetRequiredService<IMeterFactory>();
var collector = new MetricCollector<double>(meterFactory,
"Microsoft.AspNetCore.Hosting", "http.server.request.duration");
// Act
var response = await client.GetAsync("/");
// Assert
Assert.Contains("Hello OpenTelemetry!", await response.Content.ReadAsStringAsync());
await collector.WaitForMeasurementsAsync(minCount: 1).WaitAsync(TimeSpan.FromSeconds(5));
Assert.Collection(collector.GetMeasurementSnapshot(),
measurement =>
{
Assert.Equal("http", measurement.Tags["url.scheme"]);
Assert.Equal("GET", measurement.Tags["http.request.method"]);
Assert.Equal("/", measurement.Tags["http.route"]);
});
}
}
De voorgaande test:
- Initialiseert een webapplicatie in het geheugen met WebApplicationFactory<TEntryPoint>.
Programin het algemene argument van de factory geeft u de web-app op. - Verzamelt metrische waarden met MetricCollector<T>
- Vereist een pakketreferentie naar
Microsoft.Extensions.Diagnostics.Testing. - De
MetricCollector<T>wordt gemaakt met behulp van de IMeterFactory van de webapplicatie. Hierdoor kan de collector alleen metrische gegevens rapporteren die zijn vastgelegd door de test. - Bevat de meternaam,
Microsoft.AspNetCore.Hosting, en de naam van de teller,http.server.request.durationom te verzamelen.
- Vereist een pakketreferentie naar
- Hiermee wordt een HTTP-aanvraag naar de web-app verzonden.
- Valideert de test met behulp van de resultaten van de metriekverzamelaar.
ASP.NET Core Identity metrieken
Identity ASP.NET Core waarneembaarheid helpt u bij het bewaken van activiteiten en verificatieprocessen voor gebruikersbeheer.
De metrische gegevens bevinden zich in de Microsoft.AspNetCore.Identity meter en worden beschreven in de volgende secties.
Metrische gegevens over gebruikersbeheer
-
aspnetcore.identity.user.create.durationmeet de duur van gebruikerscreaties. -
aspnetcore.identity.user.update.durationmeet de duur van updatebewerkingen van gebruikers. -
aspnetcore.identity.user.delete.durationmeet de duur van bewerkingen voor het verwijderen van gebruikers. -
aspnetcore.identity.user.check_password_attemptstelt pogingen voor wachtwoordverificatie. -
aspnetcore.identity.user.generated_tokenstelt tokens die zijn gegenereerd voor gebruikers, zoals tokens voor het opnieuw instellen van wachtwoorden. -
aspnetcore.identity.user.verify_token_attemptstelt tokenverificatiepogingen.
Authenticatie meetgegevens
-
aspnetcore.identity.sign_in.authenticate.durationmeet de duur van verificatiebewerkingen. -
aspnetcore.identity.sign_in.check_password_attemptstelt pogingen voor wachtwoordcontrole tijdens het aanmelden. -
aspnetcore.identity.sign_in.sign_instelt geslaagde aanmeldingen. -
aspnetcore.identity.sign_in.sign_outstelt afmeldingen. -
aspnetcore.identity.sign_in.two_factor_clients_rememberedtelt onthouden tweefactorklanten. -
aspnetcore.identity.sign_in.two_factor_clients_forgottentelt vergeten tweeledige clients.
Gebruik deze metrische gegevens om:
- Gebruikersregistratie en -beheer bewaken.
- Houd verificatiepatronen en mogelijke beveiligingsproblemen bij.
- Meet de prestaties van Identity bewerkingen.
- Bekijk het gebruik van tweeledige verificatie.
Metrische gegevens weergeven Identity
Gebruik dotnet-counters dit om deze metrische gegevens weer te geven en deze in realtime te bewaken. Of exporteer ze naar Prometheus en visualiseer ze in Grafana met behulp van de technieken die eerder in dit artikel zijn beschreven.
Als u bijvoorbeeld alle Identity metrische gegevens wilt bewaken met dotnet-counters:
dotnet-counters monitor -n YourAppName --counters Microsoft.AspNetCore.Identity
ASP.NET Kernmeters en tellers
Zie ASP.NET Core-metriek voor een lijst van ASP.NET Core-meters en -tellers. In ASP.NET Core 11 en hoger verzenden de ingebouwde HTTP-servermeters (bijvoorbeeld Microsoft.AspNetCore.Hosting en Microsoft.AspNetCore.Server.Kestrel) gegevens die voldoen aan de vereiste onderdelen van de semantische http-serverconventies van OpenTelemetry. U kunt deze meters gebruiken met de OpenTelemetry SDK zonder het OpenTelemetry.Instrumentation.AspNetCore pakket.