diff --git a/BMW-Dynatrace-config/CD_CSF/alerting-profile/alerting-profile.yaml b/BMW-Dynatrace-config/CD_CSF/alerting-profile/alerting-profile.yaml new file mode 100644 index 00000000..1efb051f --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/alerting-profile/alerting-profile.yaml @@ -0,0 +1,18 @@ +config: +- CD_CSF: default.json + +#Prod alerting profiles for EMEA +CD_CSF.EMEA-Prod: +- name: CD_CSF PROD +- tag: charging-station-feedback-composite-service +- mzId: CD_CSF/management-zone/CD_CSF.id +- env: PROD +- skipDeployment: "false" + +#INT alerting profiles for EMEA +CD_CSF.EMEA-PreProd: +- name: CD_CSF INT +- tag: charging-station-feedback-composite-service +- mzId: CD_CSF/management-zone/CD_CSF.id +- env: INT +- skipDeployment: "false" \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/alerting-profile/default.json b/BMW-Dynatrace-config/CD_CSF/alerting-profile/default.json new file mode 100644 index 00000000..681a4c64 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/alerting-profile/default.json @@ -0,0 +1,103 @@ +{ + "displayName": "{{.name}}", + "eventTypeFilters": [], + "managementZoneId": "{{.mzId}}", + "mzId": "{{.mzId}}", + "rules": [ + { + "delayInMinutes": 0, + "severityLevel": "AVAILABILITY", + "tagFilter": { + "includeMode": "INCLUDE_ALL", + "tagFilters": [ + { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + }, + { + "context": "CONTEXTLESS", + "key": "Environment", + "value": "{{.env}}" + } + ] + } + }, + { + "delayInMinutes": 10, + "severityLevel": "ERROR", + "tagFilter": { + "includeMode": "INCLUDE_ALL", + "tagFilters": [ + { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + }, + { + "context": "CONTEXTLESS", + "key": "Environment", + "value": "{{.env}}" + } + ] + } + }, + { + "delayInMinutes": 30, + "severityLevel": "PERFORMANCE", + "tagFilter": { + "includeMode": "INCLUDE_ALL", + "tagFilters": [ + { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + }, + { + "context": "CONTEXTLESS", + "key": "Environment", + "value": "{{.env}}" + } + ] + } + }, + { + "delayInMinutes": 30, + "severityLevel": "RESOURCE_CONTENTION", + "tagFilter": { + "includeMode": "INCLUDE_ALL", + "tagFilters": [ + { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + }, + { + "context": "CONTEXTLESS", + "key": "Environment", + "value": "{{.env}}" + } + ] + } + }, + { + "delayInMinutes": 10, + "severityLevel": "CUSTOM_ALERT", + "tagFilter": { + "includeMode": "INCLUDE_ALL", + "tagFilters": [ + { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + }, + { + "context": "CONTEXTLESS", + "key": "Environment", + "value": "{{.env}}" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/dashboard/README.md b/BMW-Dynatrace-config/CD_CSF/dashboard/README.md new file mode 100644 index 00000000..2b6d5717 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/dashboard/README.md @@ -0,0 +1,4 @@ + +### How to configure dashboards? + +Please refer to [this](https://atc.bmwgroup.net/confluence/display/OPMAAS/Documentation+%7C+Dashboards) page to configure your dashboards. \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/dashboard/dashboard.yaml b/BMW-Dynatrace-config/CD_CSF/dashboard/dashboard.yaml new file mode 100644 index 00000000..bce3542d --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/dashboard/dashboard.yaml @@ -0,0 +1,125 @@ +config: +- CD_CSF-PROD: default.json +- CD_CSF-E2E: default.json +- CD_CSF-INT: default.json +- CD_CSF-TEST: default.json + +#PROD dashboards for EMEA/NA/CN Prod +CD_CSF-PROD: +- name: CD_CSF PROD +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: PROD +- skipDeployment: "false" +CD_CSF-PROD.EMEA-Prod: +- name: CD_CSF PROD +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: PROD +- skipDeployment: "false" +CD_CSF-PROD.NA-Prod: +- name: CD_CSF PROD +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: PROD +- skipDeployment: "false" +CD_CSF-PROD.CN-Prod: +- name: CD_CSF PROD +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: PROD +- skipDeployment: "false" + +#E2E dashboards for EMEA/NA/CN Prod +CD_CSF-E2E: +- name: CD_CSF E2E +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: E2E +- skipDeployment: "false" +CD_CSF-E2E.EMEA-Prod: +- name: CD_CSF E2E +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: E2E +- skipDeployment: "false" +CD_CSF-E2E.NA-Prod: +- name: CD_CSF E2E +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: E2E +- skipDeployment: "false" +CD_CSF-E2E.CN-Prod: +- name: CD_CSF E2E +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: E2E +- skipDeployment: "false" + +#INT dashboards for EMEA/NA/CN PreProd +CD_CSF-INT: +- name: CD_CSF INT +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: INT +- skipDeployment: "false" +CD_CSF-INT.EMEA-PreProd: +- name: CD_CSF INT +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: INT +- skipDeployment: "false" +CD_CSF-INT.NA-PreProd: +- name: CD_CSF INT +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: INT +- skipDeployment: "false" +CD_CSF-INT.CN-PreProd: +- name: CD_CSF INT +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: INT +- skipDeployment: "false" + +#TEST dashboards for EMEA/NA/CN PreProd +CD_CSF-TEST: +- name: CD_CSF TEST +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: TEST +- skipDeployment: "false" +CD_CSF-TEST.EMEA-PreProd: +- name: CD_CSF TEST +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: TEST +- skipDeployment: "false" +CD_CSF-TEST.NA-PreProd: +- name: CD_CSF TEST +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: TEST +- skipDeployment: "false" +CD_CSF-TEST.CN-PreProd: +- name: CD_CSF TEST +- mzName: CD_CSF/management-zone/CD_CSF.name +- mzId: CD_CSF/management-zone/CD_CSF.id +- tag: charging-station-feedback-composite-service +- env: TEST +- skipDeployment: "false" \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/dashboard/default.json b/BMW-Dynatrace-config/CD_CSF/dashboard/default.json new file mode 100644 index 00000000..6c685810 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/dashboard/default.json @@ -0,0 +1,308 @@ +{ + "metadata": { + "configurationVersions": [ + 3 + ], + "clusterVersion": "1.214.107.20210407-223952" + }, + "dashboardMetadata": { + "name": "{{.name}}", + "shared": true, + "owner": "Ignacio.Goldman@partner.bmwgroup.com", + "dashboardFilter": { + "timeframe": "-24h to now" + }, + "tags": [ + "{{.tag}}" + ] + }, + "tiles": [ + { + "name": "Custom chart", + "tileType": "CUSTOM_CHARTING", + "configured": true, + "bounds": { + "top": 228, + "left": 38, + "width": 1064, + "height": 304 + }, + "tileFilter": {}, + "filterConfig": { + "type": "MIXED", + "customName": "Failure rate (HTTP 4xx/5xx errors)", + "defaultName": "Custom chart", + "chartConfig": { + "legendShown": true, + "type": "TIMESERIES", + "series": [ + { + "metric": "builtin:service.errors.fourxx.rate", + "aggregation": "AVG", + "type": "BAR", + "entityType": "SERVICE", + "dimensions": [], + "sortAscending": false, + "sortColumn": false, + "aggregationRate": "TOTAL" + }, + { + "metric": "builtin:service.errors.fivexx.rate", + "aggregation": "AVG", + "type": "BAR", + "entityType": "SERVICE", + "dimensions": [], + "sortAscending": false, + "sortColumn": true, + "aggregationRate": "TOTAL" + } + ], + "resultMetadata": { + "nullbuiltin:service.errors.fivexx.rate|AVG|TOTAL|BAR|SERVICE": { + "lastModified": 1617956393463, + "customColor": "#ff0000" + }, + "nullbuiltin:service.errors.fourxx.rate|AVG|TOTAL|BAR|SERVICE": { + "lastModified": 1617956441725, + "customColor": "#fff29a" + } + } + }, + "filtersPerEntityType": { + "SERVICE": { + "AUTO_TAGS": [ + "Environment:{{.env}}", + "Component:{{.tag}}" + ] + } + } + } + }, + { + "name": "Problems", + "tileType": "OPEN_PROBLEMS", + "configured": true, + "bounds": { + "top": 38, + "left": 950, + "width": 152, + "height": 152 + }, + "tileFilter": { + "managementZone": { + "id": "{{.mzId}}", + "name": "{{.mzName}}" + } + } + }, + { + "name": "Overall Health", + "tileType": "HEADER", + "configured": true, + "bounds": { + "top": 0, + "left": 38, + "width": 1064, + "height": 38 + }, + "tileFilter": {} + }, + { + "name": "Markdown", + "tileType": "MARKDOWN", + "configured": true, + "bounds": { + "top": 532, + "left": 38, + "width": 1064, + "height": 38 + }, + "tileFilter": {}, + "markdown": "---\n" + }, + { + "name": "Custom chart", + "tileType": "CUSTOM_CHARTING", + "configured": true, + "bounds": { + "top": 570, + "left": 38, + "width": 1064, + "height": 304 + }, + "tileFilter": {}, + "filterConfig": { + "type": "MIXED", + "customName": "Response time, Request Count and Number of Errors", + "defaultName": "Custom chart", + "chartConfig": { + "legendShown": true, + "type": "TIMESERIES", + "series": [ + { + "metric": "builtin:service.response.time", + "aggregation": "AVG", + "type": "LINE", + "entityType": "SERVICE", + "dimensions": [], + "sortAscending": false, + "sortColumn": false, + "aggregationRate": "TOTAL" + }, + { + "metric": "builtin:service.requestCount.total", + "aggregation": "NONE", + "type": "BAR", + "entityType": "SERVICE", + "dimensions": [], + "sortAscending": false, + "sortColumn": false, + "aggregationRate": "TOTAL" + }, + { + "metric": "builtin:service.errors.total.count", + "aggregation": "NONE", + "type": "BAR", + "entityType": "SERVICE", + "dimensions": [], + "sortAscending": false, + "sortColumn": true, + "aggregationRate": "TOTAL" + } + ], + "resultMetadata": { + "nullbuiltin:service.requestCount.total|NONE|TOTAL|BAR|SERVICE": { + "lastModified": 1595275720776, + "customColor": "#008cdb" + }, + "nullbuiltin:service.errors.total.count|NONE|TOTAL|BAR|SERVICE": { + "lastModified": 1595275955999, + "customColor": "#ef651f" + }, + "nullbuiltin:service.response.time|AVG|TOTAL|LINE|SERVICE": { + "lastModified": 1595275686773, + "customColor": "#b4e5f9" + } + } + }, + "filtersPerEntityType": { + "SERVICE": { + "AUTO_TAGS": [ + "Environment:{{.env}}", + "Component:{{.tag}}" + ] + } + } + } + }, + { + "name": "Markdown", + "tileType": "MARKDOWN", + "configured": true, + "bounds": { + "top": 190, + "left": 38, + "width": 1064, + "height": 38 + }, + "tileFilter": {}, + "markdown": "---\n" + }, + { + "name": "", + "tileType": "DATABASES_OVERVIEW", + "configured": true, + "bounds": { + "top": 38, + "left": 646, + "width": 190, + "height": 152 + }, + "tileFilter": {}, + "filterConfig": { + "type": "DATABASE", + "customName": "Databases", + "defaultName": "Databases", + "chartConfig": { + "legendShown": true, + "type": "TIMESERIES", + "series": [], + "resultMetadata": {} + }, + "filtersPerEntityType": { + "DATABASE": { + "AUTO_TAGS": [ + "Environment:{{.env}}", + "Component:{{.tag}}" + ] + } + } + }, + "chartVisible": true + }, + { + "name": "", + "tileType": "SERVICES", + "configured": true, + "bounds": { + "top": 38, + "left": 342, + "width": 190, + "height": 152 + }, + "tileFilter": {}, + "filterConfig": { + "type": "SERVICE", + "customName": "Services", + "defaultName": "Services", + "chartConfig": { + "legendShown": true, + "type": "TIMESERIES", + "series": [], + "resultMetadata": {} + }, + "filtersPerEntityType": { + "SERVICE": { + "AUTO_TAGS": [ + "Environment:{{.env}}", + "Component:{{.tag}}" + ] + } + } + }, + "chartVisible": true + }, + { + "name": "", + "tileType": "HOSTS", + "configured": true, + "bounds": { + "top": 38, + "left": 38, + "width": 190, + "height": 152 + }, + "tileFilter": {}, + "filterConfig": { + "type": "HOST", + "customName": "Hosts", + "defaultName": "Hosts", + "chartConfig": { + "legendShown": true, + "type": "TIMESERIES", + "series": [], + "resultMetadata": {} + }, + "filtersPerEntityType": { + "HOST": { + "AUTO_TAGS": [ + "Environment:{{.env}}", + "Component:{{.tag}}" + ] + } + } + }, + "chartVisible": true + } + ] +} \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/management-zone/README.md b/BMW-Dynatrace-config/CD_CSF/management-zone/README.md new file mode 100644 index 00000000..ffe9d6e3 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/management-zone/README.md @@ -0,0 +1,4 @@ + +### How to configure management zones? + +Please refer to [this](https://atc.bmwgroup.net/confluence/display/OPMAAS/Documentation+%7C+Management+Zones) page to configure your management zones. \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/management-zone/default.json b/BMW-Dynatrace-config/CD_CSF/management-zone/default.json new file mode 100644 index 00000000..bffa0c3b --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/management-zone/default.json @@ -0,0 +1,114 @@ +{ + "dimensionalRules": [], + "name": "{{.name}}", + "rules": [ + { + "conditions": [ + { + "comparisonInfo": { + "negate": false, + "operator": "EQUALS", + "type": "TAG", + "value": { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + } + }, + "key": { + "attribute": "SERVICE_TAGS" + } + } + ], + "enabled": true, + "propagationTypes": [ + "SERVICE_TO_PROCESS_GROUP_LIKE", + "SERVICE_TO_HOST_LIKE" + ], + "type": "SERVICE" + }, + { + "conditions": [ + { + "comparisonInfo": { + "negate": false, + "operator": "EQUALS", + "type": "TAG", + "value": { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + } + }, + "key": { + "attribute": "PROCESS_GROUP_TAGS" + } + } + ], + "enabled": true, + "propagationTypes": [ + "PROCESS_GROUP_TO_HOST" + ], + "type": "PROCESS_GROUP" + }, + { + "conditions": [ + { + "comparisonInfo": { + "negate": false, + "operator": "EQUALS", + "type": "TAG", + "value": { + "context": "CONTEXTLESS", + "key": "Component", + "value": "{{.tag}}" + } + }, + "key": { + "attribute": "HOST_TAGS" + } + } + ], + "enabled": true, + "type": "HOST" + }, + { + "conditions": [ + { + "comparisonInfo": { + "caseSensitive": true, + "negate": false, + "operator": "CONTAINS", + "type": "STRING", + "value": "{{.tag}}" + }, + "key": { + "attribute": "CLOUD_APPLICATION_NAMESPACE_NAME" + } + } + ], + "enabled": true, + "propagationTypes": [], + "type": "CLOUD_APPLICATION_NAMESPACE" + }, + { + "conditions": [ + { + "comparisonInfo": { + "caseSensitive": true, + "negate": false, + "operator": "CONTAINS", + "type": "STRING", + "value": "{{.tag}}" + }, + "key": { + "attribute": "CLOUD_APPLICATION_NAME" + } + } + ], + "enabled": true, + "propagationTypes": [], + "type": "CLOUD_APPLICATION" + } + ] +} \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/management-zone/management-zone.yaml b/BMW-Dynatrace-config/CD_CSF/management-zone/management-zone.yaml new file mode 100644 index 00000000..263caf18 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/management-zone/management-zone.yaml @@ -0,0 +1,6 @@ +config: +- CD_CSF: default.json + +CD_CSF: +- name: CD_CSF +- tag: charging-station-feedback-composite-service diff --git a/BMW-Dynatrace-config/CD_CSF/notification/README.md b/BMW-Dynatrace-config/CD_CSF/notification/README.md new file mode 100644 index 00000000..5ba3825a --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/notification/README.md @@ -0,0 +1,4 @@ + +### How to configure notification systems? + +Please refer to [this](https://atc.bmwgroup.net/confluence/display/OPMAAS/Documentation+%7C+Problem+Notification+Integrations) page to configure your notification systems. \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/notification/email.json b/BMW-Dynatrace-config/CD_CSF/notification/email.json new file mode 100644 index 00000000..486642a7 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/notification/email.json @@ -0,0 +1,13 @@ +{ + "active": true, + "alertingProfile": "{{.alertingProfile}}", + "bccReceivers": [], + "body": "{ProblemDetailsHTML}", + "ccReceivers": [], + "name": "{{.name}}", + "receivers": [ + "{{.receivers}}" + ], + "subject": "{State} Problem {ProblemID}: {ImpactedEntity}", + "type": "EMAIL" +} \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/notification/msTeams.json b/BMW-Dynatrace-config/CD_CSF/notification/msTeams.json new file mode 100644 index 00000000..33e92cf6 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/notification/msTeams.json @@ -0,0 +1,11 @@ +{ + "acceptAnyCertificate": false, + "active": true, + "alertingProfile": "{{.alertingProfile}}", + "headers": [], + "name": "{{.name}}", + "notifyEventMergesEnabled": false, + "payload": "{\n\"title\":\"{ProblemTitle}\",\n\"text\":\"{ProblemDetailsHTML}\",\n\"themeColor\":\"EA4300\"\n}", + "type": "WEBHOOK", + "url": "{{.webhook}}" +} \ No newline at end of file diff --git a/BMW-Dynatrace-config/CD_CSF/notification/notification.yaml b/BMW-Dynatrace-config/CD_CSF/notification/notification.yaml new file mode 100644 index 00000000..dcb25489 --- /dev/null +++ b/BMW-Dynatrace-config/CD_CSF/notification/notification.yaml @@ -0,0 +1,29 @@ +config: +- CD_CSF: msTeams.json +- CD_CSF_email: email.json + +# Notification System for EMEA/NA/CN Prod msTeams +CD_CSF.EMEA-Prod: +- name: CD_CSF PROD +- alertingProfile: CD_CSF/alerting-profile/CD_CSF.id +- webhook: https://bmwgroup.webhook.office.com/webhookb2/24a237d4-ed59-476d-ae6a-8353d1a2f7ea@ce849bab-cc1c-465b-b62e-18f07c9ac198/IncomingWebhook/06db97446552455a91998b41ae8cb4a4/4d8ab66e-ec27-4bc7-8cff-5bd7abe02823 +- skipDeployment: "false" + +# Notification System for EMEA/NA/CN PreProd msTeams +CD_CSF.EMEA-PreProd: +- name: CD_CSF INT +- alertingProfile: CD_CSF/alerting-profile/CD_CSF.id +- webhook: https://criticaltechworks.webhook.office.com/webhookb2/b2de8193-24cf-4709-b1ad-d05f115fa08d@61f30b8e-4f6b-44fe-9bc2-041e3a9f7346/IncomingWebhook/0cf76894f7974aeaa28e5000a38d8d2c/66730f27-7257-45d8-8799-fdc7e4d4d178 +- skipDeployment: "false" + +# Notification System for EMEA/NA/CN Prod Email +CD_CSF_email.EMEA-Prod: + - name: CD_CSF_email PROD + - alertingProfile: CD_CSF/alerting-profile/CD_CSF.id + - receivers: intangibles@list.bmw.com + +# Notification System for EMEA/NA/CN PreProd Email +CD_CSF_email.EMEA-PreProd: + - name: CD_CSF_email INT + - alertingProfile: CD_CSF/alerting-profile/CD_CSF.id + - receivers: intangibles@list.bmw.com