Merge remote-tracking branch 'origin/master' into A_sloFix
# Conflicts: # EMEA_PROD/slo/TP_Mobile_PersonalFavorites.tfPerseusSLO
commit
6e91d5a271
|
|
@ -1,26 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.10.0"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
|
||||
backend "s3" {
|
||||
bucket = "coco-dynatrace-tfstate"
|
||||
key = "eupreprod/calculated_service_metrics/terraform.tfstate"
|
||||
region = "eu-central-1"
|
||||
dynamodb_table = "coco-dynatrace-tfstate"
|
||||
encrypt = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
variable EMEA_PREPROD_ENV_URL {}
|
||||
variable EMEA_PREPROD_API_TOKEN {}
|
||||
|
||||
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.EMEA_PREPROD_ENV_URL}"
|
||||
dt_api_token = "${var.EMEA_PREPROD_API_TOKEN}"
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
module TP_Mobile_VehicleData {
|
||||
|
||||
source = "../../_dynatrace-base-modules/dynatrace-custom-anomalies"
|
||||
|
||||
|
||||
name = "TP_Mobile_VehicleData"
|
||||
|
||||
metric_selector = "${data.terraform_remote_state.slo.outputs.TP_Mobile_VehicleData_metric}"
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.11.0"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
|
||||
backend "s3" {
|
||||
bucket = "coco-dynatrace-tfstate"
|
||||
key = "EMEA_PROD/custom_anomalies/terraform.tfstate"
|
||||
region = "eu-central-1"
|
||||
dynamodb_table = "coco-dynatrace-tfstate"
|
||||
encrypt = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
variable EMEA_PROD_ENV_URL {}
|
||||
variable EMEA_PROD_API_TOKEN {}
|
||||
|
||||
|
||||
provider "dynatrace" {
|
||||
dt_env_url = "${var.EMEA_PROD_ENV_URL}"
|
||||
dt_api_token = "${var.EMEA_PROD_API_TOKEN}"
|
||||
|
||||
}
|
||||
|
||||
data "terraform_remote_state" "slo" {
|
||||
backend = "s3"
|
||||
config = {
|
||||
bucket = "coco-dynatrace-tfstate"
|
||||
key = "EMEA_PROD/slo/terraform.tfstate"
|
||||
region = "eu-central-1"
|
||||
encrypt = true
|
||||
dynamodb_table = "coco-dynatrace-tfstate"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
module ICES_-_AmbientMusicAPI_-_EMEA_-_PROD {
|
||||
|
||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||
|
||||
|
||||
name = "ICES - AmbientMusicAPI - EMEA - PROD"
|
||||
|
||||
description = "AmbientMusicAPI_Draft"
|
||||
|
||||
|
||||
|
||||
#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
|
||||
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@ module TP_Mobile_DigitalKey {
|
|||
#metric expression of the calculation as done in data explorer ui
|
||||
metric_expression = <<-EOT
|
||||
(100)*
|
||||
((builtin:service.keyRequest.errors.server.successCount:filter(
|
||||
((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(
|
||||
and(
|
||||
or(
|
||||
in(
|
||||
|
|
@ -56,7 +56,6 @@ module TP_Mobile_DigitalKey {
|
|||
)")
|
||||
)
|
||||
))):splitBy()))
|
||||
"
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -69,4 +68,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_DigitalKey_metric" {
|
||||
value = module.TP_Mobile_DigitalKey.metric_expression
|
||||
}
|
||||
|
|
@ -54,7 +54,6 @@ module TP_Mobile_Login {
|
|||
)")
|
||||
)
|
||||
))):splitBy()))
|
||||
"
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -67,4 +66,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_Login_metric" {
|
||||
value = module.TP_Mobile_Login.metric_expression
|
||||
}
|
||||
|
|
@ -59,7 +59,7 @@ module TP_Mobile_Mapping {
|
|||
~"DELETE /api/v1/vehicles/<VIN>~"
|
||||
)")
|
||||
)
|
||||
))):splitBy()))"
|
||||
))):splitBy()))
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -72,4 +72,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_Mapping_metric" {
|
||||
value = module.TP_Mobile_Mapping.metric_expression
|
||||
}
|
||||
|
|
@ -71,8 +71,12 @@ module TP_Mobile_PersonalFavorites {
|
|||
~"PUT /api/v2/favorites/homework/2~"
|
||||
)")
|
||||
)
|
||||
<<<<<<< HEAD
|
||||
))):splitBy()))"
|
||||
>>>>>>> b81834091683d952e2d1521baba73fa2ab118d03
|
||||
=======
|
||||
))):splitBy()))
|
||||
>>>>>>> origin/master
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -85,4 +89,9 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
|
||||
output "TP_Mobile_PersonalFavorites_metric" {
|
||||
value = module.TP_Mobile_PersonalFavorites.metric_expression
|
||||
}
|
||||
|
|
@ -61,7 +61,7 @@ module TP_Mobile_Remote360 {
|
|||
~"GET /recordings/vehicle/$vin~"
|
||||
)")
|
||||
)
|
||||
))):splitBy()))"
|
||||
))):splitBy()))
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -74,4 +74,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_Remote360_metric" {
|
||||
value = module.TP_Mobile_Remote360.metric_expression
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ module TP_Mobile_RemoteServices {
|
|||
~"GET /api/v2/presentation/remote-commands/eventStatus~"
|
||||
)")
|
||||
)
|
||||
))):splitBy()))"
|
||||
))):splitBy()))
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -78,4 +78,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_RemoteServices_metric" {
|
||||
value = module.TP_Mobile_RemoteServices.metric_expression
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@ module TP_Mobile_Send2VehicleLegacy {
|
|||
#metric expression of the calculation as done in data explorer ui
|
||||
metric_expression = <<-EOT
|
||||
(100)*
|
||||
((builtin:service.keyRequest.errors.server.successCount:filter(
|
||||
((builtin:service.errors.server.successCount:filter(
|
||||
and(
|
||||
or(
|
||||
in(
|
||||
|
|
@ -26,7 +26,7 @@ module TP_Mobile_Send2VehicleLegacy {
|
|||
)
|
||||
)
|
||||
)):splitBy())/
|
||||
(builtin:service.keyRequest.count.server:filter(
|
||||
(builtin:service.requestCount.total:filter(
|
||||
and(
|
||||
or(
|
||||
in(
|
||||
|
|
@ -38,7 +38,7 @@ module TP_Mobile_Send2VehicleLegacy {
|
|||
")
|
||||
)
|
||||
)
|
||||
)):splitBy()))"
|
||||
)):splitBy()))
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -51,4 +51,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_Send2VehicleLegacy_metric" {
|
||||
value = module.TP_Mobile_Send2VehicleLegacy.metric_expression
|
||||
}
|
||||
|
|
@ -26,8 +26,8 @@ module TP_Mobile_Send2VehicleMGU {
|
|||
)
|
||||
)
|
||||
,entityName.in(
|
||||
~"/v2/motorist/[UUID]/trips",
|
||||
~"/v3/motorist/[UUID]/trips"
|
||||
~"/v2/motorist/[UUID]/trips~",
|
||||
~"/v3/motorist/[UUID]/trips~"
|
||||
)")
|
||||
)
|
||||
))):splitBy())
|
||||
|
|
@ -45,11 +45,11 @@ module TP_Mobile_Send2VehicleMGU {
|
|||
)
|
||||
)
|
||||
,entityName.in(
|
||||
~"/v2/motorist/[UUID]/trips",
|
||||
~"/v3/motorist/[UUID]/trips"
|
||||
~"/v2/motorist/[UUID]/trips~",
|
||||
~"/v3/motorist/[UUID]/trips~"
|
||||
)")
|
||||
)
|
||||
))):splitBy()))"
|
||||
))):splitBy()))
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -62,4 +62,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_Send2VehicleMGU_metric" {
|
||||
value = module.TP_Mobile_Send2VehicleMGU.metric_expression
|
||||
}
|
||||
|
|
@ -51,7 +51,7 @@ module TP_Mobile_VehicleData {
|
|||
~"GET /v1/vehicle/<VIN>~"
|
||||
)")
|
||||
)
|
||||
))):splitBy())"
|
||||
))):splitBy()))
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -64,4 +64,9 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
|
||||
output "TP_Mobile_VehicleData_metric" {
|
||||
value = module.TP_Mobile_VehicleData.metric_expression
|
||||
}
|
||||
|
|
@ -45,7 +45,7 @@ module TP_Mobile_VehicleList {
|
|||
~"GET /api/v1/vehicles~"
|
||||
)")
|
||||
)
|
||||
))):splitBy()))"
|
||||
))):splitBy()))
|
||||
EOT
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
|
|
@ -58,4 +58,8 @@ evaluation = "AGGREGATE"
|
|||
target = 98 #if not set(removed) it's defaulted to 98
|
||||
warning = 99 #if not set(removed) it's defaulted to 99
|
||||
|
||||
}
|
||||
|
||||
output "TP_Mobile_VehicleList_metric" {
|
||||
value = module.TP_Mobile_VehicleList.metric_expression
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@ module VDM_-_RSU_-_EMEA_E2E {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-813D7B449863A9A0\",\"SERVICE_METHOD-8612BFC9B4209B21\",\"SERVICE_METHOD-D08B1FE048BED1B2\",\"SERVICE_METHOD-6C0299941A0E4C1E\",\"SERVICE_METHOD-D3B134F2B9885DB4\",\"SERVICE_METHOD-2FDB1E822AB158CB\",\"SERVICE_METHOD-BCF86BC6AE79F7B6\",\"SERVICE_METHOD-90A5C9D32DD1BD20\",\"SERVICE_METHOD-37FE8C49B7111F7C\",\"SERVICE_METHOD-1A77D5DCF7CE235E\",\"SERVICE_METHOD-E4E3286247AA8BEB\")"
|
||||
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-838A33198DB71C3D\",\"SERVICE_METHOD-544D9A523951DD9D\",\"SERVICE_METHOD-C7C7E7E30134CC4D\",\"SERVICE_METHOD-F5D48F6F3C9BB5A5\",\"SERVICE_METHOD-8C07F6C47928DCE1\",\"SERVICE_METHOD-EC33958252EFBE2D\",\"SERVICE_METHOD-887AD0E6454A03AD\",\"SERVICE_METHOD-C6618A2B5214ED42\",\"SERVICE_METHOD-0700CD81C580BCFE\",\"SERVICE_METHOD-C2A96AF76A2B3357\",\"SERVICE_METHOD-415422AFEC4E5C30\")"
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VDM_-_RSU_-_EMEA_PROD {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-9AF7A9302E71A3BE\",\"SERVICE_METHOD-360C23BA44FD151A\",\"SERVICE_METHOD-BC4D2349C378287A\",\"SERVICE_METHOD-DD5CDB7B683E508E\",\"SERVICE_METHOD-A96EF549D37C4AD7\",\"SERVICE_METHOD-BBD8F64F76C87670\",\"SERVICE_METHOD-674F670A27DDAB92\",\"SERVICE_METHOD-892AFAED1C4C45C2\",\"SERVICE_METHOD-BDCD96EFA6AFF21F\",\"SERVICE_METHOD-7B91EB6EF6AAABD0\",\"SERVICE_METHOD-C291996956CD2A5E\")"
|
||||
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-D326B245FDB9D1ED\",\"SERVICE_METHOD-9302D3E7A92ADDFA\",\"SERVICE_METHOD-906DE650C315D350\",\"SERVICE_METHOD-D8A1844CE8071821\",\"SERVICE_METHOD-0DA998BAE52F2411\",\"SERVICE_METHOD-A4E2775F8C482FAA\",\"SERVICE_METHOD-134EDF22BE9DD08C\",\"SERVICE_METHOD-F88AA0117B1EAFE8\",\"SERVICE_METHOD-66102B135997AC0F\",\"SERVICE_METHOD-09E14021A51BFE1E\",\"SERVICE_METHOD-2C35BCA5F6C89C41\")"
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Error_Latency_2000ms_Rate {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(\"SERVICE_METHOD\")"
|
||||
filter = ""
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Error_Latency_500ms_Rate {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(\"SERVICE_METHOD\")"
|
||||
filter = ""
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Error_Latency_700ms_Rate {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(\"SERVICE_METHOD\")"
|
||||
filter = ""
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VehicleFeaturesService_-_Vehicle_Features_V2_Success_Rate {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(\"SERVICE_METHOD\")"
|
||||
filter = ""
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VehicleService_-_Vehicle_State_Latency_1500ms_Rate {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(\"SERVICE_METHOD\")"
|
||||
filter = ""
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VehicleService_-_Vehicle_State_Latency_3000ms_Rate {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(\"SERVICE_METHOD\")"
|
||||
filter = ""
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module VehicleService_-_Vehicle_State_Latency_500ms_Rate {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(\"SERVICE_METHOD\")"
|
||||
filter = ""
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ module Wirkkette__DigitalKey__SMACC___-_Reliability_of_key_requests {
|
|||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
metric_expression = "(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-9A8FBF8D27F9D30D~\",~\"SERVICE_METHOD-6F6D2E5C26B28D4D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10))/(builtin:service.keyRequest.count.server:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-9A8FBF8D27F9D30D~\",~\"SERVICE_METHOD-6F6D2E5C26B28D4D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)))"
|
||||
|
||||
metric_expression = "(100)*((1)-(builtin:service.keyRequest.errors.fivexx.count:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-EA852E5283881C68~\",~\"SERVICE_METHOD-6FA84708A746BE9D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10))/(builtin:service.keyRequest.count.server:filter(and(in(\"dt.entity.service_method\",entitySelector(\"type(service_method),entityId(~\"SERVICE_METHOD-EA852E5283881C68~\",~\"SERVICE_METHOD-6FA84708A746BE9D~\",~\"SERVICE_METHOD-C5331A994ED8A635~\",~\"SERVICE_METHOD-EFCBA1A015A4AD29~\")\")))):splitBy():avg:auto:sort(value(avg,descending)):limit(10)))"
|
||||
|
||||
|
||||
#if not set (removed) it's defaulted to "-1d"
|
||||
timeframe = "-1d"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
module Wirkkette__News_Next__-_Reliability_of_key_requests {
|
||||
module Wirkkette__Podcast__Service__-_Reliability_of_key_requests {
|
||||
|
||||
source = "../../_dynatrace-base-modules/dynatrace-service-level-objective"
|
||||
|
||||
|
||||
name = "Wirkkette \"News Next\" - Reliability of key requests"
|
||||
name = "Wirkkette \"Podcast Service\" - Reliability of key requests"
|
||||
|
||||
description = "CoCo-QM-Report_Vehicle"
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ module Wirkkette__RSU__-_Reliability_of_key_requests {
|
|||
|
||||
|
||||
#entity selector object
|
||||
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-360C23BA44FD151A\",\"SERVICE_METHOD-9AF7A9302E71A3BE\",\"SERVICE_METHOD-BC4D2349C378287A\",\"SERVICE_METHOD-DD5CDB7B683E508E\",\"SERVICE_METHOD-BBD8F64F76C87670\",\"SERVICE_METHOD-674F670A27DDAB92\",\"SERVICE_METHOD-892AFAED1C4C45C2\",\"SERVICE_METHOD-7B91EB6EF6AAABD0\",\"SERVICE_METHOD-C291996956CD2A5E\",\"SERVICE_METHOD-A96EF549D37C4AD7\",\"SERVICE_METHOD-BDCD96EFA6AFF21F\")"
|
||||
filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-D326B245FDB9D1ED\",\"SERVICE_METHOD-9302D3E7A92ADDFA\",\"SERVICE_METHOD-906DE650C315D350\",\"SERVICE_METHOD-D8A1844CE8071821\",\"SERVICE_METHOD-0DA998BAE52F2411\",\"SERVICE_METHOD-A4E2775F8C482FAA\",\"SERVICE_METHOD-134EDF22BE9DD08C\",\"SERVICE_METHOD-F88AA0117B1EAFE8\",\"SERVICE_METHOD-66102B135997AC0F\",\"SERVICE_METHOD-09E14021A51BFE1E\",\"SERVICE_METHOD-2C35BCA5F6C89C41\")"
|
||||
#filter = "type(SERVICE_METHOD), entityId(\"SERVICE_METHOD-360C23BA44FD151A\",\"SERVICE_METHOD-9AF7A9302E71A3BE\",\"SERVICE_METHOD-BC4D2349C378287A\",\"SERVICE_METHOD-DD5CDB7B683E508E\",\"SERVICE_METHOD-BBD8F64F76C87670\",\"SERVICE_METHOD-674F670A27DDAB92\",\"SERVICE_METHOD-892AFAED1C4C45C2\",\"SERVICE_METHOD-7B91EB6EF6AAABD0\",\"SERVICE_METHOD-C291996956CD2A5E\",\"SERVICE_METHOD-A96EF549D37C4AD7\",\"SERVICE_METHOD-BDCD96EFA6AFF21F\")"
|
||||
|
||||
|
||||
#metric expression of the calculation as done in data explorer ui
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
# General Variables
|
||||
variable "name" { default = "" }
|
||||
variable "description" { default = "The {metricname} value of {severity} was {alert_condition} your custom threshold of {threshold}." }
|
||||
variable "ownerMail" { default = "" }
|
||||
|
||||
variable "enabled" { default = true } //currently nothing else possible
|
||||
|
||||
#Target and warning percentage of the SLO as integer
|
||||
variable "severity" { default = "CUSTOM_ALERT" }
|
||||
|
||||
#Metrics to be evaluated, must result in a percentage metric
|
||||
variable "metric_selector" { default = "" }
|
||||
|
||||
variable "alert_condition" { default = "BELOW" }
|
||||
variable "alerting_on_missing_data" { default = true }
|
||||
variable "dealerting_samples" { default = 15 }
|
||||
variable "samples" { default = 15 }
|
||||
variable "threshold" { default = 10 }
|
||||
variable "unit" { default = "UNSPECIFIED" }
|
||||
variable "violating_samples" { default = 5 }
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dynatrace = {
|
||||
version = "1.11.0"
|
||||
source = "dynatrace-oss/dynatrace"
|
||||
}
|
||||
}
|
||||
}
|
||||
resource dynatrace_custom_anomalies main {
|
||||
name = "${var.name}"
|
||||
description = "${var.description}"
|
||||
enabled = "${var.enabled}"
|
||||
metric_selector = trimspace("${var.metric_selector}")
|
||||
severity = "${var.severity}"
|
||||
strategy {
|
||||
static {
|
||||
alert_condition = "${var.alert_condition}"
|
||||
alerting_on_missing_data = "${var.alerting_on_missing_data}"
|
||||
dealerting_samples = "${var.dealerting_samples}"
|
||||
samples = "${var.samples}"
|
||||
threshold = "${var.threshold}"
|
||||
unit = "${var.unit}"
|
||||
violating_samples = "${var.violating_samples}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -24,3 +24,11 @@ resource dynatrace_slo main {
|
|||
output "id" {
|
||||
value = dynatrace_slo.main.id
|
||||
}
|
||||
|
||||
output "name" {
|
||||
value = dynatrace_slo.main.name
|
||||
}
|
||||
|
||||
output "metric_expression" {
|
||||
value = dynatrace_slo.main.metric_expression
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue