...

OpenTelemetry para plataformas de alojamiento: gestión segura de las trazas

OpenTelemetry permite realizar un seguimiento de las consultas distribuidas a través del proxy, la aplicación, la base de datos, la caché y las API externas cuando Contexto de rastreo, identidad del servicio y ruta de exportación encajar entre sí. En el caso de las plataformas de alojamiento, lo decisivo no es el volumen máximo de datos, sino una arquitectura controlada: las aplicaciones generan datos de telemetría, un backend los analiza, y el colector y los filtros limitan los riesgos. La implementación posible depende en gran medida del modelo de alojamiento, los derechos de ejecución, las autorizaciones de red y las normas de protección de datos.

Diferenciar claramente entre OpenTelemetry, las señales y el backend

OpenTelemetry, a menudo denominado OTel, no es un portal de monitorización y no almacena datos de telemetría de forma permanente. Se trata de una combinación independiente del fabricante que incluye especificaciones, API, SDK, instrumentaciones, el Protocolo OpenTelemetry (OTLP) y el Collector. Las aplicaciones generan datos con ello, los procesan y los exportan; la búsqueda, la conservación, los permisos y las alertas siguen siendo tareas del backend elegido.

Los tres Señales responden a diferentes cuestiones operativas. Los trazas ordenan los pasos individuales de una solicitud de forma cronológica y lógica; las métricas agrupan los estados en series de mediciones; y los registros recogen eventos concretos. Una práctica de observabilidad sólida las combina: un rastro delimita una solicitud anómala, las métricas muestran su frecuencia a lo largo del tiempo y los registros asociados proporcionan mensajes de error o detalles adicionales.

Señales que indican problemas típicos de funcionamiento
SeñalPregunta habitual sobre el funcionamientoLímites de la validez
Huellas¿En qué parte se invirtió el tiempo de una solicitud concreta?Muestran procesos medidos, pero no demuestran ninguna causa.
Métricas¿Cómo evolucionan la tasa de errores o la distribución de la latencia?Los datos agregados no explican automáticamente un error concreto.
Registros¿Qué mensaje detallado corresponde a una operación que llama la atención?Sin el ID de rastreo y el ID de span, la asignación a una solicitud es limitada.

Para las plataformas de alojamiento, esto implica una clara división de tareas: OTel unifica la generación y la transmisión de datos de telemetría, pero no sustituye a ningún sistema de destino. Por ello, antes de la instrumentación, los equipos deben determinar qué backend recibe qué datos, durante cuánto tiempo se necesitan y quién tiene permiso para consultarlos. Solo estas decisiones permiten gestionar de forma controlada las vías técnicas de exportación y los volúmenes de datos.

Transmitir el contexto de rastreo más allá de los límites del alojamiento

El seguimiento distribuido conecta los pasos de una transacción lógica más allá de los límites de los procesos y de la red. Un Contexto de rastreo Contiene, entre otras cosas, un identificador de rastreo (Trace-ID) para todo el proceso e identificadores de tramo (Span-ID) para cada operación. Los tramos pueden establecer relaciones de tipo «padre-hijo»; en conjunto, describen un grafo acíclico dirigido del trabajo observado.

En HTTP, este contexto se suele pasar según el «W3C Trace Context», especialmente en el encabezado traceparent. Un servicio toma el contexto entrante y genera un span correspondiente para su parte. En las llamadas salientes, debe volver a transferir el contexto. Si esto no se hace en una transición controlable, la solicitud se divide en trazas separadas en el backend.

Durante el proceso de pago, un proxy inverso puede redirigir la solicitud a la aplicación. Esta comprueba, por ejemplo, la caché, consulta la base de datos y recurre a un servicio de pago y a una API de correo electrónico. Si se instrumentan las transiciones y se propaga el contexto, es posible seguir el orden de estos pasos en un rastreo. El mismo principio se aplica a los trabajos en cola o en segundo plano, siempre que el contexto se incluya en el mensaje y se recupere en el consumidor.

Sin embargo, un intervalo HTTP externo prolongado solo muestra la duración observada de esa operación instrumentada. No demuestra si la causa fue el DNS, la red, los reintentos, el sistema del otro extremo o la carga en el propio sistema. Por lo tanto, los trazas son un punto de partida para el diagnóstico; para determinar la causa es necesario recurrir a métricas adecuadas, registros y la comprobación técnica de los componentes implicados.

