Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Azure Diagnostics 診断機能 その3

引き続き、以下の流れから診断機能の話。

診断機能を外部から弄くる方法はいくつかあるのですが、とりあえずプログラムで現状の設定を確認する方法など。BLOBをのぞけば設定情報が格納されているのです、それはさておき。また、Powershell Cmdletなどを使えばプログラムを書く必要もなかったり。

        static void Main(string[] args)
        {
            var creds = new StorageCredentialsAccountAndKey("storage", "key");
            var account = new CloudStorageAccount(creds, true);

            var deploymentId = "0fa92c89d0e14f6da911730dde20a8a7";
            var diagManager = new DeploymentDiagnosticManager(account, deploymentId);

            foreach (var roleName in diagManager.GetRoleNames())
            {
                Console.WriteLine(roleName);
                foreach(var instanceId in diagManager.GetRoleInstanceIdsForRole(roleName))
                {
                    Console.WriteLine(instanceId);
                    var instanceDiagnosticManager = diagManager.GetRoleInstanceDiagnosticManager(roleName, instanceId);
                    var config  = instanceDiagnosticManager.GetCurrentConfiguration();
                    Console.WriteLine(config.Directories.ScheduledTransferPeriod);

                    foreach (var d in config.Directories.DataSources)
                    {
                        Console.WriteLine(d.Path);
                    }
                }
            }
            Console.ReadLine();
        }

上記プログラムを実行すると、転送元のディレクトリと転送間隔が表示されます。設定はインスタンス毎に持ってます。