AWS CloudWatch Metric Name Mapping

Kloudfuse renames each CloudWatch metric once, when it is ingested from a CloudWatch Metric Stream. The renamed metric is what Kloudfuse stores, so the Metrics Explorer, PromQL queries, dashboards, and alerts all use the Kloudfuse name. The original CloudWatch metric name is not kept as a label.

The same rules apply to AWS service metrics and to custom metrics that you publish to your own CloudWatch namespace.

Name Structure

A Kloudfuse CloudWatch metric name has three parts:

<namespace>_<metric name>[_<statistic suffix>]

For example, the max statistic of ReadLatency in the AWS/RDS namespace becomes aws_rds_read_latency_maximum.

The Metrics Explorer and PromQL both use this underscore form. See Metric Naming.

Namespace Rules

The CloudWatch namespace is lowercased, and every character other than a letter or digit becomes an underscore. The namespace is not split on capital letters.

CloudWatch namespace Kloudfuse prefix

AWS/RDS

aws_rds

AWS/ElastiCache

aws_elasticache

MyApp/Orders

myapp_orders

Acme/Orders/API

acme_orders_api

OrdersService

ordersservice

Orders-Service, Orders.Service, or orders_service

orders_service

Metric Name Rules

Kloudfuse applies these rules to the CloudWatch metric name, in order:

  1. Override. If Kloudfuse defines an explicit name for the metric, that name is used and the remaining rules are skipped. See Overrides.

  2. Drop a trailing _Count. The suffix must match exactly, including the underscore and the capital C.

  3. Remove separators. Every _, -, ., and % is removed.

  4. Split words. An underscore is inserted between a lowercase letter and a following uppercase letter or digit.

  5. Lowercase. The result is lowercased, and any remaining character other than a letter or digit, such as a space, becomes an underscore.

Because separators are removed in step 3, word boundaries come only from changes in letter case.

Base Cases

CloudWatch metric name Kloudfuse metric name Rule

OrderCount

order_count

Split at each lowercase-to-uppercase change.

orderCount

order_count

camelCase and PascalCase give the same result.

order_count

ordercount

Underscores are removed, so the words merge.

ORDER_COUNT

ordercount

No lowercase-to-uppercase change, so no split.

order-latency

orderlatency

Hyphens are removed.

order.latency

orderlatency

Dots are removed.

orderLatency%

order_latency

% is removed.

order latency

order_latency

A space becomes an underscore.

Edge Cases

CloudWatch metric name Kloudfuse metric name Why

HTTPRequests

httprequests

Consecutive capitals (an acronym) stay together with the next word.

HttpRequests

http_requests

Writing the acronym as a word splits it.

APIErrorRate

apierror_rate

Same acronym rule; only Error to Rate splits.

ApiErrorRate

api_error_rate

CPUUtilization

cpuutilization

AWS service metrics follow the same acronym rule.

http5xxErrors

http_5xx_errors

A digit after a lowercase letter starts a new word.

4xxErrors

4xx_errors

Latency99

latency_99

p99Latency

p_99latency

A capital after a digit does not start a new word.

P99Latency

p99latency

Order_Count

order

The trailing _Count is dropped.

orders_Count

orders

ordersCount

orders_count

Count without a leading underscore is kept.

Statistic Suffixes

The main statistic for a metric is stored under the plain name, with no suffix. A suffixed series exists only for a statistic that Kloudfuse keeps in addition to the main one. By default, a custom metric keeps only its sum, under the plain name.

The suffix for each statistic, shown for a custom metric OrderLatency in MyApp/Orders:

Statistic Series name when kept as an additional statistic

sum

myapp_orders_order_latency_sum

average

myapp_orders_order_latency_average

count

myapp_orders_order_latency_samplecount

min

myapp_orders_order_latency_minimum

max

myapp_orders_order_latency_maximum

p99

myapp_orders_order_latency_p99

p99.99

myapp_orders_order_latency_p99_99

The main statistic and the suffixed series for each AWS service metric are listed in AWS CloudWatch Metric Aggregations. To keep additional statistics for a custom metric, see Keeping Additional Statistics.

Overrides

A small set of AWS service metrics have explicit Kloudfuse names that do not follow the rules above, for example:

Namespace CloudWatch metric name Kloudfuse metric name

AWS/RDS

AllocatedStorage

aws_rds_total_storage_space

AWS/Lambda

UrlRequestLatency

aws_lambda_url_latency

AWS/Lambda

Url4xxCount

aws_lambda_url_4xx_error

AWS/NetworkELB

TCP_Client_Reset_Count

aws_networkelb_tcpclient_reset_count

Overrides exist only for specific metrics in AWS/ELB, AWS/ApplicationELB, AWS/NetworkELB, AWS/ES, AWS/Firehose, AWS/Glue, AWS/Lambda, and AWS/RDS. Every other metric, including all custom metrics and every metric in services such as AWS/ElastiCache, follows the base rules. The tables in AWS CloudWatch Metric Aggregations show the final Kloudfuse name for each listed metric.

AWS Glue Metrics

AWS/Glue metric names use dots as separators, so for this namespace most dots become underscores instead of being removed. For example, glue.driver.aggregate.bytesRead becomes aws_glue_glue_driver_aggregate_bytes_read.

Some dots are removed instead, joining the neighboring words. For example, ALL. joins the word after it, so glue.ALL.jvm.heap.usage becomes aws_glue_glue_alljvm_heap_usage. Look up the exact name of each Glue metric in the AWS/Glue table of CloudWatch Aggregations.

Naming Custom Metrics

To get readable Kloudfuse names for custom metrics, name them in CloudWatch as follows:

  • Use PascalCase or camelCase for the metric name: OrderCount or orderCount becomes order_count.

  • Do not use underscores, hyphens, or dots to separate words in the metric name; they are removed.

  • Write acronyms as words: HttpRequests, not HTTPRequests.

  • Do not end a metric name with _Count unless you want it dropped.

  • Separate words in the namespace with /, -, ., or _: Orders-Service becomes orders_service, while OrdersService becomes ordersservice.

Renaming an existing CloudWatch metric creates a new Kloudfuse metric. Update dashboards and alerts that use the old name.