Los modelos de alojamiento determinan el margen de maniobra de OTel

La viabilidad de OpenTelemetry depende, en primer lugar, del modelo de alojamiento. El requisito mínimo es tener control sobre la configuración de la aplicación o, al menos, sobre las variables de entorno. Los SDK pueden configurarse mediante código o a través del entorno, dependiendo de la implementación del lenguaje; es necesario comprobar el alcance real de la compatibilidad para el lenguaje y la versión utilizados.

Margen de OTel según el modelo de alojamiento
Modelo de alojamientoPosible instrumentaciónOpción «Collector»Restricción típicaUna introducción útil
alojamiento compartidoConfiguración del SDK orientada a la aplicación, siempre que esté permitidoA menudo, solo un punto final externo o facilitado por el proveedorSin procesos propios permanentes ni puertos de recepción localesComprobar las opciones de exportación y las variables de entorno del proveedor
alojamiento gestionadoEn función de las autorizaciones y el plazo de vigenciaSe puede utilizar un colector del proveedor o un colector externoControl limitado de procesos y redesComenzar con la instrumentación de tiempo de ejecución compatible
VPS o servidor propioSDK y autoinstrumentación en tiempo de ejecuciónEs posible tener un «Collector» local por cada hostEl equipo se encarga del funcionamiento, la seguridad y las actualizaciones.En un primer momento, conectar unos pocos servicios a un colector seguro
KubernetesSDK, opciones sin código e implementación con el apoyo de los operadoresCollector como carga de trabajo o pasarelaTener en cuenta los roles, las políticas de red y la configuración de la carga de trabajoImplementar un espacio de nombres o un servicio delimitado

En VPS, servidores propios y contenedores, normalmente se pueden configurar manualmente el Collector, las rutas de red y el entorno de proceso. Los ejemplos oficiales indican los siguientes puertos para los receptores OTLP locales: 4317 para gRPC y 4318 para HTTP. De ello no se deriva ninguna recomendación general de apertura: la accesibilidad en entorno de producción, las reglas del cortafuegos y la autenticación deben adaptarse a cada plataforma.

En cambio, en el alojamiento compartido clásico suelen faltar los permisos necesarios para ejecutar un colector de forma permanente o para la inyección de procesos con fines de autoinstrumentación. Existen soluciones «zero-code» para varios ecosistemas de lenguajes, pero su viabilidad depende del tiempo de ejecución, la vía de implementación y las autorizaciones de la plataforma. Por lo tanto, no planifiques partiendo de la función OTel, sino de las opciones de configuración y exportación permitidas en el entorno de alojamiento concreto.

Planificar de forma específica la dotación de personal y la identidad del servicio

Lo primero es una explicación clara Identidad profesional. Los recursos describen la entidad que genera la telemetría, como un servicio o su entorno de ejecución. Define de forma controlada y coherente los atributos de recurso que se utilizan para ello. Los atributos concretos que están disponibles de forma automática o que deben configurarse adicionalmente dependen de la implementación del lenguaje, la instrumentación y la versión.

A continuación, comprueba la instrumentación sin código o automática del entorno de ejecución del lenguaje que se utilice realmente y su versión. La documentación de OpenTelemetry recoge enfoques correspondientes para, entre otros, Java, JavaScript, .NET, PHP, Python y Go. A menudo registran límites de HTTP, bases de datos o bibliotecas de cliente, pero el alcance, la madurez y las bibliotecas compatibles varían según la implementación.

Los mensajes generados automáticamente muestran, sobre todo, transiciones técnicas. Para pasos específicos como „Pedido validado“ o „Factura generada“, debes añadir instrumentación específica en el código, siempre que dichos pasos sean relevantes para el diagnóstico. De este modo, se puede ver en qué operación falla un proceso, sin sobrecargar cada llamada a una función con telemetría.

