diff --git a/.gitignore b/.gitignore index 6d9535e..884f3ee 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,8 @@ override.tf.json # Ignore CLI configuration files .terraformrc -terraform.rc \ No newline at end of file +terraform.rc +.DS_Store +SLO.xcworkspace/contents.xcworkspacedata +SLO.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +SLO.xcworkspace/xcuserdata/q281667.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/EMEA_PROD/slo/ICES_-_AmbientMusicAPI_-_EMEA_-_PROD.tf b/CN_PROD/slo/ICES_-_AmbientMusicAPI.tf similarity index 85% rename from EMEA_PROD/slo/ICES_-_AmbientMusicAPI_-_EMEA_-_PROD.tf rename to CN_PROD/slo/ICES_-_AmbientMusicAPI.tf index adb636d..0108df2 100644 --- a/EMEA_PROD/slo/ICES_-_AmbientMusicAPI_-_EMEA_-_PROD.tf +++ b/CN_PROD/slo/ICES_-_AmbientMusicAPI.tf @@ -1,11 +1,11 @@ -module ICES_-_AmbientMusicAPI_-_EMEA_-_PROD { +module ICES_-_AmbientMusicAPI { source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" - name = "ICES - AmbientMusicAPI - EMEA - PROD" + name = "ICES - AmbientMusicAPI" - description = "AmbientMusicAPI_Draft" + description = "AmbientMusicAPI" diff --git a/EMEA_PROD/slo/ICES_-_FestiveModeAPI_-_EMEA_-_PROD.tf b/CN_PROD/slo/ICES_-_FestiveModeAPI.tf similarity index 76% rename from EMEA_PROD/slo/ICES_-_FestiveModeAPI_-_EMEA_-_PROD.tf rename to CN_PROD/slo/ICES_-_FestiveModeAPI.tf index 4cdff13..4be1cee 100644 --- a/EMEA_PROD/slo/ICES_-_FestiveModeAPI_-_EMEA_-_PROD.tf +++ b/CN_PROD/slo/ICES_-_FestiveModeAPI.tf @@ -1,16 +1,16 @@ -module ICES_-_FestiveModeAPI_-_EMEA_-_PROD { +module ICES_-_FestiveModeAPI { source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" - name = "ICES - FestiveModeAPI - EMEA - PROD" + name = "ICES - FestiveModeAPI" - description = "FestivalModeApi_Draft" + description = "FestivalModeApi" #entity selector object - filter = "type(\"SERVICE\"),entityId(\"SERVICE-18F87DC705354AC6\")" + filter = "type(\"SERVICE\"),entityName(\"FestiveModeApi\"),tag(\"Environment:PROD\")" #metric expression of the calculation as done in data explorer ui diff --git a/CN_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf b/CN_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf new file mode 100644 index 0000000..82ca3f6 --- /dev/null +++ b/CN_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf @@ -0,0 +1,50 @@ +module ICES_AmbientMusicAPI_getTracks { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - AmbientMusicAPI - getTracks" + description = "AmbientMusicAPI_getTracks_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"AmbientMusicApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getTracks~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"AmbientMusicApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getTracks~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/CN_PROD/slo/ICES_FestiveModeAPI_getFestival.tf b/CN_PROD/slo/ICES_FestiveModeAPI_getFestival.tf new file mode 100644 index 0000000..df5f0d7 --- /dev/null +++ b/CN_PROD/slo/ICES_FestiveModeAPI_getFestival.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getFestival { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getFestival" + description = "FestiveModeAPI_getFestival_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestival~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestival~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/CN_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf b/CN_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf new file mode 100644 index 0000000..061a2bb --- /dev/null +++ b/CN_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getFestivals { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getFestivals" + description = "FestiveModeAPI_getFestivals_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestivals~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestivals~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/CN_PROD/slo/ICES_FestiveModeAPI_getIcon.tf b/CN_PROD/slo/ICES_FestiveModeAPI_getIcon.tf new file mode 100644 index 0000000..7f0bed6 --- /dev/null +++ b/CN_PROD/slo/ICES_FestiveModeAPI_getIcon.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getIcon { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getIcon" + description = "FestiveModeAPI_getIcon_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getIcon~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getIcon~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/CN_PROD/slo/ICES_FestiveModeAPI_getVideo.tf b/CN_PROD/slo/ICES_FestiveModeAPI_getVideo.tf new file mode 100644 index 0000000..270eaf8 --- /dev/null +++ b/CN_PROD/slo/ICES_FestiveModeAPI_getVideo.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getVideo { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getVideo" + description = "FestiveModeAPI_getVideo_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getVideo~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getVideo~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/ICES_-_AmbientMusicAPI.tf b/EMEA_PROD/slo/ICES_-_AmbientMusicAPI.tf new file mode 100644 index 0000000..0108df2 --- /dev/null +++ b/EMEA_PROD/slo/ICES_-_AmbientMusicAPI.tf @@ -0,0 +1,33 @@ +module ICES_-_AmbientMusicAPI { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - AmbientMusicAPI" + + description = "AmbientMusicAPI" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"AmbientMusicApiImpl\"),tag(\"Environment:PROD\")" + + + #metric expression of the calculation as done in data explorer ui + metric_expression = "(100)*((1)-( builtin:service.errors.fivexx.rate:splitBy():avg:auto:sort(value(avg,descending)):limit(10))/( builtin:service.requestCount.total:splitBy():sum:auto:sort(value(sum,descending)):limit(10)))" + + + #if not set (removed) it's defaulted to "-1d" + timeframe = "-1d" + + + #currently the only possible value + evaluation = "AGGREGATE" + + #Target and warning percentage of the SLO as double + target = 98 + #if not set(removed) it's defaulted to 98 + warning = 99 + #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/ICES_-_FestiveModeAPI.tf b/EMEA_PROD/slo/ICES_-_FestiveModeAPI.tf new file mode 100644 index 0000000..4be1cee --- /dev/null +++ b/EMEA_PROD/slo/ICES_-_FestiveModeAPI.tf @@ -0,0 +1,33 @@ +module ICES_-_FestiveModeAPI { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI" + + description = "FestivalModeApi" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"FestiveModeApi\"),tag(\"Environment:PROD\")" + + + #metric expression of the calculation as done in data explorer ui + metric_expression = "(100)*((1)-( builtin:service.errors.fivexx.rate:splitBy():avg:auto:sort(value(avg,descending)):limit(10))/( builtin:service.requestCount.total:splitBy():sum:auto:sort(value(sum,descending)):limit(10)))" + + + #if not set (removed) it's defaulted to "-1d" + timeframe = "-1d" + + + #currently the only possible value + evaluation = "AGGREGATE" + + #Target and warning percentage of the SLO as double + target = 98 + #if not set(removed) it's defaulted to 98 + warning = 99 + #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf b/EMEA_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf new file mode 100644 index 0000000..82ca3f6 --- /dev/null +++ b/EMEA_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf @@ -0,0 +1,50 @@ +module ICES_AmbientMusicAPI_getTracks { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - AmbientMusicAPI - getTracks" + description = "AmbientMusicAPI_getTracks_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"AmbientMusicApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getTracks~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"AmbientMusicApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getTracks~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/ICES_FestiveModeAPI_getFestival.tf b/EMEA_PROD/slo/ICES_FestiveModeAPI_getFestival.tf new file mode 100644 index 0000000..df5f0d7 --- /dev/null +++ b/EMEA_PROD/slo/ICES_FestiveModeAPI_getFestival.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getFestival { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getFestival" + description = "FestiveModeAPI_getFestival_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestival~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestival~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf b/EMEA_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf new file mode 100644 index 0000000..061a2bb --- /dev/null +++ b/EMEA_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getFestivals { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getFestivals" + description = "FestiveModeAPI_getFestivals_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestivals~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestivals~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/ICES_FestiveModeAPI_getIcon.tf b/EMEA_PROD/slo/ICES_FestiveModeAPI_getIcon.tf new file mode 100644 index 0000000..7f0bed6 --- /dev/null +++ b/EMEA_PROD/slo/ICES_FestiveModeAPI_getIcon.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getIcon { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getIcon" + description = "FestiveModeAPI_getIcon_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getIcon~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getIcon~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/EMEA_PROD/slo/ICES_FestiveModeAPI_getVideo.tf b/EMEA_PROD/slo/ICES_FestiveModeAPI_getVideo.tf new file mode 100644 index 0000000..270eaf8 --- /dev/null +++ b/EMEA_PROD/slo/ICES_FestiveModeAPI_getVideo.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getVideo { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getVideo" + description = "FestiveModeAPI_getVideo_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getVideo~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getVideo~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/NA_PROD/slo/ICES_-_AmbientMusicAPI.tf b/NA_PROD/slo/ICES_-_AmbientMusicAPI.tf new file mode 100644 index 0000000..0108df2 --- /dev/null +++ b/NA_PROD/slo/ICES_-_AmbientMusicAPI.tf @@ -0,0 +1,33 @@ +module ICES_-_AmbientMusicAPI { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - AmbientMusicAPI" + + description = "AmbientMusicAPI" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"AmbientMusicApiImpl\"),tag(\"Environment:PROD\")" + + + #metric expression of the calculation as done in data explorer ui + metric_expression = "(100)*((1)-( builtin:service.errors.fivexx.rate:splitBy():avg:auto:sort(value(avg,descending)):limit(10))/( builtin:service.requestCount.total:splitBy():sum:auto:sort(value(sum,descending)):limit(10)))" + + + #if not set (removed) it's defaulted to "-1d" + timeframe = "-1d" + + + #currently the only possible value + evaluation = "AGGREGATE" + + #Target and warning percentage of the SLO as double + target = 98 + #if not set(removed) it's defaulted to 98 + warning = 99 + #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/NA_PROD/slo/ICES_-_FestiveModeAPI.tf b/NA_PROD/slo/ICES_-_FestiveModeAPI.tf new file mode 100644 index 0000000..4be1cee --- /dev/null +++ b/NA_PROD/slo/ICES_-_FestiveModeAPI.tf @@ -0,0 +1,33 @@ +module ICES_-_FestiveModeAPI { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI" + + description = "FestivalModeApi" + + + + #entity selector object + filter = "type(\"SERVICE\"),entityName(\"FestiveModeApi\"),tag(\"Environment:PROD\")" + + + #metric expression of the calculation as done in data explorer ui + metric_expression = "(100)*((1)-( builtin:service.errors.fivexx.rate:splitBy():avg:auto:sort(value(avg,descending)):limit(10))/( builtin:service.requestCount.total:splitBy():sum:auto:sort(value(sum,descending)):limit(10)))" + + + #if not set (removed) it's defaulted to "-1d" + timeframe = "-1d" + + + #currently the only possible value + evaluation = "AGGREGATE" + + #Target and warning percentage of the SLO as double + target = 98 + #if not set(removed) it's defaulted to 98 + warning = 99 + #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/NA_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf b/NA_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf new file mode 100644 index 0000000..82ca3f6 --- /dev/null +++ b/NA_PROD/slo/ICES_AmbientMusicAPI_getTracks.tf @@ -0,0 +1,50 @@ +module ICES_AmbientMusicAPI_getTracks { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - AmbientMusicAPI - getTracks" + description = "AmbientMusicAPI_getTracks_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"AmbientMusicApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getTracks~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"AmbientMusicApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getTracks~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/NA_PROD/slo/ICES_FestiveModeAPI_getFestival.tf b/NA_PROD/slo/ICES_FestiveModeAPI_getFestival.tf new file mode 100644 index 0000000..df5f0d7 --- /dev/null +++ b/NA_PROD/slo/ICES_FestiveModeAPI_getFestival.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getFestival { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getFestival" + description = "FestiveModeAPI_getFestival_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestival~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestival~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/NA_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf b/NA_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf new file mode 100644 index 0000000..061a2bb --- /dev/null +++ b/NA_PROD/slo/ICES_FestiveModeAPI_getFestivals.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getFestivals { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getFestivals" + description = "FestiveModeAPI_getFestivals_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestivals~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getFestivals~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/NA_PROD/slo/ICES_FestiveModeAPI_getIcon.tf b/NA_PROD/slo/ICES_FestiveModeAPI_getIcon.tf new file mode 100644 index 0000000..7f0bed6 --- /dev/null +++ b/NA_PROD/slo/ICES_FestiveModeAPI_getIcon.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getIcon { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getIcon" + description = "FestiveModeAPI_getIcon_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getIcon~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getIcon~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file diff --git a/NA_PROD/slo/ICES_FestiveModeAPI_getVideo.tf b/NA_PROD/slo/ICES_FestiveModeAPI_getVideo.tf new file mode 100644 index 0000000..270eaf8 --- /dev/null +++ b/NA_PROD/slo/ICES_FestiveModeAPI_getVideo.tf @@ -0,0 +1,50 @@ +module ICES_FestiveModeAPI_getVideo { + + source = "../../_dynatrace-base-modules/dynatrace-service-level-objective" + + + name = "ICES - FestiveModeAPI - getVideo" + description = "FestiveModeAPI_getVideo_success_rate" + + + #entity selector object + filter = "" + + #metric expression of the calculation as done in data explorer ui + metric_expression = <<-EOT + +(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getVideo~" + )"))))):splitBy()) + / + (builtin:service.keyRequest.count.server:filter(and(or(in("dt.entity.service_method",entitySelector("type(service_method), + fromRelationship.isServiceMethodOfService( + type(~"SERVICE~"),entityName.in( + ~"FestiveModeApiImpl~" + ), + tag(~"Environment:PROD~") + ) + ,entityName.in( + ~"getVideo~" + )"))))):splitBy())) + +EOT + +#if not set (removed) it's defaulted to "-1d" +timeframe = "-1d" + +#currently the only possible value +evaluation = "AGGREGATE" + +#Target and warning percentage of the SLO as double +target = 98 #if not set(removed) it's defaulted to 98 +warning = 99 #if not set(removed) it's defaulted to 99 + +} \ No newline at end of file