3

我按计划通过 Azure Function 以编程方式将自定义数据加载到应用程序洞察应用程序中。工作流本质上是将 json 文件加载到 azure 存储帐户,调用 post 到特定端点,主体包含带有 sas 令牌到 json 文件的链接,然后发生摄取周期将 json 加载到自定义数据源中。我注意到的是,摄取周期将旧记录与新的 JSON 连接起来——我需要在触发新的摄取之前清除数据,因此 JSON 文件始终代表数据集的完整状态。

是否有任何 API 用于以编程方式从应用程序洞察自定义数据源中清除数据?

4

1 回答 1

9

是的,可以清除 Application Insights 数据,但可能需要一段时间(例如 2-3 天)才能完成操作

这是通过向Azure 管理 API发送POST请求来完成的,如下所示:

--- 请求 URL (POST) ---

https://management.azure.com/subscriptions/{Subscription Id (GUID)}/resourceGroups/{Resource Group Name}/providers/Microsoft.Insights/components/{Application Insights Name}/purge?api-version=2015-05-01

--- 请求正文 ---

{
  "table": "exceptions",
  "filters": [
    {
      "column": "timestamp",
      "operator": ">",
      "value": "2018-01-01"
    }
  ]
}

exceptions是将根据过滤器删除数据的表的名称。

--- 请求标头 ---

Authorization: Bearer {OAuth Access Token}

导航到位于http://portal.azure.com的 Azure 门户,打开Cloud Shell并运行以下命令以获取OAuth 访问令牌

az account get-access-token

- - 回复 - -

{
    "operationId": "purge-048ccace-a6a0-41b9-80e3-fbc11a5bdd64"
}

- - 活动日志 - -

活动日志中将记录一个事件,其中包含有关操作的详细信息。

在此处输入图像描述

--- 可用表 ---

Application Insights其他数据源的可用表(包括其架构)在“分析”页面中可用:

在此处输入图像描述


注意这个过程是异步的,可能需要一段时间,可以通过下面的GET请求来查询它的状态:

--- 请求 URL (GET) ---

https://management.azure.com/subscriptions/{Subscription Id (GUID)}/resourceGroups/{Resource Group Name}/providers/Microsoft.Insights/components/{Application Insights Name}/operations/{purge-GUID (response returned in the purge POST request}?api-version=2015-05-01

--- 请求标头 ---

Authorization: Bearer {OAuth Access Token}

- - 回复 - -

{
    "status": "pending"
}

在https://docs.microsoft.com/en-us/rest/api/application-insights/components/purge找到更多详细信息。


这是关于此功能的另一个有趣的线程https://feedback.azure.com/forums/357324-application-insights/suggestions/19254595-enable-to-clear-data-of-the-resource

于 2018-07-06T23:56:44.430 回答