監視と管理SDK:監視データにプログラムでアクセス
Azure管理ポータルは、ビルトインの監視および管理サポートを提供しているので、Azureに展開されたアプリケーションやソリューションの状態を簡単に追跡できます。プログラムでAzureの監視および管理機能にアクセスしたい場合は、Nugetから.NET SDKを使用してもできるようになりました。今回の一般公開でこのSDKをリリースしているので、現在本番サービスで使用できます。
例えば、サービス全体からメトリックデータを表示する独自のダッシュボードを構築したい場合、SDKを経由でそのメトリックデータを取得することができます。
// 指定の拇印を含んだ証明書を得ることでメトリクスクライアントを生成
Create the metrics client by obtain the certificate with the specified thumbprint.
MetricsClient metricsClient = new MetricsClient(new CertificateCloudCredentials(SubscriptionId, GetStoreCertificate(Thumbprint)));
// リソースid文字列を作成
string resourceId = ResourceIdBuilder.BuildWebSiteResourceId("webtest-group-WestUSwebspace", "webtests-site");
// メリトリクス定義を取得
MetricDefinitionCollection metricDefinitions = metricsClient.MetricDefinitions.List(resourceId, null, null).MetricDefinitionCollection;
// 利用可能なメトリクス定義を表示
Console.WriteLine("Choose metrics (comma separated) to list:");
int count = 0;
foreach (MetricDefinition metricDefinition in metricDefinitions.Value)
{
Console.WriteLine(count + ":" + metricDefinition.DisplayName);
count++;
}
// 問い合わせたいメトリクスをユーザーから取得
var desiredMetrics = Console.ReadLine().Split(',').Select(x => metricDefinitions.Value.ToArray()[Convert.ToInt32(x.Trim())]);
// 直近20分のメトリクスデータを取得
MetricValueSetCollection values = metricsClient.MetricValues.List(
resourceId,
desiredMetrics.Select(x => x.Name).ToList(),
"",
desiredMetrics.First().MetricAvailabilities.Select(x => x.TimeGrain).Min(),
DateTime.UtcNow - TimeSpan.FromMinutes(20),
DateTime.UtcNow
).MetricValueSetCollection;
// メトリクスデータを表示
foreach (MetricValueSet valueSet in values.Value )
{
Console.WriteLine(valueSet.DisplayName + " for the past 20 minutes:");
foreach (MetricValue metricValue in valueSet.MetricValues)
{
Console.WriteLine(metricValue.Timestamp + "\t" + metricValue.Average);
}
}
Console.Write("Press any key to continue:");
Console.ReadKey();
監視SDKでさまざまなサービスのメトリクスをサポートしています。
| サービス | メトリクスの種類 | 頻度 |
|---|---|---|
| クラウドサービス | CPU、ネットワーク、ディスク | 5分、1時間、12時間 |
| 仮想マシン | CPU、ネットワーク、ディスク | 5分、1時間、12時間 |
| Webサイト | リクエスト、エラー、メモリー、リスポンスタイム、データアウト | 1分、1時間 |
| Mobile Services | APIコール、データアウト、SQLパフォーマンス | 1時間 |
| ストレージ | リクエスト、サクセスレート、End2End遅延 | 1分、1時間 |
| サービスバス | メッセージ、エラー、キューの長さ、リクエスト | 5分 |
| HDInsight | コンテナ、アプリの実行 | 15分 |
ポータルでできない高度なオートスケール設定を管理したい場合、SDK経由で行うことができます。例えば、カスタムメトリクスに基づいてオートスケールを構築して、MetricDefinitionsから返されたもので自動スケール調整することができます。SDKのドキュメントはすべてMSDNで提供されています。
API管理:サービスのREST APIをサポート
今年5月のプレビューでAzure API管理サービスを開始しました。API管理サービスにより、お客様は、パートナー、公共開発コミュニティ、さらには内部の開発者に迅速かつ安全にAPIを公開することできます。
今回、多くの新しいシナリオが可能になるAPI管理REST APIが利用可能になりました。API分析にアクセスする以外に、API、製品、サブスクリプション、ユーザー、グループを管理するためにも使用することができます。実際、仮想的に管理APIポータルで利用できる管理操作は、すべてプログラムからアクセスできるようになったので、選択したコマースプロバイダと直接課金するAPI、ユーザまたはサブスクリプション管理の引き継ぎ、API展開の自動化など、ホストの統合や自動化のシナリオが可能になります。
さらに追加のSAS(共有アクセス署名)セキュリティオプションも提供しています。パブリッシャポータルに統合されたことでSASトークンが生成できるので、安全にAPIサービスを呼び出すことが非常に簡単になりました。わずか3つのステップだけです。
- パブリッシャポータルのシステム設定ページでAPIを有効化
- 手動またはプログラムで期間限定のアクセストークンを取得
- APIに要求を送信して、すべての要求にトークンを提供
詳細については、RESTのAPIの参照をご確認ください。
ユーザ登録と製品サブスクリプションの委任
新しいAPI管理のREST APIにより、API管理と他のプロセスを自動化し統合することが簡単になります。このように統合する多くのお客様はすでにユーザーアカウントシステムをお持ちで、開発者ポータルで提供されているビルトイン機能ではなく、既存のリソースを使用したいと思っています。委任と呼ばれるこの機能により、ユーザーデータを所有するのに既存のWebサイトやバックエンドを有効にして、サブスクリプションを管理し、シームレスにAPI管理の動的に生成されたAPIドキュメントと統合することができます。
委任を有効にするのは簡単です。パブリッシャポータルの委任セクションで、Delegated Sign-inを有効にしてサインアップし、エンドポイントURLと検証キーを提供すれば、完了です。詳細については、ハウツーガイドをご確認ください。
まとめ
今回のMicrosoft Azureのリリースで、数多くの素晴らしい新しいシナリオが可能になり、クラウドでホストされたアプリケーションの構築がさらに簡単になります。
今回の最新Azureリリースには、非常に多くの素晴らしい機能が含まれており、より優れたクラウドソリューションが構築できます。もしまだAzureアカウントをお持ちでなければ、無償トライアルにサインアップして、上記機能をすぐにお試しいただけます。アプリの構築方法などの詳細は、Microsoft Azure Developer Centerで確認してください。
Hope this helps,
Scott
P.S.ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。


