Python 应用程序的 Azure Application Insights 日志记录 - 显式设置异常属性
Azure Application Insights logging for Python Application - Set Exception properties explicitly
我正在尝试将 Python 应用程序 运行 在 Azure App 服务 中的异常发送到指定 Azure Application Insights 实例。为此,我正在使用 OpenCensus python 库。
基本日志记录和异常已成功到达 App Insight。
除此之外,我想知道是否有一种方法可以配置异常属性,例如:problemId
或任何其他明确反映特定值的属性,以便更容易发出警报(喜欢根据problemId).
向特定组发送电子邮件
任何 suggestion/pointers 都会非常有帮助
您可以使用 custom_dimensions
字段在 extra 关键字参数中将自定义属性添加到您的日志消息(不仅是异常,还包括所有其他日志类型,如跟踪、事件等)。这些属性在 Azure Monitor 中显示为 key-value 对 customDimensions
。然后您可以查询、查看或配置警报。
要使用此功能,您需要将字典传递给 custom_dimensions
字段。如果您传递任何其他类型的参数,记录器将忽略它们。
注意:OpenCensus Python 不会自动跟踪和发送异常遥测数据。它们是通过 Python 日志库使用异常通过 AzureLogHandler 发送的。您可以像使用普通日志记录一样添加自定义属性。
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
logger = logging.getLogger(__name__)
# TODO: replace the all-zero GUID with your instrumentation key.
logger.addHandler(AzureLogHandler(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
)
properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}
# Use properties in exception logs
try:
result = 1 / 0 # generate a ZeroDivisionError
except Exception:
logger.exception('Captured an exception.', extra=properties)
您可以在 Azure 门户中查看 customDimentions,如下所示(只是示例,不是上面代码中的实际内容):
您可以在 Kusto 查询中看到相同的内容,如下所示:
您可以查询这些并基于它配置警报(下图显示 traces
,对于例外情况,它将是 exceptions table
):
我正在尝试将 Python 应用程序 运行 在 Azure App 服务 中的异常发送到指定 Azure Application Insights 实例。为此,我正在使用 OpenCensus python 库。 基本日志记录和异常已成功到达 App Insight。
除此之外,我想知道是否有一种方法可以配置异常属性,例如:problemId
或任何其他明确反映特定值的属性,以便更容易发出警报(喜欢根据problemId).
任何 suggestion/pointers 都会非常有帮助
您可以使用 custom_dimensions
字段在 extra 关键字参数中将自定义属性添加到您的日志消息(不仅是异常,还包括所有其他日志类型,如跟踪、事件等)。这些属性在 Azure Monitor 中显示为 key-value 对 customDimensions
。然后您可以查询、查看或配置警报。
要使用此功能,您需要将字典传递给 custom_dimensions
字段。如果您传递任何其他类型的参数,记录器将忽略它们。
注意:OpenCensus Python 不会自动跟踪和发送异常遥测数据。它们是通过 Python 日志库使用异常通过 AzureLogHandler 发送的。您可以像使用普通日志记录一样添加自定义属性。
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
logger = logging.getLogger(__name__)
# TODO: replace the all-zero GUID with your instrumentation key.
logger.addHandler(AzureLogHandler(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
)
properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}
# Use properties in exception logs
try:
result = 1 / 0 # generate a ZeroDivisionError
except Exception:
logger.exception('Captured an exception.', extra=properties)
您可以在 Azure 门户中查看 customDimentions,如下所示(只是示例,不是上面代码中的实际内容):
您可以在 Kusto 查询中看到相同的内容,如下所示:
您可以查询这些并基于它配置警报(下图显示 traces
,对于例外情况,它将是 exceptions table
):