diff --git a/API.md b/API.md
index 1e104104..2e8dafc3 100644
--- a/API.md
+++ b/API.md
@@ -13586,10 +13586,12 @@ const customMetricSearch: CustomMetricSearch = { ... }
| dimensionsMap
| {[ key: string ]: string}
| search dimensions (can be empty). |
| searchQuery
| string
| search query (can be empty). |
| statistic
| MetricStatistic
| metric statistic. |
+| account
| string
| Account which this metric comes from. |
| label
| string
| custom label for the metrics. |
| namespace
| string
| metric namespace. |
| period
| aws-cdk-lib.Duration
| metric period. |
| position
| AxisPosition
| axis (right or left) on which to graph metric default: AxisPosition.LEFT. |
+| region
| string
| Region which this metric comes from. |
---
@@ -13629,6 +13631,21 @@ metric statistic.
---
+##### `account`Optional
+
+```typescript
+public readonly account: string;
+```
+
+- *Type:* string
+- *Default:* Deployment account.
+
+Account which this metric comes from.
+
+Note that alarms cannot be created for cross-account metrics.
+
+---
+
##### `label`Optional
```typescript
@@ -13680,6 +13697,21 @@ axis (right or left) on which to graph metric default: AxisPosition.LEFT.
---
+##### `region`Optional
+
+```typescript
+public readonly region: string;
+```
+
+- *Type:* string
+- *Default:* Deployment region.
+
+Region which this metric comes from.
+
+Note that alarms cannot be created for cross-region metrics.
+
+---
+
### CustomMetricWithAlarm
Custom metric with an alarm defined.
diff --git a/lib/monitoring/custom/CustomMonitoring.ts b/lib/monitoring/custom/CustomMonitoring.ts
index f736ec25..74aa7839 100644
--- a/lib/monitoring/custom/CustomMonitoring.ts
+++ b/lib/monitoring/custom/CustomMonitoring.ts
@@ -127,6 +127,22 @@ export interface CustomMetricSearch {
* default: AxisPosition.LEFT
*/
readonly position?: AxisPosition;
+
+ /**
+ * Account which this metric comes from.
+ * Note that alarms cannot be created for cross-account metrics.
+ *
+ * @default - Deployment account.
+ */
+ readonly account?: string;
+
+ /**
+ * Region which this metric comes from.
+ * Note that alarms cannot be created for cross-region metrics.
+ *
+ * @default - Deployment region.
+ */
+ readonly region?: string;
}
/**
@@ -482,6 +498,8 @@ export class CustomMonitoring extends Monitoring {
metric.namespace,
metric.label,
metric.period,
+ metric.region,
+ metric.account,
);
} else {
// general metric
diff --git a/test/monitoring/custom/CustomMonitoring.test.ts b/test/monitoring/custom/CustomMonitoring.test.ts
index 2888e240..e11929e0 100644
--- a/test/monitoring/custom/CustomMonitoring.test.ts
+++ b/test/monitoring/custom/CustomMonitoring.test.ts
@@ -44,7 +44,13 @@ test("snapshot test", () => {
// regular metric
new Metric({ metricName: "DummyMetric1", namespace, dimensionsMap }),
// metric with alarm
- new Metric({ metricName: "DummyMetric2", namespace, dimensionsMap }),
+ new Metric({
+ metricName: "DummyMetric2",
+ namespace,
+ dimensionsMap,
+ account: "01234567890",
+ region: "us-west-2",
+ }),
{
metric: new Metric({
metricName: "DummyMetric3",
@@ -71,6 +77,14 @@ test("snapshot test", () => {
dimensionsMap,
statistic: MetricStatistic.SUM,
},
+ {
+ searchQuery: "DummyMetric5-",
+ namespace,
+ dimensionsMap,
+ statistic: MetricStatistic.SUM,
+ account: "01234567890",
+ region: "us-west-2",
+ },
],
},
{
diff --git a/test/monitoring/custom/__snapshots__/CustomMonitoring.test.ts.snap b/test/monitoring/custom/__snapshots__/CustomMonitoring.test.ts.snap
index efa55fc6..ca5f9f20 100644
--- a/test/monitoring/custom/__snapshots__/CustomMonitoring.test.ts.snap
+++ b/test/monitoring/custom/__snapshots__/CustomMonitoring.test.ts.snap
@@ -652,7 +652,7 @@ Object {
Object {
"Ref": "AWS::Region",
},
- "\\",\\"metrics\\":[[\\"DummyCustomNamespace\\",\\"DummyMetric1\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[\\"DummyCustomNamespace\\",\\"DummyMetric2\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[\\"DummyCustomNamespace\\",\\"DummyMetric3\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[{\\"label\\":\\" \\",\\"expression\\":\\"SEARCH('{DummyCustomNamespace,CustomDimension} CustomDimension=\\\\\\"CustomDimensionValue\\\\\\" DummyMetric4-', 'Sum', 300)\\"}]],\\"annotations\\":{\\"horizontal\\":[{\\"label\\":\\"DummyMetric3 < 90 for 3 datapoints within 15 minutes\\",\\"value\\":90,\\"yAxis\\":\\"left\\"},{\\"label\\":\\"DummyMetric3 < 50 for 3 datapoints within 15 minutes\\",\\"value\\":50,\\"yAxis\\":\\"left\\"}]},\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":2,\\"height\\":100,\\"x\\":6,\\"y\\":3,\\"properties\\":{\\"view\\":\\"bar\\",\\"title\\":\\"DummyGroup2\\",\\"region\\":\\"",
+ "\\",\\"metrics\\":[[\\"DummyCustomNamespace\\",\\"DummyMetric1\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[\\"DummyCustomNamespace\\",\\"DummyMetric2\\",\\"CustomDimension\\",\\"CustomDimensionValue\\",{\\"accountId\\":\\"01234567890\\",\\"region\\":\\"us-west-2\\"}],[\\"DummyCustomNamespace\\",\\"DummyMetric3\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[{\\"label\\":\\" \\",\\"expression\\":\\"SEARCH('{DummyCustomNamespace,CustomDimension} CustomDimension=\\\\\\"CustomDimensionValue\\\\\\" DummyMetric4-', 'Sum', 300)\\"}],[{\\"label\\":\\" \\",\\"expression\\":\\"SEARCH('{DummyCustomNamespace,CustomDimension} CustomDimension=\\\\\\"CustomDimensionValue\\\\\\" DummyMetric5-', 'Sum', 300)\\",\\"accountId\\":\\"01234567890\\",\\"region\\":\\"us-west-2\\"}]],\\"annotations\\":{\\"horizontal\\":[{\\"label\\":\\"DummyMetric3 < 90 for 3 datapoints within 15 minutes\\",\\"value\\":90,\\"yAxis\\":\\"left\\"},{\\"label\\":\\"DummyMetric3 < 50 for 3 datapoints within 15 minutes\\",\\"value\\":50,\\"yAxis\\":\\"left\\"}]},\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":2,\\"height\\":100,\\"x\\":6,\\"y\\":3,\\"properties\\":{\\"view\\":\\"bar\\",\\"title\\":\\"DummyGroup2\\",\\"region\\":\\"",
Object {
"Ref": "AWS::Region",
},
@@ -907,7 +907,7 @@ Min number of samples to alarm: 5",
Object {
"Ref": "AWS::Region",
},
- "\\",\\"metrics\\":[[\\"DummyCustomNamespace\\",\\"DummyMetric1\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[\\"DummyCustomNamespace\\",\\"DummyMetric2\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[\\"DummyCustomNamespace\\",\\"DummyMetric3\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[{\\"label\\":\\" \\",\\"expression\\":\\"SEARCH('{DummyCustomNamespace,CustomDimension} CustomDimension=\\\\\\"CustomDimensionValue\\\\\\" DummyMetric4-', 'Sum', 300)\\"}]],\\"annotations\\":{\\"horizontal\\":[{\\"label\\":\\"DummyMetric3 < 90 for 3 datapoints within 15 minutes\\",\\"value\\":90,\\"yAxis\\":\\"left\\"},{\\"label\\":\\"DummyMetric3 < 50 for 3 datapoints within 15 minutes\\",\\"value\\":50,\\"yAxis\\":\\"left\\"}]},\\"yAxis\\":{}}}]}",
+ "\\",\\"metrics\\":[[\\"DummyCustomNamespace\\",\\"DummyMetric1\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[\\"DummyCustomNamespace\\",\\"DummyMetric2\\",\\"CustomDimension\\",\\"CustomDimensionValue\\",{\\"accountId\\":\\"01234567890\\",\\"region\\":\\"us-west-2\\"}],[\\"DummyCustomNamespace\\",\\"DummyMetric3\\",\\"CustomDimension\\",\\"CustomDimensionValue\\"],[{\\"label\\":\\" \\",\\"expression\\":\\"SEARCH('{DummyCustomNamespace,CustomDimension} CustomDimension=\\\\\\"CustomDimensionValue\\\\\\" DummyMetric4-', 'Sum', 300)\\"}],[{\\"label\\":\\" \\",\\"expression\\":\\"SEARCH('{DummyCustomNamespace,CustomDimension} CustomDimension=\\\\\\"CustomDimensionValue\\\\\\" DummyMetric5-', 'Sum', 300)\\",\\"accountId\\":\\"01234567890\\",\\"region\\":\\"us-west-2\\"}]],\\"annotations\\":{\\"horizontal\\":[{\\"label\\":\\"DummyMetric3 < 90 for 3 datapoints within 15 minutes\\",\\"value\\":90,\\"yAxis\\":\\"left\\"},{\\"label\\":\\"DummyMetric3 < 50 for 3 datapoints within 15 minutes\\",\\"value\\":50,\\"yAxis\\":\\"left\\"}]},\\"yAxis\\":{}}}]}",
],
],
},