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
- Erstellen Sie einen Log Analytics-Arbeitsbereich.
- Erstellen Sie Diagnoseeinstellungen.
- Starten Sie die Protokollanalyse für Ihr API für Cassandra-Konto.
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
- Erfahren Sie mehr über Log Analytics.
- Erfahren Sie, wie Sie vom nativen Apache Cassandra zu Azure Cosmos DB for Apache Cassandra migrieren.