# SearchExpressionProps

Properties for a SearchExpression.

Extends: SearchExpressionProps
Extends: SearchExpressionOptions
Used as props by: SearchExpression

- Source: [`aws-cloudwatch/lib/metric.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-cloudwatch/lib/metric.ts#L370)
- Type last changed: v2.207.0 · 24 Jul 2025

## Example

```ts
const cpuUtilization = new cloudwatch.SearchExpression({
  expression: "SEARCH('{AWS/EC2,InstanceId} MetricName=\"CPUUtilization\"', 'Average', 900)",
  label: 'EC2 CPU Utilization',
  color: '#ff7f0e',
});
```

## Properties

- `color`: string — Color for the metric produced by the search expression.

  **Default:** Automatically assigned.

  If the search expression produces more than one time series, the color is assigned to the first one.
  Other metrics are assigned colors automatically.

- `expression`: string (required) — The search expression defining the metrics to be retrieved.

  A search expression cannot be used within an Alarm.

  A search expression allows you to retrieve and graph multiple related metrics in a single statement.
  It can return up to 500 time series.

  Examples:
  - `SEARCH('{AWS/EC2,InstanceId} CPUUtilization', 'Average', 300)`
  - `SEARCH('{AWS/ApplicationELB,LoadBalancer} RequestCount', 'Sum', 60)`
  - `SEARCH('{MyNamespace,ServiceName} Errors', 'Sum')`

  For more information about search expression syntax, see:
  https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html

- `label`: string — Label for this search expression when added to a Graph in a Dashboard.

  **Default:** No label.

  If this expression evaluates to more than one time series,
  each time series will appear in the graph using a combination of the
  expression label and the individual metric label. Specify the empty
  string (`''`) to suppress the expression label and only keep the
  metric label.

  You can use [dynamic labels](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html)
  to show summary information about the displayed time series
  in the legend. For example, if you use:

  ```
  [max: ${MAX}] MyMetric
  ```

  As the metric label, the maximum value in the visible range will
  be shown next to the time series name in the graph's legend. If the
  search expression produces more than one time series, the maximum
  will be shown for each individual time series produce by this
  search expression.

- `period`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) = Duration.minutes(5) — The period over which the search expression's statistics are applied.

  This period overrides the period defined within the search expression.

- `searchAccount`: string — Account to evaluate search expressions within.

  **Default:** Deployment account.

- `searchRegion`: string — Region to evaluate search expressions within.

  **Default:** Deployment region.
