Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Para aplicativos de funções do Azure, consulte Usar OpenTelemetry com o Azure Functions.
Siga estas etapas para migrar aplicativos Python para o Azure MonitorApplication InsightsOpenTelemetry Distro.
Aviso
- O blog "Como migrar para OpenTelemetry" do OpenCensus não é aplicável aos usuários do Azure Monitor.
- O shim do OpenCensus do OpenTelemetry não é recomendado pela Microsoft nem tem o suporte dela.
- A seguir, descrevemos o único plano de migração para clientes do Azure Monitor.
Etapa 1: desinstalar bibliotecas do OpenCensus
Desinstale todas as bibliotecas relacionadas ao OpenCensus, incluindo todos os pacotes Pypi que começam com opencensus-*.
pip freeze | grep opencensus | xargs pip uninstall -y
Etapa 2: Remova o OpenCensus do seu código
Remova todas as instâncias do OpenCensus SDK e do exportador OpenCensus do Azure Monitor do seu código.
Verifique se há instruções de importação que começam com opencensus para encontrar todas as integrações, exportadores e instâncias do OpenCensus API/SDK que devem ser removidos.
A seguir estão exemplos de instruções de importação que devem ser removidas.
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.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
from opencensus.ext.azure.log_exporter import AzureLogHandler
Etapa 3: Familiarize-se com as APIs/SDKs do OpenTelemetry Python
A documentação a seguir fornece conhecimento prévio das APIs/SDKs do OpenTelemetry Python.
- Documentação do OpenTelemetry Python
- Documentação do Azure Monitor Distro sobre configuração e telemetria
Observação
O OpenTelemetry Python e o OpenCensus Python têm diferentes superfícies de API, recursos de autocoleta e instruções de integração.
Etapa 4: Configurar o Azure Monitor OpenTelemetry Distro
Siga a página de introdução para integrar a distribuição do OpenTelemetry do Azure Monitor.
Alterações e limitações
As seguintes alterações e limitações podem ser encontradas ao migrar do OpenCensus para o OpenTelemetry.
Suporte ao Python < 3.7
As soluções de monitoramento baseadas em Python da OpenTelemetry suportam apenas Python 3.7 e superiores, excluindo as versões Python 2.7, 3.4, 3.5 e 3.6 anteriormente suportadas pelo OpenCensus. Sugerimos a atualização para usuários que estão nas versões mais antigas do Python, pois, a partir da gravação deste documento, essas versões já atingiram o fim da vida útil. Usuários que insistem em não atualizar ainda podem usar as soluções OpenTelemetry, mas podem encontrar comportamento inesperado ou problemático que não é suportado. De qualquer forma, a última versão com suporte do opencensus-ext-azure sempre existe e as imagens funcionam para essas versões, mas nenhuma nova versão é feita para esse projeto.
Configurações
O OpenCensus Python forneceu algumas opções de configuração relacionadas à coleção e à exportação de telemetria. Você obtém as mesmas configurações e muito mais usando as APIs e o SDK do OpenTelemetry Python . O monitor Python Distro do OpenTelemetry Azure é mais um serviço completo para as necessidades de monitoramento mais comuns de seus aplicativos Python. Como a distribuição encapsula as APIs/SDk do OpenTelemetry, algumas configurações para casos de uso mais incomuns podem não ser suportadas atualmente pela distribuição. Em vez disso, você pode optar por integrar o exportador OpenTelemetry do Azure Monitor, que, com as APIs/SDKs do OpenTelemetry, deve ser capaz de atender às suas necessidades de monitoramento. Algumas dessas configurações incluem:
- Propagadores personalizados
- Amostradores personalizados
- Adicionar processadores de span/log/leitores de métricas extras
Coesão com o Azure Functions
Para fornecer recursos de rastreamento distribuído para aplicativos Python que chamam outros aplicativos Python em uma função do Azure, o pacote opencensus-extension-azure-functions foi fornecido para permitir um grafo distribuído conectado.
Atualmente, as soluções OpenTelemetry para o Azure Monitor não oferecem suporte a esse cenário. Como solução alternativa, você pode propagar manualmente o contexto de rastreamento no seu aplicativo de funções do Azure, conforme mostrado no exemplo a seguir.
from opentelemetry.context import attach, detach
from opentelemetry.trace.propagation.tracecontext import \
TraceContextTextMapPropagator
# Context parameter is provided for the body of the function
def main(req, context):
functions_current_context = {
"traceparent": context.trace_context.Traceparent,
"tracestate": context.trace_context.Tracestate
}
parent_context = TraceContextTextMapPropagator().extract(
carrier=functions_current_context
)
token = attach(parent_context)
...
# Function logic
...
detach(token)
Extensões e exportadores
O OpenCensus SDK oferece maneiras de coletar e exportar telemetria por meio de integrações e exportadores do OpenCensus, respectivamente. No OpenTelemetry, as integrações agora são chamadas de instrumentações, enquanto os exportadores permaneceram com a mesma terminologia. As instrumentações e exportadores do OpenTelemetry Python são um superconjunto do que foi fornecido no OpenCensus, portanto, em termos de cobertura e funcionalidade da biblioteca, as bibliotecas do OpenTelemetry são uma atualização direta. Quanto à distribuição do OpenTelemetry do Azure Monitor, ela é fornecida com algumas das instrumentações populares do OpenTelemetry do Python prontas para uso, de modo que nenhum código extra é necessário. A Microsoft oferece suporte total a essas instrumentações.
Quanto às outras instrumentações do Python OpenTelemetry que não estão incluídas nesta lista, os usuários ainda podem instrumentar manualmente com elas. No entanto, é importante observar que a estabilidade e o comportamento não são garantidos nem apoiados nesses casos. Portanto, use-os a seu próprio critério.
Se você quiser sugerir uma biblioteca de instrumentação da comunidade para incluirmos na distribuição, poste uma ideia ou vote em uma em nossa comunidade de comentários. Para exportadores, a distribuição do OpenTelemetry do Azure Monitor é fornecida com o exportador do OpenTelemetry do Azure Monitor. Se você também quiser usar outros exportadores, poderá usá-los com a distribuição, como neste exemplo.
Processadores de Telemetria
Não há conceito de TelemetryProcessors no mundo OpenTelemetry, mas há APIs e classes que você pode usar para replicar o mesmo comportamento.
Definindo o nome da função de nuvem e a instância da função de nuvem
Siga as instruções aqui sobre como definir o nome da função de nuvem e a instância de função de nuvem para sua telemetria. O OpenTelemetry Azure Monitor Distro busca automaticamente os valores das variáveis de ambiente e preenche os respectivos campos.
Modificando spans com SpanProcessors
em breve.
Modificando métricas com visualizações
em breve.
Contadores de desempenho
O exportador do OpenCensus Python Azure Monitor coletou automaticamente métricas relacionadas ao sistema e ao desempenho chamadas contadores de desempenho. Essas métricas aparecem entre performanceCounters na sua instância do Application Insights. No OpenTelemetry, não enviamos mais essas métricas explicitamente para performanceCounters. As métricas relacionadas a solicitações de entrada/saída podem ser encontradas nas métricas padrão. Se você quiser que o OpenTelemetry colete automaticamente as métricas relacionadas ao sistema, poderá usar a instrumentação de métricas experimentais do sistema, contribuída pela comunidade do OpenTelemetry para Python. Esse pacote é experimental e não tem suporte oficial da Microsoft.
Suporte
Para examinar as etapas de solução de problemas, as opções de suporte ou para fornecer comentários do OpenTelemetry, consulte a solução de problemas, suporte e comentários do OpenTelemetry para o Azure Monitor Application Insights.