Otros atributos de recursos pueden incluir, por ejemplo, información sobre el host, el proceso, el contenedor o el entorno de Kubernetes. Es necesario comprobar por separado, para cada SDK, instrumentación y versión, qué atributos establece automáticamente una implementación de lenguaje y qué convenciones semánticas se aplican. Los valores deben proceder de metadatos de implementación controlados, para que la identificación del mismo entorno de ejecución sea trazable.

En muchos proyectos de clientes, la denominación forma parte del concepto de clientes y de implementación. La telemetría no debe fusionar proyectos de forma involuntaria ni facilitar el acceso a través de atributos comunes. La relación entre la arquitectura de la aplicación, el aislamiento y la escalabilidad también se explica en el artículo sobre Alojamiento SaaS multicliente. En lo que respecta a la telemetría propiamente dicha, solo se recopilarán identificadores relacionados con los clientes si son técnicamente necesarios y se ha comprobado que cumplen la normativa de protección de datos.

Arquitecturas de Collector y exportación segura

En la exportación directa, cada aplicación envía sus datos OTLP directamente al backend seleccionado. Esto permite prescindir de un componente adicional, pero distribuye la dirección de destino, los datos de acceso y la configuración de la exportación entre varias implementaciones. Esta variante se adapta mejor a una instalación pequeña y bien delimitada, cuyo backend sea accesible de forma segura y que no requiera un procesamiento centralizado previo a la exportación.

Un local Coleccionista Por cada host o pod, la telemetría se recoge cerca de la aplicación. Las aplicaciones envían los datos a un punto final local; el colector agrupa los datos y puede encargarse de los reintentos, el procesamiento y el reenvío. Para los hosts de Linux, la documentación describe este patrón como una forma de permitir que las aplicaciones localhost que se envíe.

Conexiones de red y un ordenador compacto como símbolo de un colector de telemetría local.
Imagen ilustrativa generada por IA: un colector local puede recibir datos de telemetría cerca de la aplicación.

Por el contrario, un colector de puerta de enlace centralizado concentra la conexión con el backend, el enrutamiento y las especificaciones de procesamiento unificadas. Sin embargo, esto genera una dependencia operativa adicional que debe protegerse y planificarse en función de la capacidad. En entornos más grandes, es posible combinar un colector local con una pasarela, en lugar de conectar todas las aplicaciones directamente a una instancia central.

En un ejemplo no productivo, un receptor recibe datos OTLP, el canal de procesamiento configurado procesa la telemetría y un exportador la reenvía al backend. La descripción general de OTel también describe, en principio, el enriquecimiento, la transformación y la depuración de la información de carácter personal como tareas del colector. Sin embargo, hay que comprobar por separado, para cada distribución y versión del colector seleccionadas, qué componentes concretos admite una señal y qué grado de madurez tiene.

Los puertos OTLP que se utilizan con frecuencia en los ejemplos locales 4317 para gRPC y 4318 Para HTTP no existe una autorización general para el funcionamiento en entorno de producción. Establece la accesibilidad mediante zonas de seguridad, reglas de cortafuegos y especificaciones de la plataforma. S14 recomienda conexiones seguras y autenticadas, así como un funcionamiento sin derechos de root ni de administrador, siempre que ningún componente requiera derechos adicionales. Dado que S14 utiliza la rama de desarrollo móvil main Si bien se han documentado, estas especificaciones deben cotejarse antes de su uso con la documentación de la versión concreta de Collector que se utilice.

Seleccionar el muestreo para la carga y los patrones de fallo

El muestreo determina qué trazas se almacenan o se procesan cuando una captura completa genera demasiados datos de telemetría. Empieza con una cuota pequeña, previamente probada, y comprueba si las solicitudes típicas, los errores y los picos de latencia siguen siendo suficientemente visibles en el backend. La cuota adecuada no es una cifra universal, sino que depende del tráfico, del objetivo del diagnóstico y del periodo de conservación.

Enfoques de muestreo para datos de trazas en el entorno de alojamiento web
Acérquese aDecisiónFuerzaFronteraIdoneidad
Registro completoSe exporta cada trazaMáximo nivel de detallePosibilidad de un gran volumen de datosEntornos de diagnóstico pequeños o de duración limitada
Muestreo de cabezas basado en los padres y en las relacionesAl iniciar el seguimientoSe puede planificar y decidir con antelaciónLos síntomas de avería que aparezcan posteriormente no influyen en la elecciónInicio con una cuota pequeña ya probada
Muestreo de colaA partir de los datos de rastreo recibidos en el colector¿Es posible conservar de forma selectiva, por ejemplo, los errores o los trazas lentos?Las estrategias, el comportamiento de almacenamiento y la escalabilidad dependen de la versión.Solo tras haber definido y comprobado una versión concreta

