Serverdiagnose für Azure Cosmos DB for Apache Cassandra

GILT FÜR: Cassandra

Log Analytics ist ein Tool im Azure-Portal, mit dem Sie Serverdiagnosen für Ihr API für Cassandra-Konto ausführen können. Führen Sie Protokollabfragen für Daten aus, die in Azure Monitor Logs gesammelt wurden, und analysieren die jeweiligen Ergebnisse interaktiv. Mithilfe von aus Log Analytics-Abfragen abgerufenen Datensätzen können verschiedene Erkenntnisse zu Ihren Daten bereitgestellt werden.

Voraussetzungen

Verwenden von Log Analytics

Wenn Sie Log Analytics vollständig eingerichtet haben, können Sie beginnen, Ihre Protokolle zu untersuchen, um weitere Erkenntnisse zu gewinnen.

Untersuchen von Vorgängen auf Datenebene

In der Tabelle CDBCassandraRequests können Sie Vorgänge auf Datenebene speziell für Ihr API für Cassandra-Konto anzeigen. Im Folgenden sehen Sie eine Beispielabfrage, mit der die n (10) Anforderungen mit dem höchsten Verbrauch angezeigt und detaillierte Informationen zu den einzelnen ausgeführten Anforderungen abgerufen werden.

CDBCassandraRequests
| where RequestCharge  > 0
| project DatabaseName, CollectionName, DurationMs, OperationName, ActivityId, ErrorCode, RequestCharge, PIICommandText 
| order by RequestCharge
| take 10

Fehlercodes und mögliche Lösungen

Statuscode Fehlercode BESCHREIBUNG
200 -1 Erfolgreich
400 8704 Die Abfrage ist korrekt, verfügt jedoch über eine ungültige Syntax.
400 8192 Die übermittelte Abfrage enthält einen Syntaxfehler. Überprüfen Sie Ihre Abfrage.
400 8960 Die Abfrage ist aufgrund eines Konfigurationsproblems ungültig.
401 8448 Der protokollierte Benutzer oder die protokollierte Benutzerin verfügt nicht über die richtigen Berechtigungen, um die Abfrage auszuführen.
403 8448 Antwort, dass die Anforderung unzulässig ist, da der Benutzer oder die Benutzerin möglicherweise nicht über die zum Ausführen der Anforderung erforderlichen Berechtigungen verfügt
404 5376 Ausnahme ohne Timeout, die während einer Schreibanforderung auftritt, da keine Antwort gefunden wurde
405 0 Hierbei handelt es sich um einen serverseitigen Cassandra-Fehler. Dieser Fehler tritt selten auf. Erstellen Sie ein Supportticket.
408 4608 Timeout während einer Leseanforderung
408 4352 Ausnahme nach Timeout während einer serviceRequest-Schreibanforderung
409 9216 Es wurde versucht, einen bereits vorhandenen Keyspace oder eine bereits vorhandene Tabelle zu erstellen.
412 5376 Es ist ein Fehler bei einer Vorbedingung aufgetreten. Um Datenintegrität zu gewährleisten, stellen wir sicher, dass die auf der Leseantwort basierende Schreibanforderung richtig ist. Für die Schreibanforderung wird eine Ausnahme ohne Timeout zurückgegeben.
413 5376 Diese Ausnahme ohne Timeout während einer Schreibanforderung ist darauf zurückzuführen, dass die Nutzdatenmenge möglicherweise zu groß ist. Derzeit gilt hierfür eine Obergrenze von 2 MB pro Zeile.
417 9472 Diese Ausnahme wird ausgelöst, wenn eine vorbereitete Anweisung nicht auf dem Serverknoten zwischengespeichert wurde. Sie sollte nur vorübergehend aktiv sein bzw. nichts blockieren.
423 5376 Es liegt eine Sperre aufgrund einer Schreibanforderung vor, die gerade verarbeitet wird.
429 4097 Dies ist eine Überladungsausnahme, die auf einen Mangel an Anforderungseinheiten oder eine hohe Anforderungsrate zurückzuführen ist. Wahrscheinlich benötigen Sie mehr Anforderungseinheiten, um die Anforderung mit höherem Volumen zu verarbeiten. Bei der nativen Version von Cassandra kann dies so interpretiert werden, dass die CPU einer der VMs nicht ausreicht. Es wird empfohlen, das aktuelle Datenmodell zu überprüfen, um sicherzustellen, dass Sie über keine übermäßige Datenschiefe verfügen, die möglicherweise heiße Partitionen verursacht.
449 5376 Dies ist eine Ausnahme aufgrund einer parallelen Ausführung. Sie tritt auf, um sicherzustellen, dass für eine Zeile zur selben Zeit nicht mehr als ein Schreibupdate ausgeführt wird.
500 0 Server cassandraError: Unerwarteter Fehler. Dieser Fehlercode deutet auf einen Fehler auf Serverseite hin.
503 4096 Service unavailable. (Dienst nicht verfügbar.)
256 Dieser Fehler ist möglicherweise auf ungültige Anmeldeinformationen für die Verbindung zurückzuführen. Überprüfen Sie Ihre Anmeldeinformationen für die Verbindung.
10 Eine Clientnachricht hat eine Protokollverletzung ausgelöst. Ein Beispiel hierfür ist eine Abfragenachricht, die vor der Startnachricht gesendet wurde.

Problembehandlung für den Verbrauch von Abfragen

Die Tabelle CDBPartitionKeyRUConsumption enthält Details zum Verbrauch von Anforderungseinheiten (Request Unit, RU) für logische Schlüssel in den einzelnen Regionen innerhalb der jeweiligen physischen Partitionen.

CDBPartitionKeyRUConsumption 
| summarize sum(todouble(RequestCharge)) by PartitionKey, PartitionKeyRangeId
| render columnchart

Untersuchen von Vorgängen auf Steuerungsebene

Die Tabelle CBDControlPlaneRequests enthält Details zu Vorgängen auf Steuerungsebene, insbesondere für API für Cassandra-Konten.

CDBControlPlaneRequests
| where TimeGenerated > now(-6h)
| where  ApiKind == "Cassandra"
| where OperationName in ("Create", "Upsert", "Delete", "Execute")
| summarize by OperationName

Nächste Schritte