exis_ray 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37c492f253a0a6899c05e68bb34b2d3f2f2bb90a4ee94a205e602fd821aa7a65
4
- data.tar.gz: dac186ccd577e7171655656029db9ab1d3dfe52bc6b5b005f61821f50a99259d
3
+ metadata.gz: 1fd6ad63299e12bd9398e3ccc0436ee48d70f21705cfbdfac492fc97a8fda5af
4
+ data.tar.gz: 6cea90be719f5d1b85a9dee5cd281ba24cde652b76f6e16b1f07aa3da72ea255
5
5
  SHA512:
6
- metadata.gz: 54fcb9e9ffe4172373089e229942d960bf60d9a64b36c34ed5080acac7458fb6013f8d647eac6de4f2c702eca45491e905cf8728bd6982483ecb419a62745df7
7
- data.tar.gz: d2921731f064a4d1216a402de59bc915cfec98eeea8671d17a4ce39340b1f1180d2795d75e165827072cc16b2d363f9437826626a2f14e4b79316bd7ea202c12
6
+ metadata.gz: cbb1b60e287ba40f586c8404d4e5c9914b318090cffb1d0fc9d12ac8c27498004b019190eaaf33cfe35bb63927a016dc26a5973990401e32f0a6b4be69e7b43d
7
+ data.tar.gz: 806578528228d964297e68109f75f6485f901bc22919e04d22cb2a794348d9687f9f1c235441756e245f14cd60eaad41b3898c4fc4ed21328c7e3a023dce8fd1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [0.3.2] - 2026-03-23
2
+
3
+ ### Added
4
+ - **Global `source` field:** Introduced a standardized `source` field in JSON logs to identify the entry point of execution (`http`, `sidekiq`, or `task`).
5
+ - This facilitates global filtering and dashboard creation in observability platforms.
6
+
7
+ ## [0.3.1] - 2026-03-23
8
+
9
+ ### Changed
10
+ - **Standardized Service Name:** The `service` field in logs now always returns the Rails application name in `snake_case` (e.g., `cold_storage_service`).
11
+ - Removed dynamic service name overrides in `HttpMiddleware`, `Sidekiq::ServerMiddleware`, and `TaskMonitor`.
12
+ - **Enhanced Job/Task Visibility:** Added `sidekiq_job` and `task` fields to the JSON logs, providing specific context without overloading the `service` field.
13
+
1
14
  ## [0.3.0] - 2026-03-23
2
15
 
3
16
  ### Added
@@ -4,13 +4,12 @@ module ExisRay
4
4
  class HttpMiddleware
5
5
  def initialize(app)
6
6
  @app = app
7
- @base_service_name = defined?(Rails) ? Rails.application.class.module_parent_name : 'App'
8
7
  end
9
8
 
10
9
  def call(env)
11
10
  # 1. Hidratar Infraestructura
12
- ExisRay::Tracer.created_at = Time.now.utc.to_f
13
- ExisRay::Tracer.service_name = "#{@base_service_name}-HTTP"
11
+ ExisRay::Tracer.created_at = Time.now.utc.to_f
12
+ ExisRay::Tracer.source = "http"
14
13
 
15
14
  trace_header_key = ExisRay.configuration.trace_header
16
15
 
@@ -53,6 +53,9 @@ module ExisRay
53
53
 
54
54
  payload[:root_id] = ExisRay::Tracer.root_id
55
55
  payload[:trace_id] = ExisRay::Tracer.trace_id if ExisRay::Tracer.trace_id
56
+ payload[:sidekiq_job] = ExisRay::Tracer.sidekiq_job if ExisRay::Tracer.sidekiq_job
57
+ payload[:task] = ExisRay::Tracer.task if ExisRay::Tracer.task
58
+ payload[:source] = ExisRay::Tracer.source if ExisRay::Tracer.source
56
59
  end
57
60
 
58
61
  # Inyecta el contexto de negocio (ID de usuario, ISP, ID de correlación) en el payload.
@@ -45,7 +45,8 @@ module ExisRay
45
45
  # @return [void]
46
46
  def hydrate_tracer(worker, job)
47
47
  ExisRay::Tracer.created_at = Time.now.utc.to_f
48
- ExisRay::Tracer.service_name = "Sidekiq-#{worker.class.name}"
48
+ ExisRay::Tracer.sidekiq_job = worker.class.name
49
+ ExisRay::Tracer.source = "sidekiq"
49
50
 
50
51
  if job["exis_ray_trace"]
51
52
  # Continuidad: Usamos la traza propagada desde el cliente (Web/Cron)
@@ -52,7 +52,8 @@ module ExisRay
52
52
  # @param task_name [String, Symbol] El nombre de la tarea en ejecución.
53
53
  # @return [void]
54
54
  def self.setup_tracer(task_name)
55
- ExisRay::Tracer.service_name = task_name.to_s.tr(":", "-").camelize
55
+ ExisRay::Tracer.task = task_name.to_s
56
+ ExisRay::Tracer.source = "task"
56
57
  ExisRay::Tracer.request_id = SecureRandom.uuid
57
58
  ExisRay::Tracer.created_at = Time.now.utc.to_f
58
59
 
@@ -10,14 +10,14 @@ module ExisRay
10
10
  #
11
11
  # @see https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html Documentación de AWS X-Ray
12
12
  class Tracer < ActiveSupport::CurrentAttributes
13
- attribute :trace_id, :request_id, :root_id, :self_id, :called_from, :total_time_so_far, :created_at, :service_name
13
+ attribute :trace_id, :request_id, :root_id, :self_id, :called_from, :total_time_so_far, :created_at, :sidekiq_job, :task, :source
14
14
 
15
- # Devuelve el nombre del servicio actual.
16
- # Si no se ha definido manualmente, hace fallback al nombre de la aplicación Rails.
15
+ # Devuelve el nombre de la aplicación en snake_case (ej: "cold_storage_service").
16
+ # Se utiliza como identificador global del servicio en logs y trazabilidad.
17
17
  #
18
- # @return [String] El nombre del servicio (ej: "Wispro", "Wispro-Worker", "App").
18
+ # @return [String]
19
19
  def self.service_name
20
- super || (defined?(Rails) ? Rails.application.class.module_parent_name : 'App')
20
+ @service_name ||= (defined?(Rails) ? Rails.application.class.module_parent_name.underscore : "app")
21
21
  end
22
22
 
23
23
  # Genera un ID de correlación compuesto, útil para logs y auditoría.
@@ -2,5 +2,5 @@
2
2
 
3
3
  module ExisRay
4
4
  # Versión actual de la gema.
5
- VERSION = "0.3.0"
5
+ VERSION = "0.3.2"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exis_ray
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Edera