En Muestreo de cabezales La decisión se toma al inicio de un rastreo. Una estrategia basada en los padres y en las proporciones asume la decisión de muestreo de un intervalo padre y establece una cuota para las nuevas raíces. Esto hace que la selección sea comprensible, pero no permite incluir posteriormente en un rastreo descartado anteriormente un error que solo se detecta más tarde.

Tail Sampling analiza los datos de trazas recibidos en el colector según las directrices configuradas. S12 muestra exclusivamente la rama de desarrollo activa. main y clasifica el procesador como «beta» para trazas y como «con estado». Este estado incluye varias estrategias de toma de decisiones y opciones de capacidad, entre ellas límites para el tamaño de las trazas y fragmentos internos. No se trata de características garantizadas de una versión estable concreta. Por lo tanto, para un uso en producción, primero deben determinarse la versión de Collector-Contrib y la distribución y, a continuación, deben comprobarse sus opciones específicas de cada versión, sus valores por defecto y sus requisitos de recursos.

En el documento main-En esta fase, todos los «spans» de un «trace» deben llegar a la misma instancia de «Collector» para que sea posible tomar una decisión de muestreo eficaz. El procesador almacena los datos en la memoria de forma predeterminada; una variable definida allí tail_storage-La ampliación es experimental, está protegida mediante un «feature gate» y no es compatible con todas las configuraciones de sharding. Esta información solo sirve como orientación para la comprobación. Al no haber una versión definida, no se puede deducir de ella ni un concepto de enrutamiento fiable ni una autorización para su uso en producción.

Limitar la telemetría sensible antes de la exportación

La telemetría solo resulta útil desde el punto de vista operativo si su contenido es limitado. Baggage puede propagar pares clave-valor elegidos libremente a través de servicios y procesos, y ponerlos a disposición para trazas, métricas o registros. De este modo, los valores confidenciales de Baggage pueden llegar, incluso de forma involuntaria, a recursos posteriores o externos. Por ello, comprueba su contenido antes de cada transferencia entre servicios.

En Equipaje Este alcance es especialmente importante. No deben incluirse datos personales, identificadores de sesión, contraseñas ni claves API. Un valor que no sea imprescindible para la asignación técnica en cada transición no debe crearse como «baggage». De lo contrario, la transmisión automática en las llamadas de red amplía el número de sistemas que pueden procesar dicho valor.

La minimización de datos comienza ya en la fase de instrumentación: recopila únicamente los campos que sean necesarios para un diagnóstico concreto. Comprueba además los atributos de «span» dependientes de la aplicación y de la biblioteca, los campos de registro, las URL, los encabezados y la información de la base de datos con datos de ejemplo que no sean de producción. Se trata de una regla de arquitectura prudente; cuáles de estos contenidos se registran realmente depende del SDK, la instrumentación, la configuración y la versión.

Una persona revisa, sentada ante un escritorio, las normas para limitar los datos de telemetría sensibles.
Imagen ilustrativa generada por IA: las reglas de filtrado restringen los atributos sensibles antes de la exportación a un backend.

En principio, el Collector puede procesar, enriquecer y transformar datos de telemetría, así como comprobar si contienen información de carácter personal. Sin embargo, los componentes concretos de filtrado, atributos o transformación difieren en cuanto a distribución, compatibilidad con señales y estado de la versión. Por lo tanto, determina qué componente debe procesar qué campos solo después de haber comprobado la versión prevista, y no consideres una descripción general del Collector como autorización para una configuración concreta.

En lo que respecta a las métricas, el equipo debe determinar de antemano qué atributos son realmente necesarios para una cuestión operativa concreta. Los identificadores individuales de solicitud o de usuario, así como las URL completas, no se incluyen como dimensiones por mero cuidado preventivo. Comprueba, con datos de ejemplo representativos, qué valores de atributos genera realmente la instrumentación y permite únicamente las clases de ruta, servicio o error previstas para los análisis definidos.

