{"version":"2","toolVersion":"5.9.55","snippets":{"2681c3f053dd4193424df7e60e09865506adf1b5f51483ec7075285889aa6b32":{"translations":{"python":{"source":"# This could be in the same stack as your resources, as a nested stack, or a separate stack as you see fit\nclass MonitoringStack(DeploymentStack):\n    def __init__(self, parent, name, *):\n        super().__init__(parent, name)\n\n        monitoring = MonitoringFacade(self, \"Monitoring\",\n            # Defaults are provided for these, but they can be customized as desired\n            metric_factory_defaults={...},\n            alarm_factory_defaults={...},\n            dashboard_factory={...}\n        )\n\n        # Monitor your resources\n        monitoring.add_large_header(\"Storage\").monitor_dynamo_table().monitor_dynamo_table().monitor_lambda_function().monitor_custom()","version":"2"},"csharp":{"source":"class MonitoringStackProps : DeploymentStackProps\n{\n}\n\n// This could be in the same stack as your resources, as a nested stack, or a separate stack as you see fit\nclass MonitoringStack : DeploymentStack\n{\n    public MonitoringStack(App parent, string name, MonitoringStackProps props) : base(parent, name, props)\n    {\n\n        var monitoring = new MonitoringFacade(this, \"Monitoring\", new Struct {\n            // Defaults are provided for these, but they can be customized as desired\n            MetricFactoryDefaults = new Struct { ... },\n            AlarmFactoryDefaults = new Struct { ... },\n            DashboardFactory = new Struct { ... }\n        });\n\n        // Monitor your resources\n        monitoring.AddLargeHeader(\"Storage\").MonitorDynamoTable(new Struct { }).MonitorDynamoTable(new Struct { }).MonitorLambdaFunction(new Struct { }).MonitorCustom(new Struct { });\n    }\n}","version":"1"},"java":{"source":"public class MonitoringStackProps extends DeploymentStackProps {\n}\n\n// This could be in the same stack as your resources, as a nested stack, or a separate stack as you see fit\npublic class MonitoringStack extends DeploymentStack {\n    public MonitoringStack(App parent, String name, MonitoringStackProps props) {\n        super(parent, name, props);\n\n        Object monitoring = MonitoringFacade.Builder.create(this, \"Monitoring\")\n                // Defaults are provided for these, but they can be customized as desired\n                .metricFactoryDefaults(Map.of(...))\n                .alarmFactoryDefaults(Map.of(...))\n                .dashboardFactory(Map.of(...))\n                .build();\n\n        // Monitor your resources\n        monitoring.addLargeHeader(\"Storage\").monitorDynamoTable(Map.of()).monitorDynamoTable(Map.of()).monitorLambdaFunction(Map.of()).monitorCustom(Map.of());\n    }\n}","version":"1"},"go":{"source":"type MonitoringStackProps struct {\n\tDeploymentStackProps\n}\n\n// This could be in the same stack as your resources, as a nested stack, or a separate stack as you see fit\ntype MonitoringStack struct {\n\tDeploymentStack\n}\n\nfunc NewMonitoringStack(parent App, name *string, props MonitoringStackProps) *MonitoringStack {\n\tthis := &MonitoringStack{}\n\tnewDeploymentStack_Override(this, parent, name, props)\n\n\tmonitoring := NewMonitoringFacade(this, jsii.String(\"Monitoring\"), map[string]interface{}{\n\t\t// Defaults are provided for these, but they can be customized as desired\n\t\t\"metricFactoryDefaults\": map[string]interface{}{\n\t\t\t...,\n\t\t},\n\t\t\"alarmFactoryDefaults\": map[string]interface{}{\n\t\t\t...,\n\t\t},\n\t\t\"dashboardFactory\": map[string]interface{}{\n\t\t\t...,\n\t\t},\n\t})\n\n\t// Monitor your resources\n\tmonitoring.addLargeHeader(jsii.String(\"Storage\")).monitorDynamoTable(map[string]interface{}{\n\t}).monitorDynamoTable(map[string]interface{}{\n\t}).monitorLambdaFunction(map[string]interface{}{\n\t}).monitorCustom(map[string]interface{}{\n\t})\n\treturn this\n}","version":"1"},"$":{"source":"export interface MonitoringStackProps extends DeploymentStackProps {\n  // ...\n}\n\n// This could be in the same stack as your resources, as a nested stack, or a separate stack as you see fit\nexport class MonitoringStack extends DeploymentStack {\n  constructor(parent: App, name: string, props: MonitoringStackProps) {\n    super(parent, name, props);\n\n    const monitoring = new MonitoringFacade(this, \"Monitoring\", {\n      // Defaults are provided for these, but they can be customized as desired\n      metricFactoryDefaults: { ... },\n      alarmFactoryDefaults: { ... },\n      dashboardFactory: { ... },\n    });\n\n    // Monitor your resources\n    monitoring\n      .addLargeHeader(\"Storage\")\n      .monitorDynamoTable({ /* Monitor a DynamoDB table */ })\n      .monitorDynamoTable({ /* and a different table */ })\n      .monitorLambdaFunction({ /* and a Lambda function */ })\n      .monitorCustom({ /* and some arbitrary metrics in CloudWatch */ })\n      // ... etc.\n  }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":116}},"didCompile":false,"fqnsReferenced":[],"fullSource":"export interface MonitoringStackProps extends DeploymentStackProps {\n  // ...\n}\n\n// This could be in the same stack as your resources, as a nested stack, or a separate stack as you see fit\nexport class MonitoringStack extends DeploymentStack {\n  constructor(parent: App, name: string, props: MonitoringStackProps) {\n    super(parent, name, props);\n\n    const monitoring = new MonitoringFacade(this, \"Monitoring\", {\n      // Defaults are provided for these, but they can be customized as desired\n      metricFactoryDefaults: { ... },\n      alarmFactoryDefaults: { ... },\n      dashboardFactory: { ... },\n    });\n\n    // Monitor your resources\n    monitoring\n      .addLargeHeader(\"Storage\")\n      .monitorDynamoTable({ /* Monitor a DynamoDB table */ })\n      .monitorDynamoTable({ /* and a different table */ })\n      .monitorLambdaFunction({ /* and a Lambda function */ })\n      .monitorCustom({ /* and some arbitrary metrics in CloudWatch */ })\n      // ... etc.\n  }\n}","syntaxKindCounter":{"11":2,"80":26,"95":2,"108":1,"110":1,"154":1,"170":3,"177":1,"184":2,"211":8,"212":5,"214":6,"215":1,"234":2,"242":1,"244":1,"245":2,"261":1,"262":1,"264":1,"265":1,"299":2,"304":3,"306":3,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"8c2c0a469228b162e94b3ad82bb40de4e19fff6e2f14a64a182fa027b80f395b":{"translations":{"python":{"source":"# on_alarm_topic: ITopic\n\nmonitoring = MonitoringFacade(self, \"Monitoring\",\n    # ...other props\n    alarm_factory_defaults={\n        # ....other props\n        \"action\": SnsAlarmActionStrategy(on_alarm_topic=on_alarm_topic)\n    }\n)","version":"2"},"csharp":{"source":"ITopic onAlarmTopic;\n\nvar monitoring = new MonitoringFacade(this, \"Monitoring\", new Struct {\n    // ...other props\n    AlarmFactoryDefaults = new Struct {\n        // ....other props\n        Action = new SnsAlarmActionStrategy(new Struct { OnAlarmTopic = onAlarmTopic })\n    }\n});","version":"1"},"java":{"source":"ITopic onAlarmTopic;\n\nObject monitoring = MonitoringFacade.Builder.create(this, \"Monitoring\")\n        // ...other props\n        .alarmFactoryDefaults(Map.of(\n                // ....other props\n                \"action\", SnsAlarmActionStrategy.Builder.create().onAlarmTopic(onAlarmTopic).build()))\n        .build();","version":"1"},"go":{"source":"var onAlarmTopic ITopic\n\nmonitoring := NewMonitoringFacade(this, jsii.String(\"Monitoring\"), map[string]map[string]interface{}{\n\t// ...other props\n\t\"alarmFactoryDefaults\": map[string]interface{}{\n\t\t// ....other props\n\t\t\"action\": NewSnsAlarmActionStrategy(map[string]interface{}{\n\t\t\t\"onAlarmTopic\": onAlarmTopic,\n\t\t}),\n\t},\n})","version":"1"},"$":{"source":"declare const onAlarmTopic: ITopic;\n\nconst monitoring = new MonitoringFacade(this, \"Monitoring\", {\n  // ...other props\n  alarmFactoryDefaults: {\n    // ....other props\n    action: new SnsAlarmActionStrategy({ onAlarmTopic }),\n  },\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":151}},"didCompile":false,"fqnsReferenced":[],"fullSource":"declare const onAlarmTopic: ITopic;\n\nconst monitoring = new MonitoringFacade(this, \"Monitoring\", {\n  // ...other props\n  alarmFactoryDefaults: {\n    // ....other props\n    action: new SnsAlarmActionStrategy({ onAlarmTopic }),\n  },\n});","syntaxKindCounter":{"11":1,"80":8,"110":1,"138":1,"184":1,"211":3,"215":2,"244":2,"261":2,"262":2,"304":2,"305":1,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"0d2e63b483ba65828d8dbb6317ba45010de00ac954f787c9c4af32c049a1e408":{"translations":{"python":{"source":"monitoring.monitor_something(something,\n    add_some_alarm={\n        \"Warning\": {\n            # ...other props\n            \"threshold\": 42,\n            \"action_override\": SnsAlarmActionStrategy(on_alarm_topic=on_alarm_topic)\n        }\n    }\n)","version":"2"},"csharp":{"source":"monitoring.MonitorSomething(something, new Struct {\n    AddSomeAlarm = new Struct {\n        Warning = new Struct {\n            // ...other props\n            Threshold = 42,\n            ActionOverride = new SnsAlarmActionStrategy(new Struct { OnAlarmTopic = onAlarmTopic })\n        }\n    }\n});","version":"1"},"java":{"source":"monitoring.monitorSomething(something, Map.of(\n        \"addSomeAlarm\", Map.of(\n                \"Warning\", Map.of(\n                        // ...other props\n                        \"threshold\", 42,\n                        \"actionOverride\", SnsAlarmActionStrategy.Builder.create().onAlarmTopic(onAlarmTopic).build()))));","version":"1"},"go":{"source":"monitoring.monitorSomething(something, map[string]map[string]map[string]interface{}{\n\t\"addSomeAlarm\": map[string]map[string]interface{}{\n\t\t\"Warning\": map[string]interface{}{\n\t\t\t// ...other props\n\t\t\t\"threshold\": jsii.Number(42),\n\t\t\t\"actionOverride\": NewSnsAlarmActionStrategy(map[string]interface{}{\n\t\t\t\t\"onAlarmTopic\": onAlarmTopic,\n\t\t\t}),\n\t\t},\n\t},\n})","version":"1"},"$":{"source":"monitoring.monitorSomething(something, {\n  addSomeAlarm: {\n    Warning: {\n      // ...other props\n      threshold: 42,\n      actionOverride: new SnsAlarmActionStrategy({ onAlarmTopic }),\n    },\n  },\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":165}},"didCompile":false,"fqnsReferenced":[],"fullSource":"monitoring.monitorSomething(something, {\n  addSomeAlarm: {\n    Warning: {\n      // ...other props\n      threshold: 42,\n      actionOverride: new SnsAlarmActionStrategy({ onAlarmTopic }),\n    },\n  },\n});","syntaxKindCounter":{"9":1,"80":9,"211":4,"212":1,"214":1,"215":1,"245":1,"304":4,"305":1,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"96bf4eddfeb5e08b74aa44c59c71514805cae942745752696d9c7275f10b9b9c":{"translations":{"python":{"source":"# on_alarm_topic: ITopic\n# on_alarm_function: IFunction\n\naction = multiple_actions(\n    notify_sns(on_alarm_topic),\n    trigger_lambda(on_alarm_function))","version":"2"},"csharp":{"source":"ITopic onAlarmTopic;\nIFunction onAlarmFunction;\n\nvar action = MultipleActions(NotifySns(onAlarmTopic), TriggerLambda(onAlarmFunction));","version":"1"},"java":{"source":"ITopic onAlarmTopic;\nIFunction onAlarmFunction;\n\nIAlarmActionStrategy action = multipleActions(notifySns(onAlarmTopic), triggerLambda(onAlarmFunction));","version":"1"},"go":{"source":"var onAlarmTopic ITopic\nvar onAlarmFunction IFunction\n\naction := multipleActions(notifySns(onAlarmTopic), triggerLambda(onAlarmFunction))","version":"1"},"$":{"source":"declare const onAlarmTopic: ITopic;\ndeclare const onAlarmFunction: IFunction;\n\nconst action: IAlarmActionStrategy = multipleActions(\n  notifySns(onAlarmTopic),\n  triggerLambda(onAlarmFunction),\n);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":181}},"didCompile":false,"fqnsReferenced":[],"fullSource":"declare const onAlarmTopic: ITopic;\ndeclare const onAlarmFunction: IFunction;\n\nconst action: IAlarmActionStrategy = multipleActions(\n  notifySns(onAlarmTopic),\n  triggerLambda(onAlarmFunction),\n);","syntaxKindCounter":{"80":11,"138":2,"184":3,"214":3,"244":3,"261":3,"262":3,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"961f9ff099abc0ba48e02926fe99705f970bffa7eab50845cf48503739f6f4ab":{"translations":{"python":{"source":"# create metrics manually\nm1 = Metric()","version":"2"},"csharp":{"source":"// create metrics manually\nvar m1 = new Metric();","version":"1"},"java":{"source":"// create metrics manually\nObject m1 = new Metric();","version":"1"},"go":{"source":"// create metrics manually\nm1 := NewMetric()","version":"1"},"$":{"source":"// create metrics manually\nconst m1 = new Metric(/* ... */);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":204}},"didCompile":false,"fqnsReferenced":[],"fullSource":"// create metrics manually\nconst m1 = new Metric(/* ... */);","syntaxKindCounter":{"80":2,"215":1,"244":1,"261":1,"262":1,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"ccf9cd6a5e03629a3aca064b4c85ef14e669fa614566f041df5db65533e53f50":{"translations":{"python":{"source":"metric_factory = monitoring_facade.create_metric_factory()\n\n# create metrics using metric factory\nm1 = metric_factory.create_metric()","version":"2"},"csharp":{"source":"var metricFactory = monitoringFacade.CreateMetricFactory();\n\n// create metrics using metric factory\nvar m1 = metricFactory.CreateMetric();","version":"1"},"java":{"source":"Object metricFactory = monitoringFacade.createMetricFactory();\n\n// create metrics using metric factory\nObject m1 = metricFactory.createMetric();","version":"1"},"go":{"source":"metricFactory := monitoringFacade.createMetricFactory()\n\n// create metrics using metric factory\nm1 := metricFactory.createMetric()","version":"1"},"$":{"source":"const metricFactory = monitoringFacade.createMetricFactory();\n\n// create metrics using metric factory\nconst m1 = metricFactory.createMetric(/* ... */);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":209}},"didCompile":false,"fqnsReferenced":[],"fullSource":"const metricFactory = monitoringFacade.createMetricFactory();\n\n// create metrics using metric factory\nconst m1 = metricFactory.createMetric(/* ... */);","syntaxKindCounter":{"80":6,"212":2,"214":2,"244":2,"261":2,"262":2,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"3c5b6db17390d03cd3c9499ce22f9c9d6bed4c1afc64c69d4aababc2138b067b":{"translations":{"python":{"source":"monitor_custom({\n    \"title\": \"Metric with anomaly detection\",\n    \"metric_groups\": [{\n        \"metric\": m1,\n        \"anomaly_detection_standard_deviation_to_render\": 3\n    }\n    ]\n})","version":"2"},"csharp":{"source":"MonitorCustom(new Dictionary<string, object> {\n    { \"title\", \"Metric with anomaly detection\" },\n    { \"metricGroups\", new [] { new Struct {\n        Metric = m1,\n        AnomalyDetectionStandardDeviationToRender = 3\n    } } }\n});","version":"1"},"java":{"source":"monitorCustom(Map.of(\n        \"title\", \"Metric with anomaly detection\",\n        \"metricGroups\", List.of(Map.of(\n                \"metric\", m1,\n                \"anomalyDetectionStandardDeviationToRender\", 3))));","version":"1"},"go":{"source":"monitorCustom(map[string]interface{}{\n\t\"title\": jsii.String(\"Metric with anomaly detection\"),\n\t\"metricGroups\": []map[string]interface{}{\n\t\tmap[string]interface{}{\n\t\t\t\"metric\": m1,\n\t\t\t\"anomalyDetectionStandardDeviationToRender\": jsii.Number(3),\n\t\t},\n\t},\n})","version":"1"},"$":{"source":"monitorCustom({\n  title: \"Metric with anomaly detection\",\n  metricGroups: [\n    {\n      metric: m1,\n      anomalyDetectionStandardDeviationToRender: 3,\n    },\n  ],\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":221}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.aws_cloudwatch.Metric"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nmonitorCustom({\n  title: \"Metric with anomaly detection\",\n  metricGroups: [\n    {\n      metric: m1,\n      anomalyDetectionStandardDeviationToRender: 3,\n    },\n  ],\n});\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"9":1,"11":1,"80":6,"210":1,"211":2,"214":1,"245":1,"304":4},"fqnsFingerprint":"268e74a9640483cea26363d15f61353c34f4de72b8c7ef305b0840247ed2058a"},"64232f1186a795a032c9b849a84a907c71be16eb7895a6848e23fa966724bf17":{"translations":{"python":{"source":"monitor_custom({\n    \"title\": \"Metric with anomaly detection and alarm\",\n    \"metric_groups\": [{\n        \"metric\": m1,\n        \"alarm_friendly_name\": \"MetricWithAnomalyDetectionAlarm\",\n        \"anomaly_detection_standard_deviation_to_render\": 3,\n        \"add_alarm_on_anomaly\": {\n            \"Warning\": {\n                \"standard_deviation_for_alarm\": 4,\n                \"alarm_when_above_the_band\": True,\n                \"alarm_when_below_the_band\": True\n            }\n        }\n    }\n    ]\n})","version":"2"},"csharp":{"source":"MonitorCustom(new Dictionary<string, object> {\n    { \"title\", \"Metric with anomaly detection and alarm\" },\n    { \"metricGroups\", new [] { new Struct {\n        Metric = m1,\n        AlarmFriendlyName = \"MetricWithAnomalyDetectionAlarm\",\n        AnomalyDetectionStandardDeviationToRender = 3,\n        AddAlarmOnAnomaly = new Struct {\n            Warning = new Struct {\n                StandardDeviationForAlarm = 4,\n                AlarmWhenAboveTheBand = true,\n                AlarmWhenBelowTheBand = true\n            }\n        }\n    } } }\n});","version":"1"},"java":{"source":"monitorCustom(Map.of(\n        \"title\", \"Metric with anomaly detection and alarm\",\n        \"metricGroups\", List.of(Map.of(\n                \"metric\", m1,\n                \"alarmFriendlyName\", \"MetricWithAnomalyDetectionAlarm\",\n                \"anomalyDetectionStandardDeviationToRender\", 3,\n                \"addAlarmOnAnomaly\", Map.of(\n                        \"Warning\", Map.of(\n                                \"standardDeviationForAlarm\", 4,\n                                \"alarmWhenAboveTheBand\", true,\n                                \"alarmWhenBelowTheBand\", true))))));","version":"1"},"go":{"source":"monitorCustom(map[string]interface{}{\n\t\"title\": jsii.String(\"Metric with anomaly detection and alarm\"),\n\t\"metricGroups\": []map[string]interface{}{\n\t\tmap[string]interface{}{\n\t\t\t\"metric\": m1,\n\t\t\t\"alarmFriendlyName\": jsii.String(\"MetricWithAnomalyDetectionAlarm\"),\n\t\t\t\"anomalyDetectionStandardDeviationToRender\": jsii.Number(3),\n\t\t\t\"addAlarmOnAnomaly\": map[string]map[string]interface{}{\n\t\t\t\t\"Warning\": map[string]interface{}{\n\t\t\t\t\t\"standardDeviationForAlarm\": jsii.Number(4),\n\t\t\t\t\t\"alarmWhenAboveTheBand\": jsii.Boolean(true),\n\t\t\t\t\t\"alarmWhenBelowTheBand\": jsii.Boolean(true),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n})","version":"1"},"$":{"source":"monitorCustom({\n  title: \"Metric with anomaly detection and alarm\",\n  metricGroups: [\n    {\n      metric: m1,\n      alarmFriendlyName: \"MetricWithAnomalyDetectionAlarm\",\n      anomalyDetectionStandardDeviationToRender: 3,\n      addAlarmOnAnomaly: {\n        Warning: {\n          standardDeviationForAlarm: 4,\n          alarmWhenAboveTheBand: true,\n          alarmWhenBelowTheBand: true,\n        },\n      },\n    },\n  ],\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":235}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.aws_cloudwatch.Metric"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nmonitorCustom({\n  title: \"Metric with anomaly detection and alarm\",\n  metricGroups: [\n    {\n      metric: m1,\n      alarmFriendlyName: \"MetricWithAnomalyDetectionAlarm\",\n      anomalyDetectionStandardDeviationToRender: 3,\n      addAlarmOnAnomaly: {\n        Warning: {\n          standardDeviationForAlarm: 4,\n          alarmWhenAboveTheBand: true,\n          alarmWhenBelowTheBand: true,\n        },\n      },\n    },\n  ],\n});\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"9":2,"11":2,"80":12,"112":2,"210":1,"211":4,"214":1,"245":1,"304":10},"fqnsFingerprint":"268e74a9640483cea26363d15f61353c34f4de72b8c7ef305b0840247ed2058a"},"0932f17d4e809321591e0b126c5f6c9f4b18a80e7ae50566ca038faea327ef0c":{"translations":{"python":{"source":"monitor_custom({\n    \"title\": \"Metric search\",\n    \"metric_groups\": [{\n        \"search_query\": \"My.Prefix.\",\n        \"dimensions_map\": {\n            \"FirstDimension\": \"FirstDimensionValue\",\n            # Allow any value for the given dimension (pardon the weird typing to satisfy DimensionsMap)\n            \"SecondDimension\": undefined\n        },\n        \"statistic\": MetricStatistic.SUM\n    }\n    ]\n})","version":"2"},"csharp":{"source":"MonitorCustom(new Dictionary<string, object> {\n    { \"title\", \"Metric search\" },\n    { \"metricGroups\", new [] { new Struct {\n        SearchQuery = \"My.Prefix.\",\n        DimensionsMap = new Struct {\n            FirstDimension = \"FirstDimensionValue\",\n            // Allow any value for the given dimension (pardon the weird typing to satisfy DimensionsMap)\n            SecondDimension = (string)(object)undefined\n        },\n        Statistic = MetricStatistic.SUM\n    } } }\n});","version":"1"},"java":{"source":"monitorCustom(Map.of(\n        \"title\", \"Metric search\",\n        \"metricGroups\", List.of(Map.of(\n                \"searchQuery\", \"My.Prefix.\",\n                \"dimensionsMap\", Map.of(\n                        \"FirstDimension\", \"FirstDimensionValue\",\n                        // Allow any value for the given dimension (pardon the weird typing to satisfy DimensionsMap)\n                        \"SecondDimension\", (String)(Object)undefined),\n                \"statistic\", MetricStatistic.SUM))));","version":"1"},"go":{"source":"monitorCustom(map[string]interface{}{\n\t\"title\": jsii.String(\"Metric search\"),\n\t\"metricGroups\": []map[string]interface{}{\n\t\tmap[string]interface{}{\n\t\t\t\"searchQuery\": jsii.String(\"My.Prefix.\"),\n\t\t\t\"dimensionsMap\": map[string]interface{}{\n\t\t\t\t\"FirstDimension\": jsii.String(\"FirstDimensionValue\"),\n\t\t\t\t// Allow any value for the given dimension (pardon the weird typing to satisfy DimensionsMap)\n\t\t\t\t\"SecondDimension\": string(undefined),\n\t\t\t},\n\t\t\t\"statistic\": cdkmonitoringconstructs.MetricStatistic_SUM,\n\t\t},\n\t},\n})","version":"1"},"$":{"source":"monitorCustom({\n  title: \"Metric search\",\n  metricGroups: [\n    {\n      searchQuery: \"My.Prefix.\",\n      dimensionsMap: {\n        FirstDimension: \"FirstDimensionValue\",\n        // Allow any value for the given dimension (pardon the weird typing to satisfy DimensionsMap)\n        SecondDimension: undefined as unknown as string,\n      },\n      statistic: MetricStatistic.SUM,\n    },\n  ],\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":257}},"didCompile":true,"fqnsReferenced":["cdk-monitoring-constructs.MetricStatistic","cdk-monitoring-constructs.MetricStatistic#SUM"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nmonitorCustom({\n  title: \"Metric search\",\n  metricGroups: [\n    {\n      searchQuery: \"My.Prefix.\",\n      dimensionsMap: {\n        FirstDimension: \"FirstDimensionValue\",\n        // Allow any value for the given dimension (pardon the weird typing to satisfy DimensionsMap)\n        SecondDimension: undefined as unknown as string,\n      },\n      statistic: MetricStatistic.SUM,\n    },\n  ],\n});\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"11":3,"80":11,"154":1,"159":1,"210":1,"211":3,"212":1,"214":1,"235":2,"245":1,"304":7},"fqnsFingerprint":"6a9dafd7baca1aa489a8fb852aee38946a261cd656c593ac2e67234da30b2bc9"},"25838cdaab4d174af25f02e1130da9660ed0f70b42e9c17f8142d347168a8eec":{"translations":{"python":{"source":"monitoring.monitor_something(something,\n    add_some_alarm={\n        \"Warning\": {\n            # ...other props\n            \"metric_adjuster\": Route53HealthCheckMetricAdjuster.INSTANCE\n        }\n    }\n)","version":"2"},"csharp":{"source":"monitoring.MonitorSomething(something, new Struct {\n    AddSomeAlarm = new Struct {\n        Warning = new Struct {\n            // ...other props\n            MetricAdjuster = Route53HealthCheckMetricAdjuster.INSTANCE\n        }\n    }\n});","version":"1"},"java":{"source":"monitoring.monitorSomething(something, Map.of(\n        \"addSomeAlarm\", Map.of(\n                \"Warning\", Map.of(\n                        // ...other props\n                        \"metricAdjuster\", Route53HealthCheckMetricAdjuster.INSTANCE))));","version":"1"},"go":{"source":"monitoring.monitorSomething(something, map[string]map[string]map[string]Route53HealthCheckMetricAdjuster{\n\t\"addSomeAlarm\": map[string]map[string]Route53HealthCheckMetricAdjuster{\n\t\t\"Warning\": map[string]Route53HealthCheckMetricAdjuster{\n\t\t\t// ...other props\n\t\t\t\"metricAdjuster\": cdkmonitoringconstructs.Route53HealthCheckMetricAdjuster_INSTANCE(),\n\t\t},\n\t},\n})","version":"1"},"$":{"source":"monitoring.monitorSomething(something, {\n  addSomeAlarm: {\n    Warning: {\n      // ...other props\n      metricAdjuster: Route53HealthCheckMetricAdjuster.INSTANCE,\n    },\n  },\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":281}},"didCompile":true,"fqnsReferenced":["cdk-monitoring-constructs.Route53HealthCheckMetricAdjuster","cdk-monitoring-constructs.Route53HealthCheckMetricAdjuster#INSTANCE"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nmonitoring.monitorSomething(something, {\n  addSomeAlarm: {\n    Warning: {\n      // ...other props\n      metricAdjuster: Route53HealthCheckMetricAdjuster.INSTANCE,\n    },\n  },\n});\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"80":8,"211":3,"212":2,"214":1,"245":1,"304":3},"fqnsFingerprint":"561e71cf6cbe270a0d58e2a11828ee49ed319d4c0f07dcc47b10b5a251eef25b"},"41b94f2946ee979601d574dda4e575cf3e1a6432976babf8b208712422c01a99":{"translations":{"python":{"source":"from aws_cdk.aws_route53 import CfnHealthCheck\n\nmonitoring.monitor_something(something,\n    add_some_alarm={\n        \"Warning\": {\n            # ...other props\n            \"custom_tags\": [\"route53-health-check\"],\n            \"metric_adjuster\": Route53HealthCheckMetricAdjuster.INSTANCE\n        }\n    }\n)\n\nalarms = monitoring.created_alarms_with_tag(\"route53-health-check\")\n\nhealth_checks = alarms.map(({ alarm }) => {\n      const id = getHealthCheckConstructId(alarm);\n\n      return new CfnHealthCheck(scope, id, {\n        healthCheckConfig: {\n          // ...other props\n          type: \"CLOUDWATCH_METRIC\",\n          alarmIdentifier: {\n            name: alarm.alarmName,\n            region: alarm.stack.region,\n          },\n        },\n      });\n    })","version":"2"},"csharp":{"source":"using Amazon.CDK.AWS.Route53;\n\nmonitoring.MonitorSomething(something, new Struct {\n    AddSomeAlarm = new Struct {\n        Warning = new Struct {\n            // ...other props\n            CustomTags = new [] { \"route53-health-check\" },\n            MetricAdjuster = Route53HealthCheckMetricAdjuster.INSTANCE\n        }\n    }\n});\n\nvar alarms = monitoring.CreatedAlarmsWithTag(\"route53-health-check\");\n\nvar healthChecks = alarms.Map(({ alarm }) => {\n  const id = getHealthCheckConstructId(alarm);\n\n  return new CfnHealthCheck(scope, id, {\n    healthCheckConfig: {\n      // ...other props\n      type: \"CLOUDWATCH_METRIC\",\n      alarmIdentifier: {\n        name: alarm.alarmName,\n        region: alarm.stack.region,\n      },\n    },\n  });\n});","version":"1"},"java":{"source":"import software.amazon.awscdk.services.route53.CfnHealthCheck;\n\nmonitoring.monitorSomething(something, Map.of(\n        \"addSomeAlarm\", Map.of(\n                \"Warning\", Map.of(\n                        // ...other props\n                        \"customTags\", List.of(\"route53-health-check\"),\n                        \"metricAdjuster\", Route53HealthCheckMetricAdjuster.getINSTANCE()))));\n\nObject alarms = monitoring.createdAlarmsWithTag(\"route53-health-check\");\n\nObject healthChecks = alarms.map(({ alarm }) => {\n  const id = getHealthCheckConstructId(alarm);\n\n  return new CfnHealthCheck(scope, id, {\n    healthCheckConfig: {\n      // ...other props\n      type: \"CLOUDWATCH_METRIC\",\n      alarmIdentifier: {\n        name: alarm.alarmName,\n        region: alarm.stack.region,\n      },\n    },\n  });\n});","version":"1"},"go":{"source":"import \"github.com/aws/aws-cdk-go/awscdk\"\n\nmonitoring.monitorSomething(something, map[string]map[string]map[string]interface{}{\n\t\"addSomeAlarm\": map[string]map[string]interface{}{\n\t\t\"Warning\": map[string]interface{}{\n\t\t\t// ...other props\n\t\t\t\"customTags\": []*string{\n\t\t\t\tjsii.String(\"route53-health-check\"),\n\t\t\t},\n\t\t\t\"metricAdjuster\": Route53HealthCheckMetricAdjuster_INSTANCE,\n\t\t},\n\t},\n})\n\nalarms := monitoring.createdAlarmsWithTag(jsii.String(\"route53-health-check\"))\n\nhealthChecks := alarms.map(({ alarm }) => {\n  const id = getHealthCheckConstructId(alarm);\n\n  return new CfnHealthCheck(scope, id, {\n    healthCheckConfig: {\n      // ...other props\n      type: \"CLOUDWATCH_METRIC\",\n      alarmIdentifier: {\n        name: alarm.alarmName,\n        region: alarm.stack.region,\n      },\n    },\n  });\n})","version":"1"},"$":{"source":"import { CfnHealthCheck } from \"aws-cdk-lib/aws-route53\";\n\nmonitoring.monitorSomething(something, {\n  addSomeAlarm: {\n    Warning: {\n      // ...other props\n      customTags: [\"route53-health-check\"],\n      metricAdjuster: Route53HealthCheckMetricAdjuster.INSTANCE,\n    },\n  },\n});\n\nconst alarms = monitoring.createdAlarmsWithTag(\"route53-health-check\");\n\nconst healthChecks = alarms.map(({ alarm }) => {\n  const id = getHealthCheckConstructId(alarm);\n\n  return new CfnHealthCheck(scope, id, {\n    healthCheckConfig: {\n      // ...other props\n      type: \"CLOUDWATCH_METRIC\",\n      alarmIdentifier: {\n        name: alarm.alarmName,\n        region: alarm.stack.region,\n      },\n    },\n  });\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":295}},"didCompile":false,"fqnsReferenced":[],"fullSource":"import { CfnHealthCheck } from \"aws-cdk-lib/aws-route53\";\n\nmonitoring.monitorSomething(something, {\n  addSomeAlarm: {\n    Warning: {\n      // ...other props\n      customTags: [\"route53-health-check\"],\n      metricAdjuster: Route53HealthCheckMetricAdjuster.INSTANCE,\n    },\n  },\n});\n\nconst alarms = monitoring.createdAlarmsWithTag(\"route53-health-check\");\n\nconst healthChecks = alarms.map(({ alarm }) => {\n  const id = getHealthCheckConstructId(alarm);\n\n  return new CfnHealthCheck(scope, id, {\n    healthCheckConfig: {\n      // ...other props\n      type: \"CLOUDWATCH_METRIC\",\n      alarmIdentifier: {\n        name: alarm.alarmName,\n        region: alarm.stack.region,\n      },\n    },\n  });\n});","syntaxKindCounter":{"11":4,"39":1,"80":33,"170":1,"207":1,"209":1,"210":1,"211":6,"212":7,"214":4,"215":1,"220":1,"242":1,"244":3,"245":1,"254":1,"261":3,"262":3,"273":1,"274":1,"276":1,"277":1,"304":9,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"a80733010f9c5bcb21584bc6221bcd944ae52add3b1bdb40b5334cae039653a5":{"translations":{"python":{"source":"class MyCustomizedLambdaFunctionMonitoring(LambdaFunctionMonitoring):\n    def widgets(self):\n        return []","version":"2"},"csharp":{"source":"class MyCustomizedLambdaFunctionMonitoring : LambdaFunctionMonitoring\n{\n    public void[] Widgets()\n    {\n        return new [] {  };\n    }\n}","version":"1"},"java":{"source":"public class MyCustomizedLambdaFunctionMonitoring extends LambdaFunctionMonitoring {\n    public void[] widgets() {\n        return List.of();\n    }\n}","version":"1"},"go":{"source":"type MyCustomizedLambdaFunctionMonitoring struct {\n\tLambdaFunctionMonitoring\n}\n\nfunc (this *MyCustomizedLambdaFunctionMonitoring) widgets() []interface{} {\n\treturn []interface{}{\n\t}\n}","version":"1"},"$":{"source":"export class MyCustomizedLambdaFunctionMonitoring extends LambdaFunctionMonitoring {\n  widgets(): IWidget[] {\n    return [\n      // Whatever widgets you want instead of what LambdaFunctionMonitoring has\n    ];\n  }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":347}},"didCompile":false,"fqnsReferenced":[],"fullSource":"export class MyCustomizedLambdaFunctionMonitoring extends LambdaFunctionMonitoring {\n  widgets(): IWidget[] {\n    return [\n      // Whatever widgets you want instead of what LambdaFunctionMonitoring has\n    ];\n  }\n}","syntaxKindCounter":{"80":4,"95":1,"175":1,"184":1,"189":1,"210":1,"234":1,"242":1,"254":1,"264":1,"299":1,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"86fa5d52b2cd87107a55fd30eb1ee1c9c78b7044d96e7986fa80906c4718e949":{"translations":{"python":{"source":"# facade: MonitoringFacade\n\nfacade.add_segment(\n    MyCustomizedLambdaFunctionMonitoring(facade))","version":"2"},"csharp":{"source":"MonitoringFacade facade;\n\nfacade.AddSegment(\nnew MyCustomizedLambdaFunctionMonitoring(facade, new Struct { }));","version":"1"},"java":{"source":"MonitoringFacade facade;\n\nfacade.addSegment(\nMyCustomizedLambdaFunctionMonitoring.Builder.create(facade).build());","version":"1"},"go":{"source":"var facade MonitoringFacade\n\nfacade.addSegment(\nNewMyCustomizedLambdaFunctionMonitoring(facade, map[string]interface{}{\n}))","version":"1"},"$":{"source":"declare const facade: MonitoringFacade;\n\nfacade.addSegment(\n  new MyCustomizedLambdaFunctionMonitoring(facade, {\n    // Props for LambdaFunctionMonitoring\n  }),\n);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":359}},"didCompile":false,"fqnsReferenced":[],"fullSource":"declare const facade: MonitoringFacade;\n\nfacade.addSegment(\n  new MyCustomizedLambdaFunctionMonitoring(facade, {\n    // Props for LambdaFunctionMonitoring\n  }),\n);","syntaxKindCounter":{"80":6,"138":1,"184":1,"211":1,"212":1,"214":1,"215":1,"244":1,"245":1,"261":1,"262":1,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"84c52091e4a9ec5fb9dead91a6b8b7a697b1d688414594a669e96ed83602d46f":{"translations":{"python":{"source":"# create the dynamic dashboard factory.\nfactory = DynamicDashboardFactory(stack, \"DynamicDashboards\",\n    dashboard_name_prefix=\"ExampleDashboards\",\n    dashboard_configs=[{\"name\": \"HostedService\"}, {\n        \"name\": \"Infrastructure\",\n        \"range\": Duration.hours(3),\n        \"period_override\": PeriodOverride.AUTO,\n        \"rendering_preference\": DashboardRenderingPreference.BITMAP_ONLY\n    }\n    ]\n)","version":"2"},"csharp":{"source":"// create the dynamic dashboard factory.\nvar factory = new DynamicDashboardFactory(stack, \"DynamicDashboards\", new Struct {\n    DashboardNamePrefix = \"ExampleDashboards\",\n    DashboardConfigs = new [] { new Struct { Name = \"HostedService\" }, new Struct {\n        Name = \"Infrastructure\",\n        Range = Duration.Hours(3),\n        PeriodOverride = PeriodOverride.AUTO,\n        RenderingPreference = DashboardRenderingPreference.BITMAP_ONLY\n    } }\n});","version":"1"},"java":{"source":"// create the dynamic dashboard factory.\nObject factory = DynamicDashboardFactory.Builder.create(stack, \"DynamicDashboards\")\n        .dashboardNamePrefix(\"ExampleDashboards\")\n        .dashboardConfigs(List.of(Map.of(\"name\", \"HostedService\"), Map.of(\n                \"name\", \"Infrastructure\",\n                \"range\", Duration.hours(3),\n                \"periodOverride\", PeriodOverride.getAUTO(),\n                \"renderingPreference\", DashboardRenderingPreference.getBITMAP_ONLY())))\n        .build();","version":"1"},"go":{"source":"// create the dynamic dashboard factory.\nfactory := NewDynamicDashboardFactory(stack, jsii.String(\"DynamicDashboards\"), map[string]interface{}{\n\t\"dashboardNamePrefix\": jsii.String(\"ExampleDashboards\"),\n\t\"dashboardConfigs\": []interface{}{\n\t\tmap[string]*string{\n\t\t\t\"name\": jsii.String(\"HostedService\"),\n\t\t},\n\t\tmap[string]interface{}{\n\t\t\t\"name\": jsii.String(\"Infrastructure\"),\n\t\t\t\"range\": Duration_hours(jsii.Number(3)),\n\t\t\t\"periodOverride\": PeriodOverride_AUTO,\n\t\t\t\"renderingPreference\": DashboardRenderingPreference_BITMAP_ONLY,\n\t\t},\n\t},\n})","version":"1"},"$":{"source":"// create the dynamic dashboard factory.\nconst factory = new DynamicDashboardFactory(stack, \"DynamicDashboards\", {\n  dashboardNamePrefix: \"ExampleDashboards\",\n  dashboardConfigs: [\n    // 'name' is the minimum required configuration\n    { name: \"HostedService\" },\n    // below is an example of additional dashboard-specific config options\n    {\n      name: \"Infrastructure\",\n      range: Duration.hours(3),\n      periodOverride: PeriodOverride.AUTO,\n      renderingPreference: DashboardRenderingPreference.BITMAP_ONLY,\n    },\n  ],\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":384}},"didCompile":false,"fqnsReferenced":[],"fullSource":"// create the dynamic dashboard factory.\nconst factory = new DynamicDashboardFactory(stack, \"DynamicDashboards\", {\n  dashboardNamePrefix: \"ExampleDashboards\",\n  dashboardConfigs: [\n    // 'name' is the minimum required configuration\n    { name: \"HostedService\" },\n    // below is an example of additional dashboard-specific config options\n    {\n      name: \"Infrastructure\",\n      range: Duration.hours(3),\n      periodOverride: PeriodOverride.AUTO,\n      renderingPreference: DashboardRenderingPreference.BITMAP_ONLY,\n    },\n  ],\n});","syntaxKindCounter":{"9":1,"11":4,"80":16,"210":1,"211":3,"212":3,"214":1,"215":1,"244":1,"261":1,"262":1,"304":7,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"dc70d20c9f64708a9802170192b483bb639d6a342fea1318d3538d2e563e0e57":{"translations":{"python":{"source":"export enum DashboardTypes {\n  HostedService = \"HostedService\",\n  Infrastructure = \"Infrastructure\",\n}\n\nclass ExampleSegment(IDynamicDashboardSegment):\n    def widgets_for_dashboard(self, name): switch (name) {\n              case DashboardTypes.HostedService:\n                return [\n                  new TextWidget({\n                    markdown:\n                      \"This shows metrics for your service hosted on AWS Infrastructure\",\n                  }),\n                ];\n              case DashboardTypes.Infrastructure:\n                return [\n                  new TextWidget({\n                    markdown:\n                      \"This shows metrics for the AWS Infrastructure supporting your hosted service\",\n                  }),\n                ];\n              default:\n                throw new Error(\"Unexpected dashboard name!\");\n            }","version":"2"},"csharp":{"source":"export enum DashboardTypes {\n  HostedService = \"HostedService\",\n  Infrastructure = \"Infrastructure\",\n}\n\nclass ExampleSegment : IDynamicDashboardSegment\n{\n    public void[] WidgetsForDashboard(string name)\n    {switch (name) {\n              case DashboardTypes.HostedService:\n                return [\n                  new TextWidget({\n                    markdown:\n                      \"This shows metrics for your service hosted on AWS Infrastructure\",\n                  }),\n                ];\n              case DashboardTypes.Infrastructure:\n                return [\n                  new TextWidget({\n                    markdown:\n                      \"This shows metrics for the AWS Infrastructure supporting your hosted service\",\n                  }),\n                ];\n              default:\n                throw new Error(\"Unexpected dashboard name!\");\n            }\n    }\n}","version":"1"},"java":{"source":"export enum DashboardTypes {\n  HostedService = \"HostedService\",\n  Infrastructure = \"Infrastructure\",\n}\n\npublic class ExampleSegment implements IDynamicDashboardSegment {\n    public void[] widgetsForDashboard(String name) {switch (name) {\n              case DashboardTypes.HostedService:\n                return [\n                  new TextWidget({\n                    markdown:\n                      \"This shows metrics for your service hosted on AWS Infrastructure\",\n                  }),\n                ];\n              case DashboardTypes.Infrastructure:\n                return [\n                  new TextWidget({\n                    markdown:\n                      \"This shows metrics for the AWS Infrastructure supporting your hosted service\",\n                  }),\n                ];\n              default:\n                throw new Error(\"Unexpected dashboard name!\");\n            }\n    }\n}","version":"1"},"go":{"source":"export enum DashboardTypes {\n  HostedService = \"HostedService\",\n  Infrastructure = \"Infrastructure\",\n}\n\ntype exampleSegment struct {\n}\n\nfunc (this *exampleSegment) widgetsForDashboard(name *string) []interface{} {switch (name) {\n\t      case DashboardTypes.HostedService:\n\t        return [\n\t          new TextWidget({\n\t            markdown:\n\t              \"This shows metrics for your service hosted on AWS Infrastructure\",\n\t          }),\n\t        ];\n\t      case DashboardTypes.Infrastructure:\n\t        return [\n\t          new TextWidget({\n\t            markdown:\n\t              \"This shows metrics for the AWS Infrastructure supporting your hosted service\",\n\t          }),\n\t        ];\n\t      default:\n\t        throw new Error(\"Unexpected dashboard name!\");\n\t    }\n}","version":"1"},"$":{"source":"export enum DashboardTypes {\n  HostedService = \"HostedService\",\n  Infrastructure = \"Infrastructure\",\n}\n\nclass ExampleSegment implements IDynamicDashboardSegment {\n  widgetsForDashboard(name: string): IWidget[] {\n    // this logic is what's responsible for allowing your dynamic segment to return\n    // different widgets for different dashboards\n    switch (name) {\n      case DashboardTypes.HostedService:\n        return [\n          new TextWidget({\n            markdown:\n              \"This shows metrics for your service hosted on AWS Infrastructure\",\n          }),\n        ];\n      case DashboardTypes.Infrastructure:\n        return [\n          new TextWidget({\n            markdown:\n              \"This shows metrics for the AWS Infrastructure supporting your hosted service\",\n          }),\n        ];\n      default:\n        throw new Error(\"Unexpected dashboard name!\");\n    }\n  }\n}","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":406}},"didCompile":false,"fqnsReferenced":[],"fullSource":"export enum DashboardTypes {\n  HostedService = \"HostedService\",\n  Infrastructure = \"Infrastructure\",\n}\n\nclass ExampleSegment implements IDynamicDashboardSegment {\n  widgetsForDashboard(name: string): IWidget[] {\n    // this logic is what's responsible for allowing your dynamic segment to return\n    // different widgets for different dashboards\n    switch (name) {\n      case DashboardTypes.HostedService:\n        return [\n          new TextWidget({\n            markdown:\n              \"This shows metrics for your service hosted on AWS Infrastructure\",\n          }),\n        ];\n      case DashboardTypes.Infrastructure:\n        return [\n          new TextWidget({\n            markdown:\n              \"This shows metrics for the AWS Infrastructure supporting your hosted service\",\n          }),\n        ];\n      default:\n        throw new Error(\"Unexpected dashboard name!\");\n    }\n  }\n}","syntaxKindCounter":{"11":5,"80":18,"95":1,"154":1,"170":1,"175":1,"184":1,"189":1,"210":2,"211":2,"212":2,"215":3,"234":1,"242":1,"254":2,"256":1,"258":1,"264":1,"267":1,"270":1,"297":2,"298":1,"299":1,"304":2,"307":2,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"c869b05a62fb61aa1a5ffa4074088395124483048aa30e8519c8aaa73edb3399":{"translations":{"python":{"source":"monitoring.add_dynamic_segment(ExampleSegment())","version":"2"},"csharp":{"source":"monitoring.AddDynamicSegment(new ExampleSegment());","version":"1"},"java":{"source":"monitoring.addDynamicSegment(new ExampleSegment());","version":"1"},"go":{"source":"monitoring.addDynamicSegment(NewExampleSegment())","version":"1"},"$":{"source":"monitoring.addDynamicSegment(new ExampleSegment());","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":442}},"didCompile":false,"fqnsReferenced":[],"fullSource":"monitoring.addDynamicSegment(new ExampleSegment());","syntaxKindCounter":{"80":3,"212":1,"214":1,"215":1,"245":1,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"b7bd4dad2d009bcdc9f72338d060d125b2b4de232d9553bfe736a8ad32999318":{"translations":{"python":{"source":"from cdk_monitoring_constructs import MetricFactoryDefaults\nMonitoringFacade(stack, \"Monitoring\",\n    metric_factory_defaults=MetricFactoryDefaults(\n        # Different region/account than what you're deploying to\n        region=\"us-west-2\",\n        account=\"01234567890\"\n    )\n)","version":"2"},"csharp":{"source":"new MonitoringFacade(stack, \"Monitoring\", new MonitoringFacadeProps {\n    MetricFactoryDefaults = new MetricFactoryDefaults {\n        // Different region/account than what you're deploying to\n        Region = \"us-west-2\",\n        Account = \"01234567890\"\n    }\n});","version":"1"},"java":{"source":"MonitoringFacade.Builder.create(stack, \"Monitoring\")\n        .metricFactoryDefaults(MetricFactoryDefaults.builder()\n                // Different region/account than what you're deploying to\n                .region(\"us-west-2\")\n                .account(\"01234567890\")\n                .build())\n        .build();","version":"1"},"go":{"source":"cdkmonitoringconstructs.NewMonitoringFacade(stack, jsii.String(\"Monitoring\"), &MonitoringFacadeProps{\n\tMetricFactoryDefaults: &MetricFactoryDefaults{\n\t\t// Different region/account than what you're deploying to\n\t\tRegion: jsii.String(\"us-west-2\"),\n\t\tAccount: jsii.String(\"01234567890\"),\n\t},\n})","version":"1"},"$":{"source":"new MonitoringFacade(stack, \"Monitoring\", {\n  metricFactoryDefaults: {\n    // Different region/account than what you're deploying to\n    region: \"us-west-2\",\n    account: \"01234567890\",\n  },\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":457}},"didCompile":true,"fqnsReferenced":["cdk-monitoring-constructs.MetricFactoryDefaults","cdk-monitoring-constructs.MonitoringFacade","cdk-monitoring-constructs.MonitoringFacadeProps"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nnew MonitoringFacade(stack, \"Monitoring\", {\n  metricFactoryDefaults: {\n    // Different region/account than what you're deploying to\n    region: \"us-west-2\",\n    account: \"01234567890\",\n  },\n});\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"11":3,"80":5,"211":2,"215":1,"245":1,"304":3},"fqnsFingerprint":"67a53da33a7a255c6e17a01193ee17713848adc235e6cff32b6e7b8bd035be70"},"53c84f98de03602c52516f4262addcc0c09e641c78ef15543c619c88b19a9886":{"translations":{"python":{"source":"monitoring.monitor_dynamo_table(\n    # Table from the same account/region\n    table=Table.from_table_name(stack, \"ImportedTable\", \"MyTableName\")\n).monitor_dynamo_table(\n    # Table from another account/region\n    table=Table.from_table_arn(stack, \"XaXrImportedTable\", \"arn:aws:dynamodb:us-west-2:01234567890:table/my-other-table\"),\n    region=\"us-west-2\",\n    account=\"01234567890\"\n)","version":"2"},"csharp":{"source":"monitoring.MonitorDynamoTable(new Struct {\n    // Table from the same account/region\n    Table = Table.FromTableName(stack, \"ImportedTable\", \"MyTableName\")\n}).MonitorDynamoTable(new Struct {\n    // Table from another account/region\n    Table = Table.FromTableArn(stack, \"XaXrImportedTable\", \"arn:aws:dynamodb:us-west-2:01234567890:table/my-other-table\"),\n    Region = \"us-west-2\",\n    Account = \"01234567890\"\n});","version":"1"},"java":{"source":"monitoring.monitorDynamoTable(Map.of(\n        // Table from the same account/region\n        \"table\", Table.fromTableName(stack, \"ImportedTable\", \"MyTableName\"))).monitorDynamoTable(Map.of(\n        // Table from another account/region\n        \"table\", Table.fromTableArn(stack, \"XaXrImportedTable\", \"arn:aws:dynamodb:us-west-2:01234567890:table/my-other-table\"),\n        \"region\", \"us-west-2\",\n        \"account\", \"01234567890\"));","version":"1"},"go":{"source":"monitoring.monitorDynamoTable(map[string]ITable{\n\t// Table from the same account/region\n\t\"table\": awscdk.Table_fromTableName(stack, jsii.String(\"ImportedTable\"), jsii.String(\"MyTableName\")),\n}).monitorDynamoTable(map[string]interface{}{\n\t// Table from another account/region\n\t\"table\": awscdk.Table_fromTableArn(stack, jsii.String(\"XaXrImportedTable\"), jsii.String(\"arn:aws:dynamodb:us-west-2:01234567890:table/my-other-table\")),\n\t\"region\": jsii.String(\"us-west-2\"),\n\t\"account\": jsii.String(\"01234567890\"),\n})","version":"1"},"$":{"source":"monitoring\n  .monitorDynamoTable({\n    // Table from the same account/region\n    table: Table.fromTableName(stack, \"ImportedTable\", \"MyTableName\"),\n  })\n  .monitorDynamoTable({\n    // Table from another account/region\n    table: Table.fromTableArn(\n      stack,\n      \"XaXrImportedTable\",\n      \"arn:aws:dynamodb:us-west-2:01234567890:table/my-other-table\",\n    ),\n    region: \"us-west-2\",\n    account: \"01234567890\",\n  });","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":469}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.aws_dynamodb.ITable","aws-cdk-lib.aws_dynamodb.Table#fromTableArn","aws-cdk-lib.aws_dynamodb.Table#fromTableName"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nmonitoring\n  .monitorDynamoTable({\n    // Table from the same account/region\n    table: Table.fromTableName(stack, \"ImportedTable\", \"MyTableName\"),\n  })\n  .monitorDynamoTable({\n    // Table from another account/region\n    table: Table.fromTableArn(\n      stack,\n      \"XaXrImportedTable\",\n      \"arn:aws:dynamodb:us-west-2:01234567890:table/my-other-table\",\n    ),\n    region: \"us-west-2\",\n    account: \"01234567890\",\n  });\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"11":6,"80":13,"211":2,"212":4,"214":4,"245":1,"304":4},"fqnsFingerprint":"386ddc383c632491fd50b1c873ab6683b12bcfe2725b96016f10f103a40f5b20"},"32560a7deb762e12b050d0049de05f288123646579ae9a40efefad48bc7fb370":{"translations":{"python":{"source":"monitoring.monitor_scope(stack,\n    # With optional configuration\n    lambda_={\n        \"props\": {\n            \"add_latency_p50_alarm\": {\n                \"Critical\": {\"max_latency\": Duration.seconds(10)}\n            }\n        }\n    },\n\n    # Some resources that aren't dependent on nodes (e.g. general metrics across instances/account) may be included\n    # by default, which can be explicitly disabled.\n    billing={\"enabled\": False},\n    ec2={\"enabled\": False},\n    elastic_cache={\"enabled\": False}\n)","version":"2"},"csharp":{"source":"monitoring.MonitorScope(stack, new Struct {\n    // With optional configuration\n    Lambda = new Struct {\n        Props = new Struct {\n            AddLatencyP50Alarm = new Struct {\n                Critical = new Struct { MaxLatency = Duration.Seconds(10) }\n            }\n        }\n    },\n\n    // Some resources that aren't dependent on nodes (e.g. general metrics across instances/account) may be included\n    // by default, which can be explicitly disabled.\n    Billing = new Struct { Enabled = false },\n    Ec2 = new Struct { Enabled = false },\n    ElasticCache = new Struct { Enabled = false }\n});","version":"1"},"java":{"source":"monitoring.monitorScope(stack, Map.of(\n        // With optional configuration\n        \"lambda\", Map.of(\n                \"props\", Map.of(\n                        \"addLatencyP50Alarm\", Map.of(\n                                \"Critical\", Map.of(\"maxLatency\", Duration.seconds(10))))),\n\n        // Some resources that aren't dependent on nodes (e.g. general metrics across instances/account) may be included\n        // by default, which can be explicitly disabled.\n        \"billing\", Map.of(\"enabled\", false),\n        \"ec2\", Map.of(\"enabled\", false),\n        \"elasticCache\", Map.of(\"enabled\", false)));","version":"1"},"go":{"source":"monitoring.monitorScope(stack, map[string]map[string]map[string]map[string]map[string]Duration{\n\t// With optional configuration\n\t\"lambda\": map[string]map[string]map[string]map[string]Duration{\n\t\t\"props\": map[string]map[string]map[string]Duration{\n\t\t\t\"addLatencyP50Alarm\": map[string]map[string]Duration{\n\t\t\t\t\"Critical\": map[string]Duration{\n\t\t\t\t\t\"maxLatency\": awscdk.Duration_seconds(jsii.Number(10)),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\n\t// Some resources that aren't dependent on nodes (e.g. general metrics across instances/account) may be included\n\t// by default, which can be explicitly disabled.\n\t\"billing\": map[string]*bool{\n\t\t\"enabled\": jsii.Boolean(false),\n\t},\n\t\"ec2\": map[string]*bool{\n\t\t\"enabled\": jsii.Boolean(false),\n\t},\n\t\"elasticCache\": map[string]*bool{\n\t\t\"enabled\": jsii.Boolean(false),\n\t},\n})","version":"1"},"$":{"source":"monitoring.monitorScope(stack, {\n  // With optional configuration\n  lambda: {\n    props: {\n      addLatencyP50Alarm: {\n        Critical: { maxLatency: Duration.seconds(10) },\n      },\n    },\n  },\n\n  // Some resources that aren't dependent on nodes (e.g. general metrics across instances/account) may be included\n  // by default, which can be explicitly disabled.\n  billing: { enabled: false },\n  ec2: { enabled: false },\n  elasticCache: { enabled: false },\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":499}},"didCompile":true,"fqnsReferenced":["aws-cdk-lib.Duration","aws-cdk-lib.Duration#seconds"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nmonitoring.monitorScope(stack, {\n  // With optional configuration\n  lambda: {\n    props: {\n      addLatencyP50Alarm: {\n        Critical: { maxLatency: Duration.seconds(10) },\n      },\n    },\n  },\n\n  // Some resources that aren't dependent on nodes (e.g. general metrics across instances/account) may be included\n  // by default, which can be explicitly disabled.\n  billing: { enabled: false },\n  ec2: { enabled: false },\n  elasticCache: { enabled: false },\n});\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"9":1,"80":16,"97":3,"211":8,"212":2,"214":2,"245":1,"304":11},"fqnsFingerprint":"bd6d981eb841a0f8be28d61d0bda1c1098a61b249fd10959fa5e24156b318703"},"bad8667b53073ee5b6a5e1c113794601e2513c3e7cdfb9be26d24cbf62a12fe3":{"translations":{"python":{"source":"# Clone alarms using a cloning-function\ncritical_alarms = monitoring.created_alarms_with_disambiguator(\"Critical\")\nclones = monitoring.clone_alarms(critical_alarms, (a) => {\n      // Define a new alarm that has values inspired by the original alarm\n      // Adjust some of those values using arbitrary, user-provided logic\n      return {\n        ...a.alarmDefinition.addAlarmProps,\n        actionsEnabled: false,\n        disambiguator: \"ClonedCritical\",\n        alarmDescription: \"Cloned alarm of \" + a.alarmDescription,\n        // Bump the threshold a bit\n        threshold: a.alarmDefinition.addAlarmProps.threshold * 1.1,\n        // Tighten the number of datapoints a bit\n        datapointsToAlarm: a.alarmDefinition.datapointsToAlarm - 1,\n        // Keep the same number of evaluation periods\n        evaluationPeriods: a.alarmDefinition.evaluationPeriods,\n      };\n    })","version":"2"},"csharp":{"source":"// Clone alarms using a cloning-function\nvar criticalAlarms = monitoring.CreatedAlarmsWithDisambiguator(\"Critical\");\nvar clones = monitoring.CloneAlarms(criticalAlarms, (a) => {\n  // Define a new alarm that has values inspired by the original alarm\n  // Adjust some of those values using arbitrary, user-provided logic\n  return {\n    ...a.alarmDefinition.addAlarmProps,\n    actionsEnabled: false,\n    disambiguator: \"ClonedCritical\",\n    alarmDescription: \"Cloned alarm of \" + a.alarmDescription,\n    // Bump the threshold a bit\n    threshold: a.alarmDefinition.addAlarmProps.threshold * 1.1,\n    // Tighten the number of datapoints a bit\n    datapointsToAlarm: a.alarmDefinition.datapointsToAlarm - 1,\n    // Keep the same number of evaluation periods\n    evaluationPeriods: a.alarmDefinition.evaluationPeriods,\n  };\n});","version":"1"},"java":{"source":"// Clone alarms using a cloning-function\nObject criticalAlarms = monitoring.createdAlarmsWithDisambiguator(\"Critical\");\nObject clones = monitoring.cloneAlarms(criticalAlarms, (a) => {\n  // Define a new alarm that has values inspired by the original alarm\n  // Adjust some of those values using arbitrary, user-provided logic\n  return {\n    ...a.alarmDefinition.addAlarmProps,\n    actionsEnabled: false,\n    disambiguator: \"ClonedCritical\",\n    alarmDescription: \"Cloned alarm of \" + a.alarmDescription,\n    // Bump the threshold a bit\n    threshold: a.alarmDefinition.addAlarmProps.threshold * 1.1,\n    // Tighten the number of datapoints a bit\n    datapointsToAlarm: a.alarmDefinition.datapointsToAlarm - 1,\n    // Keep the same number of evaluation periods\n    evaluationPeriods: a.alarmDefinition.evaluationPeriods,\n  };\n});","version":"1"},"go":{"source":"// Clone alarms using a cloning-function\ncriticalAlarms := monitoring.createdAlarmsWithDisambiguator(jsii.String(\"Critical\"))\nclones := monitoring.cloneAlarms(criticalAlarms, (a) => {\n  // Define a new alarm that has values inspired by the original alarm\n  // Adjust some of those values using arbitrary, user-provided logic\n  return {\n    ...a.alarmDefinition.addAlarmProps,\n    actionsEnabled: false,\n    disambiguator: \"ClonedCritical\",\n    alarmDescription: \"Cloned alarm of \" + a.alarmDescription,\n    // Bump the threshold a bit\n    threshold: a.alarmDefinition.addAlarmProps.threshold * 1.1,\n    // Tighten the number of datapoints a bit\n    datapointsToAlarm: a.alarmDefinition.datapointsToAlarm - 1,\n    // Keep the same number of evaluation periods\n    evaluationPeriods: a.alarmDefinition.evaluationPeriods,\n  };\n})","version":"1"},"$":{"source":"// Clone alarms using a cloning-function\nconst criticalAlarms = monitoring.createdAlarmsWithDisambiguator(\"Critical\");\nconst clones = monitoring.cloneAlarms(criticalAlarms, (a) => {\n  // Define a new alarm that has values inspired by the original alarm\n  // Adjust some of those values using arbitrary, user-provided logic\n  return {\n    ...a.alarmDefinition.addAlarmProps,\n    actionsEnabled: false,\n    disambiguator: \"ClonedCritical\",\n    alarmDescription: \"Cloned alarm of \" + a.alarmDescription,\n    // Bump the threshold a bit\n    threshold: a.alarmDefinition.addAlarmProps.threshold * 1.1,\n    // Tighten the number of datapoints a bit\n    datapointsToAlarm: a.alarmDefinition.datapointsToAlarm - 1,\n    // Keep the same number of evaluation periods\n    evaluationPeriods: a.alarmDefinition.evaluationPeriods,\n  };\n});","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":525}},"didCompile":false,"fqnsReferenced":[],"fullSource":"// Clone alarms using a cloning-function\nconst criticalAlarms = monitoring.createdAlarmsWithDisambiguator(\"Critical\");\nconst clones = monitoring.cloneAlarms(criticalAlarms, (a) => {\n  // Define a new alarm that has values inspired by the original alarm\n  // Adjust some of those values using arbitrary, user-provided logic\n  return {\n    ...a.alarmDefinition.addAlarmProps,\n    actionsEnabled: false,\n    disambiguator: \"ClonedCritical\",\n    alarmDescription: \"Cloned alarm of \" + a.alarmDescription,\n    // Bump the threshold a bit\n    threshold: a.alarmDefinition.addAlarmProps.threshold * 1.1,\n    // Tighten the number of datapoints a bit\n    datapointsToAlarm: a.alarmDefinition.datapointsToAlarm - 1,\n    // Keep the same number of evaluation periods\n    evaluationPeriods: a.alarmDefinition.evaluationPeriods,\n  };\n});","syntaxKindCounter":{"9":2,"11":3,"39":1,"40":1,"41":1,"42":1,"80":29,"97":1,"170":1,"211":1,"212":12,"214":2,"220":1,"227":3,"242":1,"244":2,"254":1,"261":2,"262":2,"304":6,"306":1,"308":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"237ae76225b4122d89d763d95eb3173d2ac48e30cb9b09ceb2b093d09d9086f4":{"translations":{"python":{"source":"# Clone critical alarms using a tighting scaling function\ncritical_alarms = monitoring.created_alarms_with_disambiguator(\"Critical\")\nrollback_alarms = monitoring.clone_alarms(critical_alarms,\n    ScaleAlarms(\n        disambiguator=\"Rollback\",\n        threshold_multiplier=0.8,\n        datapoints_to_alarm_multiplier=0.3,\n        evaluation_periods_multiplier=0.5\n    ))","version":"2"},"csharp":{"source":"// Clone critical alarms using a tighting scaling function\nvar criticalAlarms = monitoring.CreatedAlarmsWithDisambiguator(\"Critical\");\nvar rollbackAlarms = monitoring.CloneAlarms(criticalAlarms, ScaleAlarms(new ScaleAlarmsProps {\n    Disambiguator = \"Rollback\",\n    ThresholdMultiplier = 0.8,\n    DatapointsToAlarmMultiplier = 0.3,\n    EvaluationPeriodsMultiplier = 0.5\n}));","version":"1"},"java":{"source":"// Clone critical alarms using a tighting scaling function\nObject criticalAlarms = monitoring.createdAlarmsWithDisambiguator(\"Critical\");\nObject rollbackAlarms = monitoring.cloneAlarms(criticalAlarms, ScaleAlarms(ScaleAlarmsProps.builder()\n        .disambiguator(\"Rollback\")\n        .thresholdMultiplier(0.8)\n        .datapointsToAlarmMultiplier(0.3)\n        .evaluationPeriodsMultiplier(0.5)\n        .build()));","version":"1"},"go":{"source":"// Clone critical alarms using a tighting scaling function\ncriticalAlarms := monitoring.createdAlarmsWithDisambiguator(jsii.String(\"Critical\"))\nrollbackAlarms := monitoring.cloneAlarms(criticalAlarms, cdkmonitoringconstructs.ScaleAlarms(&ScaleAlarmsProps{\n\tDisambiguator: jsii.String(\"Rollback\"),\n\tThresholdMultiplier: jsii.Number(0.8),\n\tDatapointsToAlarmMultiplier: jsii.Number(0.3),\n\tEvaluationPeriodsMultiplier: jsii.Number(0.5),\n}))","version":"1"},"$":{"source":"// Clone critical alarms using a tighting scaling function\nconst criticalAlarms = monitoring.createdAlarmsWithDisambiguator(\"Critical\");\nconst rollbackAlarms = monitoring.cloneAlarms(\n  criticalAlarms,\n  ScaleAlarms({\n    disambiguator: \"Rollback\",\n    thresholdMultiplier: 0.8,\n    datapointsToAlarmMultiplier: 0.3,\n    evaluationPeriodsMultiplier: 0.5,\n  }),\n);","version":"0"}},"location":{"api":{"api":"moduleReadme","moduleFqn":"cdk-monitoring-constructs"},"field":{"field":"markdown","line":558}},"didCompile":true,"fqnsReferenced":["cdk-monitoring-constructs.ScaleAlarmsProps"],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\n// Clone critical alarms using a tighting scaling function\nconst criticalAlarms = monitoring.createdAlarmsWithDisambiguator(\"Critical\");\nconst rollbackAlarms = monitoring.cloneAlarms(\n  criticalAlarms,\n  ScaleAlarms({\n    disambiguator: \"Rollback\",\n    thresholdMultiplier: 0.8,\n    datapointsToAlarmMultiplier: 0.3,\n    evaluationPeriodsMultiplier: 0.5,\n  }),\n);\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"9":3,"11":2,"80":12,"211":1,"212":2,"214":3,"244":2,"261":2,"262":2,"304":4},"fqnsFingerprint":"b3f671131201e26b421b41ef5a70edc44a05518ffaef2aeb2b24bf9ff48b2c5b"},"56b736a653e3a1ec4debd373991626bf25aeb089ed2584e5986986409ebc0bd4":{"translations":{"python":{"source":"exports.handler = function (event, context, callback) {\n  return callback(null, \"<h1>Hello! This is a custom widget.</h1><pre>\" + JSON.stringify(event, null, 2) + \"</pre>\");\n}","version":"2"},"csharp":{"source":"exports.Handler = function (event, context, callback) {\n  return callback(null, \"<h1>Hello! This is a custom widget.</h1><pre>\" + JSON.stringify(event, null, 2) + \"</pre>\");\n};","version":"1"},"java":{"source":"exports.getHandler() = function (event, context, callback) {\n  return callback(null, \"<h1>Hello! This is a custom widget.</h1><pre>\" + JSON.stringify(event, null, 2) + \"</pre>\");\n};","version":"1"},"go":{"source":"exports.handler = function (event, context, callback) {\n  return callback(null, \"<h1>Hello! This is a custom widget.</h1><pre>\" + JSON.stringify(event, null, 2) + \"</pre>\");\n}","version":"1"},"$":{"source":"exports.handler = function (event, context, callback) {\n  return callback(null, \"<h1>Hello! This is a custom widget.</h1><pre>\" + JSON.stringify(event, null, 2) + \"</pre>\");\n};","version":"0"}},"location":{"api":{"api":"member","fqn":"cdk-monitoring-constructs.CustomWidgetProps","memberName":"handler"},"field":{"field":"markdown","line":3}},"didCompile":false,"fqnsReferenced":[],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nexports.handler = function (event, context, callback) {\n  return callback(null, \"<h1>Hello! This is a custom widget.</h1><pre>\" + JSON.stringify(event, null, 2) + \"</pre>\");\n};\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"9":1,"11":2,"40":2,"64":1,"80":9,"106":2,"170":3,"212":2,"214":2,"219":1,"227":3,"242":1,"245":1,"254":1},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"0c86c3982fc9d1542e1dbe53cfc0912eeeefc7f4d03236649ce116b6ae86331b":{"translations":{"python":{"source":"filter_expressions = [\"level = \\\"ERROR\\\"\"] | filterlevel = \"ERROR\"","version":"2"},"csharp":{"source":"filterExpressions = new [] { \"level = \\\"ERROR\\\"\" } | filter;level = \"ERROR\";","version":"1"},"java":{"source":"filterExpressions = List.of(\"level = \\\"ERROR\\\"\") | filter;level = \"ERROR\";","version":"1"},"go":{"source":"filterExpressions = []*string{\n\t\"level = \\\"ERROR\\\"\",\n} | filterlevel = \"ERROR\"","version":"1"},"$":{"source":"filterExpressions = [`level = \"ERROR\"`]\n// will be appended to the query as\n| filter level = \"ERROR\"","version":"0"}},"location":{"api":{"api":"member","fqn":"cdk-monitoring-constructs.LogMonitoringProps","memberName":"filterExpressions"},"field":{"field":"example"}},"didCompile":false,"fqnsReferenced":[],"fullSource":"// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport {\n  App,\n  Duration,\n  Stack,\n} from 'aws-cdk-lib';\nimport { IWidget, Metric, PeriodOverride, TextWidget } from 'aws-cdk-lib/aws-cloudwatch';\nimport { Table } from 'aws-cdk-lib/aws-dynamodb';\nimport { IFunction } from 'aws-cdk-lib/aws-lambda';\nimport { CfnHealthCheck } from 'aws-cdk-lib/aws-route53';\nimport { ITopic } from 'aws-cdk-lib/aws-sns';\nimport {\n  DashboardRenderingPreference,\n  DynamicDashboardFactory,\n  IAlarmActionStrategy,\n  IDynamicDashboardSegment,\n  LambdaFunctionMonitoring,\n  MetricStatistic,\n  MonitoringFacade,\n  Route53HealthCheckMetricAdjuster,\n  ScaleAlarms,\n  SnsAlarmActionStrategy,\n  multipleActions,\n  notifySns,\n  triggerLambda,\n} from 'cdk-monitoring-constructs';\n\nclass Fixture extends Stack {\n  constructor(scope: Construct, id: string) {\n    super(scope, id);\n\n    const stack = this;\n    const monitoring: any = new MonitoringFacade(this, \"FixtureMonitoring\");\n    const monitoringFacade: any = monitoring;\n    const onAlarmTopic: ITopic = undefined as any;\n    const something: any = undefined;\n    const m1 = new Metric({ namespace: \"Fixture\", metricName: \"Fixture\" });\n\n    function monitorCustom(props: any): any {\n      return monitoring.monitorCustom(props);\n    }\n\n    // Code snippet begins after !show marker below\n/// !show\nfilterExpressions = [`level = \"ERROR\"`]\n// will be appended to the query as\n| filter level = \"ERROR\"\n/// !hide\n// Code snippet ended before !hide marker above\n  }\n}\n","syntaxKindCounter":{"11":1,"15":1,"52":1,"64":2,"80":3,"210":1,"227":3,"245":2},"fqnsFingerprint":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}}}