Skip to main content

ECS Service Discovery

Project description

https://img.shields.io/pypi/v/ecs_service_discovery.svg

Yet another tool to perform ECS API based service discovery. Primarily aimed at gapping the lack of integrations for ECS Anywhere.

Features

  • Creates Prometheus scraping configuration, from scanning ECS clusters & services, based on docker labels

Installation

Docker

Head to Public ECR to obtain the image

docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/compose-x/ecs-service-discovery

Python

For your user only

pip install pip --user ecs-service-discovery

Via virtual environment

pip install ecs-service-discovery

Usage

usage: ecs-sd [-h] [-d OUTPUT_DIR] [--profile PROFILE] [-p PROMETHEUS_PORT] [--intervals INTERVALS] [--prometheus-output-format PROMETHEUS_OUTPUT_FORMAT] [_ ...]

positional arguments:
  _

options:
  -h, --help            show this help message and exit
  -d OUTPUT_DIR, --output_dir OUTPUT_DIR
  --profile PROFILE     aws profile to use. Defaults to SDK default behaviour
  -p PROMETHEUS_PORT, --prometheus-port PROMETHEUS_PORT
  --intervals INTERVALS
                        Time between ECS discovery intervals
  --prometheus-output-format PROMETHEUS_OUTPUT_FORMAT
                        Change the format of generated files. JSON or YAML.

Examples

ECS Compose-X

Install ecs-compose-x & deploy to AWS

Docker Compose

After cloning the repository, run docker compose up. It will spin the service discovery, along with prometheus & grafana to run the demo with. You can access prometheus via localhost:9090 and grafana via localhost:3000 (admin:admin by default).

In prometheus, you can look at the configuration and service discovery. You should see the discovered targets that prometheus is going to try to scrape.

AWS Policy requirements

PolicyName: ECSServiceDiscoverySimple
PolicyDocument:
  Version: "2012-10-17"
  Statement:
    - Effect: Allow
      Action:
        - ecs:ListClusters
        - ecs:ListContainerInstances
        - ecs:ListTasks
        - ecs:DescribeContainerInstances
        - ssm:DescribeInstanceInformation
        - ecs:DescribeTasks
        - ecs:DescribeTaskDefinition
      Resource: '*'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecs_service_discovery-0.1.1.tar.gz (14.8 kB view hashes)

Uploaded Source

Built Distribution

ecs_service_discovery-0.1.1-py3-none-any.whl (15.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page