Exploración y práctica de la observabilidad nativa de Apache Dubbo Cloud

Descripción general de la observabilidad de Dubbo3

Apache Dubbo3 ha completado una actualización importante en términos de observabilidad nativa de la nube. Con la última versión de Dubbo3, solo necesita introducir la dependencia dubbo-spring-boot-observability-starter, y el clúster de microservicios tiene las siguientes capacidades de forma nativa:

Capacidad 1: visualice el clúster, los indicadores de tráfico independientes y el estado de salud

La última versión de Dubbo 3.2 admite la observación del estado de ejecución en diferentes granularidades, como aplicación, servicio independiente y único, incluidos qps, rt, grupo de subprocesos, estadísticas de clasificación de errores, etc.

Capacidad 2: seguimiento completo de enlaces

La última versión de Dubbo 3.2 recopila los datos del enlace en la solicitud RPC a través del filtro de enlace incorporado y luego exporta los datos del enlace a los principales fabricantes a través del exportador después de la recopilación.

https://cn.dubbo.apache.org/zh-cn/overview/tasks/observability/

Exploración de la observabilidad nativa de la nube

Desafíos de las actualizaciones nativas de la nube

En la primera parte de la entrega de alta calidad, DevOps garantiza la calidad y la eficiencia del desarrollo y las pruebas, y la nube nativa garantiza la eficiencia y la calidad de la operación y la implementación de mantenimiento. Sin embargo, la iteración rápida a gran escala significa cambios frecuentes y la estabilidad los problemas causados ​​por los cambios y la operación del sistema no se pueden resolver. Ignorados, como el tiempo de inactividad, las anomalías de la red y del sistema, etc., muchos problemas desconocidos son inevitables. Con la ayuda de sistemas observables para detectar problemas de manera oportuna, analizar anomalías de manera eficiente y restaurar rápidamente el sistema, evitar problemas conocidos de antemano, profundizar en problemas desconocidos y mejorar de manera eficiente En cuanto a la calidad de la operación y el mantenimiento, podemos ver que construir una plataforma observable completa es muy necesario para descubrir anomalías conocidas y desconocidas y mejorar la estabilidad del sistema.

Objetivo de construcción observable de Dubbo

Como un marco básico de RPC de microservicio, Dubbo construye directamente un sistema observable grande y completo, que no se ajusta al posicionamiento y no es muy realista. Sin embargo, puede proporcionar datos de monitoreo más básicos desde su propia perspectiva para ayudar a las empresas a establecer sistemas observables. Observabilidad A diferencia del monitoreo unidimensional tradicional, presta más atención a la correlación de datos. Observa y analiza los problemas como un todo a través de perspectivas unidimensionales y multidimensionales. Primero, parte de los populares indicadores de tres pilares. En este Dubbo proporciona agregación multidimensional y los indicadores no agregados ayudan a los usuarios a descubrir y diagnosticar problemas rápidamente. Luego, los indicadores multidimensionales se pueden asociar con el sistema de enlace a través de información de etiquetas, como aplicaciones y hosts. El sistema de enlace proporciona rendimiento de enlace y resultados anormales. funciones de análisis de problemas en el nivel de solicitud de servicio Dubbo Al proporcionar un portal de enlaces para conectarse con todos los principales fabricantes de enlaces, después del análisis de enlaces, se pueden rastrear registros detallados a través de datos de enlaces como TraceId, datos personalizados de SpanId, etc. El registro detallado proporciona una gran cantidad de consejos de expertos y códigos de error Para que los estudiantes de desarrollo y operación y mantenimiento diagnostiquen y localicen problemas rápidamente.

Sistema de índice multidimensional Dubbo

En la construcción del sistema de indicadores multidimensionales Dubbo, desde las perspectivas vertical y horizontal, el lado vertical de Dubbo proporciona una fachada de fácil acceso y luego almacena los indicadores recopilados en el sistema en el contenedor de indicadores de memoria y luego decide si implementarlo según el tipo de indicador, cálculo agregado y, finalmente, exportar los indicadores a diferentes sistemas de indicadores. Desde una perspectiva horizontal, la dimensión de adquisición también cubre escenarios como enlaces de solicitud de RPC que son propensos a problemas, interacciones entre los tres centros y uso de recursos de subprocesos.

¿Qué indicadores recopila el sistema de indicadores multidimensionales de Dubbo?

La recopilación de indicadores a gran escala se introdujo anteriormente, pero ¿qué indicadores detallados debe recopilar Dubbo? A continuación, puedes ver algunas metodologías a las que se refiere Dubob a la hora de recopilar indicadores.

Según el libro Google SRE: resumen de la experiencia de Google para una gran cantidad de monitoreo distribuido, cuatro indicadores dorados (retraso, tráfico, error y saturación) pueden ayudar a medir la experiencia del usuario final, la interrupción del servicio y el impacto comercial a nivel del servicio.

