nexus_semantic_logger 1.4.1 → 1.5.1

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: 3760d456227ed07ed32f0bce0a1214bdd05b10e8e189cdb930e5f975b14a7c2a
4
- data.tar.gz: fb0546649521111dbaeaf9c48d5f170bdad097704030a1208a98589de8ce3238
3
+ metadata.gz: 59a4142965fa1e910cefc9f87a7952303e1a45c4ecce1eb97b82a5a07a88cd88
4
+ data.tar.gz: 5b3ccba4d6eddab1054a7bbb0fe0747bb24f5c5bcf4f22f170b0db628b7a1e40
5
5
  SHA512:
6
- metadata.gz: 17d32091c3773edbaf31387b996cf900a47c9ab4ca56a32f6c2708780347160ae0f939d2883245c7a92baacf1d8f01965e6dc8d1627c2fe5800aa911a352f3e9
7
- data.tar.gz: e96b237fa979b031b0ea95629ece48683146a4d6a8d4693cff0c184298e467afcf6d9450adcb40079f4a727cb8eb1ca049be41d3c985c19e7646dfbc66e795c1
6
+ metadata.gz: 1bd81619565aeec8b3dd243d54c4f9d9fecadf6ee20adfb54f28da62ff7226f3a8f5b001d94e613691de65929ca35625b1d2d8f5e06af88a5052b0e2b9f37a41
7
+ data.tar.gz: bfefd03ec7d2976fa5b60440be38681d13027fae894c3a33977c67016c66397e1788a8951a355867c0f93447c245bdec4858c3c72ab41a412d3f658dfbed659d
data/.gitignore CHANGED
@@ -1 +1,3 @@
1
+ .idea/
2
+ .vscode/
1
3
  results/
@@ -7,7 +7,7 @@ module NexusSemanticLogger
7
7
  # own statsd instance.
8
8
  class DatadogSingleton
9
9
  include Singleton
10
- attr_accessor :statsd, :tags
10
+ attr_accessor :statsd, :global_tags
11
11
 
12
12
  def flush
13
13
  statsd&.flush(sync: Rails.env.development?) # Force flush sync in development, speed up checks.
@@ -15,16 +15,18 @@ module NexusSemanticLogger
15
15
 
16
16
  # Delegate to statsd (if available).
17
17
  # @param [String] metric Metric name.
18
- def increment(metric)
19
- statsd&.increment(metric, tags: tags)
18
+ # @param [Array<String>] tags Additional tags.
19
+ def increment(metric, tags: [])
20
+ statsd&.increment(metric, tags: global_tags + tags)
20
21
  flush
21
22
  end
22
23
 
23
24
  # Delegate to statsd (if available).
24
25
  # @param [String] metric Metric name.
25
26
  # @param [Integer] ms Timing in milliseconds.
26
- def timing(metric, ms)
27
- statsd&.timing(metric, ms, tags: tags)
27
+ # @param [Array<String>] tags Additional tags.
28
+ def timing(metric, ms, tags: [])
29
+ statsd&.timing(metric, ms, tags: global_tags + tags)
28
30
  flush
29
31
  end
30
32
  end
@@ -20,13 +20,23 @@ module NexusSemanticLogger
20
20
  # Configure tags to be sent on all traces and metrics.
21
21
  # Note that 'env' is NOT sent- that is set as the default on the agent e.g. staging, canary, production.
22
22
  # It does not necessarily align with the Rails env, and we do not want to double tag the env.
23
- datadog_singleton.tags = ["railsenv:#{Rails.env}", "service:#{service}"]
24
- c.tags = datadog_singleton.tags
23
+ datadog_singleton.global_tags = ["railsenv:#{Rails.env}", "service:#{service}"]
24
+ c.tags = datadog_singleton.global_tags
25
25
 
26
26
  # Tracer requires configuration to a datadog agent via DD_AGENT_HOST.
27
27
  dd_force_tracer_val = ENV.fetch('DD_FORCE_TRACER', false)
28
28
  dd_force_tracer = dd_force_tracer_val.present? && dd_force_tracer_val.to_s == 'true'
29
- c.tracer(enabled: Rails.env.production? || dd_force_tracer)
29
+ dd_tracer_enabled = Rails.env.production? || dd_force_tracer
30
+ c.tracer(enabled: dd_tracer_enabled)
31
+
32
+ # Profiling is also provided by ddtrace, we synchronise their feature toggles.
33
+ c.profiling.enabled = dd_tracer_enabled
34
+
35
+ else
36
+ # If there is no DD_AGENT_HOST then ensure features are disabled.
37
+ c.runtime_metrics.enabled = false
38
+ c.tracer(enabled: false)
39
+ c.profiling.enabled = false
30
40
  end
31
41
 
32
42
  c.use(:rails, service_name: service)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module NexusSemanticLogger
3
- # Leave this as 1.4.1 in order for CI process to replace with the tagged version.
4
- VERSION = '1.4.1'
3
+ # Leave this as 1.5.1 in order for CI process to replace with the tagged version.
4
+ VERSION = '1.5.1'
5
5
  end
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
14
14
  end
15
15
  spec.require_paths = ['lib']
16
16
  spec.add_dependency('amazing_print', '~> 1.4.0')
17
+ spec.add_dependency('ddtrace', '~> 0.54.2') # For datadog tracing/profiling.
17
18
  spec.add_dependency('dogstatsd-ruby', '~> 5.4.0') # For custom application metrics.
18
19
  spec.add_dependency('net_tcp_client', '~> 2.2.0') # For TCP logging.
19
20
  spec.add_dependency('rails_semantic_logger', '~> 4.10.0')
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.4.1
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johnathon Harris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-08 00:00:00.000000000 Z
11
+ date: 2022-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.4.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: ddtrace
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.54.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.54.2
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: dogstatsd-ruby
29
43
  requirement: !ruby/object:Gem::Requirement