Yet Another Cloudwatch Exporter Versions Save

Prometheus exporter for AWS CloudWatch - Discovers services through AWS tags, gets CloudWatch metrics data and provides them as Prometheus metrics with AWS tags as labels

v0.52.0

11 months ago

v0.52.0

Important news and breaking changes

This releases introduces the feature flag aws-sdk-v2 (by @kgeckhart), which changes YACE networking layer to use the AWS sdk v2 package. Read on for more details and considerations.

  • The main benefit of sdk v2 is deserialization/serialization is done via code generation vs reflection which drastically lowers memory/cpu usage for large scrape jobs
  • Considerations before enabling sdk v2:
    1. FIPS is not supported in v2 as v2 delegates all URL resolution to the sdk and AWS does not have FIPS compliant endpoints for AutoScaling API and Tagging API. The v1 implementation worked around this by hard coding FIPS URLs where they existed and using non-FIPS URLs otherwise. This work around was not ported to v2 and is unlikely to be ported.
    2. sdk v2 uses regional sts endpoints by default vs global sts which is considered legacy by aws. The sts-region job configuration is still respected when setting the region for sts and will be used if provided. If you still require global sts instead of regional set the sts-region to aws-global.

Bugfixes and features

Features:

  • Discovery jobs support recentlyActiveOnly parameter to reduce number of old metrics returned by CloudWatch API by @PerGon
  • Feature flag aws-sdk-v2: use the more performant AWS sdk v2 (see above section) by @kgeckhart

Services:

  • Add support for API Gateway V2 by @matej-g
  • Add support for MediaConvert by @theunissenne
  • Add support for CWAgent by @cristiangreco
  • Add support for memorydb by @glebpom

Docs:

  • ALB example: use Average for ConsumedLCUs by @cristiangreco
  • Update configuration.md: deprecated custom namespace jobs by @wimsymons
  • Update permissions examples and docs in readme by @kgeckhart
  • Add example for ElastiCache by @cristiangreco
  • Update mixin readme by @cristiangreco

Bugs:

  • Fix AmazonMQ Broker name dimension match by @cristiangreco
  • Fix invalid GH action file and broken test case by @cristiangreco
  • Fix namespace case in metrics conversion by @cristiangreco
  • Make exporter options a non-global type by @kgeckhart
  • Fix debug logging in discovery jobs by @cristiangreco

Refactoring:

  • Refactor AWS sdk client usage to hide behind new ClientCache by @kgeckhart
  • Introduce model types to replace sdk types in cloudwatch client by @kgeckhart

Dependencies

New dependencies:

  • github.com/aws/aws-sdk-go-v2/config 1.18.27
  • github.com/aws/aws-sdk-go-v2/service/amp 1.16.11
  • github.com/aws/aws-sdk-go-v2/service/apigateway 1.13.13
  • github.com/aws/aws-sdk-go-v2/service/autoscaling 1.28.9
  • github.com/aws/aws-sdk-go-v2/service/cloudwatch 1.26.1
  • github.com/aws/aws-sdk-go-v2/service/databasemigrationservice 1.25.7
  • github.com/aws/aws-sdk-go-v2/service/ec2 1.100.0
  • github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi 1.14.14
  • github.com/aws/aws-sdk-go-v2/service/storagegateway 1.18.14

Updates:

  • Bump alpine from 3.17.3 to 3.18.2
  • Bump github.com/aws/aws-sdk-go from 1.44.249 to 1.44.284
  • Bump github.com/prometheus/common from 0.42.0 to 0.43.0
  • Bump github.com/sirupsen/logrus from 1.9.0 to 1.9.3
  • Bump github.com/stretchr/testify from 1.8.2 to 1.8.4
  • Bump github.com/urfave/cli/v2 from 2.25.1 to 2.25.6
  • Bump golang.org/x/sync from 0.1.0 to 0.3.0
  • Bump golangci/golangci-lint-action from 3.4.0 to 3.6.0

Full Changelog: https://github.com/nerdswords/yet-another-cloudwatch-exporter/compare/v0.51.0...v0.52.0

v0.51.0

1 year ago