El enfoque RED (de Tom Wilkie), el enfoque RED se centra en la solicitud, el trabajo real y la perspectiva externa (es decir, desde la perspectiva del consumidor del servicio) que incluye: tasa, error y duración.

El método USE (de Brendan Gregg): El método USE analiza los recursos internamente, incluidos: utilización, saturación y errores.

Acceso al sistema de índice multidimensional de Dubbo: exportación a QOS

El sistema de índices multidimensionales se lanzó después de la versión 3.2 y está en iteración continua. Para los usuarios, solo es necesario introducir una dependencia:

<dependency>
    <groupId>org.apache.dubbo</groupId>   
    <artifactId>dubbo-spring-boot-observability-starter</artifactId>        
    <version>3.2.x</version>
</dependency>

Después de introducir la dependencia, algunos indicadores clave se habilitarán de forma predeterminada. Solo necesita acceder al puerto de servicio 22222 del servicio actual y a la ruta de métricas en la línea de comandos para obtener los datos del indicador. El puerto 22222 es la calidad del servicio proporcionada por Dubbo y el puerto de administración de salud se pueden usar Modificar a través de la configuración de QOS.

Los indicadores de Dubbo consultados se muestran en el formato denominado: dubbo_type_action_unit_otherfun.

Por supuesto, habrá casos en los que los usuarios usen directamente SpringBoot para administrar los puertos, para este escenario, Dubbo ya hizo una adaptación automática y puede usar directamente SpringBoot para exportar los datos del índice en formato Prometheus, como se muestra en la siguiente configuración:

Al acceder al puerto de administración de SpringBoot para consultar datos de indicadores, puede ver algunos indicadores integrados en SpringBoot y algunos indicadores proporcionados por Dubbo se muestran juntos al usuario.

Dubbo sistema de índice multidimensional Prometheus consulta

Lo que obtuvimos al acceder al servicio de indicadores directamente a través del comando curl son solo datos de indicadores instantáneos. Para los datos de indicadores, a menudo necesitamos datos vectoriales de series temporales. En este momento, necesitamos usar Prometheus para recopilar externamente y almacenar indicadores Dubbo para los tradicionales aplicaciones implementadas en máquinas físicas y máquinas virtuales, puede usar servicios de descubrimiento de índices, basados ​​en archivos o estáticos basados ​​en su propia construcción del sistema CMDB. Por supuesto, también puede usar los servicios de descubrimiento de servicios proporcionados por Dubbo Admin para el sistema de índices en el futuro Para la implementación en El sistema en K8s puede usar directamente el descubrimiento de servicios compatible con K8s, y la configuración de recopilación automática de conexión a Prometheus es la siguiente:

Las métricas de consulta en Prometheus son las siguientes:

Pantalla Grafana del sistema de indicadores multidimensionales de Dubbo

Prometheus se enfoca en escenarios como recopilar indicadores y almacenar indicadores. Es relativamente simple mostrar indicadores. Grafana proporciona un panel de indicadores enriquecido. Es más intuitivo y fácil de usar Grafana para construir paneles de indicadores. Puede ver las siguientes imágenes. Multi- selección dimensional como nivel de aplicación, nivel de instancia, nivel de interfaz y otros escenarios para consultar datos de servicio. En el panel de seguimiento de indicadores, también puede ver algunos indicadores dimensionales basados ​​en la metodología de indicadores anterior, como tráfico, número de solicitudes, retraso, error, saturación, etc. Además, también puede ver información de la instancia de la aplicación, como la distribución de la versión de Dubbo, la distribución de la instancia, etc.

Construcción de fachada de seguimiento de enlaces Dubbo

El acceso del usuario del agente es simple, pero es arriesgado modificar dinámicamente la forma del código de bytes para brindar soporte. Parece un poco exagerado que un agente de capa proxy solo haga una función de enlace de capa Dubbo. Dubbo se posiciona como un marco RPC de microservicio para general Propósito La fachada de enlaces es relativamente mejor, y las cosas profesionales se dejan a los profesionales. Dubbo facilita el acceso de los usuarios al adaptarse a todos los principales sistemas de enlaces.

Selección de fachada de seguimiento de enlace Dubbo

La fachada de seguimiento de enlaces de OpenTelemetry, que es más común en la industria, está más inclinada a las especificaciones estándar y unificadas, es compatible con los principales fabricantes y también es un proyecto incubado con CNCF. La ventaja de Micrometer es que es la misma que la fuente de dependencias utilizadas para indexar puntos enterrados, y también está integrado de forma predeterminada en SpringBoot3 El acceso del usuario es más conveniente.Además, Micrometer se posiciona como una fachada observable en línea con el posicionamiento de la construcción del sistema de enlace Dubbo, y OpenTelemetry también se puede unir en la forma de puente.

Micrómetro + puente OpenTelemetry:

Estructura de seguimiento de enlaces Dubbo

Dubbo recopila los datos del enlace en la solicitud de RPC a través del filtro de enlace incorporado y luego exporta los datos del enlace a los principales fabricantes a través del exportador después de la recopilación.

