Skip to content

xente/terraform-aws-ecs-grafana-agent

Repository files navigation

Grafana Cloud Agent for ECS

Terraform module which integrate Grafana Agent into existent ECS Cluster

Usage

module "grafana_agent" {

  source  = "xente/ecs-grafana-agent/aws"
  version = "0.1.0"
  
  name = "my-grafana-agent"
  ecs_cluster_id = aws_ecs_cluster.current.id
  grafana_credentials_username  = "MY_USER"
  grafana_credentials_password = "MY_PASSWORD"
  vpc_subnets =  [aws_subnet.main.id]
}


resource "aws_ecs_cluster" "sample" {
  name = "${local.stack}-sample"
}

resource "aws_ecs_cluster_capacity_providers" "sample" {
  cluster_name       = aws_ecs_cluster.sample.name
  capacity_providers = [module.grafana_agent.ecs_agent_capacity_provider_name]
}

Requirements

Name Version
terraform >= 1.0.0
aws >= 3.73

Providers

Name Version
aws >= 3.73

Modules

No modules.

Resources

Name Type
aws_autoscaling_group.this resource
aws_ecs_capacity_provider.this resource
aws_ecs_service.agent resource
aws_ecs_service.cadvisor_node_exporter resource
aws_ecs_task_definition.cadvisor_node_exporter resource
aws_ecs_task_definition.grafana_agent resource
aws_iam_instance_profile.ecs_instance_profile resource
aws_iam_role.ecs_instance resource
aws_iam_role.grafana_agent_execution_role resource
aws_iam_role.grafana_agent_task_role resource
aws_launch_template.this resource
aws_s3_bucket.resources resource
aws_s3_object.agent_config resource
aws_ami.amazon_linux_ecs data source
aws_iam_policy_document.ec2_assume_role data source
aws_iam_policy_document.grafana_agent_discovery data source
aws_iam_policy_document.grafana_agent_tasks_execution_role data source
aws_iam_policy_document.s3_resources_access data source
aws_partition.current data source
aws_region.current data source

Inputs

Name Description Type Default Required
ecs_cluster_id Id of the ECS cluster where Agent has to be deployed string n/a yes
grafana_credentials_password Grafanan credentials string n/a yes
grafana_credentials_username Grafana username string n/a yes
name Name to be used on all the resources as identifier string n/a yes
vpc_subnets (Required) List of one or more availability subnets where Grafana Agent ASG has to allocate the instances list(string) n/a yes
agent_service_desired_count (Optional) Desired agent service replicas number 1 no
asg_agent_capacity (Optional) Capacity of the ASG for the agent map(number)
{
"desired_capacity": 1,
"max_size": 1,
"min_size": 1
}
no
cadvisor_docker_image (Optional) Cadvisor Docker image string "google/cadvisor" no
grafana_agent_docker_image (Optional) Grafana Agent Docker image string "grafana/agent" no
grafana_agent_keep_label_regex (Optional) Filter out targets and metrics based on whether our label values match the provided regex. string `"node_disk_bytes_read node_cpu_utilisation
grafana_credentials_push_url Remote Prometheus Write Endpoint string "https://prometheus-prod-01-eu-west-0.grafana.net/api/prom/push" no
launch_instance_type_agent (Optional) Instance type to use for the instance string "t3.small" no
node_exporter_docker_image (Optional) Node Exporter Docker image string "node-exporter" no
protect_from_scale_in (Optional) Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. bool true no

Outputs

Name Description
ecs_agent_capacity_provider_name Capacity provider to be added into ECS cluster
ecs_agent_service_name Grafana ECS services name
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy