Saltar al contenido principal
Esta guía integra:
✖️ Logs✖️ ️️Métricas✅ Trazas
Para enviar logs a ClickStack, hágalo a través del OpenTelemetry Collector.

Primeros pasos

Instalar paquetes de OpenTelemetry

Utiliza el siguiente comando para instalar el paquete de OpenTelemetry.
bundle add opentelemetry-sdk opentelemetry-instrumentation-all opentelemetry-exporter-otlp

Configurar OpenTelemetry + el formateador del logger

A continuación, tendrás que inicializar la instrumentación de trazado de OpenTelemetry y configurar el formateador de mensajes de log para el logger de Rails, de modo que los logs puedan vincularse automáticamente con las trazas. Sin el formateador personalizado, los logs no se correlacionarán automáticamente en ClickStack. En la carpeta config/initializers, crea un archivo llamado hyperdx.rb y agrega lo siguiente:
# config/initializers/hyperdx.rb

require 'opentelemetry-exporter-otlp'
require 'opentelemetry/instrumentation/all'
require 'opentelemetry/sdk'

OpenTelemetry::SDK.configure do |c|
  c.use_all() # ¡habilita toda la instrumentación de trazas!
end

Rails.application.configure do
  Rails.logger = Logger.new(STDOUT)
  # Rails.logger.log_level = Logger::INFO # el valor predeterminado es DEBUG, pero puede que prefieras INFO o superior en producción
  Rails.logger.formatter = proc do |severity, time, progname, msg|
    span_id = OpenTelemetry::Trace.current_span.context.hex_span_id
    trace_id = OpenTelemetry::Trace.current_span.context.hex_trace_id
    if defined? OpenTelemetry::Trace.current_span.name
      operation = OpenTelemetry::Trace.current_span.name
    else
      operation = 'undefined'
    end

    { "time" => time, "level" => severity, "message" => msg, "trace_id" => trace_id, "span_id" => span_id,
      "operation" => operation }.to_json + "\n"
  end

  Rails.logger.info "Logger initialized !! 🐱"
end

Configurar variables de entorno

Después, deberás configurar las siguientes variables de entorno en tu shell para enviar telemetría a ClickStack a través del OpenTelemetry Collector:
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_SERVICE_NAME='<NAME_OF_YOUR_APP_OR_SERVICE>' \
La variable de entorno OTEL_SERVICE_NAME se utiliza para identificar tu servicio en la aplicación HyperDX; puede ser cualquier nombre que quieras. La variable de entorno OTEL_EXPORTER_OTLP_HEADERS contiene la clave de API disponible en la aplicación HyperDX, en Team Settings → API Keys.
Última modificación el 10 de junio de 2026