如何使用自定义条件从 Azure 中删除日志?
How to delete logs from Azure using custom conditions?
我正在尝试找到一种使用某些自定义条件(自动或手动现在并不重要)从 Azure 中删除日志的方法,例如:
假设我想从 Azure 中删除所有日志,但最近 3 天发生的自定义事件名称为 'LogIn' 的异常除外。
有没有办法在 Azure 中执行此操作?
提前致谢!
[我的背景]
我正在使用带有 Asp.Net Core 3.1 的 Application Insights 和使用 Serilog 结构化日志记录记录的 Application Insights。
我将我的日志作为事件发送,然后根据该数据对应用程序监控和警报进行自定义查询。
Serilog调用的几个例子:
_logger.Debug("{randomValue} {temperature}", rng, temperature);
_logger.Information("{_class_} {_function_}", nameof(UserService), nameof(IsLoggedIn));
_logger.Error(ex, "{_function_}", nameof(LogIn));
要从 application insights 中删除日志,唯一的方法是使用 purge rest api。但它有一些限制。
请记住,您应该每次都从每个 table 中删除日志。例如,您应该分别从 traces table
/ requests table
等删除日志。下面列出了所有 table:
1.Here 是使用 purge rest api 从 traces
table 中删除日志的示例。导航到清除 api 页面,单击 尝试一下 按钮(按钮为绿色)-> 然后登录,并填写所有必要的信息 -> 并在body 字段,设置过滤器如下:
注意,returns成功后,向下滚动到页面底部,有“operationId”。请写下来,您可以通过Get Purge Status.
用它来检查清除状态
2.Now, 您可以使用相同的方法从 exceptions
table 中删除日志。并且根据您的需要,您应该进行更多的清除操作。首先,如上所述,通过指定 3 天前的时间戳删除所有异常日志。其次,您可以删除最近 3 天内事件名称不是“LogIn”的日志,如下所示:
{
"table": "exceptions",
"filters": [
{
"column": "the column name",
"operator": "==",
"value": "not LogIn"
}
]
}
这里的限制是api现在不支持运算符!=
,因此您需要删除customEvent名称不是“LogIn”的日志使用上面的过滤器。完全支持的运算符是 here.
3.The 最后一件事是,由于某些原因,即使我们进行了清除,日志仍然保留了大约几天(7 天或 3天)在应用程序洞察中。请使用Get Purge Status查看进度。
我正在尝试找到一种使用某些自定义条件(自动或手动现在并不重要)从 Azure 中删除日志的方法,例如:
假设我想从 Azure 中删除所有日志,但最近 3 天发生的自定义事件名称为 'LogIn' 的异常除外。
有没有办法在 Azure 中执行此操作?
提前致谢!
[我的背景]
我正在使用带有 Asp.Net Core 3.1 的 Application Insights 和使用 Serilog 结构化日志记录记录的 Application Insights。
我将我的日志作为事件发送,然后根据该数据对应用程序监控和警报进行自定义查询。
Serilog调用的几个例子:
_logger.Debug("{randomValue} {temperature}", rng, temperature);
_logger.Information("{_class_} {_function_}", nameof(UserService), nameof(IsLoggedIn));
_logger.Error(ex, "{_function_}", nameof(LogIn));
要从 application insights 中删除日志,唯一的方法是使用 purge rest api。但它有一些限制。
请记住,您应该每次都从每个 table 中删除日志。例如,您应该分别从 traces table
/ requests table
等删除日志。下面列出了所有 table:
1.Here 是使用 purge rest api 从 traces
table 中删除日志的示例。导航到清除 api 页面,单击 尝试一下 按钮(按钮为绿色)-> 然后登录,并填写所有必要的信息 -> 并在body 字段,设置过滤器如下:
注意,returns成功后,向下滚动到页面底部,有“operationId”。请写下来,您可以通过Get Purge Status.
用它来检查清除状态2.Now, 您可以使用相同的方法从 exceptions
table 中删除日志。并且根据您的需要,您应该进行更多的清除操作。首先,如上所述,通过指定 3 天前的时间戳删除所有异常日志。其次,您可以删除最近 3 天内事件名称不是“LogIn”的日志,如下所示:
{
"table": "exceptions",
"filters": [
{
"column": "the column name",
"operator": "==",
"value": "not LogIn"
}
]
}
这里的限制是api现在不支持运算符!=
,因此您需要删除customEvent名称不是“LogIn”的日志使用上面的过滤器。完全支持的运算符是 here.
3.The 最后一件事是,由于某些原因,即使我们进行了清除,日志仍然保留了大约几天(7 天或 3天)在应用程序洞察中。请使用Get Purge Status查看进度。