Удаление элементов customDimensions из Application Insights при использовании opencensus-python

#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 при регистрации.