Как заставить агента CloudWatch отправлять метрики jmx в Cloud Watch в ECS?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как заставить агента CloudWatch отправлять метрики jmx в Cloud Watch в ECS?

Сообщение Anonymous »

Мне нужен кто-то, у кого действительно есть эта работа, чтобы оценить ее, поскольку я действительно изо всех сил пытаюсь заставить это работать...
Вот полное определение моей задачи:
Лишние и ненужные фрагменты были удалены.

Код: Выделить всё

{
"compatibilities": [
"EC2",
"MANAGED_INSTANCES"
],
"containerDefinitions": [
{
"environment": [
{
"name": "AWS_REGION",
"value": "eu-west-1"
}
],
"environmentFiles": [],
"essential": false,
"extraHosts": [],
"image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest",
"links": [],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "xxxx",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "cwagent"
},
"secretOptions": []
},
"memoryReservation": 128,
"mountPoints": [],
"name": "CWAgent",
"portMappings": [],
"secrets": [
{
"name": "CW_CONFIG_CONTENT",
"valueFrom": "arn:aws:ssm:eu-west-1:xxxx:parameter/ecs/cwagent/jmx/config"
}
],
},
{
"cpu": 512,
"environment": [
{
"name": "OTHER_ENV_VARS_REDACTED",
"value": "redacted"
},
{
"name": "JAVA_TOOL_OPTIONS",
"value": "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9012 -Dcom.sun.management.jmxremote.rmi.port=9012 -Dcom.sun.management.jmxremote.local.only=true -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true"
},
],
"essential": true,
"image": "xxxxx.dkr.ecr.eu-west-1.amazonaws.com/java-spring-app-docker",
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "redacted",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "ecs"
},
},
"memory": 900,
"name": "redacted",
"portMappings": [
{
"containerPort": 8080,
"hostPort": 8080,
"name": "8080",
"protocol": "tcp"
},
{
"containerPort": 9012,
"hostPort": 9012,
"name": "jmx",
"protocol": "tcp"
}
],
"versionConsistency": "disabled",
}
],
"executionRoleArn": "arn:aws:iam::xxxxx:role/redacted",
"family": "redacted",
"networkMode": "awsvpc",
"registeredAt": "2025-11-20T06:26:22.591Z",
"registeredBy": "arn:aws:iam::xxxxx:user/xxxx",
],
"requiresCompatibilities": [
"EC2"
],
"revision": 17,
"status": "ACTIVE",
"taskDefinitionArn": "arn:aws:ecs:eu-west-1:xxxxx:task-definition/redacted:17",
"taskRoleArn": "arn:aws:iam::xxxxx:role/redacted",
}
А вот файл конфигурации CW: предоставлен из безопасного параметра.

Код: Выделить всё

{
"agent": {
"metrics_collection_interval": 20,
},
"metrics": {
"namespace": "JmxMetrics",
"metrics_collected": {
"jmx": [
{
"endpoint": "localhost:9012",
"jvm": {
"measurement": [
"jvm.gc.collections.count",
"jvm.gc.collections.elapsed",
"jvm.memory.heap.used",
"jvm.memory.heap.max",
"jvm.memory.nonheap.used",
"jvm.memory.nonheap.max",
"jvm.memory.pool.used",
"jvm.threads.count"
]
}
}
]
}
}
}
Когда это запускается, я попадаю в журналы:

Код: Выделить всё

2025-11-20T06:44:05Z D! Profiler dump:
[no stats is available...]
Дело в том, что если я изменю порт в конфигурации конечной точки агента cw, ничего не изменится.
На самом деле я не уверен, где эти метрики появятся в Cloud Watch, но, судя по тому, что я прочитал, я их не вижу.
Может быть, мне нужно изменить настройки группы безопасности? Может быть, входящий? Единственное, что я думаю, я мог бы изменить, это окончание с localhost, но из всего, что я читал, localhost правильный при использовании awsvpc.

Подробнее здесь: https://stackoverflow.com/questions/798 ... tch-in-ecs
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»