API для мониторинга экземпляра EC2 - PullRequest
0 голосов
/ 09 декабря 2018

CA UIM датчик контролирует экземпляры EC2 с использованием API, предоставляемого AWS.

Можно ли получить доступ к этому API-интерфейсу AWS для мониторинга экземпляров EC2?

1 Ответ

0 голосов
/ 09 декабря 2018

Конечно, вы можете использовать AWS REST API (доступно через SDK или CLI ).Чтобы получить показатели экземпляра, вам нужно использовать API-интерфейсы EC2 и CloudWatch .Вот примеры с CLI AWS для метрик из «Метрики QOS, связанных с AWS» предоставленного вами документа:

Состояние экземпляра :

aws ec2 describe-instances --instance-ids i-999f9f99f999f99f9 --query "Reservations[*].Instances[*].[State]"

[
    [
        [
            {
                "Code": 16,
                "Name": "running"
            }
        ]
    ]
]

Загрузка ЦП (%) :

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00

{
    "Label": "CPUUtilization",
    "Datapoints": [
        {
            "Timestamp": "2018-12-07T02:40:00Z",
            "Average": 0.0,
            "Unit": "Percent"
        },
        {
            "Timestamp": "2018-12-07T13:35:00Z",
            "Average": 1.0,
            "Unit": "Percent"
        },
        …
    ]
}

Операции чтения с диска :

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSReadOps  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskReadOps  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00

{
    "Label": "EBSReadOps",
    "Datapoints": [
        {
            "Timestamp": "2018-12-07T00:25:00Z",
            "Average": 10.0,
            "Unit": "Count"
        },
        {
            "Timestamp": "2018-12-07T20:10:00Z",
            "Average": 11.5,
            "Unit": "Count"
        },
        …
    ]
}

Запись на дискOps

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSWriteOps  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteOps  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00

{
    "Label": "EBSWriteOps",
    "Datapoints": [
        {
            "Timestamp": "2018-12-07T00:25:00Z",
            "Average": 1229.3,
            "Unit": "Count"
        },
        {
            "Timestamp": "2018-12-07T20:10:00Z",
            "Average": 496.6,
            "Unit": "Count"
        },
        …
    ]
}

Байт для чтения с диска

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSReadBytes  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskReadBytes  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00

{
    "Label": "EBSReadBytes",
    "Datapoints": [
        {
            "Timestamp": "2018-12-07T00:25:00Z",
            "Average": 665.6,
            "Unit": "Count"
        },
        {
            "Timestamp": "2018-12-07T20:10:00Z",
            "Average": 200.3,
            "Unit": "Count"
        },
        …
    ]
}

Байт для записи на диск

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSWriteBytes  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteBytes  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00

{
    "Label": "EBSWriteBytes",
    "Datapoints": [
        {
            "Timestamp": "2018-12-07T00:25:00Z",
            "Average": 7026688.0,
            "Unit": "Count"
        },
        {
            "Timestamp": "2018-12-07T20:10:00Z",
            "Average": 7586713.6,
            "Unit": "Count"
        },
        …
    ]
}

Сеть в байтах

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name NetworkIn  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00

{
    "Label": "NetworkIn",
    "Datapoints": [
        {
            "Timestamp": "2018-12-07T16:10:00Z",
            "Average": 24489418.6,
            "Unit": "Bytes"
        },
        {
            "Timestamp": "2018-12-07T13:50:00Z",
            "Average": 21305249.0,
            "Unit": "Bytes"
        },
        …
    ]
}

Сеть в байтах

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name NetworkOut  --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00

{
    "Label": "NetworkOut",
    "Datapoints": [
        {
            "Timestamp": "2018-12-07T16:10:00Z",
            "Average": 25363795.4,
            "Unit": "Bytes"
        },
        {
            "Timestamp": "2018-12-07T13:50:00Z",
            "Average": 22128487.0,
            "Unit": "Bytes"
        },
        …
    ]
}

Полный список доступных метрик можно найти здесь .Подстраницы содержат доступные метрики для определенных услуг. Здесь - страница для EC2.

Вы получите практически те же данные при использовании SDK вашего языка.Как видите, CloudWatch просто возвращает список меток времени, которые вы запросили.

...