Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Para Azure Function Apps, consulte Uso de OpenTelemetry con Azure Functions.
Siga estos pasos para migrar aplicaciones de Python a la distribución de OpenTelemetry de Application Insights de Azure Monitor.
Advertencia
- El blog "Cómo migrar a OpenTelemetry" de OpenCensus no es aplicable a los usuarios de Azure Monitor.
- Microsoft no recomienda ni da soporte técnico a las correcciones de compatibilidad (shim) con OpenTelemetry OpenCensus .
- A continuación se describe el único plan de migración para los clientes de Azure Monitor.
Paso 1: Desinstalar bibliotecas de OpenCensus
Desinstale todas las bibliotecas relacionadas con OpenCensus, incluidos todos los paquetes de Pypi que comienzan por opencensus-*
.
pip freeze | grep opencensus | xargs pip uninstall -y
Paso 2: Quitar OpenCensus del código
Quite todas las instancias del SDK de OpenCensus y el exportador de OpenCensus de Azure Monitor del código.
Compruebe si hay instrucciones de importación que comiencen con opencensus
para encontrar todas las integraciones, exportadores e instancias de OpenCensus API/SDK que se deben quitar.
A continuación se muestran ejemplos de instrucciones de importación que se deben eliminar.
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
Paso 3: Familiarícese con las API/SDK de Python de OpenTelemetry
En la siguiente documentación se proporcionan conocimientos previos de las API o LOS SDK de Python de OpenTelemetry.
- Documentación de Python de OpenTelemetry
- Documentación de distribución de Azure Monitor sobre la configuración y la telemetría
Nota:
OpenTelemetry Python y OpenCensus Python tienen diferentes superficies de API, funcionalidades de autocollection e instrucciones de incorporación.
Paso 4: Configuración de la distribución openTelemetry de Azure Monitor
Siga la página de introducción para empezar a utilizar la distribución OpenTelemetry de Azure Monitor.
Cambios y limitaciones
Se pueden encontrar los siguientes cambios y limitaciones al migrar de OpenCensus a OpenTelemetry.
Compatibilidad con Python < 3.7
Las soluciones de supervisión basadas en Python de OpenTelemetry solo admiten Python 3.7 y versiones posteriores, excepto las versiones de Python compatibles anteriormente 2.7, 3.4, 3.5 y 3.6 de OpenCensus. Se recomienda actualizar para los usuarios que están en las versiones anteriores de Python, ya que, a partir de la escritura de este documento, esas versiones ya han llegado al final del ciclo de vida. Los usuarios que se niegan a actualizarse pueden seguir usando las soluciones de OpenTelemetry, pero pueden encontrar un comportamiento inesperado o problemático que no está respaldado. En cualquier caso, la última versión soportada de opencensus-ext-azure siempre existe, y sigue funcionando para esas versiones, pero no se hacen nuevas versiones para ese proyecto.
Configuraciones
OpenCensus Python proporcionó algunas opciones de configuración relacionadas con la recopilación y exportación de telemetría. Puede lograr las mismas configuraciones, etc., mediante las API de Python y el SDK de OpenTelemetry . La distribución de Python de OpenTelemetry para Azure Monitor es más de una tienda única para las necesidades de supervisión más comunes para las aplicaciones de Python. Dado que la distribución encapsula las API/SDk de OpenTelemetry, es posible que algunas configuraciones para casos de uso más raros no se admita actualmente para la distribución. En su lugar, puede optar por adoptar el exportador de OpenTelemetry de Azure Monitor, que, con las API o SDK de OpenTelemetry, puede adaptarse a sus necesidades de supervisión. Algunas de estas configuraciones son:
- Propagadores personalizados
- Samplers personalizados
- Adición de intervalos, procesadores de registros o lectores de métricas adicionales
Cohesión con Azure Functions
Para proporcionar funcionalidades de seguimiento distribuido para las aplicaciones de Python que llaman a otras aplicaciones de Python dentro de una función de Azure, se proporcionó el paquete opencensus-extension-azure-functions para permitir un grafo distribuido conectado.
Actualmente, las soluciones de OpenTelemetry para Azure Monitor no admiten este escenario. Como solución alternativa, puede propagar manualmente el contexto de seguimiento en la aplicación de Azure Functions, como se muestra en el ejemplo siguiente.
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)
Extensiones y exportadores
El SDK de OpenCensus ofrece maneras de recopilar y exportar datos de telemetría a través de integraciones y exportadores de OpenCensus, respectivamente. En OpenTelemetry, las integraciones ahora se conocen como instrumentaciones, mientras que los exportadores se han mantenido con la misma terminología. Las instrumentaciones y exportadores de Python de OpenTelemetry son un superconjunto de lo que se proporcionó en OpenCensus, por lo que en términos de cobertura y funcionalidad de biblioteca, las bibliotecas de OpenTelemetry son una actualización directa. En cuanto a la distribución de OpenTelemetry de Azure Monitor, viene con algunas de las populares instrumentaciones de Python de OpenTelemetry de fábrica, por lo que no es necesario ningún código adicional. Microsoft admite totalmente estas instrumentaciones.
En cuanto a las demás instrumentaciones de Python de OpenTelemetry que no se incluyen en esta lista, los usuarios todavía pueden instrumentar manualmente con ellos. Sin embargo, es importante tener en cuenta que la estabilidad y el comportamiento no están garantizados ni admitidos en esos casos. Por lo tanto, úselos a su propia discreción.
Si quiere sugerirnos una biblioteca de instrumentación de la comunidad para incluirla en nuestra distribución, publique o vote una idea en nuestra comunidad de comentarios. En el caso de los exportadores, la distribución openTelemetry de Azure Monitor viene incluida con el exportador openTelemetry de Azure Monitor. Si también desea usar otros exportadores, puede usarlos con la distribución, como en este ejemplo.
Procesadores de Telemetría
Los procesadores de telemetría de Python de OpenCensus son un mecanismo eficaz en el que los usuarios pueden modificar su telemetría antes de enviarlos al exportador. No hay ningún concepto de TelemetryProcessors en el mundo de OpenTelemetry, pero hay API y clases que puede usar para replicar el mismo comportamiento.
Establecer el nombre del rol en la nube y la instancia del rol en la nube
Siga las instrucciones que se indican aquí para establecer el nombre del rol en la nube y la instancia de rol en la nube para la telemetría. La distribución de Azure Monitor de OpenTelemetry captura automáticamente los valores de las variables de entorno y rellena los campos respectivos.
Modificación de intervalos con SpanProcessors
Próximamente.
Modificación de métricas mediante visualizaciones
Próximamente.
Contadores de rendimiento
El exportador de Azure Monitor de Python de OpenCensus recopiló automáticamente las métricas relacionadas con el sistema y el rendimiento denominadas contadores de rendimiento. Estas métricas aparecen en performanceCounters
de su instancia de Application Insights. En OpenTelemetry, ya no se envían estas métricas explícitamente a performanceCounters
. Las métricas relacionadas con las solicitudes entrantes o salientes se pueden encontrar en métricas estándar. Si desea que OpenTelemetry realice la recopilación automática de métricas relacionadas con el sistema, puede usar la instrumentación experimental de métricas del sistema, aportada por la comunidad de Python de OpenTelemetry. Este paquete es experimental y no es compatible oficialmente con Microsoft.
Soporte técnico
Para revisar los pasos de solución de problemas, las opciones de soporte técnico o para proporcionar comentarios sobre OpenTelemetry, consulte solución de problemas, soporte técnico y comentarios de Azure Monitor Application Insights.