GraphQL-bewerkingen

Elke GraphQL-query en mutatie die wordt uitgevoerd via uw Fabric-API voor GraphQL genereert gedetailleerde bewerkingslogboeken waarmee prestatiegegevens, querytekst, verificatiedetails en uitvoeringsresultaten worden vastgelegd. Deze logboeken worden automatisch verzameld en opgeslagen in de bewakingsdatabase van uw werkruimte, zodat u inzicht krijgt in hoe uw GraphQL-API's worden gebruikt en hoe ze presteren.

GraphQL-bewerkingslogboeken maken deel uit van de bewakingsfunctie voor werkruimten van Fabric. Wanneer u werkruimtebewaking inschakelt, maakt Fabric een Eventhouse-database in uw werkruimte die continu logboeken verzamelt van al uw GraphQL-API's. U kunt query's uitvoeren op deze logboeken met behulp van KQL (Kusto Query Language) om problemen op te lossen, prestaties te optimaliseren, gebruikspatronen bij te houden en ervoor te zorgen dat uw API's voldoen aan DE SLA-vereisten.

Vereiste voorwaarden

Om graphQL-bewerkingslogboeken te openen en er query's op uit te voeren:

  1. Werkruimtebewaking inschakelen in uw Fabric-werkruimte
  2. Toegang tot de eventhouse KQL-database die voor uw werkruimte is gemaakt
  3. Bekendheid met Kusto Query Language (KQL) voor het uitvoeren van query's op de logboeken

Zodra bewaking is ingeschakeld, worden GraphQL-bewerkingen automatisch vastgelegd in twee tabellen: GraphQLMetrics voor geaggregeerde metrische gegevens en GraphQLLog voor gedetailleerde bewerkingslogboeken.

Wie gebruikt GraphQL-bewerkingslogboeken

Bewerkingslogboeken en -bewaking zijn essentieel voor:

  • Fabric-werkruimtebeheerders controleren het Gebruik, de prestaties en het capaciteitsverbruik van GraphQL-API's
  • Data engineers volgen patronen voor gegevenstoegang en optimaliseren fabric lakehouse- en magazijnquery's
  • DevOps-teams zorgen ervoor dat productietoepassingen die Fabric-gegevens gebruiken, voldoen aan de SLA-vereisten
  • Infrastructuurcapaciteitsbeheerders begrijpen metrische gegevens over API-verbruik voor capaciteitsplanning en kostenbeheer

Gebruik bewerkingslogboeken wanneer u de prestaties en het gebruik van uw Fabric GraphQL-API's moet bewaken, oplossen of analyseren.

GraphQL-bewerkingslogboeken

Een logboekgebeurtenis voor elke query die wordt uitgevoerd door de Fabric-API voor GraphQL op de verbonden gegevensbronnen, wordt opgeslagen in twee aanvullende tabellen:

  • GraphQLMetrics: Bevat geaggregeerde metrische gegevens met tijdsintervalsamenvattingen, ideaal voor prestatiebewaking en trendanalyse
  • GraphQLLog: bevat gedetailleerde bewerkingslogboeken met volledige querytekst en uitvoeringsdetails, ideaal voor het oplossen van problemen met specifieke query's

Gebruik deze logboeken om:

  • Gedragswijzigingen en mogelijke API-degradatie identificeren
  • Ongebruikelijke query's of query's met veel resources detecteren
  • Gebruikers en toepassingen identificeren met het hoogste aantal query's
  • Queryprestaties en trends analyseren
  • Problemen met trage query's oplossen
  • Problemen met specifieke GraphQL-query's vaststellen

GraphQLMetrics-tabel

In de GraphQLMetrics tabel worden geaggregeerde metrische gegevens voor GraphQL-bewerkingen opgeslagen. Gebruik deze tabel voor prestatiebewaking, capaciteitsplanning en het identificeren van trends in de loop van de tijd.

Deze tabel bevat de volgende kolommen:

Kolomnaam Type Description
Tijdstempel datetime De tijdstempel (UTC) van wanneer de logboekvermelding is gegenereerd toen de record werd gemaakt door de gegevensbron.
ItemId tekenreeks Unieke id van de resource die de gegevens registreren.
ItemKind tekenreeks Type van artikel dat de operatie logt.
ItemName tekenreeks De naam van het Fabric-item dat deze bewerking registreert.
WorkspaceId tekenreeks Unieke identificatie van de Fabric-werkruimte waarin het item wordt gebruikt bevat
WorkspaceName tekenreeks Naam van de Fabric-werkruimte waarin het item staat.
CapacityId tekenreeks Unieke identificatie van de capaciteit waarop het item wordt gespeeld.
CustomerTenantId tekenreeks Tenant-id van klant, waar de bewerking is uitgevoerd.
PlatformMonitoringTableName tekenreeks De naam van de tabel aan records behoort tot (of het gecertificeerde gebeurtenistype van de record). Indeling is <WorkloadName> + [OperationType>]+ <TelemetryType>
Regio tekenreeks De regio van de resource die de gebeurtenis verzendt; Bijvoorbeeld VS - oost of Frankrijk - zuid.
MetricTimeGrain tekenreeks Tijdsinterval van de metrische waarde (ISO 8601-duur).
MetricUnitName tekenreeks Eenheid van de metrische waarde.
MetricSumValue long De geaggregeerde somwaarde van een metrische waarde gedurende één minuut.
DatasourceTypes dynamisch Matrix van DataSource-typen die door het model worden gebruikt.
ResultCode tekenreeks Foutcode van de mislukte activiteiten, gebruikt om het gebruik uit te breiden naar betrouwbaarheid.
Status tekenreeks Status van de bewerking. De query is uitgevoerd met fouten/mislukt.

