¿Quieres ideas más inteligentes en tu bandeja de entrada? Regístrese en nuestros boletines semanales para obtener solo lo que importa a los líderes de IA, datos y seguridad empresariales. Suscríbase ahora considere mantener y desarrollar una plataforma de comercio electrónico que procese millones de transacciones cada minuto, generando grandes cantidades de datos de telemetría, incluidas métricas, registros y trazas en múltiples microservicios. Cuando se producen incidentes críticos, los ingenieros de guardia enfrentan la tarea desalentadora de tamizar a través de un océano de datos para desentrañar las señales y las ideas relevantes. Esto es equivalente a buscar una aguja en un pajar. Esto hace que la observabilidad sea una fuente de frustración en lugar de información. Para aliviar este importante punto de dolor, comencé a explorar una solución para utilizar el Protocolo de contexto del modelo (MCP) para agregar contexto y extraer inferencias de los registros y trazas distribuidas. En este artículo, describiré mi experiencia construyendo una plataforma de observabilidad con IA, explicaré la arquitectura del sistema y compartiré ideas procesables aprendidas en el camino. ¿Por qué es un desafío la observabilidad? En los sistemas de software modernos, la observabilidad no es un lujo; Es una necesidad básica. La capacidad de medir y comprender el comportamiento del sistema es fundamental para la confiabilidad, el rendimiento y la confianza del usuario. Como dice el dicho: «Lo que no puedes medir, no puedes mejorar». Sin embargo, lograr la observabilidad en las arquitecturas basadas en microservicios nativas de nube actuales es más difícil que nunca. Una sola solicitud de usuario puede atravesar docenas de microservicios, cada uno emitiendo registros, métricas y trazas. El resultado es una abundancia de datos de telemetría: la escalada de IA alcanza sus límites de potencia de límites, el aumento de los costos de los tokens y los retrasos de inferencia están remodelando la IA Enterprise. Join our exclusive salon to discover how top teams are: Turning energy into a strategic advantage Architecting efficient inference for real throughput gains Unlocking competitive ROI with sustainable AI systems Secure your spot to stay ahead: https://bit.ly/4mwGngO Tens of terabytes of logs per day Tens of millions of metric data points and pre-aggregates Millions of distributed traces Thousands of correlation IDs generated Cada minuto, el desafío no es solo el volumen de datos, sino la fragmentación de datos. Según el informe de pronóstico de observabilidad 2023 de New Relic, el 50% de las organizaciones informan los datos de telemetría aislados, con solo el 33% logrando una vista unificada entre métricas, registros y trazas. Los registros cuentan una parte de la historia, métricas otra, traza otra. Sin un hilo de contexto consistente, los ingenieros se ven obligados a la correlación manual, dependiendo de la intuición, el conocimiento tribal y el trabajo de detectives tediosos durante los incidentes. Debido a esta complejidad, comencé a preguntarme: ¿cómo puede AI ayudarnos a superar datos fragmentados y ofrecer información integral y útiles? Específicamente, ¿podemos hacer que los datos de telemetría fueran intrínsecamente más significativos y accesibles para humanos y máquinas utilizando un protocolo estructurado como MCP? La base de este proyecto fue moldeada por esa pregunta central. Comprensión de MCP: una perspectiva de tuberías de datos antrópica define MCP como un estándar abierto que permite a los desarrolladores crear una conexión segura de bidireccional entre fuentes de datos y herramientas de inteligencia artificial. Esta tubería de datos estructurada incluye: ETL contextual para AI: estandarización de la extracción del contexto de múltiples fuentes de datos. Interfaz de consulta estructurada: permite que las consultas de IA accedan a capas de datos que son transparentes y fácilmente comprensibles. Enriquecimiento de datos semánticos: incorpora un contexto significativo directamente en señales de telemetría. Esto tiene el potencial de cambiar la observabilidad de la plataforma lejos de la resolución de problemas reactivos hacia ideas proactivas. La arquitectura del sistema y el flujo de datos antes de sumergirnos en los detalles de implementación, caminemos por la arquitectura del sistema. Diagrama de arquitectura Para el sistema de observabilidad de IA basado en MCP En la primera capa, desarrollamos los datos de telemetría contextual integrando metadatos estandarizados en las señales de telemetría, como trazas distribuidas, registros y métricas. Luego, en la segunda capa, los datos enriquecidos se alimentan al servidor MCP para indexar, agregar estructura y proporcionar acceso al cliente a datos enriquecidos con el contexto utilizando API. Finalmente, el motor de análisis dirigido por AI utiliza los datos de telemetría estructurados y enriquecidos para la detección de anomalías, la correlación y el análisis de causa raíz para solucionar problemas de aplicación. Este diseño en capas garantiza que los equipos de IA y de ingeniería reciban ideas accionables y procesables de los datos de telemetría. Implementative Deep Dive: un sistema de tres capas exploremos la implementación real de nuestra plataforma de observabilidad con MCP, centrándose en los flujos y transformaciones de datos en cada paso. Capa 1: Primero de los datos enriquecidos con el contexto, debemos garantizar que nuestros datos de telemetría contengan suficiente contexto para un análisis significativo. La visión central es que la correlación de datos debe ocurrir en el momento de la creación, no en el tiempo de análisis. def procese_checkout (user_id, CART_Items, Payle_method): «» «Simule un proceso de pago con telemetría enriquecida con contexto.» «» # Generar correlación ID de correlación orden_id = f «orden- {uuid.uuid4 (). Hex.[:8]} ”Request_id = f” req- {uuid.uuid4 (). Hex[:8]} » # Inicializar el diccionario de contexto que se aplicará context = {» user_id «: user_id,» order_id «: orden_id,» request_id «: request_id,» CART_ITEM_COUNT «: LEN (CART_ITEMS),» PAYO_METHOD «: PAGOT_METHOD,» SERVICE_NAME «:» COMPLET El mismo contexto con tracer.start_as_current_span («process_checkout», atributes = {k: str (v) para k, v en context.items ()}) como checkout_span: # registro usando el mismo logger.info (f «Inicio de proceso», extra = {«context»: json.dumps (context)}) tracer.start_as_current_span («process_payment»): # lógica de pago de proceso … logger.info («pago procesado», extra = {«context»: json.dumps (context)}) Código 1. Enriquecimiento de contexto para logs y traza este enfoque asegura que cada señal de telemetretía (logss (logs, metraics) los datos del mismo núcleo contiene los datos de la misma base, los datos de las fuentes, la fuente, los datos de las fuentes, las medidas de la fuente. Capa 2: Acceso de datos a través del servidor MCP Siguiente, construí un servidor MCP que transforma la telemetría sin procesar en una API consultable.[Log]) def query_logs (consulta: logQuery): «» «Registros de consulta con filtros específicos» «» Resultados = log_db.copy () # Aplicar filtros contextuales si Query.Request_id: Results = [log for log in results if log[“context”].get («request_id») == Query.Request_id]if query.user_id: resultados = [log for log in results if log[“context”].get («user_id») == Query.user_id]# Aplicar filtros basados en el tiempo si Query.time_range: start_time = dateTime.FromisoFormat (query.time_range[“start”]) end_time = DateTime.FromisoFormat (query.time_range[“end”]) Resultados = [log for log in results                  if start_time <= datetime.fromisoformat(log[“timestamp”]) <= end_time]# Sort by timestamp    results = sorted(results, key=lambda x: x[“timestamp”]reverse=True)       return results[:query.limit] if query.limit else results Code 2. Data transformation using the MCP server This layer transforms our telemetry from an unstructured data lake into a structured, query-optimized interface that an AI system can efficiently navigate. Layer 3: AI-driven analysis engine The final layer is an AI component that consumes data through the MCP interface, performing: Multi-dimensional analysis: Correlating signals across logs, metrics and traces. Anomaly detection: Identifying statistical deviations from normal patterns. Root cause determination: Using contextual clues to isolate likely sources of issues. def analyze_incident(self, request_id=None, user_id=None, timeframe_minutes=30):    “””Analyze telemetry data to determine root cause and recommendations.”””       # Define analysis time window    end_time = datetime.now()    start_time = end_time – timedelta(minutes=timeframe_minutes)    time_range = {“start”: start_time.isoformat(), “end”: end_time.isoformat()}       # Fetch relevant telemetry based on context    logs = self.fetch_logs(request_id=request_id, user_id=user_id, time_range=time_range)       # Extract services mentioned in logs for targeted metric analysis    services = set(log.get(“service”, “unknown”) for log in logs)       # Get metrics for those services    metrics_by_service = {}    for service in services:        for metric_name in [“latency”, “error_rate”, “throughput”]:            metric_data = self.fetch_metrics(service, metric_name, time_range)                       # Calculate statistical properties            values = [point[“value”] for point in metric_data[“data_points”]]metrics_by_service[f”{service}.{metric_name}”] = {                “mean”: statistics.mean(values) if values else 0,                “median”: statistics.median(values) if values else 0,                “stdev”: statistics.stdev(values) if len(values) > 1 más 0, «min»: min (valores) si valores más 0, «max»: max (valores) si valores más 0} # identificar anomalías usando anomalías de puntuación z = [] para métrico, estadísticas en Metrics_By_Service.Items (): si las estadísticas[“stdev”] > 0: # Evite la división por cero z_score = (estadísticas[“max”] – Estadísticas[“mean”]) / estadísticas[“stdev”] Si z_score> 2: # más de 2 desviaciones estándar anomalies.append ({«métrica»: métrica_name, «z_score»: z_score, «severidad»: «alto» si z_score> 3 else «mediano»}) return {«resumy»: ai_sumy, «anomalies»: anomalies, «impactaed_services «services») «),» Servicios «),» Servicios «),») «. AI_RECommendation} Código 3. Análisis de incidentes, detección de anomalías e impacto del método de inferencia de la observabilidad mejorada por MCP que integran MCP con plataformas de observabilidad podría mejorar la gestión y comprensión de datos de telemetría complejos. Los beneficios potenciales incluyen: detección de anomalías más rápida, lo que resulta en un tiempo mínimo reducido para detectar (MTTD) y un tiempo mínimo para resolver (MTTR). Identificación más fácil de las causas raíz de los problemas. Menos ruido y menos alertas inaccesibles, lo que reduce la fatiga de la alerta y la mejora de la productividad del desarrollador. Menos interrupciones y cambios de contexto durante la resolución de incidentes, lo que resulta en una mejor eficiencia operativa para un equipo de ingeniería. Las ideas procesables aquí son algunas ideas clave de este proyecto que ayudarán a los equipos con su estrategia de observabilidad. Los metadatos contextuales deben integrarse temprano en el proceso de generación de telemetría para facilitar la correlación posterior. Las interfaces de datos estructuradas crean capas de consulta estructuradas impulsadas por API para hacer que la telemetría sea más accesible. El AI consciente de contexto enfoca el análisis en datos ricos en contexto para mejorar la precisión y la relevancia. El enriquecimiento de contexto y los métodos de IA deben refinarse regularmente utilizando comentarios operativos prácticos. Conclusión La fusión de las tuberías de datos estructuradas y la IA son enormes promesas de observabilidad. Podemos transformar vastos datos de telemetría en ideas procesables aprovechando protocolos estructurados como MCP y análisis impulsados por IA, lo que resulta en sistemas proactivos en lugar de reactivos. Lumigo identifica tres pilares de observabilidad (troncos, métricas y trazas) que son esenciales. Sin integración, los ingenieros se ven obligados a correlacionar manualmente las fuentes de datos dispares, desacelerando la respuesta a los incidentes. La forma en que generamos telemetría requiere cambios estructurales, así como técnicas analíticas para extraer significado. Pronnoy Goswami es un científico de IA y datos con más de una década en el campo. Insights diarias sobre casos de uso de negocios con VB diariamente Si desea impresionar a su jefe, VB Daily lo tiene cubierto. Le damos la cuenta interior de lo que las empresas están haciendo con la IA generativa, desde cambios regulatorios hasta implementaciones prácticas, por lo que puede compartir ideas para el ROI máximo. Lea nuestra Política de privacidad Gracias por suscribirse. Mira más boletines de VB aquí. Ocurrió un error.