@@ -64,7 +64,7 @@ locals {
6464 rules = [{
6565 action = " send"
6666 targets = [{
67- id = module.observability_instance .metrics_router_targets[local.metric_router_target_name].id
67+ id = module.metrics_router .metrics_router_targets[local.metric_router_target_name].id
6868 }]
6969 inclusion_filters = []
7070 }]
@@ -127,13 +127,13 @@ locals {
127127 at_cos_route = var. enable_at_event_routing_to_cos_bucket ? [{
128128 route_name = local.at_cos_route_name
129129 locations = [" *" , " global" ]
130- target_ids = [module.observability_instance .activity_tracker_targets[local.cos_target_name].id]
130+ target_ids = [module.activity_tracker .activity_tracker_targets[local.cos_target_name].id]
131131 }] : []
132132
133133 at_cloud_logs_route = var. enable_at_event_routing_to_cloud_logs ? [{
134134 route_name = local.at_cloud_logs_route_name
135135 locations = [" *" , " global" ]
136- target_ids = [module.observability_instance .activity_tracker_targets[local.cloud_logs_target_name].id]
136+ target_ids = [module.activity_tracker .activity_tracker_targets[local.cloud_logs_target_name].id]
137137 }] : []
138138
139139 apply_auth_policy = (var. skip_cos_kms_auth_policy || (length (coalesce (local. buckets_config , [])) == 0 )) ? 0 : 1
@@ -249,31 +249,33 @@ module "cloud_monitoring_crn_parser" {
249249 crn = var. existing_cloud_monitoring_crn
250250}
251251
252- module "observability_instance" {
253- depends_on = [time_sleep . wait_for_atracker_cos_authorization_policy ]
254- source = " terraform-ibm-modules/observability-instances/ibm"
255- version = " 3.5.2"
252+ module "cloud_monitoring" {
253+ count = var. cloud_monitoring_provision ? 1 : 0
254+ source = " terraform-ibm-modules/cloud-monitoring/ibm"
255+ version = " 1.2.1"
256+ region = var. region
257+ resource_group_id = module. resource_group . resource_group_id
258+ instance_name = local. cloud_monitoring_instance_name
259+ plan = var. cloud_monitoring_plan
260+ resource_tags = var. cloud_monitoring_tags
261+ access_tags = [] # TODO: Add support
262+ enable_platform_metrics = var. enable_platform_metrics
263+ service_endpoints = " public-and-private"
264+ }
265+
266+ module "cloud_logs" {
267+ count = var. cloud_logs_provision ? 1 : 0
268+ source = " terraform-ibm-modules/cloud-logs/ibm"
269+ version = " 1.3.0"
256270 region = var. region
257271 resource_group_id = module. resource_group . resource_group_id
258-
259- # IBM Cloud Monitoring
260- cloud_monitoring_provision = var. cloud_monitoring_provision
261- cloud_monitoring_instance_name = local. cloud_monitoring_instance_name
262- cloud_monitoring_plan = var. cloud_monitoring_plan
263- cloud_monitoring_tags = var. cloud_monitoring_tags
264- cloud_monitoring_service_endpoints = " public-and-private"
265- enable_platform_metrics = var. enable_platform_metrics
266-
267- # IBM Cloud Logs
268- cloud_logs_provision = var. cloud_logs_provision
269- cloud_logs_instance_name = local. cloud_logs_instance_name
270- cloud_logs_plan = " standard"
271- cloud_logs_access_tags = var. cloud_logs_access_tags
272- cloud_logs_tags = var. cloud_logs_tags
273- cloud_logs_service_endpoints = " public-and-private"
274- cloud_logs_retention_period = var. cloud_logs_retention_period
275- cloud_logs_policies = var. cloud_logs_policies
276- cloud_logs_data_storage = var. cloud_logs_provision ? {
272+ instance_name = local. cloud_logs_instance_name
273+ plan = " standard"
274+ resource_tags = var. cloud_logs_tags
275+ access_tags = var. cloud_logs_access_tags
276+ retention_period = var. cloud_logs_retention_period
277+ service_endpoints = " public-and-private"
278+ data_storage = var. cloud_logs_provision ? {
277279 logs_data = {
278280 enabled = true
279281 bucket_crn = local.cloud_logs_data_bucket_crn
@@ -297,17 +299,37 @@ module "observability_instance" {
297299 skip_cos_auth_policy = nonsensitive (var. ibmcloud_cos_api_key ) != null ? true : var.skip_cloud_logs_cos_auth_policy
298300 }
299301 } : null
300- cloud_logs_existing_en_instances = [for index , _ in local . cloud_logs_existing_en_instances : {
302+ existing_event_notifications_instances = [for index , _ in local . cloud_logs_existing_en_instances : {
301303 en_instance_id = module.en_crn_parser[index][" service_instance" ]
302304 en_region = module.en_crn_parser[index][" region" ]
303305 en_integration_name = try (" ${ local . prefix } -${ local . cloud_logs_existing_en_instances [index ][" integration_name" ]} " , local. cloud_logs_existing_en_instances [index ][" integration_name" ])
304306 skip_en_auth_policy = local.cloud_logs_existing_en_instances[index][" skip_en_auth_policy" ]
305307 }]
306- skip_logs_routing_auth_policy = var. skip_logs_routing_auth_policy
307308 logs_routing_tenant_regions = var. logs_routing_tenant_regions
309+ skip_logs_routing_auth_policy = var. skip_logs_routing_auth_policy
310+ policies = var. cloud_logs_policies
311+ }
312+
313+ module "metrics_router" {
314+ source = " terraform-ibm-modules/cloud-monitoring/ibm//modules/metrics_routing"
315+ version = " 1.2.1"
316+ metrics_router_targets = var. enable_metrics_routing_to_cloud_monitoring ? [
317+ {
318+ destination_crn = var.cloud_monitoring_provision ? module.cloud_monitoring[0 ].crn : var.existing_cloud_monitoring_crn
319+ target_name = local.metric_router_target_name
320+ target_region = var.cloud_monitoring_provision ? var.region : module.cloud_monitoring_crn_parser[0 ].region
321+ skip_metrics_router_auth_policy = false
322+ }
323+ ] : []
324+ metrics_router_routes = var. enable_metrics_routing_to_cloud_monitoring ? (length (var. metrics_router_routes ) != 0 ? var. metrics_router_routes : local. default_metrics_router_route ) : []
325+ metrics_router_settings = var. enable_metrics_routing_to_cloud_monitoring ? (var. metrics_router_settings != null ? var. metrics_router_settings : local. metrics_router_settings ) : null
326+ }
308327
309- # Activity Tracker
310- at_cos_targets = var. enable_at_event_routing_to_cos_bucket ? [
328+ module "activity_tracker" {
329+ depends_on = [time_sleep . wait_for_atracker_cos_authorization_policy ]
330+ source = " terraform-ibm-modules/activity-tracker/ibm"
331+ version = " 1.0.0"
332+ cos_targets = var. enable_at_event_routing_to_cos_bucket ? [
311333 {
312334 bucket_name = local.cos_target_bucket_name
313335 endpoint = local.cos_target_bucket_endpoint
@@ -318,32 +340,14 @@ module "observability_instance" {
318340 service_to_service_enabled = true
319341 }
320342 ] : []
321-
322- at_cloud_logs_targets = var. enable_at_event_routing_to_cloud_logs ? [
343+ cloud_logs_targets = var. enable_at_event_routing_to_cloud_logs ? [
323344 {
324- instance_id = module.observability_instance.cloud_logs_crn
345+ instance_id = module.cloud_logs[ 0 ].crn
325346 target_region = var.region
326347 target_name = local.cloud_logs_target_name
327348 }
328349 ] : []
329-
330- # Routes
331350 activity_tracker_routes = local. at_routes
332-
333- # IBM Cloud Metrics Routing
334-
335- metrics_router_targets = var. enable_metrics_routing_to_cloud_monitoring ? [
336- {
337- destination_crn = var.cloud_monitoring_provision ? module.observability_instance.cloud_monitoring_crn : var.existing_cloud_monitoring_crn
338- target_name = local.metric_router_target_name
339- target_region = var.cloud_monitoring_provision ? var.region : module.cloud_monitoring_crn_parser[0 ].region
340- skip_mrouter_sysdig_iam_auth_policy = false
341- }
342- ] : []
343-
344- metrics_router_routes = var. enable_metrics_routing_to_cloud_monitoring ? (length (var. metrics_router_routes ) != 0 ? var. metrics_router_routes : local. default_metrics_router_route ) : []
345-
346- metrics_router_settings = var. enable_metrics_routing_to_cloud_monitoring ? (var. metrics_router_settings != null ? var. metrics_router_settings : local. metrics_router_settings ) : null
347351}
348352
349353resource "time_sleep" "wait_for_atracker_cos_authorization_policy" {
@@ -510,7 +514,7 @@ module "cos_bucket" {
510514 usage_metrics_enabled = true
511515 request_metrics_enabled = true
512516 # if DA is creating monitoring instance, use that. If its passing existing instance, use that. If neither, pass null, meaning metrics are sent to the instance associated to the container's location unless otherwise specified in the Metrics Router service configuration.
513- metrics_monitoring_crn = var.cloud_monitoring_provision ? module.observability_instance.cloud_monitoring_crn : var.existing_cloud_monitoring_crn != null ? var.existing_cloud_monitoring_crn : null
517+ metrics_monitoring_crn = var.cloud_monitoring_provision ? module.cloud_monitoring[ 0 ].crn : var.existing_cloud_monitoring_crn != null ? var.existing_cloud_monitoring_crn : null
514518 }
515519 activity_tracking = {
516520 read_data_events = true
0 commit comments