diff --git a/manifests/base-application/carts/deployment.yaml b/manifests/base-application/carts/deployment.yaml index 5b903defa..198b6da53 100644 --- a/manifests/base-application/carts/deployment.yaml +++ b/manifests/base-application/carts/deployment.yaml @@ -18,6 +18,7 @@ spec: prometheus.io/path: /actuator/prometheus prometheus.io/port: "8080" prometheus.io/scrape: "true" + instrumentation.opentelemetry.io/inject-sdk: other/retail-store labels: app.kubernetes.io/name: carts app.kubernetes.io/instance: carts @@ -34,6 +35,8 @@ spec: value: -XX:MaxRAMPercentage=75.0 -Djava.security.egd=file:/dev/urandom - name: SPRING_PROFILES_ACTIVE value: dynamodb + - name: OTEL_SERVICE_NAME + value: carts-service envFrom: - configMapRef: name: carts diff --git a/manifests/base-application/catalog/deployment.yaml b/manifests/base-application/catalog/deployment.yaml index c7c655bcd..77e9bab3c 100644 --- a/manifests/base-application/catalog/deployment.yaml +++ b/manifests/base-application/catalog/deployment.yaml @@ -18,6 +18,7 @@ spec: prometheus.io/path: /metrics prometheus.io/port: "8080" prometheus.io/scrape: "true" + instrumentation.opentelemetry.io/inject-sdk: other/retail-store labels: app.kubernetes.io/name: catalog app.kubernetes.io/instance: catalog @@ -40,6 +41,8 @@ spec: secretKeyRef: name: catalog-db key: password + - name: OTEL_SERVICE_NAME + value: catalog-service envFrom: - configMapRef: name: catalog diff --git a/manifests/base-application/checkout/deployment.yaml b/manifests/base-application/checkout/deployment.yaml index 76f0eb110..6bee4aa96 100644 --- a/manifests/base-application/checkout/deployment.yaml +++ b/manifests/base-application/checkout/deployment.yaml @@ -18,6 +18,7 @@ spec: prometheus.io/path: /metrics prometheus.io/port: "8080" prometheus.io/scrape: "true" + instrumentation.opentelemetry.io/inject-sdk: other/retail-store labels: app.kubernetes.io/name: checkout app.kubernetes.io/instance: checkout @@ -29,6 +30,9 @@ spec: fsGroup: 1000 containers: - name: checkout + env: + - name: OTEL_SERVICE_NAME + value: checkout-service envFrom: - configMapRef: name: checkout diff --git a/manifests/base-application/orders/deployment.yaml b/manifests/base-application/orders/deployment.yaml index 706e97fcc..fbe8d42fc 100644 --- a/manifests/base-application/orders/deployment.yaml +++ b/manifests/base-application/orders/deployment.yaml @@ -18,6 +18,7 @@ spec: prometheus.io/path: /actuator/prometheus prometheus.io/port: "8080" prometheus.io/scrape: "true" + instrumentation.opentelemetry.io/inject-sdk: other/retail-store labels: app.kubernetes.io/name: orders app.kubernetes.io/instance: orders @@ -62,6 +63,8 @@ spec: secretKeyRef: name: orders-db key: password + - name: OTEL_SERVICE_NAME + value: orders-service envFrom: - configMapRef: name: orders diff --git a/manifests/base-application/ui/deployment.yaml b/manifests/base-application/ui/deployment.yaml index fa8a59ccc..7cf8932b5 100644 --- a/manifests/base-application/ui/deployment.yaml +++ b/manifests/base-application/ui/deployment.yaml @@ -18,6 +18,7 @@ spec: prometheus.io/path: /actuator/prometheus prometheus.io/port: "8080" prometheus.io/scrape: "true" + instrumentation.opentelemetry.io/inject-sdk: other/retail-store labels: app.kubernetes.io/name: ui app.kubernetes.io/instance: ui @@ -32,6 +33,8 @@ spec: env: - name: JAVA_OPTS value: -XX:MaxRAMPercentage=75.0 -Djava.security.egd=file:/dev/urandom + - name: OTEL_SERVICE_NAME + value: ui-service envFrom: - configMapRef: name: ui diff --git a/manifests/modules/observability/kubecost/.workshop/terraform/main.tf b/manifests/modules/observability/kubecost/.workshop/terraform/main.tf deleted file mode 100644 index ad3963a4a..000000000 --- a/manifests/modules/observability/kubecost/.workshop/terraform/main.tf +++ /dev/null @@ -1,52 +0,0 @@ -module "ebs_csi_driver_irsa" { - source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks" - version = "5.44.0" - - role_name_prefix = "${var.addon_context.eks_cluster_id}-ebs-csi-" - policy_name_prefix = "${var.addon_context.eks_cluster_id}-ebs-csi-" - - attach_ebs_csi_policy = true - - oidc_providers = { - main = { - provider_arn = var.addon_context.eks_oidc_provider_arn - namespace_service_accounts = ["kube-system:ebs-csi-controller-sa"] - } - } - - tags = var.tags -} - -module "eks_blueprints_addons" { - source = "aws-ia/eks-blueprints-addons/aws" - version = "1.16.3" - - cluster_name = var.addon_context.eks_cluster_id - cluster_endpoint = var.addon_context.aws_eks_cluster_endpoint - cluster_version = var.eks_cluster_version - oidc_provider_arn = var.addon_context.eks_oidc_provider_arn - - eks_addons = { - aws-ebs-csi-driver = { - most_recent = true - service_account_role_arn = module.ebs_csi_driver_irsa.iam_role_arn - preserve = false - configuration_values = jsonencode({ defaultStorageClass = { enabled = true } }) - } - } - - enable_aws_load_balancer_controller = true - aws_load_balancer_controller = { - wait = true - role_name = "${var.addon_context.eks_cluster_id}-alb-controller" - policy_name = "${var.addon_context.eks_cluster_id}-alb-controller" - } -} - -resource "time_sleep" "wait" { - depends_on = [ - module.eks_blueprints_addons - ] - - create_duration = "10s" -} diff --git a/manifests/modules/observability/kubecost/.workshop/terraform/outputs.tf b/manifests/modules/observability/kubecost/.workshop/terraform/outputs.tf deleted file mode 100644 index e2af865b9..000000000 --- a/manifests/modules/observability/kubecost/.workshop/terraform/outputs.tf +++ /dev/null @@ -1,6 +0,0 @@ -output "environment_variables" { - description = "Environment variables to be added to the IDE shell" - value = { - KUBECOST_CHART_VERSION = var.kubecost_chart_version - } -} \ No newline at end of file diff --git a/manifests/modules/observability/kubecost/values.yaml b/manifests/modules/observability/kubecost/values.yaml deleted file mode 100644 index 1a9d9d6eb..000000000 --- a/manifests/modules/observability/kubecost/values.yaml +++ /dev/null @@ -1,5 +0,0 @@ -service: - type: LoadBalancer - annotations: - service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing - service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance diff --git a/manifests/modules/observability/oss-metrics/.workshop/cleanup.sh b/manifests/modules/observability/oss-metrics/.workshop/cleanup.sh deleted file mode 100644 index 4d1c1a89c..000000000 --- a/manifests/modules/observability/oss-metrics/.workshop/cleanup.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -logmessage "Deleting OpenTelemetry collectors..." - -delete-all-if-crd-exists opentelemetrycollectors.opentelemetry.io - -kubectl delete -n other pod load-generator --ignore-not-found \ No newline at end of file diff --git a/manifests/modules/observability/oss-metrics/.workshop/terraform/main.tf b/manifests/modules/observability/oss-metrics/.workshop/terraform/main.tf deleted file mode 100644 index b8a6acdc2..000000000 --- a/manifests/modules/observability/oss-metrics/.workshop/terraform/main.tf +++ /dev/null @@ -1,524 +0,0 @@ -data "aws_partition" "current" {} - -module "ebs_csi_driver_irsa" { - source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks" - version = "5.44.0" - - role_name_prefix = "${var.addon_context.eks_cluster_id}-ebs-csi-" - policy_name_prefix = "${var.addon_context.eks_cluster_id}-ebs-csi-" - - attach_ebs_csi_policy = true - - oidc_providers = { - main = { - provider_arn = var.addon_context.eks_oidc_provider_arn - namespace_service_accounts = ["kube-system:ebs-csi-controller-sa"] - } - } - - tags = var.tags -} - -module "eks_blueprints_addons" { - source = "aws-ia/eks-blueprints-addons/aws" - version = "1.16.3" - - cluster_name = var.addon_context.eks_cluster_id - cluster_endpoint = var.addon_context.aws_eks_cluster_endpoint - cluster_version = var.eks_cluster_version - oidc_provider_arn = var.addon_context.eks_oidc_provider_arn - - eks_addons = { - aws-ebs-csi-driver = { - most_recent = true - service_account_role_arn = module.ebs_csi_driver_irsa.iam_role_arn - preserve = false - configuration_values = jsonencode({ defaultStorageClass = { enabled = true } }) - } - } - - enable_aws_load_balancer_controller = true - aws_load_balancer_controller = { - wait = true - role_name = "${var.addon_context.eks_cluster_id}-alb-controller" - policy_name = "${var.addon_context.eks_cluster_id}-alb-controller" - } -} - -resource "time_sleep" "blueprints_addons_sleep" { - depends_on = [ - module.eks_blueprints_addons - ] - - create_duration = "15s" -} - -module "cert_manager" { - source = "aws-ia/eks-blueprints-addon/aws" - version = "1.1.1" - - depends_on = [ - time_sleep.blueprints_addons_sleep - ] - - name = "cert-manager" - namespace = "cert-manager" - create_namespace = true - wait = true - chart = "cert-manager" - chart_version = "v1.15.1" - repository = "https://charts.jetstack.io" - - set = [ - { - name = "crds.enabled" - value = true - } - ] -} - -resource "kubernetes_namespace" "opentelemetry_operator" { - metadata { - name = "opentelemetry-operator-system" - } -} - -module "opentelemetry_operator" { - source = "aws-ia/eks-blueprints-addon/aws" - version = "1.1.1" - - depends_on = [ - module.cert_manager - ] - - name = "opentelemetry" - namespace = kubernetes_namespace.opentelemetry_operator.metadata[0].name - create_namespace = false - wait = true - chart = "opentelemetry-operator" - chart_version = var.operator_chart_version - repository = "https://open-telemetry.github.io/opentelemetry-helm-charts" - - set = [{ - name = "manager.collectorImage.repository" - value = "otel/opentelemetry-collector-k8s" - }] -} - -resource "aws_prometheus_workspace" "this" { - alias = var.addon_context.eks_cluster_id - - tags = var.tags -} - -module "iam_assumable_role_adot" { - source = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc" - version = "5.44.0" - - create_role = true - role_name = "${var.addon_context.eks_cluster_id}-adot-collector" - provider_url = var.addon_context.eks_oidc_issuer_url - role_policy_arns = [ - "arn:${data.aws_partition.current.partition}:iam::aws:policy/AmazonPrometheusRemoteWriteAccess" - ] - oidc_fully_qualified_subjects = ["system:serviceaccount:other:adot-collector"] - - tags = var.tags -} - -resource "kubernetes_namespace" "grafana" { - metadata { - name = "grafana" - } -} - -module "eks_blueprints_kubernetes_grafana_addon" { - source = "github.com/aws-ia/terraform-aws-eks-blueprints?ref=v4.25.0//modules/kubernetes-addons/grafana" - - depends_on = [ - time_sleep.blueprints_addons_sleep, - kubernetes_config_map.order_service_metrics_dashboard - ] - - addon_context = var.addon_context - - irsa_policies = [ - aws_iam_policy.grafana.arn - ] - - helm_config = { - create_namespace = false - namespace = kubernetes_namespace.grafana.metadata[0].name - - values = [local.grafana_values] - } -} - -resource "kubernetes_config_map" "order_service_metrics_dashboard" { - metadata { - name = "order-service-metrics-dashboard" - namespace = kubernetes_namespace.grafana.metadata[0].name - - labels = { - grafana_dashboard = 1 - } - } - - data = { - "order-service-metrics-dashboard.json" = <[^ Z]+) (?Pstdout|stderr) (?P[^ ]*) + ?(?P.*)$" + output: extract_metadata_from_filepath + timestamp: + parse_from: attributes.time + layout_type: gotime + layout: "2006-01-02T15:04:05.999999999Z07:00" + # Parse CRI-Containerd format + - type: regex_parser + id: parser-containerd + regex: + "^(?P