簡體   English   中英

Azure DTU數據庫API

[英]Azure DTU database api

是否有API可以實時恢復DTU消耗? 我想在我的網站上重建這樣的圖表。 演示圖片

我不知道這樣做的任何API,但是您可以使用以下查詢來創建自己的API或在Azure Automation上創建運行該查詢的運行手冊,並將結果保存在數據庫中以收集性能數據。 您可以根據需要將其調度到每X分鍾一次。

DECLARE @startTime datetime
DECLARE @endTime datetime
DECLARE @timeGrain int

SET @startTime = GETDATE() - 5
SET @endTime = GETDATE()
SET @timeGrain = 3600

SELECT ((CONVERT(BIGINT, DATEDIFF(day, 0, [end_time])) * 24 * 3600 + DATEDIFF(second, DATEADD(day, DATEDIFF(day, 0, [end_time]), 0), [end_time])) / @timeGrain) * @timeGrain as start_time_interval
                , MAX(cpu_percent) as cpu_percent
                , MAX(physical_data_read_percent) as physical_data_read_percent
                , MAX(log_write_percent) as log_write_percent
                , MAX(memory_usage_percent) as memory_usage_percent
                , MAX(xtp_storage_percent) as xtp_storage_percent
                , MAX(dtu_consumption_percent) as dtu_consumption_percent
                , MAX(workers_percent) as workers_percent
                , MAX(sessions_percent) as sessions_percent
                , MAX(dtu_limit) as dtu_limit
                , MAX(dtu_used) as dtu_used
             FROM
                 (SELECT
                     end_time
                    , ISNULL(avg_cpu_percent, 0) as cpu_percent
                    , ISNULL(avg_data_io_percent, 0) as physical_data_read_percent
                    , ISNULL(avg_log_write_percent, 0) as log_write_percent
                    , ISNULL(avg_memory_usage_percent, 0) as [memory_usage_percent]
                    , ISNULL(xtp_storage_percent, 0) as xtp_storage_percent
                    , ISNULL((SELECT MAX(v) FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS value(v)), 0) as dtu_consumption_percent
                    , ISNULL(max_worker_percent, 0) as workers_percent
                    , ISNULL(max_session_percent, 0) as sessions_percent
                    , ISNULL(dtu_limit, 0) as dtu_limit
                    , ISNULL(dtu_limit, 0) * ISNULL((SELECT MAX(v) FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS value(v)), 0) / 100.0 as dtu_used
                 FROM sys.dm_db_resource_stats 
                 WHERE [end_time] >= @startTime AND [end_time] <= @endTime
                 ) t
             GROUP BY ((CONVERT(BIGINT, DATEDIFF(day, 0, [end_time])) * 24 * 3600 + DATEDIFF(second, DATEADD(day, DATEDIFF(day, 0, [end_time]),  0), [end_time])) / @timeGrain) * @timeGrain

希望我的回答不會太晚,

最近,有人要求我使用Azure監視API提取Azure DTU(平均指標)。 這里是一個示例工作代碼(您需要在appsettings.config文件中更新Azure訂閱/資源組名稱等值以使其正常工作。

要訪問監視API,您需要具有訪問令牌並生成令牌,請按照此處提到的步驟進行操作

如果您現在仍在閱讀,這里有一些詳細信息。

  1. 我們在Azure門戶上看到的所有內容(大部分)都在其Rest API上公開,SQL Server DTU是指標之一。

  2. SQL DTU托管在以下URL: https ://management.azure.com/subscriptions/ {0} / resourceGroups / {1} /providers/Microsoft.Sql/servers/ {2} / databases / {3} / providers / microsoft.insights /指標?metricnames = dtu_consumption_percent&API-版本= 2018年1月1日與聚集=平均&時間跨度= PT1M

  3. 若要達到此終結點,您需要具有Bearer授權令牌,可以通過在Azure Active Directory(AAD)上注冊應用程序並使用該appid和應用程序密鑰進行身份驗證來實現,並獲得訪問令牌(Bearer令牌)

  4. 可用指標為“平均值/最小值/最大值/計數/總計”,使用其中之一(只需將“聚合查詢”字符串值更改為其中之一即可獲得相應的值)

  5. 您可以根據需要索取數據。 例如,要獲取最近1分鍾的DTU平均值,請在查詢字符串變量時間跨度中使用PT1M。 您將獲得一條記錄,以響應最新的DTU平均可用(通常比1-2分鍾大)

希望這有助於實現您的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM