Skip to content

AWS Metrics from CloudWatch

Overview

AWS Metrics from CloudWatch integration will poll all your metrics from specified AWS account every 10 minutes, with one exception so far which is S3 metrics that are avaliable on CloudWatch side daily. Tags and metric definitions are pulled every 5 minutes. As a prerequisite, you need to first prepare an AWS IAM policy and role with this CloudFormation template

For more information about this integration, click here.

How to use with Terraform

To deploy this integration using Terraform, you can use the coralogix_integration resource provided by the Coralogix Terraform provider. Below is an example configuration:

resource "coralogix_integration" "aws-metrics-collector" {
  integration_key = "aws-metrics-collector"
  version         = "0.5.0"

  parameters = {
    IntegrationName = "cx-aws-cw-metrics"
    AwsRoleArn = "arn:aws:iam::012345678901:role/access-cloudwatch-metrics"
    AwsRegion = "eu-west-1"
    ApplicationName = "<ApplicationName>"
    SubsystemName = "<SubsystemName>"
    MetricNamespaces = [ "value1", "value2" ]
    WithAggregations = false
    EnrichWithTags = true
  }
}

Replace the placeholder values with your actual configuration parameters. Refer to the parameter table below for required fields and their descriptions.

Revisions

0.5.0
NameTypeRequiredDescription
ApplicationNameStringYesThe application name that the integration will be used with. It is added as label cx_application_name to each metric.
AwsRegionStringYesAws Region from which you want to pull the metrics
AwsRoleArnStringYesThe ARN of the role that trusts the Coralogix AWS account.
EnrichWithTagsBooleanYesAdd resource tags as labels to the metrics on that resource.
IntegrationNameStringYes
MetricNamespacesListYesSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix or leave empty to pull all the metrics.
SubsystemNameStringYesThe subsystem name that the integration will be used with. It is added as label cx_subsystem_name to each metric.
WithAggregationsBooleanYesAdd convenience only metrics with suffixes _avg, _min and _max, this will result in increased data usage, where you can achieve same data with more complex queries.
CustomMetricNamespacesStringNoSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix.
EcsEnhancedMonitoringEnabledBooleanNoEnable ECS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for ecs::Describe* and ecs::List*. It will also bring in ECS services and container_instances tags. All the specific permissions without * can be found in changelog.
ElastiCacheEnhancedMonitoringEnabledBooleanNoEnable ElastiCache Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for elasticache:DescribeCacheClusters, elasticache:ListTagsForResource and ec2:DescribeInstanceTypes.
ExtendedStatisticsToCollectTextAreaNoEnter a JSON-formatted string containing additional statistics, they will be collected only for metrics matching selected Metric Namespaces. If you do not want any additional statistics put [] as a value. Example: [{\"metric_selector\":{\"namespace\": \"AWS/EC2\", \"metric_names\": [\"CPUUtilization\"]}, \"extended_statistics\": [\"p99\"]}]
ExternalIdStringNoOptional \"sts:ExternalId\", if you defined your role to depend on it, it has to be specified, otherwise we would not be able to get data from your AWS account.
PollIntervalMinutesNumberNoPoll interval in minutes, can be set to 10 and more.
RdsEnhancedMonitoringEnabledBooleanNoEnable RDS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for rds::Describe*, rds::List* and ec2:DescribeInstanceTypes. It will also bring in RDS provisioned and reserved instance tags. All the specific permissions without * can be found in changelog.
ResourceTagsFilterStringNoEnter a comma-separated list of tag keys or key-value pairs to use as filter. Metrics on resources not matching the filter will be skipped. Note that not all metrics are linked to resources, this filter will have no effect on them. If no filter is defined, ALL metrics will be collected.
StaticLabelsListNoList of key-value pairs that will be added as labels to every metric in the integration.
TagsKeyFilterListNoList of tag keys. Only tags matching these keys will be added as labels to the metrics. If empty all the matching tags will be added.
0.4.0
NameTypeRequiredDescription
ApplicationNameStringYesThe application name that the integration will be used with. It is added as label cx_application_name to each metric.
AwsRegionStringYesAws Region from which you want to pull the metrics
AwsRoleArnStringYesThe ARN of the role that trusts the Coralogix AWS account.
EnrichWithTagsBooleanYesAdd resource tags as labels to the metrics on that resource.
IntegrationNameStringYes
MetricNamespacesListYesSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix or leave empty to pull all the metrics.
SubsystemNameStringYesThe subsystem name that the integration will be used with. It is added as label cx_subsystem_name to each metric.
WithAggregationsBooleanYesAdd convenience only metrics with suffixes _avg, _min and _max, this will result in increased data usage, where you can achieve same data with more complex queries.
CustomMetricNamespacesStringNoSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix.
EcsEnhancedMonitoringEnabledBooleanNoEnable ECS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for ecs::Describe* and ecs::List*. It will also bring in ECS services and container_instances tags. All the specific permissions without * can be found in changelog.
ExtendedStatisticsToCollectTextAreaNoEnter a JSON-formatted string containing additional statistics, they will be collected only for metrics matching selected Metric Namespaces. If you do not want any additional statistics put [] as a value. Example: [{\"metric_selector\":{\"namespace\": \"AWS/EC2\", \"metric_names\": [\"CPUUtilization\"]}, \"extended_statistics\": [\"p99\"]}]
ExternalIdStringNoOptional \"sts:ExternalId\", if you defined your role to depend on it, it has to be specified, otherwise we would not be able to get data from your AWS account.
PollIntervalMinutesNumberNoPoll interval in minutes, can be set to 10 and more.
RdsEnhancedMonitoringEnabledBooleanNoEnable RDS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for rds::Describe*, rds::List* and ec2:DescribeInstanceTypes. It will also bring in RDS provisioned and reserved instance tags. All the specific permissions without * can be found in changelog.
ResourceTagsFilterStringNoEnter a comma-separated list of tag keys or key-value pairs to use as filter. Metrics on resources not matching the filter will be skipped. Note that not all metrics are linked to resources, this filter will have no effect on them. If no filter is defined, ALL metrics will be collected.
StaticLabelsListNoList of key-value pairs that will be added as labels to every metric in the integration.
TagsKeyFilterListNoList of tag keys. Only tags matching these keys will be added as labels to the metrics. If empty all the matching tags will be added.
0.3.0
NameTypeRequiredDescription
ApplicationNameStringYesThe application name that the integration will be used with. It is added as label cx_application_name to each metric.
AwsRegionStringYesAws Region from which you want to pull the metrics
AwsRoleArnStringYesThe ARN of the role that trusts the Coralogix AWS account.
EnrichWithTagsBooleanYesAdd resource tags as labels to the metrics on that resource.
IntegrationNameStringYes
MetricNamespacesListYesSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix or leave empty to pull all the metrics.
SubsystemNameStringYesThe subsystem name that the integration will be used with. It is added as label cx_subsystem_name to each metric.
WithAggregationsBooleanYesAdd convenience only metrics with suffixes _avg, _min and _max, this will result in increased data usage, where you can achieve same data with more complex queries.
CustomMetricNamespacesStringNoSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix.
EcsEnhancedMonitoringEnabledBooleanNoEnable ECS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for ecs::Describe* and ecs::List*. It will also bring in ECS services and container_instances tags. All the specific permissions without * can be found in changelog.
ExtendedStatisticsToCollectTextAreaNoEnter a JSON-formatted string containing additional statistics, they will be collected only for metrics matching selected Metric Namespaces. If you do not want any additional statistics put [] as a value. Example: [{\"metric_selector\":{\"namespace\": \"AWS/EC2\", \"metric_names\": [\"CPUUtilization\"]}, \"extended_statistics\": [\"p99\"]}]
ExternalIdStringNoOptional \"sts:ExternalId\", if you defined your role to depend on it, it has to be specified, otherwise we would not be able to get data from your AWS account.
PollIntervalMinutesNumberNoPoll interval in minutes, can be set to 10 and more.
RdsEnhancedMonitoringEnabledBooleanNoEnable RDS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for rds::Describe*, rds::List* and ec2:DescribeInstanceTypes. It will also bring in RDS provisioned and reserved instance tags. All the specific permissions without * can be found in changelog.
ResourceTagsFilterStringNoEnter a comma-separated list of tag keys or key-value pairs to use as filter. Metrics on resources not matching the filter will be skipped. Note that not all metrics are linked to resources, this filter will have no effect on them. If no filter is defined, ALL metrics will be collected.
StaticLabelsListNoList of key-value pairs that will be added as labels to every metric in the integration.
TagsKeyFilterListNoList of tag keys. Only tags matching these keys will be added as labels to the metrics. If empty all the matching tags will be added.
0.2.0
NameTypeRequiredDescription
ApplicationNameStringYesThe application name that the integration will be used with. It is added as label cx_application_name to each metric.
AwsRegionStringYesAws Region from which you want to pull the metrics
AwsRoleArnStringYesThe ARN of the role that trusts the Coralogix AWS account.
EnrichWithTagsBooleanYesAdd resource tags as labels to the metrics on that resource.
IntegrationNameStringYes
MetricNamespacesListYesSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix or leave empty to pull all the metrics.
SubsystemNameStringYesThe subsystem name that the integration will be used with. It is added as label cx_subsystem_name to each metric.
WithAggregationsBooleanYesAdd convenience only metrics with suffixes _avg, _min and _max, this will result in increased data usage, where you can achieve same data with more complex queries.
CustomMetricNamespacesStringNoSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix.
EcsEnhancedMonitoringEnabledBooleanNoEnable ECS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for ecs::Describe* and ecs::List*. It will also bring in ECS services and container_instances tags. All the specific permissions without * can be found in changelog.
ExtendedStatisticsToCollectTextAreaNoEnter a JSON-formatted string containing additional statistics, they will be collected only for metrics matching selected Metric Namespaces. If you do not want any additional statistics put [] as a value. Example: [{\"metric_selector\":{\"namespace\": \"AWS/EC2\", \"metric_names\": [\"CPUUtilization\"]}, \"extended_statistics\": [\"p99\"]}]
ExternalIdStringNoOptional \"sts:ExternalId\", if you defined your role to depend on it, it has to be specified, otherwise we would not be able to get data from your AWS account.
PollIntervalMinutesNumberNoPoll interval in minutes, can be set to 10 and more.
RdsEnhancedMonitoringEnabledBooleanNoEnable RDS Enhanced Monitoring, this will result in increased data usage as it produces more metrics and requires permissions for rds::Describe*, rds::List* and ec2:DescribeInstanceTypes. It will also bring in RDS provisioned and reserved instance tags. All the specific permissions without * can be found in changelog.
ResourceTagsFilterStringNoEnter a comma-separated list of tag keys or key-value pairs to use as filter. Metrics on resources not matching the filter will be skipped. Note that not all metrics are linked to resources, this filter will have no effect on them. If no filter is defined, ALL metrics will be collected.
StaticLabelsListNoList of key-value pairs that will be added as labels to every metric in the integration.
TagsKeyFilterListNoList of tag keys. Only tags matching these keys will be added as labels to the metrics. If empty all the matching tags will be added.
0.1.0
NameTypeRequiredDescription
ApplicationNameStringYesThe application name that the integration will be used with. It is added as label cx_application_name to each metric.
AwsRegionStringYesAws Region from which you want to pull the metrics
AwsRoleArnStringYesThe ARN of the role that trusts the Coralogix AWS account.
EnrichWithTagsBooleanYesAdd resource tags as labels to the metrics on that resource.
IntegrationNameStringYes
MetricNamespacesListYesSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix or leave empty to pull all the metrics.
SubsystemNameStringYesThe subsystem name that the integration will be used with. It is added as label cx_subsystem_name to each metric.
WithAggregationsBooleanYesAdd convenience only metrics with suffixes _avg, _min and _max, this will result in increased data usage, where you can achieve same data with more complex queries.
CustomMetricNamespacesStringNoSpecify the Metric Namespaces of the metrics that you want to pull into Coralogix.
ExtendedStatisticsToCollectTextAreaNoEnter a JSON-formatted string containing additional statistics, they will be collected only for metrics matching selected Metric Namespaces. If you do not want any additional statistics put [] as a value. Example: [{\"metric_selector\":{\"namespace\": \"AWS/EC2\", \"metric_names\": [\"CPUUtilization\"]}, \"extended_statistics\": [\"p99\"]}]
ExternalIdStringNoOptional \"sts:ExternalId\", if you defined your role to depend on it, it has to be specified, otherwise we would not be able to get data from your AWS account.
PollIntervalMinutesNumberNoPoll interval in minutes, can be set to 10 and more.
ResourceTagsFilterStringNoEnter a comma-separated list of tag keys or key-value pairs to use as filter. Metrics on resources not matching the filter will be skipped. Note that not all metrics are linked to resources, this filter will have no effect on them. If no filter is defined, ALL metrics will be collected.
StaticLabelsListNoList of key-value pairs that will be added as labels to every metric in the integration.
TagsKeyFilterListNoList of tag keys. Only tags matching these keys will be added as labels to the metrics. If empty all the matching tags will be added.