使用 opencensus-python 时从 Application Insights 中删除 customDimensions 项目
Remove customDimensions items from Application Insights when using opencensus-python
在关于如何使用 opencensus-python
将跟踪提交到 Azure Application Insights 的 the documentation 中,详细说明了如何将附加信息添加到 customDimensions
字段。也就是说,
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
)
logger.error('blooh')
logger.error('blooh2', extra={'custom_dimensions': {'woot': 42}})
变成
在 Application Insights UI 中。
一切都很好,但是从 customDimensions
中删除默认包含的项目的预期方法是什么?即 fileName
和 process
?
通过 inspection of the source code,属性似乎很难避免创建,但可以通过 post-processing 和 envelope
:
删除它们
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
custom_dimensions = {'foo': 'bar'}
def remove_items(envelope):
envelope.data.baseData.properties = custom_dimensions
return True
logger = logging.getLogger(__name__)
handler = AzureLogHandler(connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
handler.add_telemetry_processor(remove_items)
logger.addHandler(handler)
logger.error('blooh')
这已在 opencensus-ext-azure
版本 1.0.5 中测试和工作。
另请注意,使用此方法,不再需要在记录时指定 extra
。
在关于如何使用 opencensus-python
将跟踪提交到 Azure Application Insights 的 the documentation 中,详细说明了如何将附加信息添加到 customDimensions
字段。也就是说,
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
)
logger.error('blooh')
logger.error('blooh2', extra={'custom_dimensions': {'woot': 42}})
变成
在 Application Insights UI 中。
一切都很好,但是从 customDimensions
中删除默认包含的项目的预期方法是什么?即 fileName
和 process
?
通过 inspection of the source code,属性似乎很难避免创建,但可以通过 post-processing 和 envelope
:
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
custom_dimensions = {'foo': 'bar'}
def remove_items(envelope):
envelope.data.baseData.properties = custom_dimensions
return True
logger = logging.getLogger(__name__)
handler = AzureLogHandler(connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
handler.add_telemetry_processor(remove_items)
logger.addHandler(handler)
logger.error('blooh')
这已在 opencensus-ext-azure
版本 1.0.5 中测试和工作。
另请注意,使用此方法,不再需要在记录时指定 extra
。