Class: DatadogExporter::Monitors::Export

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog_exporter/monitors/export.rb

Overview

This class provide export tools for Datadog Monitors

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config: DatadogExporter::Client::Config.new, client: DatadogExporter::Client.new(config:), request: DatadogExporter::DatadogApiRequests::Monitors.new(config:, client:), name_transformer: Utilities::NameTransformer.new, template_creator: Utilities::TemplateManager.new(config:), file_class: File) ⇒ Export

Returns a new instance of Export.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/datadog_exporter/monitors/export.rb', line 8

def initialize(
  config: DatadogExporter::Client::Config.new,
  client: DatadogExporter::Client.new(config:),
  request: DatadogExporter::DatadogApiRequests::Monitors.new(config:, client:),
  name_transformer: Utilities::NameTransformer.new,
  template_creator: Utilities::TemplateManager.new(config:),
  file_class: File
)
  @config = config
  @request = request
  @monitors_base_path = config.base_path.join(DatadogExporter::Monitors::EXPORT_FOLDER)
  @name_transformer = name_transformer
  @template_creator = template_creator
  @file_class = file_class
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



6
7
8
# File 'lib/datadog_exporter/monitors/export.rb', line 6

def config
  @config
end

Instance Method Details

#export(tag: nil) ⇒ String

Exports Datadog monitors configuration in YAML files. If no tag is provided, it exports all the monitors.

Parameters:

  • tag (String) (defaults to: nil)

    (optional) A tag defined in the Datadog monitors

Returns:

  • (String)

    Output message



35
36
37
38
39
40
41
# File 'lib/datadog_exporter/monitors/export.rb', line 35

def export(tag: nil)
  reset_monitors_dir

  list(tag:) { |exported_datadog_hash| save_original(exported_datadog_hash) }

  config.logger.info("Exported #{@monitors.count} monitors to #{@monitors_base_path}")
end

#export_as_template(tag: nil) ⇒ String

Exports Datadog monitors configuration in YAML files as templates. If no tag is provided, it exports all the monitors.

See TemplateManager for more information about the transformation.

Parameters:

  • tag (String) (defaults to: nil)

    (optional) A tag defined in the Datadog monitors

Returns:

  • (String)

    Output message



52
53
54
55
56
57
58
59
60
# File 'lib/datadog_exporter/monitors/export.rb', line 52

def export_as_template(tag: nil)
  reset_monitors_dir

  list(tag:) { |exported_datadog_hash| save_template(exported_datadog_hash) }

  config.logger.info(
    "Exported #{@monitors.count} monitor templates to #{@monitors_base_path}",
  )
end

#list(tag: nil) ⇒ Object



24
25
26
# File 'lib/datadog_exporter/monitors/export.rb', line 24

def list(tag: nil, &)
  monitors(tag:).each(&)
end