Module: Datadog::Statsd::Schema

Defined in:
lib/datadog/statsd/schema.rb,
lib/datadog/statsd/schema/cli.rb,
lib/datadog/statsd/schema/errors.rb,
lib/datadog/statsd/schema/version.rb,
lib/datadog/statsd/schema/analyzer.rb,
lib/datadog/statsd/schema/commands.rb,
lib/datadog/statsd/schema/namespace.rb,
lib/datadog/statsd/schema/schema_builder.rb,
lib/datadog/statsd/schema/tag_definition.rb,
lib/datadog/statsd/schema/commands/analyze.rb,
lib/datadog/statsd/schema/metric_definition.rb

Overview

Schema definition and validation module for StatsD metrics

Since:

  • 0.1.0

Defined Under Namespace

Modules: CLI, Commands Classes: Analyzer, Configuration, DuplicateMetricError, Error, InvalidMetricTypeError, InvalidNamespaceError, InvalidTagError, MetricDefinition, MissingRequiredTagError, Namespace, SchemaBuilder, SchemaError, TagDefinition, UnknownMetricError

Constant Summary collapse

VERSION =

Current version of the datadog-statsd-schema gem

Since:

  • 0.1.0

"0.2.1"
AnalysisResult =

Result structure for schema analysis

Since:

  • 0.1.0

Data.define(
  :total_unique_metrics,
  :metrics_analysis,
  :total_possible_custom_metrics
)
MetricAnalysis =

Analysis data for individual metrics

Since:

  • 0.1.0

Data.define(
  :metric_name,
  :metric_type,
  :expanded_names,
  :unique_tags,
  :unique_tag_values,
  :total_combinations
)

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.in_testBoolean

Controls whether the schema is in test mode When true, colored output is disabled for test environments

Since:

  • 0.1.0



70
71
72
# File 'lib/datadog/statsd/schema.rb', line 70

def in_test
  @in_test
end

Instance Attribute Details

#expanded_namesArray<String> (readonly)



38
39
40
41
42
43
44
45
# File 'lib/datadog/statsd/schema/analyzer.rb', line 38

MetricAnalysis = Data.define(
  :metric_name,
  :metric_type,
  :expanded_names,
  :unique_tags,
  :unique_tag_values,
  :total_combinations
)

#metric_nameString (readonly)



38
39
40
41
42
43
44
45
# File 'lib/datadog/statsd/schema/analyzer.rb', line 38

MetricAnalysis = Data.define(
  :metric_name,
  :metric_type,
  :expanded_names,
  :unique_tags,
  :unique_tag_values,
  :total_combinations
)

#metric_typeSymbol (readonly)



38
39
40
41
42
43
44
45
# File 'lib/datadog/statsd/schema/analyzer.rb', line 38

MetricAnalysis = Data.define(
  :metric_name,
  :metric_type,
  :expanded_names,
  :unique_tags,
  :unique_tag_values,
  :total_combinations
)

#metrics_analysisArray<MetricAnalysis> (readonly)



19
20
21
22
23
# File 'lib/datadog/statsd/schema/analyzer.rb', line 19

AnalysisResult = Data.define(
  :total_unique_metrics,
  :metrics_analysis,
  :total_possible_custom_metrics
)

#total_combinationsInteger (readonly)



38
39
40
41
42
43
44
45
# File 'lib/datadog/statsd/schema/analyzer.rb', line 38

MetricAnalysis = Data.define(
  :metric_name,
  :metric_type,
  :expanded_names,
  :unique_tags,
  :unique_tag_values,
  :total_combinations
)

#total_possible_custom_metricsInteger (readonly)



19
20
21
22
23
# File 'lib/datadog/statsd/schema/analyzer.rb', line 19

AnalysisResult = Data.define(
  :total_unique_metrics,
  :metrics_analysis,
  :total_possible_custom_metrics
)

#total_unique_metricsInteger (readonly)



19
20
21
22
23
# File 'lib/datadog/statsd/schema/analyzer.rb', line 19

AnalysisResult = Data.define(
  :total_unique_metrics,
  :metrics_analysis,
  :total_possible_custom_metrics
)

#unique_tag_valuesInteger (readonly)



38
39
40
41
42
43
44
45
# File 'lib/datadog/statsd/schema/analyzer.rb', line 38

MetricAnalysis = Data.define(
  :metric_name,
  :metric_type,
  :expanded_names,
  :unique_tags,
  :unique_tag_values,
  :total_combinations
)

#unique_tagsInteger (readonly)



38
39
40
41
42
43
44
45
# File 'lib/datadog/statsd/schema/analyzer.rb', line 38

MetricAnalysis = Data.define(
  :metric_name,
  :metric_type,
  :expanded_names,
  :unique_tags,
  :unique_tag_values,
  :total_combinations
)

Class Method Details

.configurationDatadog::Statsd::Schema::Configuration

Get the global configuration object

Since:

  • 0.1.0



121
122
123
# File 'lib/datadog/statsd/schema.rb', line 121

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|Configuration| ... } ⇒ Object

Configure global schema settings

Examples:

Datadog::Statsd::Schema.configure do |config|
  config.statsd = Datadog::Statsd.new('localhost', 8125)
  config.tags = { environment: 'production' }
end

Yields:

  • (Configuration)

    Configuration object for setting global options

Since:

  • 0.1.0



115
116
117
# File 'lib/datadog/statsd/schema.rb', line 115

def self.configure
  yield configuration
end

.load_file(path) ⇒ Datadog::Statsd::Schema::Namespace

Load schema definition from a file

Examples:

schema = Datadog::Statsd::Schema.load_file("config/metrics_schema.rb")

Raises:

  • (Errno::ENOENT)

    If the file doesn’t exist

Since:

  • 0.1.0



101
102
103
104
105
# File 'lib/datadog/statsd/schema.rb', line 101

def self.load_file(path)
  builder = SchemaBuilder.new
  builder.instance_eval(File.read(path), path)
  builder.build
end

.newDatadog::Statsd::Schema::Namespace

Create a new schema definition using the provided block

Examples:

schema = Datadog::Statsd::Schema.new do
  namespace :app do
    tags do
      tag :env, values: [:prod, :dev]
    end
    metrics do
      counter :requests
    end
  end
end

Since:

  • 0.1.0



89
90
91
92
93
# File 'lib/datadog/statsd/schema.rb', line 89

def self.new(&)
  builder = SchemaBuilder.new
  builder.instance_eval(&) if block_given?
  builder.build
end