1 回答

TA貢獻2039條經(jīng)驗 獲得超8個贊
因此,幾天后,我找到了一種從 azure insights 中閱讀的方法,盡管我沒有堅持使用該解決方案。
洞察法
對于任何感興趣的人,要從您需要使用azure-applicationinsights包(而不是 azure-mgmt-applicationinsights)的見解中讀取指標。然后,您使用 Azure 憑據(jù)實例化一個 ApplicationInsightsDataClient,您可以按如下方式發(fā)送查詢:
from azure.applicationinsights import ApplicationInsightsDataClient client = ApplicationInsightsDataClient(<credentials>) metric = client.metrics.get(<application_id>, <metric>, custom_headers=<custom_headers>, **<other_kwargs>)
現(xiàn)在,棘手的部分是這個“application_id”和“custom_headers”。首先,您可以從 azure 中的 API 訪問密鑰選項卡上的洞察力資源中檢索它。
對于自定義標頭,您需要將令牌指定為您需要在見解資源中創(chuàng)建的一個 API_key(與上述相同的位置)。格式應該是:
custom_headers = {'x-api-key': <api_key>}
要了解您可以從洞察資源中獲得哪些指標,您可以
available_metrics = client.metrics.get_metadata(<application_id>, custom_headers=custom_headers)
此外,如果您在 CI/CD 管道中進行部署,您還可以自動檢索 ApplicationID 和創(chuàng)建 api_key。
要在我剛剛創(chuàng)建的 gitlab 管道日志上獲取應用程序 ID 并在 terraform 中為其輸出(檢查關于輸出的 terraform 文檔)對于 api_key 創(chuàng)建,您需要使用azure-mgmt-applicationinsights包并實例化一個 ApplicationInsightsManagementClient(不確定這個名字現(xiàn)在)
傳遞憑據(jù)并在“api_keys”屬性中使用“create”方法。這可能有點棘手,因為您需要傳遞一些“l(fā)inked_read_properties”。
我的建議是首先在 azure 門戶中創(chuàng)建它,在 python 中讀取它,檢查您需要的屬性,然后嘗試通過 python 創(chuàng)建它。
至于我最終堅持的解決方案。
我創(chuàng)建了我的 azure 函數(shù),該函數(shù)將結(jié)果寫入 blob_storage 以同時寫入“元數(shù)據(jù)”鍵/值。
如果還有一些批處理尚未運行,它將把它寫為 False。如果是最后一批,則將其更改為 True。
然后我只讀取 python 中的 blob 屬性,直到值為 True。
希望這可以幫助任何有類似問題的人;)
添加回答
舉報