cookbook 'metric_maker', '= 0.6.4'
    metric_maker
    
      
        
          (34) Versions
        
        0.6.4
      
        - 
        
        
Follow1
  AWS CloudWatch custom metrics made easy
cookbook 'metric_maker', '= 0.6.4', :supermarket
knife supermarket install metric_maker
knife supermarket download metric_maker
metric_maker-cookbook
AWS CloudWatch metric publisher which runs from cron, you provide a script to gather the metric (collectors). Pair the collector up with a metric_maker resource call after installing.
Requirements
- ruby
Supported Platforms
Tested on:
- Amazon Linux 2018
- Ubuntu 16
Attributes
| Key | Type | Description | Default | 
|---|---|---|---|
| ['metric_mater']['root'] | String | Path to base directory for metric maker to be installed | /opt/metric_maker | 
| ['metric_maker']['interval'] | Number | Minute interval to run | 1 | 
| ['metric_maker']['region_override'] | String | Set the region not on EC2 instance with meta-data or would rather send metrics to a different region than that of the EC2 instance. | (auto) | 
Usage
Simply include the metric_maker recipe to install the cron script, such as a run list of recipe[metric_maker] or a cookbook include_recipe 'metric_maker'.
To include with Berksfile use:
cookbook 'metric_maker', git: 'git@bitbucket.org:corpinfo/metric-maker.git'
And metadata use:
depends 'metric_maker', '~> 0.3.2'
Built in metric resources
There are are a few built in resource collectors. These resources include metric_maker_disk, metric_maker_cpu, metric_maker_free_mem. Here's an example of metric_maker_disk:
Root Disk Utilization Example
metric_maker_disk 'root_disk' do
  namespace 'prod'
  dimensions [
    {role: 'web-app'},
    {ip: '10.16.46.1'}
  ]
end
Each of the built ins support the following (replace metric_maker_resource with one of the above)
metric_maker_resource 'name' do
 namespace                   String
 dimensions                  Array # list of {Key, Value} String pairs
 publish_with_no_dimension   True, False # default False
end
Example collector files/default/wave.rb:
#!/usr/bin/env ruby
puts (Math.sin(Time.now.min * 3 * 0.0174533) * 100).round(2)
Example metric_maker resource
metric_maker 'heart_beat' do
  namespace 'env'
  script 'wave.rb'
  unit 'Count'
  dimensions [
    {role: 'app-name'}
    {instance_id: instance_id}
  ]
  publish_with_no_dimension true
end
Full syntax for metric_maker
metric_maker 'name' do
 metric_name                 String # defaults to name
 namespace                   String # required
 dimensions                  Array # list of {Key, Value} String pairs default is []
 publish_with_no_dimension   True, False # default False
 script_content              String # use this for inline script collector definitions - first line should include the interpreter required if script not defined
 script_cookbook             String # if using script type you can define from which cookbook to read the cookbook_file from default is nil not required
 script                      cookbook_file String # use this for target your collector file - first line should include the interpreter. Required if not defining script_content
 unit                        String # default Count one of the following: ["Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second"]
 action                      Symbol # default :create [:create, :install]
end
Resource Helpers
insatnce_id is a function defined to return the an EC2 instance ID from meta-data
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Collaborator Number Metric
        
            0.6.4 failed this metric
            Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
        
      Contributing File Metric
        
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
        
      Foodcritic Metric
        
            0.6.4 failed this metric
            FC064: Ensure issues_url is set in metadata: metric_maker/metadata.rb:1
FC065: Ensure source_url is set in metadata: metric_maker/metadata.rb:1
FC066: Ensure chef_version is set in metadata: metric_maker/metadata.rb:1
FC069: Ensure standardized license defined in metadata: metric_maker/metadata.rb:1
Run with Foodcritic Version 14.0.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
        
      No Binaries Metric
        
            0.6.4 passed this metric
        
      Testing File Metric
        
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
        
      Version Tag Metric
        
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
        
  
0.6.4 failed this metric
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
        
            0.6.4 failed this metric
            FC064: Ensure issues_url is set in metadata: metric_maker/metadata.rb:1
FC065: Ensure source_url is set in metadata: metric_maker/metadata.rb:1
FC066: Ensure chef_version is set in metadata: metric_maker/metadata.rb:1
FC069: Ensure standardized license defined in metadata: metric_maker/metadata.rb:1
Run with Foodcritic Version 14.0.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
        
      No Binaries Metric
        
            0.6.4 passed this metric
        
      Testing File Metric
        
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
        
      Version Tag Metric
        
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
        
  
0.6.4 failed this metric
FC065: Ensure source_url is set in metadata: metric_maker/metadata.rb:1
FC066: Ensure chef_version is set in metadata: metric_maker/metadata.rb:1
FC069: Ensure standardized license defined in metadata: metric_maker/metadata.rb:1
Run with Foodcritic Version 14.0.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
            0.6.4 passed this metric
        
      Testing File Metric
        
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
        
      Version Tag Metric
        
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
        
  
0.6.4 failed this metric
            0.6.4 failed this metric
            Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number