Der Blob Speicher speicher ein Set von Binären Daten. Der Blob Speicher bietet die folgenden drei Windows Azure Diagnostiken und erlaubt es diagnostische Daten von einem Service zu sammeln welches in Windows Azure läuft. Dies kann für Aufgaben verwendet werden, wie Debugging und Fehlersuche, Geschwindigkeitsmessung, Monotoring der Ressourcen Verwendung, Verkehrsanalysen, Kapazitätsplanung und Bekanntgabe. Sobald die diagnostischen Daten gesammelt wurden können Sie zu einem Windows Azure Speicheraccount geschickt werden um persistent zu bleiben. Die Übermittlung kann entweder zeitgesteuert oder auf Wunsch passieren.
Man kann die Windows Azure Diagnose vom Code aus konfigurieren welcher in einer Rolle läuft. Man kann Sie auch von der Ferne, über eine Anwendung welche außerhalb von Windows Azure läuft, konfigurieren. Durch das entfernte Managen der Windows Azure Diagnose kann man seinen Service mit einer initialen Diagnose Konfiguration starten, und dann diese Konfiguration vom Code aus verbessern welche außerhalb des Services läuft, ohne das der Service hochgerüstet werden muss.
Mehr Informationen darüber welche Logs, Geschwindigkeits Messungen, Crash Dumps, ... gemonitort werden können, können auf der entsprechenden MSDN Webseite gefunden werden.
Beachte: Diagnosen werden auf einer pro-Rollen Basis konfiguriert. Dies bedeutet dass jede Rolle separat konfiguriert werden sollte. Die Spezifikation der Diagnose Anleitungen für eine Rollen Instanz impliziert nicht das diese Konfiguration auf anderen Rollen Instanzen geladen wird.
Die Diagnose API für die Windows Azure SDK für PHP kann nur verwendet werden wenn der DiagnosticMonitor während des Starts der Rolle gestartet wurde. Aktuell wird dies nur Unterstützt wenn eine Anwendung mit dem Windows Azure Command-Line Tools für PHP Entwickler gepackt wurde.
Diese Überschrift zeigt einige Beispiele der Verwendung der
Zend_Service_WindowsAzure_Diagnostics_Manager
Klasse. Andere
Features sind auch im Download Paket vorhanden, sowie eine detailierte API
Dokumentation dieser Features.
Durch Verwendung des folgenden Codes kann man prüfen ob eine Diagnose Konfiguration für die aktuelle Rollen Instanz existiert.
Beispiel 839. Prüfen ob eine Diagnose Konfiguration für die aktuelle Rollen Instanz exisztiert
/** Zend_Service_WindowsAzure_Storage_Blob */ require_once 'Zend/Service/WindowsAzure/Storage/Blob.php'; /** Zend_Service_WindowsAzure_Diagnostics_Manager */ require_once 'Zend/Service/WindowsAzure/Diagnostics/Manager.php'; $storageClient = new Zend_Service_WindowsAzure_Storage_Blob(); $manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient); $configurationExists = $manager->configurationForCurrentRoleInstanceExists(); echo 'Die Konfiguration ' . ($configurationExists ? 'existiert' : 'existiert nicht';
Durch Verwendung des folgenden Codes kann man die Diagnose Konfiguration der aktuellen Rollen Instanz laden.
Beispiel 840. Laden der Diagnose Konfiguration der aktuellen Rollen Instanz
/** Zend_Service_WindowsAzure_Storage_Blob */ require_once 'Zend/Service/WindowsAzure/Storage/Blob.php'; /** Zend_Service_WindowsAzure_Diagnostics_Manager */ require_once 'Zend/Service/WindowsAzure/Diagnostics/Manager.php'; $storageClient = new Zend_Service_WindowsAzure_Storage_Blob(); $manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient); $configuration = $manager->getConfigurationForCurrentRoleInstance();
Durch Verwendung des folgenden Codes kann man die Diagnose Konfiguration der aktuellen Rollen Instanz speichern.
Beispiel 841. Speichern der Diagnose Konfiguration der aktuellen Rollen Instanz
/** Zend_Service_WindowsAzure_Storage_Blob */ require_once 'Zend/Service/WindowsAzure/Storage/Blob.php'; /** Zend_Service_WindowsAzure_Diagnostics_Manager */ require_once 'Zend/Service/WindowsAzure/Diagnostics/Manager.php'; $storageClient = new Zend_Service_WindowsAzure_Storage_Blob(); $manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient); $configuration = // ...; $manager->setConfigurationForCurrentRoleInstance($configuration);
Durch Verwendung des folgenden Codes kann man sich für einen Geschwindigkeits Zähler einschreiben.
Beispiel 842. Einschreiben für einen Geschwindigkeits Zähler
/** Zend_Service_WindowsAzure_Storage_Blob */ require_once 'Zend/Service/WindowsAzure/Storage/Blob.php'; /** Zend_Service_WindowsAzure_Diagnostics_Manager */ require_once 'Zend/Service/WindowsAzure/Diagnostics/Manager.php'; $storageClient = new Zend_Service_WindowsAzure_Storage_Blob(); $manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient); $configuration = $manager->getConfigurationForCurrentRoleInstance(); // Einschreiben für die \Processor(*)\% Prozessor Zeit $configuration->DataSources->PerformanceCounters->addSubscription('\Processor(*)\% Processor Time', 1); $manager->setConfigurationForCurrentRoleInstance($configuration);
Die Id der aktuellen Rollen Instanz ist in der Server Variable RdRoleId definiert. Sie ist nur vorhanden wenn die Anwendung in der Entwickler Fabrik oder der Windows Azure Fabrik läuft.
Beispiel 843. Erhalten der Id der aktuellen Rollen Instanz
echo 'Die Id der Rollen Instanz ist ' . $_SERVER['RdRoleId'];