Configurar o Azure Monitor para seu aplicativo Python
Atenção
O OpenCensus Python SDK foi desativado. Recomendamos a oferta Python baseada em OpenTelemetry e fornecemos orientação de migração.
O Azure Monitor dá suporte ao rastreamento distribuído, coleta de métricas e registro em log de aplicativos Python.
A solução suportada pela Microsoft para rastrear e exportar dados para seus aplicativos Python é por meio do SDK do OpenCensus Python por meio dos exportadores do Azure Monitor.
A Microsoft não recomenda o uso de outros SDKs de telemetria para Python como uma solução de telemetria porque eles não são suportados.
O OpenCensus está convergindo para o OpenTelemetry. Continuamos a recomendar o OpenCensus enquanto o OpenTelemetry amadurece gradualmente.
Pré-requisitos
Precisa de uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Nota
A 31 de março de 2025, o suporte da ingestão de chaves de instrumentação terminará. A ingestão de chaves de instrumentação continuará a funcionar, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar os novos recursos.
Apresentando o OpenCensus Python SDK
OpenCensus é um conjunto de bibliotecas de código aberto para permitir a coleta de rastreamento distribuído, métricas e telemetria de registro. Usando os exportadores do Azure Monitor, você pode enviar essa telemetria coletada para o Application Insights. Este artigo orienta você pelo processo de configuração dos exportadores do OpenCensus e do Azure Monitor para Python para enviar seus dados de monitoramento para o Azure Monitor.
Instrumento com OpenCensus Python SDK com exportadores do Azure Monitor
Instale os exportadores do OpenCensus Azure Monitor:
python -m pip install opencensus-ext-azure
O SDK usa três exportadores do Azure Monitor para enviar diferentes tipos de telemetria para o Azure Monitor. Eles são trace
, metrics
, e logs
. Para obter mais informações sobre esses tipos de telemetria, consulte a Visão geral da plataforma de dados. Use as instruções a seguir para enviar esses tipos de telemetria através dos três exportadores.
Mapeamentos de tipo de telemetria
O OpenCensus mapeia os seguintes exportadores para os tipos de telemetria que você vê no Azure Monitor.
Pilar da observabilidade | Tipo de telemetria no Azure Monitor | Explicação |
---|---|---|
Registos | Rastreamentos, exceções, customEvents | Telemetria de log, telemetria de exceção, telemetria de eventos |
Métricas | customMetrics, performanceCounters | Contadores de desempenho de métricas personalizadas |
Rastreio | Dependências de solicitações | Solicitações de entrada, solicitações de saída |
Registos
Primeiro, vamos gerar alguns dados de log locais.
import logging logger = logging.getLogger(__name__) def main(): """Generate random log data.""" for num in range(5): logger.warning(f"Log Entry - {num}") if __name__ == "__main__": main()
Uma entrada de log é emitida para cada número no intervalo.
Log Entry - 0 Log Entry - 1 Log Entry - 2 Log Entry - 3 Log Entry - 4
Queremos ver esses dados de log no Azure Monitor. Você pode especificá-lo em uma variável de ambiente,
APPLICATIONINSIGHTS_CONNECTION_STRING
. Você também pode passar o connection_string diretamente para oAzureLogHandler
, mas as cadeias de conexão não devem ser adicionadas ao controle de versão.APPLICATIONINSIGHTS_CONNECTION_STRING=<appinsights-connection-string>
Recomendamos usar a cadeia de conexão para instanciar os exportadores usados para enviar telemetria para o Application Insights. Modifique seu código da etapa anterior com base no seguinte exemplo de código:
import logging from opencensus.ext.azure.log_exporter import AzureLogHandler logger = logging.getLogger(__name__) logger.addHandler(AzureLogHandler()) # Alternatively manually pass in the connection_string # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>)) """Generate random log data.""" for num in range(5): logger.warning(f"Log Entry - {num}")
O exportador envia dados de log para o Azure Monitor. Pode encontrar os dados em
traces
.Neste contexto,
traces
não é o mesmo quetracing
. Aqui,traces
refere-se ao tipo de telemetria que você vê no Azure Monitor quando utilizaAzureLogHandler
o . Mastracing
refere-se a um conceito no OpenCensus e se relaciona com o rastreamento distribuído.Nota
O registrador raiz é configurado com o nível de
warning
. Isso significa que todos os logs enviados com menos gravidade são ignorados e, por sua vez, não serão enviados para o Azure Monitor. Para obter mais informações, consulte Documentação de registro.Você também pode adicionar propriedades personalizadas às suas mensagens de log no argumento de
extra
palavra-chave usando ocustom_dimensions
campo. Essas propriedades aparecem como pares chave-valor nocustomDimensions
Azure Monitor.Nota
Para que esse recurso funcione, você precisa passar um dicionário para o
custom_dimensions
campo. Se você passar argumentos de qualquer outro tipo, o registrador os ignorará.import logging from opencensus.ext.azure.log_exporter import AzureLogHandler logger = logging.getLogger(__name__) logger.addHandler(AzureLogHandler()) # Alternatively manually pass in the connection_string # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>)) properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}} # Use properties in logging statements logger.warning('action', extra=properties)
Nota
Como parte do uso da instrumentação do Application Insights, coletamos e enviamos dados de diagnóstico para a Microsoft. Esses dados nos ajudam a executar e melhorar o Application Insights. Você tem a opção de desativar a coleta de dados não essenciais. Para saber mais, consulte Statsbeat no Application Insights.
Configurar o registro em log para aplicativos Django
Você pode configurar o registro em log explicitamente no código do seu aplicativo, como o anterior para seus aplicativos Django, ou pode especificá-lo na configuração de log do Django. Esse código pode entrar em qualquer arquivo que você usar para a configuração de configurações do site Django, normalmente settings.py
.
Para obter informações sobre como definir as configurações do Django, consulte Configurações do Django. Para obter mais informações sobre como configurar o registro em log, consulte Django logging.
LOGGING = {
"handlers": {
"azure": {
"level": "DEBUG",
"class": "opencensus.ext.azure.log_exporter.AzureLogHandler",
"connection_string": "<appinsights-connection-string>",
},
"console": {
"level": "DEBUG",
"class": "logging.StreamHandler",
"stream": sys.stdout,
},
},
"loggers": {
"logger_name": {"handlers": ["azure", "console"]},
},
}
Certifique-se de usar o registrador com o mesmo nome especificado em sua configuração.
# views.py
import logging
from django.shortcuts import request
logger = logging.getLogger("logger_name")
logger.warning("this will be tracked")
Enviar exceções
O OpenCensus Python não rastreia e envia exception
telemetria automaticamente. Ele é enviado usando AzureLogHandler
exceções através da biblioteca de log do Python. Você pode adicionar propriedades personalizadas como faz com o registro em log normal.
import logging
from opencensus.ext.azure.log_exporter import AzureLogHandler
logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler())
# Alternatively, manually pass in the connection_string
# logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
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)
Como você deve registrar exceções explicitamente, cabe a você como registrar exceções não tratadas. O OpenCensus não coloca restrições sobre como fazer esse registro, mas você deve registrar explicitamente a telemetria de exceção.
Enviar eventos
Você pode enviar customEvent
telemetria exatamente da mesma maneira que envia trace
telemetria, exceto usando AzureEventHandler
.
import logging
from opencensus.ext.azure.log_exporter import AzureEventHandler
logger = logging.getLogger(__name__)
logger.addHandler(AzureEventHandler())
# Alternatively manually pass in the connection_string
# logger.addHandler(AzureEventHandler(connection_string=<appinsights-connection-string>))
logger.setLevel(logging.INFO)
logger.info('Hello, World!')
Amostragem
Para obter informações sobre amostragem no OpenCensus, consulte Amostragem no OpenCensus.
Correlação de registos
Para obter informações sobre como enriquecer seus logs com dados de contexto de rastreamento, consulte OpenCensus Python logs integration.
Modificar telemetria
Para obter informações sobre como modificar a telemetria controlada antes de ser enviada para o Azure Monitor, consulte Processadores de telemetria OpenCensus Python.
Métricas
OpenCensus.stats dá suporte a quatro métodos de agregação, mas fornece suporte parcial para o Azure Monitor:
- Contagem: A contagem do número de pontos de medição. O valor é cumulativo, só pode aumentar e redefine para 0 na reinicialização.
- Soma: Soma dos pontos de medição. O valor é cumulativo, só pode aumentar e redefine para 0 na reinicialização.
- LastValue: Mantém o último valor registado e deixa cair tudo o resto.
- Distribuição: o exportador do Azure não suporta a distribuição de histograma dos pontos de medição.
Exemplo de agregação de contagem
Primeiro, vamos gerar alguns dados de métricas locais. Criamos uma métrica para acompanhar o número de vezes que o usuário seleciona a tecla Enter .
from datetime import datetime from opencensus.stats import aggregation as aggregation_module from opencensus.stats import measure as measure_module from opencensus.stats import stats as stats_module from opencensus.stats import view as view_module from opencensus.tags import tag_map as tag_map_module stats = stats_module.stats view_manager = stats.view_manager stats_recorder = stats.stats_recorder prompt_measure = measure_module.MeasureInt("prompts", "number of prompts", "prompts") prompt_view = view_module.View("prompt view", "number of prompts", [], prompt_measure, aggregation_module.CountAggregation()) view_manager.register_view(prompt_view) mmap = stats_recorder.new_measurement_map() tmap = tag_map_module.TagMap() def main(): for _ in range(4): mmap.measure_int_put(prompt_measure, 1) mmap.record(tmap) metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow())) print(metrics[0].time_series[0].points[0]) if __name__ == "__main__": main()
As métricas são criadas para acompanhar muitas vezes. A cada entrada, o valor é incrementado e as informações métricas aparecem no console. As informações incluem o valor atual e o carimbo de data/hora atual quando a métrica foi atualizada.
Point(value=ValueLong(5), timestamp=2019-10-09 20:58:04.930426) Point(value=ValueLong(6), timestamp=2019-10-09 20:58:05.170167) Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.438614) Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.834216)
A inserção de valores é útil para fins de demonstração, mas queremos emitir os dados métricos para o Azure Monitor. Passe sua cadeia de conexão diretamente para o exportador. Ou você pode especificá-lo em uma variável de ambiente,
APPLICATIONINSIGHTS_CONNECTION_STRING
. Recomendamos usar a cadeia de conexão para instanciar os exportadores usados para enviar telemetria para o Application Insights. Modifique seu código da etapa anterior com base no seguinte exemplo de código:from datetime import datetime from opencensus.ext.azure import metrics_exporter from opencensus.stats import aggregation as aggregation_module from opencensus.stats import measure as measure_module from opencensus.stats import stats as stats_module from opencensus.stats import view as view_module from opencensus.tags import tag_map as tag_map_module stats = stats_module.stats view_manager = stats.view_manager stats_recorder = stats.stats_recorder prompt_measure = measure_module.MeasureInt("prompts", "number of prompts", "prompts") prompt_view = view_module.View("prompt view", "number of prompts", [], prompt_measure, aggregation_module.CountAggregation()) view_manager.register_view(prompt_view) mmap = stats_recorder.new_measurement_map() tmap = tag_map_module.TagMap() exporter = metrics_exporter.new_metrics_exporter() # Alternatively manually pass in the connection_string # exporter = metrics_exporter.new_metrics_exporter(connection_string='<appinsights-connection-string>') view_manager.register_exporter(exporter) def main(): for _ in range(10): input("Press enter.") mmap.measure_int_put(prompt_measure, 1) mmap.record(tmap) metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow())) print(metrics[0].time_series[0].points[0]) if __name__ == "__main__": main()
O exportador envia dados de métrica para o Azure Monitor em um intervalo fixo. Você deve definir esse valor como 60 segundos, pois o back-end do Application Insights pressupõe a agregação de pontos de métricas em um intervalo de tempo de 60 segundos. Estamos rastreando uma única métrica, portanto, esses dados métricos, com qualquer valor e carimbo de data/hora que contenham, são enviados a cada intervalo. Os dados são cumulativos, só podem aumentar e são redefinidos para 0 na reinicialização.
Você pode encontrar os dados em
customMetrics
, mas ascustomMetrics
propriedadesvalueCount
,valueSum
,valueMin
,valueMax
, evalueStdDev
não são usadas efetivamente.
Definir dimensões personalizadas em métricas
O OpenCensus Python SDK permite que você adicione dimensões personalizadas à sua telemetria de métricas usando tags
, que são como um dicionário de pares chave-valor.
Insira as tags que você deseja usar no mapa de tags. O mapa de tags funciona como uma espécie de "pool" de todas as tags disponíveis que você pode usar.
... tmap = tag_map_module.TagMap() tmap.insert("url", "http://example.com") ...
Para um
View
, especifique as tags que você deseja usar ao gravar métricas com essa exibição por meio da chave de tag.... prompt_view = view_module.View("prompt view", "number of prompts", ["url"], # <-- A sequence of tag keys used to specify which tag key/value to use from the tag map prompt_measure, aggregation_module.CountAggregation()) ...
Certifique-se de usar o mapa de tags quando estiver gravando no mapa de medição. As chaves de
View
tag especificadas no devem ser encontradas no mapa de tags usado para gravar.... mmap = stats_recorder.new_measurement_map() mmap.measure_int_put(prompt_measure, 1) mmap.record(tmap) # <-- pass the tag map in here ...
customMetrics
Na tabela, todos os registros métricos emitidos usandoprompt_view
têm dimensões personalizadas{"url":"http://example.com"}
.Para produzir tags com valores diferentes usando as mesmas chaves, crie novos mapas de tags para elas.
... tmap = tag_map_module.TagMap() tmap2 = tag_map_module.TagMap() tmap.insert("url", "http://example.com") tmap2.insert("url", "https://www.wikipedia.org/wiki/") ...
Contadores de desempenho
Por padrão, o exportador de métricas envia um conjunto de contadores de desempenho para o Azure Monitor. Você pode desabilitar esse recurso definindo o sinalizador enable_standard_metrics
como False
no construtor do exportador de métricas.
...
exporter = metrics_exporter.new_metrics_exporter(
enable_standard_metrics=False,
)
...
Os seguintes contadores de desempenho são enviados no momento:
- Memória disponível (bytes)
- Tempo do processador da CPU (percentagem)
- Taxa de solicitação recebida (por segundo)
- Tempo médio de execução da solicitação de entrada (milissegundos)
- Uso da CPU do processo (porcentagem)
- Processar bytes privados (bytes)
Você deve ser capaz de ver essas métricas em performanceCounters
. Para obter mais informações, consulte Contadores de desempenho.
Modificar telemetria
Para obter informações sobre como modificar a telemetria controlada antes de ser enviada para o Azure Monitor, consulte Processadores de telemetria OpenCensus Python.
Rastreio
Nota
Em OpenCensus, tracing
refere-se ao rastreamento distribuído. O AzureExporter
parâmetro envia requests
e dependency
telemetria para o Azure Monitor.
Primeiro, vamos gerar alguns dados de rastreamento localmente. Em Python IDLE, ou seu editor de escolha, digite o seguinte código:
from opencensus.trace.samplers import ProbabilitySampler from opencensus.trace.tracer import Tracer tracer = Tracer(sampler=ProbabilitySampler(1.0)) def main(): with tracer.span(name="test") as span: for value in range(5): print(value) if __name__ == "__main__": main()
Com cada entrada, o valor é impresso no shell. O módulo OpenCensus Python gera uma parte correspondente do
SpanData
. O projeto OpenCensus define um traço como uma árvore de vãos.0 [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='15ac5123ac1f6847', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:22.805429Z', end_time='2019-06-27T18:21:44.933405Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)] 1 [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='2e512f846ba342de', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:44.933405Z', end_time='2019-06-27T18:21:46.156787Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)] 2 [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='f3f9f9ee6db4740a', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:46.157732Z', end_time='2019-06-27T18:21:47.269583Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
Exibir a saída é útil para fins de demonstração, mas queremos emitir
SpanData
para o Azure Monitor. Passe sua cadeia de conexão diretamente para o exportador. Ou você pode especificá-lo em uma variável de ambiente,APPLICATIONINSIGHTS_CONNECTION_STRING
. Recomendamos usar a cadeia de conexão para instanciar os exportadores usados para enviar telemetria para o Application Insights. Modifique seu código da etapa anterior com base no seguinte exemplo de código:from opencensus.ext.azure.trace_exporter import AzureExporter from opencensus.trace.samplers import ProbabilitySampler from opencensus.trace.tracer import Tracer tracer = Tracer( exporter=AzureExporter(), sampler=ProbabilitySampler(1.0), ) # Alternatively manually pass in the connection_string # exporter = AzureExporter( # connection_string='<appinsights-connection-string>', # ... # ) def main(): with tracer.span(name="test") as span: for value in range(5): print(value) if __name__ == "__main__": main()
Agora, quando você executa o script Python, apenas o valor está sendo impresso no shell. O criado
SpanData
é enviado para o Azure Monitor. Você pode encontrar os dados de span emitidos emdependencies
.Para obter mais informações sobre solicitações de saída, consulte Dependências do OpenCensus Python. Para obter mais informações sobre solicitações de entrada, consulte Solicitações Python do OpenCensus.
Amostragem
Para obter informações sobre amostragem no OpenCensus, consulte Amostragem no OpenCensus.
Correlação de vestígios
Para obter mais informações sobre a correlação de telemetria em seus dados de rastreamento, consulte Correlação de telemetria OpenCensus Python.
Modificar telemetria
Para obter mais informações sobre como modificar a telemetria controlada antes de ser enviada para o Azure Monitor, consulte Processadores de telemetria OpenCensus Python.
Configurar exportadores do Azure Monitor
Conforme mostrado, há três exportadores diferentes do Azure Monitor que oferecem suporte ao OpenCensus. Cada um envia diferentes tipos de telemetria para o Azure Monitor. Para ver que tipos de telemetria cada exportador envia, consulte a tabela a seguir.
Cada exportador aceita os mesmos argumentos para configuração, passados pelos construtores. Você pode ver informações sobre cada um aqui:
Telemetria do exportador | Description |
---|---|
connection_string |
A cadeia de conexão usada para se conectar ao recurso do Azure Monitor. Assume prioridade sobre instrumentation_key . |
credential |
Classe de credencial usada pela autenticação do Azure Ative Directory. Consulte a seção "Autenticação" a seguir. |
enable_standard_metrics |
Usado para AzureMetricsExporter . Sinaliza ao exportador para enviar métricas do contador de desempenho automaticamente para o Azure Monitor. O padrão é True . |
export_interval |
Usado para especificar a frequência em segundos de exportação. O padrão é 15s . Para métricas, você DEVE defini-lo como 60 segundos ou então suas agregações de métricas não fazem sentido no explorador de métricas. |
grace_period |
Usado para especificar o tempo limite de desligamento de exportadores em segundos. O padrão é 5s . |
instrumentation_key |
A chave de instrumentação usada para se conectar ao recurso do Azure Monitor. |
logging_sampling_rate |
Usado para AzureLogHandler e AzureEventHandler . Fornece uma taxa de amostragem [0,1.0] para exportar logs/eventos. O padrão é 1.0 . |
max_batch_size |
Especifica o tamanho máximo da telemetria que é exportada de uma só vez. |
proxies |
Especifica uma sequência de proxies a serem usados para enviar dados ao Azure Monitor. Para obter mais informações, consulte proxies. |
storage_path |
Um caminho para onde a pasta de armazenamento local existe (telemetria não enviada). A partir da opencensus-ext-azure v1.0.3, o caminho padrão é o diretório temporário do SO + + opencensus-python your-ikey . Antes da v1.0.3, o caminho padrão é $USER .azure + python-file-name .opencensus + + . |
timeout |
Especifica o tempo limite de rede para enviar telemetria para o serviço de ingestão em segundos. O padrão é 10s . |
Integração com o Azure Functions
Para capturar telemetria personalizada em ambientes do Azure Functions, use a extensão OpenCensus Python Azure Functions. Para obter mais informações, consulte o Guia do desenvolvedor Python do Azure Functions.
Autenticação (pré-visualização)
Nota
O recurso de autenticação está disponível a partir da opencensus-ext-azure
v1.1b0.
Cada um dos exportadores do Azure Monitor dá suporte à configuração de envio seguro de cargas úteis de telemetria por meio da autenticação OAuth com o Azure Ative Directory. Para obter mais informações, consulte a documentação de autenticação.
Ver os seus dados com consultas
Você pode exibir os dados de telemetria que foram enviados do seu aplicativo por meio da guia Logs (Analytics ).
Na lista em Ativo:
- Para telemetria enviada com o exportador de rastreamento do Azure Monitor, as solicitações de entrada aparecem em
requests
. As solicitações de saída ou em processo aparecem emdependencies
. - Para telemetria enviada com o exportador de métricas do Azure Monitor, as métricas enviadas aparecem em
customMetrics
. - Para telemetria enviada com o exportador de logs do Azure Monitor, os logs aparecem em
traces
. As exceções aparecem emexceptions
.
Para obter mais informações sobre como usar consultas e logs, consulte Logs no Azure Monitor.
Configurar e habilitar a autenticação baseada em ID do Microsoft Entra
Nota
A autenticação do Microsoft Entra só está disponível para Python v2.7, v3.6 e v3.7. O suporte para o Microsoft Entra ID no SDK Python do OpenCensus do Application Insights está incluído a partir da versão beta opencensus-ext-azure 1.1b0.
Nota
O OpenCensus Python SDK foi preterido, mas a Microsoft o suporta até a aposentadoria em 30 de setembro de 2024. Agora recomendamos a oferta Python baseada em OpenTelemetry e fornecemos orientação de migração.
Crie as credenciais apropriadas e passe-as para o construtor do exportador do Azure Monitor. Verifique se a cadeia de conexão está configurada com a chave de instrumentação e o ponto de extremidade de ingestão do recurso.
Os OpenCensus
exportadores do Azure Monitor dão suporte a esses tipos de autenticação. Recomendamos o uso de identidades gerenciadas em ambientes de produção.
Identidade gerida atribuída pelo sistema
from azure.identity import ManagedIdentityCredential
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
credential = ManagedIdentityCredential()
tracer = Tracer(
exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
sampler=ProbabilitySampler(1.0)
)
...
Identidade gerida atribuída pelo utilizador
from azure.identity import ManagedIdentityCredential
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
credential = ManagedIdentityCredential(client_id="<client-id>")
tracer = Tracer(
exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
sampler=ProbabilitySampler(1.0)
)
...
Saiba mais sobre o OpenCensus for Python
- OpenCensus Python no GitHub
- Personalização
- Exportadores do Azure Monitor no GitHub
- Integrações OpenCensus
- Aplicativos de exemplo do Azure Monitor
Resolução de Problemas
Testar a conectividade entre o host do aplicativo e o serviço de ingestão
SDKs e agentes do Application Insights enviam telemetria para serem ingeridos como chamadas REST para nossos pontos de extremidade de ingestão. Você pode testar a conectividade do seu servidor Web ou máquina host de aplicativo para os pontos de extremidade do serviço de ingestão usando clientes REST brutos do PowerShell ou comandos curl. Consulte Solucionar problemas de telemetria de aplicativo ausente no Azure Monitor Application Insights.
Release Notes (Notas de Lançamento)
Para obter as notas de versão mais recentes, consulte Python Azure Monitor Exporter
Nossas atualizações de serviço também resumem as principais melhorias do Application Insights.
Próximos passos
- Para habilitar experiências de uso, habilite o monitoramento de usuários da Web ou do navegador
- Rastreie as solicitações recebidas.
- Rastreie solicitações de saída.
- Consulte o mapa de candidaturas.
- Saiba como fazer o monitoramento de desempenho de ponta a ponta.
Alertas
- Visão geral da disponibilidade: crie testes para garantir que seu site esteja visível na Web.
- Diagnóstico inteligente: Estes testes são executados automaticamente, pelo que não precisa de fazer nada para os configurar. Estes indicam se a aplicação tem uma taxa de pedidos com falha fora do normal.
- Alertas métricos: defina alertas para avisá-lo se uma métrica ultrapassar um limite. Pode defini-los em métricas personalizadas que introduz no código da sua aplicação.