#python #azure #azure-application-insights #azure-monitoring #opencensus
#python #azure #azure-application-insights #azure-мониторинг #opencensus
Вопрос:
В документации о том, как использовать opencensus-python
для отправки трассировок в Azure Application Insights, указано, как добавить дополнительную информацию в 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.
Это все хорошо, но каков предполагаемый способ удаления элементов, customDimensions
которые включены по умолчанию; т. Е. Такие вещи, как fileName
и process
?
Ответ №1:
При проверке исходного кода свойства кажутся довольно сложными для создания, но их можно удалить путем последующей обработки 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
при регистрации.