GraphQLLog-tabel

In de GraphQLLog tabel worden gedetailleerde bewerkingslogboeken opgeslagen voor elke GraphQL-queryuitvoering. Gebruik deze tabel voor het oplossen van problemen met specifieke query's, het analyseren van querytekst en het onderzoeken van fouten of prestatieproblemen.

Zie Gebeurtenissen en schema voor meer informatie over de gebeurtenissen en een inzoomactie op de ExecutionMetrics gebeurtenis.

Deze tabel bevat de volgende kolommen:

Kolomnaam Type Description
Tijdstempel datetime De tijdstempel (UTC) van wanneer de logboekvermelding is gegenereerd toen de record werd gemaakt door de gegevensbron.
OperationName tekenreeks De naam van de bewerking.
ItemId tekenreeks Unieke id van de resource die de gegevens registreren.
ItemKind tekenreeks Type van artikel dat de operatie logt.
ItemName tekenreeks De naam van het Fabric-item dat deze bewerking registreert.
WorkspaceId tekenreeks Unieke identificatie van de Fabric-werkruimte waarin het item wordt bediend bevat.
WorkspaceName tekenreeks Naam van de Fabric-werkruimte waarin het item staat.
CapacityId tekenreeks Unieke identificatie van de capaciteit waarop het item wordt gespeeld.
CorrelationId tekenreeks Hoofdactiviteits-id.
OperationId tekenreeks Unieke id voor de bewerking die wordt geregistreerd.
Identiteit dynamisch Details van gebruiker en claim. De gebruiker die is gekoppeld aan de bewerking die wordt gerapporteerd.
CustomerTenantId tekenreeks Tenant-id van klant, waar de bewerking is uitgevoerd.
DurationMs long Verstreken CPU-tijd die is verstreken terwijl alle vereiste bewerkingen zijn verwerkt. Eenheid is in milliseconden.
Status tekenreeks Status van de bewerking. De query is uitgevoerd met fouten/mislukt.
Niveau tekenreeks Metagegevens die zijn vereist voor het platformbewakingsteam.
Regio tekenreeks De regio van de resource die de gebeurtenis verzendt; Bijvoorbeeld VS - oost of Frankrijk - zuid.
PlatformMonitoringTableName tekenreeks De naam van de tabel aan records behoort tot (of het gecertificeerde gebeurtenistype van de record). Indeling is <WorkloadName> + [OperationType>]+ <TelemetryType>
QueryTekst tekenreeks De tekst van de query.
GraphQLOverheadDurationMs long De GraphQL-overhead in ms voor een dataplane-aanvraag.
Verwerkte bytes long Verwerkte gegevensvolume in byte.
TransportProtocol tekenreeks Transportprotocol voor een aanvraag.
QueryResultMessage tekenreeks Deze dimensie wordt gebruikt om extra context te geven aan het resultaat van een querybewerking.

Voorbeeldquery's

Gebruik deze KQL-query's om uw GraphQL-bewerkingslogboeken te analyseren. Je kunt deze queries direct uitvoeren in de eventhouse query-editor binnen je werkruimte.

Trage query's zoeken

Identificeer GraphQL-query's die langer dan 5 seconden duren om uit te voeren:

GraphQLLog
| where DurationMs > 5000
| project Timestamp, ItemName, DurationMs, QueryText, Status, Identity
| order by DurationMs desc
| take 20

Belangrijkste gebruikers op aantal query's

Zoek welke gebruikers of toepassingen de meeste GraphQL-aanvragen maken:

GraphQLLog
| summarize QueryCount = count() by Identity
| order by QueryCount desc
| take 10

Analyse van foutpercentage

Bereken de foutsnelheid voor GraphQL-bewerkingen in de loop van de tijd:

GraphQLLog
| summarize 
    TotalQueries = count(),
    FailedQueries = countif(Status == "failed"),
    ErrorRate = (countif(Status == "failed") * 100.0) / count()
    by bin(Timestamp, 1h)
| order by Timestamp desc

De meeste resource-intensieve query's

Identificeer query's die de grootste hoeveelheid gegevens verwerken:

GraphQLLog
| where ProcessedBytes > 0
| project Timestamp, ItemName, ProcessedBytes, QueryText, DurationMs
| order by ProcessedBytes desc
| take 20

Analyseer de gemiddelde queryprestaties gedurende de afgelopen 24 uur:

GraphQLMetrics
| where Timestamp > ago(24h)
| summarize 
    AvgDuration = avg(MetricSumValue),
    MaxDuration = max(MetricSumValue),
    QueryCount = count()
    by bin(Timestamp, 1h), ItemName
| order by Timestamp desc

Ga naar werkruimtebewaking in de GitHub-opslagplaats voor infrastructuurvoorbeelden voor meer voorbeelden van werkruimtebewaking.