Important breaking changes

  • Jobs of type customNamespace are deprecated and might be removed in a future release (please reach out if you're still using this feature)

Bugfixes and features

Features:

  • Add feature flags support by @thepalbi
  • Feature flag max-dimensions-associator: new resource-matching algorithm for discovery jobs. It fixes metrics attribution for ECS. Please test it out and report any issue!
  • Feature flag list-metrics-callback: reduce memory usage of ListMetrics API requests

Services:

  • Add support for AWS/Usage namespace by @cristiangreco
  • Fix ECS regexes by @cristiangreco

Docs:

  • Add docker compose support for easier development by @thepalbi
  • Add more config examples by @cristiangreco
  • Review docs about embedding yace by @cristiangreco

Bugs:

  • Fix for Dockerfile smell DL3007 by @grosa1

Refactoring:

  • Refactor Tagging/CloudWatch clients by @cristiangreco
  • CloudWatch client: split out input builders into separate file by @cristiangreco
  • Refactor promutils migrate functions by @cristiangreco
  • Use grafana/regexp by @cristiangreco
  • Refactor implementation of getFilteredMetricDatas by @cristiangreco
  • Remove uneeded Describe implementation by @kgeckhart
  • Add counter to see if duplicate metrics are still a problem by @kgeckhart
  • Refactor label consistency and duplicates by @kgeckhart
  • Refactor GetMetricData calls in discovery jobs by @cristiangreco

Dependencies

  • Bump github.com/aws/aws-sdk-go from 1.44.235 to 1.44.249
  • Bump github.com/prometheus/common from 0.41.0 to 0.42.0

Full Changelog: https://github.com/nerdswords/yet-another-cloudwatch-exporter/compare/v0.50.0...v0.51.0

v0.50.0

1 year ago

Important breaking changes

  • Change UpdateMetrics signature to accept options and return error by @cristiangreco -- if you embed YACE as a Go library this is a breaking change.

Bugfixes and features Features:

  • Refactor API clients concurrency handling by @cristiangreco
  • Add feature flags support by @thepalbi
  • Allow discovery jobs to return result even if there are no resources by @kgeckhart
  • Add flag to enable pprof profiling endpoints by @cristiangreco

Services:

  • Add a ResourceFilter to ElasticBeanstalk by @benbridts

Docs:

  • Update config docs format by @cristiangreco

Refactoring:

  • Linting: fix revive issues by @cristiangreco
  • Remove extra error log when no resources are found by @kgeckhart
  • Wrap debug logging in FilterMetricData by @cristiangreco
  • Minor internal refactorings by @cristiangreco

Dependencies

  • Bump actions/setup-go from 3 to 4
  • Bump github.com/aws/aws-sdk-go from 1.44.215 to 1.44.235
  • Bump github.com/urfave/cli/v2 from 2.25.0 to 2.25.1

Full Changelog: https://github.com/nerdswords/yet-another-cloudwatch-exporter/compare/v0.49.2...v0.50.0

v0.49.2

1 year ago

v0.49.2

Bugfixes and features

  • Update release action to use goreleaser docker image v1.16.0

v0.49.1

1 year ago

v0.49.1

Bugfixes and features

  • Update release action to use Go 1.20

v0.49.0

1 year ago

v0.49.0

Important breaking changes:

  • From now on we're dropping the -alpha suffix from the version number. YACE will be considered alpha quality until v1.0.0.
  • The helm chart is now hosted at https://github.com/nerdswords/helm-charts, please refer to the instructions in the new repo.

Bugfixes and features:

Helm chart:

  • Move helm chart out of this repo by @cristiangreco
  • Update helm repo link in README.md by @cristiangreco

New services:

  • Add support for Container, queue, and database metrics for MWAA by @millin
  • Add support for acm-pca service by @jutley

Docs updates:

  • Docs review: move "install" and "configuration" in separate docs by @cristiangreco
  • Docs: Fix example config link by @matej-g
  • Add example config files by @cristiangreco

Internal refactoring:

  • Code refactoring: split out job and api code by @cristiangreco
  • Minor refactoring of pkg/apicloudwatch and pkg/apitagging by @cristiangreco
  • Refactor CW metrics to resource association logic and add tests by @thepalbi
  • Wrap service filter errors by @kgeckhart

Dependencies:

  • Bump github.com/aws/aws-sdk-go from 1.44.194 to 1.44.215
  • Bump github.com/prometheus/common from 0.37.0 to 0.41.0
  • Bump github.com/stretchr/testify from 1.8.1 to 1.8.2
  • Bump github.com/urfave/cli/v2 from 2.24.3 to 2.25.0
  • Bump golang.org/x/sync from 0.0.0-20220722155255-886fb9371eb4 to 0.1.0

Full Changelog: https://github.com/nerdswords/yet-another-cloudwatch-exporter/compare/v0.48.0-alpha...v0.49.0-alpha

v0.48.0-alpha

1 year ago

Bugfixes and features:

  • Revert "Publish helm chart before releasing binaries".

Full Changelog: https://github.com/nerdswords/yet-another-cloudwatch-exporter/compare/v0.47.0-alpha...v0.48.0-alpha

helm-chart-0.14.0

1 year ago

Yet Another Cloudwatch Exporter

v0.47.0-alpha

1 year ago

Bugfixes and features:

  • Add Elemental MediaLive, MediaConnect to supported services by @davemt
  • Add support for OpenSearch Serverless by @Hussainoxious
  • Makefile: always add build version ldflags by @cristiangreco
  • Publish helm chart before releasing binaries by @cristiangreco
  • Build with Go 1.20 by @cristiangreco

Dependencies:

  • Bump github.com/aws/aws-sdk-go from 1.44.192 to 1.44.194
  • Bump github.com/urfave/cli/v2 from 2.24.2 to 2.24.3

Full Changelog: https://github.com/nerdswords/yet-another-cloudwatch-exporter/compare/v0.46.0-alpha...v0.47.0-alpha

helm-chart-0.12.0

1 year ago

Yet Another Cloudwatch Exporter