Las reglas de procesamiento deben versionarse y comprobarse antes de su implementación con datos de ejemplo representativos que no procedan del entorno de producción. De este modo, se puede comprobar si se pierden datos necesarios para el diagnóstico o si siguen exportándose valores confidenciales. El periodo de conservación, el modelo de autorizaciones, los registros de acceso y las políticas de eliminación forman parte, además, de la arquitectura del backend elegido y no están regulados por OpenTelemetry en sí.

Funcionamiento estable de Collector y localización de errores

Si faltan trazas o si un flujo esperado se divide en varias trazas, la búsqueda de errores debe comenzar en la transición entre servicios. Comprueba primero si la solicitud saliente transfiere el contexto y si el siguiente servicio lo lee. El contexto de traza del W3C con traceparent solo vincula los componentes que realmente admiten esta transmisión y no la sobrescriben.

A continuación viene el flujo de trabajo: si el receptor configurado recibe datos, ¿un procesador deja pasar las señales esperadas y llega el exportador a su destino? Las comprobaciones independientes evitan que un problema del backend se considere erróneamente un error de instrumentación. Los datos de funcionamiento del colector y las solicitudes de prueba claramente delimitadas ayudan a atribuir las pérdidas a una etapa concreta.

Los errores de exportación requieren posteriormente una comprobación del DNS, la accesibilidad, los certificados y la autenticación. S14 recomienda, para las conexiones del Collector, canales seguros y autenticados, así como un funcionamiento sin derechos de root ni de administrador, siempre que los componentes utilizados no requieran derechos adicionales. Sin embargo, la fuente documenta la rama de desarrollo móvil main; por lo tanto, antes de la puesta en producción, compara estas instrucciones de seguridad con la documentación y la configuración de la versión concreta de Collector que se utilice.

Otro indicador operativo es Presión de memoria. Las colas, los intentos de repetición y los procesos complejos pueden consumir memoria si un sistema de destino tarda en responder o falla. Los límites de memoria y las colas restringidas deben adaptarse a la carga y al comportamiento ante pérdidas; su efecto se comprueba antes de la puesta en producción. La ausencia de límites puede desestabilizar al propio Collector.

Por eso, para el diagnóstico no solo cuentan los rastros de la aplicación. Observa también los datos rechazados o descartados, las colas, los errores de exportación y los recursos del colector. Los cambios se realizan por etapas: primero, un canal o un servicio; después, comprueba el impacto en la integridad y el almacenamiento. De este modo, se puede identificar qué cambio en la configuración ha mejorado o empeorado un patrón de errores.

Tomar decisiones de arquitectura para los equipos de la plataforma

Para una aplicación pequeña y bien delimitada, la exportación directa al backend puede ser suficiente, siempre que se dominen con seguridad los datos de acceso, la ruta de red y las reglas de datos. En el caso de varios servicios, una arquitectura posible es un colector local por host o un modelo cercano al agente, aunque no se trata de una regla general preferible. S10 describe para Linux un colector que se ejecuta de forma independiente en el host; las variantes de pod, agente y puerta de enlace deben sopesarse en función de los patrones de implementación y los requisitos específicos de cada plataforma.

Las plataformas en expansión suelen beneficiarse de una separación de tareas. Los colectores locales pueden recibir y agrupar datos; un colector central de pasarela puede encargarse del enrutamiento, los filtros uniformes y la conexión de varios backends. Sin embargo, esta división supone un servicio adicional cuya disponibilidad, capacidad y protección de acceso deben planificarse.

En muchos proyectos de clientes, la separación de la telemetría es una decisión arquitectónica que debe definirse de forma deliberada. Si los proyectos requieren distintos ámbitos de acceso, es necesario planificar y comprobar en consecuencia los destinos de exportación, los permisos del backend y las etiquetas de los recursos. Los atributos definidos libremente sirven para describir la telemetría; este artículo no los considera un sustituto del control de acceso implementado técnicamente.