Acceso de seguimiento de enlace Dubbo

Se ha lanzado la fachada de seguimiento de enlaces Dubob. Para acceder al sistema de seguimiento de enlaces, solo necesita importar el paquete de integración inicial correspondiente al seguimiento de enlaces y luego realizar la configuración de una sola pieza. Para obtener manuales de acceso más detallados, consulte los documentos y casos. [1]

Los interruptores, la frecuencia de muestreo, el exportador y otras configuraciones se pueden configurar en la configuración de seguimiento de enlaces.

Finalmente, el sistema de seguimiento de enlaces a menudo necesita asociar la identificación del enlace con el registro para analizar las causas raíz más detalladas. En este momento, es necesario agregar la configuración de impresión de registro MDC en la configuración del registro con anticipación, de la siguiente manera para obtener traceId y SpanId.

Seguimiento de enlaces Dubbo Zipkin

Aquí está la visualización del seguimiento de enlaces de acceso de Dubbo Zipkin, puede ver el rendimiento y los metadatos de algunas interfaces.

Seguimiento de enlaces Dubbo Skywalking

Aquí hay una demostración del seguimiento de enlaces de acceso de Dubbo Skywalking, análisis de enlaces a nivel de solicitud recuperado por ID de enlace.

Gestión de registros de Dubbo

Excepción de gestión de registros de Dubbo

El marco Dubbo se ha desarrollado durante muchos años y sus funciones se han vuelto cada vez más abundantes. Incluye la interacción con los tres centros principales y la interacción entre el cliente y el servidor. Este tipo de escenarios de interacción interna y externa son más propensos a algunas anormalidades Si encuentra problemas, a menudo puede averiguarlo observando los registros Sin pensar en ello, es relativamente un dolor de cabeza localizar la causa raíz mediante el análisis del código.

No sé la razón del problema:

Consejos de expertos en gestión de registros de Dubbo

Si observa cuidadosamente el registro impreso por la nueva versión de Dubbo3.x, puede ver que se imprimirá un manual de ayuda de problemas en el registro. Cuando encuentre un problema, copie este enlace y ábralo en su navegador para ver a un experto. consejos cuando se produce un registro anormal, como Los pasos para solucionar la causa del problema que se muestra en la figura a continuación se volverán más y más detallados a medida que Dubbo desarrolle sugerencias de expertos. Para que este proceso sea más completo, los usuarios y desarrolladores deben participar juntos. La comunidad de Dubbo es muy abierta y alienta a los usuarios y desarrolladores a participar juntos en la construcción.

 

Práctica Dubbo Observabilidad-Estabilidad

Lo último es hacer una práctica de estabilidad en toda la plataforma observable. En la práctica de estabilidad, observe el estado de salud del servicio, resuelva y analice los problemas del sistema y, finalmente, restaure el sistema rápidamente. Entre ellos, la anormalidad del sistema de observación puede ser observada y monitoreada activamente por el personal de turno, o la anormalidad puede ser analizada y alarmada, y el problema puede detectarse a tiempo al recibir pasivamente correos electrónicos de alarma, IM, SMS, teléfono llamadas, etc. Agregue la información del servicio para ubicar la ubicación anormal, y luego use el sistema de seguimiento de enlaces para encontrar la excepción de nivel de servicio para el análisis. Finalmente, puede encontrar registros detallados basados ​​​​en la información del enlace para analizar el contexto anormal y eliminar la causa raíz. El proceso de solución de problemas requiere la ayuda de toda la plataforma de observación Con el objetivo de una recuperación rápida del sistema, el sistema se puede restaurar para reducir las pérdidas a través de estrategias como el aislamiento del tráfico y la degradación del servicio. Posteriormente, la información persistente proporcionada por el observable La plataforma se puede utilizar para analizar anomalías y regularidades en detalle para localizar la causa raíz.

[1] Documentación y ejemplos

https://cn.dubbo.apache.org/zh-cn/overview/tasks/observability/tracing/

Autor: Song Xiaosheng - Ingeniero sénior de Ping An One Wallet Middleware

¡Haga clic para probar los productos en la nube de forma gratuita ahora para comenzar el viaje práctico en la nube!

Enlace original

Este artículo es el contenido original de Alibaba Cloud y no se puede reproducir sin permiso.

Ministerio de Industria y Tecnología de la Información: No proporcione servicios de acceso a la red para aplicaciones no registradas Lanzamiento oficial de Go 1.21 Ruan Yifeng lanzó el " Tutorial de TypeScript" Bram Moolenaar, el padre de Vim, falleció debido a una enfermedad El kernel de desarrollo propio Linus revisó personalmente el código , con la esperanza de calmar las "luchas internas" impulsadas por el sistema de archivos Bcachefs. ByteDance lanzó un servicio de DNS público . Excelente, comprometido con la línea principal del kernel de Linux este mes.
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/yunqi/blog/10094821
Recomendado
Clasificación