Skip to content

Prometheus

Prometheus is an open source monitoring and alerting service. Prometheus joined the Cloud Native Computing Foundation in 2016 as the second hosted project, after Kubernetes.

This project provides support for installing a open source Prometheus server in your EKS cluster and for deploying a new Prometheus instance via Amazon Managed Service for Prometheus.

Usage

The following will deploy the Prometheus server into an EKS Cluster and provision a new Amazon Managed Service for Prometheus instance.

# Creates the AMP workspace and all the relevent IAM Roles
enable_amazon_prometheus         = true

# Deploys Prometheus server with remote write to AWS AMP Workspace
enable_prometheus             = true

Enable Prometheus with custom values.yaml

  #---------------------------------------
  # Prometheus Server integration with Amazon Prometheus
  #---------------------------------------
  # Amazon Prometheus Configuration to integrate with Prometheus Server Add-on
  enable_amazon_prometheus = true
  amazon_prometheus_workspace_endpoint = "<Enter Amazon Workspace Endpoint>" # eg.,  module.eks-blueprints.amazon_prometheus_workspace_endpoint

  enable_prometheus = true
  # Optional Map value
  prometheus_helm_config = {
    name       = "prometheus"                                         # (Required) Release name.
    repository = "https://prometheus-community.github.io/helm-charts" # (Optional) Repository URL where to locate the requested chart.
    chart      = "prometheus"                                         # (Required) Chart name to be installed.
    version    = "15.3.0"                                             # (Optional) Specify the exact chart version to install. If this is not specified, it defaults to the version set within default_helm_config: https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/main/modules/kubernetes-addons/prometheus/locals.tf
    namespace  = "prometheus"                                         # (Optional) The namespace to install the release into.
    values = [templatefile("${path.module}/prometheus-values.yaml", {
      operating_system = "linux"
    })]
  }

GitOps Configuration

The following properties are made available for use when managing the add-on via GitOps

prometheus = {
  enable             = true
  ampWorkspaceUrl    = "<workspace_url>"
  roleArn            = "<role_arn>"
  serviceAccountName = "<service_account_name>"
}