Files
terraform-aws-observability…/modules/ecs-monitoring/configs/config.yaml
T
Ruchika Modi 70405b9732 Adding Module and Example for ECS cluster monitoring with ecs_observer (#211)
* Adding Module and Example for ECS cluster monitoring with ecs_observer

* Adding Module and Example for ECS cluster monitoring with ecs_observer

* Incorporating PR comments

* Restructuring Examples and modules folder for ECS, Added content in main Readme

* Fixing path as per PR comments

* Parameterzing the config files, incorporated PR review comments

* Adding condition for AMP WS and fixing AMP endpoint

* Adding Document for ECS Monitoring and parameterized some variables

* Added sample dashboard

* Adding Document for ECS Monitoring and parameterized some variables

* Fixing failures detected by pre-commit

* Fixing failures detected by pre-commit

* Fixing failures detected by pre-commit

* Pre-commit fixes

* Fixing failures detected by pre-commit

* Fixing failures detected by pre-commit

* Pre-commit

* Fixing HIGH security alerts detected by pre-commit

* Fixing HIGH security alerts detected by pre-commit

* Fixing HIGH security alerts detected by pre-commit, 31stOct

* Add links after merge

* 2ndNov - Added condiotnal creation for Grafana WS and module versions for AMG, AMP

---------

Co-authored-by: Rodrigue Koffi <bonclay7@users.noreply.github.com>
2023-11-02 12:53:32 +01:00

131 lines
3.9 KiB
YAML

extensions:
sigv4auth:
region: "${aws_region}"
service: "aps"
ecs_observer: # extension type is ecs_observer
cluster_name: "${cluster_name}" # cluster name need to configured manually
cluster_region: "${cluster_region}" # region can be configured directly or use AWS_REGION env var
result_file: "/etc/ecs_sd_targets.yaml" # the directory for file must already exists
refresh_interval: ${refresh_interval}
job_label_name: prometheus_job
# JMX
docker_labels:
- port_label: "ECS_PROMETHEUS_EXPORTER_PORT"
receivers:
otlp:
protocols:
grpc:
endpoint: ${otlp_grpc_endpoint}
http:
endpoint: ${otlp_http_endpoint}
prometheus:
config:
scrape_configs:
- job_name: "ecssd"
file_sd_configs:
- files:
- "/etc/ecs_sd_targets.yaml"
relabel_configs:
- source_labels: [__meta_ecs_cluster_name]
action: replace
target_label: ClusterName
- source_labels: [__meta_ecs_service_name]
action: replace
target_label: ServiceName
- source_labels: [__meta_ecs_task_definition_family]
action: replace
target_label: TaskDefinitionFamily
- source_labels: [__meta_ecs_task_launch_type]
action: replace
target_label: LaunchType
- source_labels: [__meta_ecs_container_name]
action: replace
target_label: container_name
- action: labelmap
regex: ^__meta_ecs_container_labels_(.+)$
replacement: "$$1"
awsecscontainermetrics:
collection_interval: ${ecs_metrics_collection_interval}
processors:
resource:
attributes:
- key: receiver
value: "prometheus"
action: insert
filter:
metrics:
include:
match_type: strict
metric_names:
- ecs.task.memory.utilized
- ecs.task.memory.reserved
- ecs.task.memory.usage
- ecs.task.cpu.utilized
- ecs.task.cpu.reserved
- ecs.task.cpu.usage.vcpu
- ecs.task.network.rate.rx
- ecs.task.network.rate.tx
- ecs.task.storage.read_bytes
- ecs.task.storage.write_bytes
metricstransform:
transforms:
- include: ".*"
match_type: regexp
action: update
operations:
- label: prometheus_job
new_label: job
action: update_label
- include: ecs.task.memory.utilized
action: update
new_name: MemoryUtilized
- include: ecs.task.memory.reserved
action: update
new_name: MemoryReserved
- include: ecs.task.memory.usage
action: update
new_name: MemoryUsage
- include: ecs.task.cpu.utilized
action: update
new_name: CpuUtilized
- include: ecs.task.cpu.reserved
action: update
new_name: CpuReserved
- include: ecs.task.cpu.usage.vcpu
action: update
new_name: CpuUsage
- include: ecs.task.network.rate.rx
action: update
new_name: NetworkRxBytes
- include: ecs.task.network.rate.tx
action: update
new_name: NetworkTxBytes
- include: ecs.task.storage.read_bytes
action: update
new_name: StorageReadBytes
- include: ecs.task.storage.write_bytes
action: update
new_name: StorageWriteBytes
exporters:
prometheusremotewrite:
endpoint: "${amp_remote_write_ep}"
auth:
authenticator: sigv4auth
logging:
loglevel: debug
service:
extensions: [ecs_observer, sigv4auth]
pipelines:
metrics:
receivers: [prometheus]
processors: [resource, metricstransform]
exporters: [prometheusremotewrite]
metrics/ecs:
receivers: [awsecscontainermetrics]
processors: [filter]
exporters: [logging, prometheusremotewrite]