Class: CircleciTools::CloudWatchMetricsService
- Inherits:
-
Object
- Object
- CircleciTools::CloudWatchMetricsService
- Defined in:
- lib/circleci-tools/cloudwatch_metrics_service.rb
Constant Summary collapse
- UPLOAD_BATCH_SIZE =
20
- METRICS_DIGEST_FILENAME =
'cloud-watch-metrics-digests.txt'
Instance Method Summary collapse
-
#initialize(namespace: 'CircleCI', dry_run: false, logger: Logger.new(STDOUT), s3_bucket: nil) ⇒ CloudWatchMetricsService
constructor
A new instance of CloudWatchMetricsService.
- #upload_metrics(file_path) ⇒ Object
Constructor Details
#initialize(namespace: 'CircleCI', dry_run: false, logger: Logger.new(STDOUT), s3_bucket: nil) ⇒ CloudWatchMetricsService
Returns a new instance of CloudWatchMetricsService.
13 14 15 16 17 18 19 20 |
# File 'lib/circleci-tools/cloudwatch_metrics_service.rb', line 13 def initialize(namespace: 'CircleCI', dry_run: false, logger: Logger.new(STDOUT), s3_bucket: nil) @namespace = namespace @dry_run = dry_run @logger = logger @cloudwatch = Aws::CloudWatch::Client.new @s3_bucket = s3_bucket @s3_client = Aws::S3::Client.new if @s3_bucket end |
Instance Method Details
#upload_metrics(file_path) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/circleci-tools/cloudwatch_metrics_service.rb', line 22 def upload_metrics(file_path) @logger.info("Uploading metrics from #{file_path} to CloudWatch...") events = parse_csv(file_path) if @dry_run metrics = generate_metrics(events) puts JSON.pretty_generate(metrics) else events.group_by { |event| event[:project_name] }.each do |project_name, project_events| metrics = generate_metrics(project_events) upload_to_cloudwatch(project_name, metrics) end end end |