Las dependencias distribuidas, como la caché, la cola y la base de datos, aumentan la necesidad de diagnóstico, pero no son motivo para realizar un registro completo y generalizado. Precisamente en un clúster de Redis, los distintos servicios y procesos en segundo plano pueden ver diferentes partes de un flujo de trabajo. El artículo sobre Segmentación de Redis Cluster para grandes plataformas de alojamiento web clasifica la arquitectura de una capa de caché de este tipo; en el caso de la telemetría, resulta fundamental controlar de forma deliberada los límites del contexto y el volumen de datos.

Por lo tanto, la decisión vincula Independencia del backend con gastos operativos reales. Un «collector» facilita el cambio o el suministro paralelo a los destinos, pero no sustituye ni a la planificación de la capacidad ni a la gestión de errores. Los equipos de la plataforma deben determinar qué datos recibe cada destino, quién tiene acceso a ellos y qué fallos en la exportación no deben afectar a las aplicaciones.

La implantación gradual comienza con un servicio y unas pocas transiciones importantes desde el punto de vista diagnóstico. A continuación, se comprueban la continuidad del contexto, las reglas de filtrado, la estabilidad de la exportación y el comportamiento de la memoria bajo una carga representativa. Solo cuando se comprueba de forma fehaciente que se cumplen estos criterios, se añaden otros idiomas, clientes o backends. Esto limita el riesgo y evita que se cree una gran cadena de trabajo sin responsabilidades claras.

Fuentes y estado actual de los conocimientos

Estado de la investigación:

Fecha de consulta: 31 de octubre de 2026. El artículo distingue claramente entre las especificaciones de OpenTelemetry, los SDK, los componentes del colector y los backends. S12 y S14 hacen referencia a las ramas de desarrollo «main» y no constituyen pruebas de una versión estable concreta. El estado de la rama «main» de S12, comprobado en la fecha de consulta, describe el procesador de muestreo de cola como una versión beta para trazas y documenta el procesamiento con estado, así como opciones adicionales y variables como sampling_strategy, maximum_trace_size_bytes, fragmentos internos y una extensión experimental tail_storage. Estos datos son únicamente puntos de referencia; antes de su publicación o uso, deben determinarse la versión del Collector Contrib y la distribución, y deben cotejarse todas las afirmaciones con su documentación específica para cada versión. Esto se aplica especialmente al comportamiento de almacenamiento, al enrutamiento de todos los spans de una traza, a los valores predeterminados, a las «feature gates», a las combinaciones de fragmentación y a los requisitos de recursos. En el caso de la S14, la nueva revisión se centra especialmente en las conexiones seguras y autenticadas y en la minimización de los derechos de proceso.

https://opentelemetry.io/docs/

https://opentelemetry.io/docs/collector/deploy/

https://opentelemetry.io/docs/specs/otel/overview/

https://opentelemetry.io/docs/specs/otel/logs/

https://opentelemetry.io/docs/concepts/context-propagation/

https://opentelemetry.io/docs/concepts/instrumentation/

https://opentelemetry.io/docs/languages/sdk-configuration/

https://opentelemetry.io/docs/collector/quick-start/

https://opentelemetry.io/docs/languages/

https://opentelemetry.io/docs/platforms/linux/configuration/

https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md

https://opentelemetry.io/docs/languages/go/sampling/

https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/tailsamplingprocessor/README.md

https://opentelemetry.io/docs/concepts/signals/baggage/

https://opentelemetry.io/docs/collector/troubleshooting/

Artículos de actualidad

Una persona está planificando, sentada en una mesa, la conexión de red para un canal de telemetría de alojamiento web.
Tecnología

OpenTelemetry para plataformas de alojamiento: gestión segura de las trazas

OpenTelemetry conecta trazas, métricas y registros más allá de los límites del alojamiento. Esta guía muestra arquitecturas de colectores adecuadas, la transmisión de contexto, el muestreo, así como las restricciones operativas y de protección de datos para los equipos de las plataformas.

Pequeño armario de red con tecnología de servidor, como símbolo de los registros de alojamiento centralizados
Administración

Loki para la gestión centralizada de registros en el alojamiento web

Grafana Loki agrupa de forma centralizada los registros de Linux y de las aplicaciones. En este artículo se explican la arquitectura, Alloy, las etiquetas, la segregación de clientes, la retención y los límites operativos seguros en el alojamiento.