nexus_semantic_logger 1.12.1 → 1.12.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 903718bb8acb37308fee8d2b0739ae7a708538a6372029d50f198229646cca93
4
- data.tar.gz: 4c40fdfa07c84b82938b4ca185aec63840d35f86222fdd3cdf058a0e4c453c27
3
+ metadata.gz: 027f845d9e52d9f2b489fdee4322de8da733d3d8b6b61164a26b7e65752cbd80
4
+ data.tar.gz: f3bab4633d763ea390e36347171b003bc046c452ffaa3c9bf2cec0c1d1ed0cdd
5
5
  SHA512:
6
- metadata.gz: 7d30a09cc0440a01ea89fc0cc48e04e883ec955e05749c5b7b406dd2b1013dc540f1e9a2e2a95befba6f8248b2f970440bdb53ab28dce572fb6f2c45794cd3d1
7
- data.tar.gz: 15ae5d8e3bfad2eab8f81649a27b2755a302f04e00eea1248738edba543ab2824d56bd6298608c13a1a7eb8953eac6bf88183fe8530fa6eacb753a351a4583eb
6
+ metadata.gz: 888523a95588e73193a0e25bf788a4c1345815f67ad2815de793579394834be50ec3630a89d848a8b4b1d150deefdaad23b8be2d487863e97935c7f9f9b06e68
7
+ data.tar.gz: 13b686749756c64fa5011e5260da75ddacd991c38b1d944104ae3843ef606347e8b05300f485a62b3512922e5b8bd212f8917bcd1ede6b610ffaf5d100fb1a06
@@ -7,7 +7,7 @@ module NexusSemanticLogger
7
7
  # own statsd instance.
8
8
  class DatadogSingleton
9
9
  include Singleton
10
- attr_accessor :statsd, :global_tags
10
+ attr_accessor :statsd
11
11
 
12
12
  def flush
13
13
  statsd&.flush(sync: Rails.env.development?) # Force flush sync in development, speed up checks.
@@ -58,10 +58,9 @@ module NexusSemanticLogger
58
58
 
59
59
  private
60
60
 
61
- # Safely combine the global tags with the supplied tags.
61
+ # Safely combine the supplied tags.
62
62
  def combine_tags(tags)
63
63
  final_tags = []
64
- final_tags += global_tags unless global_tags.nil?
65
64
  final_tags += tags unless tags.nil?
66
65
  final_tags
67
66
  end
@@ -7,6 +7,22 @@ module NexusSemanticLogger
7
7
  def initialize(service)
8
8
  Datadog.configure do |c|
9
9
  if ENV['DD_AGENT_HOST'].present?
10
+
11
+ # Container and pod names should be set as env vars via the helm chart. Tagging metrics from the app
12
+ # with these values helps correlation with metrics from the kubernetes cluster.
13
+ container_name = ENV.fetch('CONTAINER_NAME') { '' }
14
+ pod_name = ENV.fetch('POD_NAME') { '' }
15
+
16
+ # Configure tags to be sent on all metrics.
17
+ # Note that 'env' is NOT sent- that is set as the default on the agent e.g. staging, canary, production.
18
+ # It does not necessarily align with the Rails env, and we do not want to double tag the env.
19
+ global_tags = [
20
+ "railsenv:#{Rails.env}",
21
+ "service:#{service}",
22
+ "container_name:#{container_name}",
23
+ "pod_name:#{pod_name}",
24
+ ]
25
+
10
26
  # To enable runtime metrics collection, set `true`. Defaults to `false`
11
27
  # You can also set DD_RUNTIME_METRICS_ENABLED=true to configure this.
12
28
  c.runtime_metrics.enabled = true
@@ -16,20 +32,19 @@ module NexusSemanticLogger
16
32
  datadog_singleton = DatadogSingleton.instance
17
33
  datadog_statsd_socket_path = ENV.fetch('DD_STATSD_SOCKET_PATH') { '' }
18
34
  datadog_singleton.statsd = if datadog_statsd_socket_path.to_s.strip.empty?
19
- Datadog::Statsd.new(ENV['DD_AGENT_HOST'], 8125)
35
+ Datadog::Statsd.new(ENV['DD_AGENT_HOST'], 8125, tags: global_tags)
20
36
  else
21
- Datadog::Statsd.new(socket_path: datadog_statsd_socket_path)
37
+ Datadog::Statsd.new(socket_path: datadog_statsd_socket_path, tags: global_tags)
22
38
  end
23
39
  c.runtime_metrics.statsd = datadog_singleton.statsd
24
40
 
25
- # Configure tags to be sent on all metrics.
26
- # Note that 'env' is NOT sent- that is set as the default on the agent e.g. staging, canary, production.
27
- # It does not necessarily align with the Rails env, and we do not want to double tag the env.
28
- datadog_singleton.global_tags = ["railsenv:#{Rails.env}", "service:#{service}"]
29
41
  # Trace tags API is Hash<String,String>, see https://www.rubydoc.info/gems/ddtrace/Datadog/Tracing
42
+ # Should match the global tags, but as a Hash.
30
43
  c.tags = {
31
44
  railsenv: Rails.env,
32
45
  service: service,
46
+ container_name: container_name,
47
+ pod_name: pod_name,
33
48
  }
34
49
 
35
50
  # Tracer requires configuration to a datadog agent via DD_AGENT_HOST.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module NexusSemanticLogger
3
- # Leave this as 1.12.1 in order for CI process to replace with the tagged version.
4
- VERSION = '1.12.1'
3
+ # Leave this as 1.12.2 in order for CI process to replace with the tagged version.
4
+ VERSION = '1.12.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexus_semantic_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.1
4
+ version: 1.12.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johnathon Harris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-24 00:00:00.000000000 Z
11
+ date: 2023-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  requirements: []
140
- rubygems_version: 3.4.13
140
+ rubygems_version: 3.4.17
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: semantic_logger usage for nexus