opentelemetry-sdk 0.4.0 → 0.8.0

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -2
  3. data/CHANGELOG.md +42 -0
  4. data/README.md +1 -1
  5. data/lib/opentelemetry/sdk.rb +4 -3
  6. data/lib/opentelemetry/sdk/baggage.rb +16 -0
  7. data/lib/opentelemetry/sdk/{correlation_context → baggage}/builder.rb +5 -5
  8. data/lib/opentelemetry/sdk/{correlation_context → baggage}/manager.rb +37 -27
  9. data/lib/opentelemetry/sdk/configurator.rb +73 -39
  10. data/lib/opentelemetry/sdk/instrumentation_library.rb +13 -0
  11. data/lib/opentelemetry/sdk/resources.rb +1 -0
  12. data/lib/opentelemetry/sdk/resources/constants.rb +120 -0
  13. data/lib/opentelemetry/sdk/resources/resource.rb +38 -19
  14. data/lib/opentelemetry/sdk/trace.rb +1 -0
  15. data/lib/opentelemetry/sdk/trace/config/trace_config.rb +3 -3
  16. data/lib/opentelemetry/sdk/trace/event.rb +48 -0
  17. data/lib/opentelemetry/sdk/trace/export.rb +9 -9
  18. data/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb +49 -28
  19. data/lib/opentelemetry/sdk/trace/export/console_span_exporter.rb +3 -6
  20. data/lib/opentelemetry/sdk/trace/export/in_memory_span_exporter.rb +6 -2
  21. data/lib/opentelemetry/sdk/trace/export/multi_span_exporter.rb +7 -8
  22. data/lib/opentelemetry/sdk/trace/export/noop_span_exporter.rb +2 -1
  23. data/lib/opentelemetry/sdk/trace/export/simple_span_processor.rb +13 -3
  24. data/lib/opentelemetry/sdk/trace/multi_span_processor.rb +12 -4
  25. data/lib/opentelemetry/sdk/trace/noop_span_processor.rb +15 -3
  26. data/lib/opentelemetry/sdk/trace/samplers.rb +52 -51
  27. data/lib/opentelemetry/sdk/trace/samplers/constant_sampler.rb +33 -0
  28. data/lib/opentelemetry/sdk/trace/samplers/decision.rb +3 -3
  29. data/lib/opentelemetry/sdk/trace/samplers/parent_based.rb +53 -0
  30. data/lib/opentelemetry/sdk/trace/samplers/result.rb +3 -3
  31. data/lib/opentelemetry/sdk/trace/samplers/trace_id_ratio_based.rb +45 -0
  32. data/lib/opentelemetry/sdk/trace/span.rb +33 -36
  33. data/lib/opentelemetry/sdk/trace/span_data.rb +18 -3
  34. data/lib/opentelemetry/sdk/trace/tracer.rb +36 -20
  35. data/lib/opentelemetry/sdk/trace/tracer_provider.rb +4 -4
  36. data/lib/opentelemetry/sdk/version.rb +1 -1
  37. metadata +19 -10
  38. data/lib/opentelemetry/sdk/correlation_context.rb +0 -16
  39. data/lib/opentelemetry/sdk/trace/samplers/probability_sampler.rb +0 -61
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Copyright 2019 OpenTelemetry Authors
4
- #
5
- # SPDX-License-Identifier: Apache-2.0
6
-
7
- require 'opentelemetry/sdk/correlation_context/builder'
8
- require 'opentelemetry/sdk/correlation_context/manager'
9
-
10
- module OpenTelemetry
11
- module SDK
12
- # Contains operational implementataions of the CorrelationContext::Manager
13
- module CorrelationContext
14
- end
15
- end
16
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Copyright 2019 OpenTelemetry Authors
4
- #
5
- # SPDX-License-Identifier: Apache-2.0
6
-
7
- module OpenTelemetry
8
- module SDK
9
- module Trace
10
- module Samplers
11
- # @api private
12
- #
13
- # Implements sampling based on a probability.
14
- class ProbabilitySampler
15
- def initialize(probability, ignore_parent:, apply_to_remote_parent:, apply_to_all_spans:)
16
- @probability = probability
17
- @id_upper_bound = format('%016x', (probability * (2**64 - 1)).ceil)
18
- @use_parent_sampled_flag = !ignore_parent
19
- @apply_to_remote_parent = apply_to_remote_parent
20
- @apply_to_all_spans = apply_to_all_spans
21
- end
22
-
23
- # @api private
24
- #
25
- # Callable interface for probability sampler. See {Samplers}.
26
- def call(trace_id:, span_id:, parent_context:, links:, name:, kind:, attributes:)
27
- # Ignored for sampling decision: links, name, kind, attributes.
28
-
29
- if sample?(trace_id, parent_context)
30
- RECORD_AND_SAMPLED
31
- else
32
- NOT_RECORD
33
- end
34
- end
35
-
36
- private
37
-
38
- def sample?(trace_id, parent_context)
39
- if parent_context.nil?
40
- sample_trace_id?(trace_id)
41
- else
42
- parent_sampled?(parent_context) || sample_trace_id_for_child?(parent_context, trace_id)
43
- end
44
- end
45
-
46
- def parent_sampled?(parent_context)
47
- @use_parent_sampled_flag && parent_context.trace_flags.sampled?
48
- end
49
-
50
- def sample_trace_id_for_child?(parent_context, trace_id)
51
- (@apply_to_all_spans || (@apply_to_remote_parent && parent_context.remote?)) && sample_trace_id?(trace_id)
52
- end
53
-
54
- def sample_trace_id?(trace_id)
55
- @probability == 1.0 || trace_id[16, 16] < @id_upper_bound
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end