AWS CLI Ouput форматирует в SPLUNK - PullRequest
       46

AWS CLI Ouput форматирует в SPLUNK

0 голосов
/ 15 апреля 2020

Я использую AWS CLI для получения некоторых метрик Kinesis - часть того, что я могу указать формат вывода, как один из следующих: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli -quick-configuration-format

Формат вывода

Формат вывода по умолчанию определяет способ форматирования результатов. Значением может быть любое из значений в следующем списке. Если вы не укажете формат вывода, то по умолчанию будет использоваться json.

json – The output is formatted as a JSON

string.

yaml - Выходные данные отформатированы как YAML

строка. (Доступно только в AWS CLI версии 2.)

текст - вывод форматируется как несколько строк строковых значений, разделенных табуляцией. Это может быть полезно для передачи вывода текстовому процессору, например, grep, sed или awk.

table - вывод форматируется как таблица с использованием символов + | - для формирования границ ячейки. Как правило, он представляет информацию в «удобном для человека» формате, который намного проще для чтения, чем другие, но не настолько полезен для программирования.

Я пробовал текст, поскольку это кажется наиболее разумным для спанк, но я думаю, что данные, разделенные строкой, портят спленкс:

METRICDATARESULTS   iteratorAgeMilliseconds itagemillis PartialData
METRICDATARESULTS   readProvisionedThroughputExceeded   itagemillis PartialData
TIMESTAMPS  2020-04-15T20:21:00+00:00
TIMESTAMPS  2020-04-15T20:20:00+00:00
TIMESTAMPS  2020-04-15T20:19:00+00:00
TIMESTAMPS  2020-04-15T20:18:00+00:00
TIMESTAMPS  2020-04-15T20:17:00+00:00
TIMESTAMPS  2020-04-15T20:16:00+00:00
VALUES  0.0
VALUES  0.0
VALUES  0.0
VALUES  0.0
VALUES  0.0
VALUES  0.0
METRICDATARESULTS   writeProvisionedThroughputExceeded  itagemillis PartialData
TIMESTAMPS  2020-04-15T19:36:00+00:00
TIMESTAMPS  2020-04-15T19:35:00+00:00
TIMESTAMPS  2020-04-15T19:34:00+00:00
TIMESTAMPS  2020-04-15T19:33:00+00:00
VALUES  0.0
VALUES  0.0
VALUES  0.0
VALUES  0.0
VALUES  0.0
VALUES  0.0

Есть ли какие-либо соображения по поводу AWS или спланка о том, как лучше всего обрабатывать прием этих данных?

- это команда CLI aws cloudwatch get-metric-data --start-time 16:29 --end-time 23:59 --metric-data-queries file://metric-data-queries.json --output text и содержимое metri c -data-query. json

[
  {
    "Id": "iteratorAgeMilliseconds",
    "MetricStat": {
      "Metric": {
        "Namespace": "AWS/Kinesis",
        "MetricName": "GetRecords.IteratorAgeMilliseconds",
        "Dimensions": [
          {
            "Name": "StreamName",
            "Value": "test.dev.com"
          }
        ]
      },
      "Period": 1,
       "Stat": "Sum",
        "Unit": "Count"
    },
    "Label": "itagemillis",
    "ReturnData": true
  },
  {
    "Id": "readProvisionedThroughputExceeded",
    "MetricStat": {
      "Metric": {
        "Namespace": "AWS/Kinesis",
        "MetricName": "ReadProvisionedThroughputExceeded",
        "Dimensions": [
          {
            "Name": "StreamName",
            "Value": "test.dev.com"
          }
        ]
      },
      "Period": 1,
       "Stat": "Sum",
        "Unit": "Count"
    },
    "Label": "itagemillis",
    "ReturnData": true
  },
    {
    "Id": "writeProvisionedThroughputExceeded",
    "MetricStat": {
      "Metric": {
        "Namespace": "AWS/Kinesis",
        "MetricName": "WriteProvisionedThroughputExceeded",
        "Dimensions": [
          {
            "Name": "StreamName",
            "Value": "test.dev.com"
          }
        ]
      },
      "Period": 1,
       "Stat": "Sum",
        "Unit": "Count"
    },
    "Label": "itagemillis",
    "ReturnData": true
  },
    {
    "Id": "putRecordSuccess",
    "MetricStat": {
      "Metric": {
        "Namespace": "AWS/Kinesis",
        "MetricName": "PutRecord.Success",
        "Dimensions": [
          {
            "Name": "StreamName",
            "Value": "test.dev.com"
          }
        ]
      },
      "Period": 1,
       "Stat": "Sum",
        "Unit": "Count"
    },
    "Label": "itagemillis",
    "ReturnData": true
  },
    {
    "Id": "putRecordsSuccess",
    "MetricStat": {
      "Metric": {
        "Namespace": "AWS/Kinesis",
        "MetricName": "PutRecords.Success",
        "Dimensions": [
          {
            "Name": "StreamName",
            "Value": "test.dev.com"
          }
        ]
      },
      "Period": 1,
       "Stat": "Sum",
        "Unit": "Count"
    },
    "Label": "itagemillis",
    "ReturnData": true
  },
    {
    "Id": "getRecordsSuccess",
    "MetricStat": {
      "Metric": {
        "Namespace": "AWS/Kinesis",
        "MetricName": "GetRecords.Success",
        "Dimensions": [
          {
            "Name": "StreamName",
            "Value": "test.dev.com"
          }
        ]
      },
      "Period": 1,
       "Stat": "Sum",
        "Unit": "Count"
    },
    "Label": "itagemillis",
    "ReturnData": true
  }
]

1 Ответ

0 голосов
/ 16 апреля 2020

Вы обнаружите, что Splunk обрабатывает JSON довольно хорошо из коробки, поэтому я бы порекомендовал использовать это поверх других опций. Вам может потребоваться установить KV_MODE=JSON для исходного типа, который вы принимаете, но он должен делать это по умолчанию.

См. Здесь, например, https://docs.splunk.com/Documentation/Splunk/latest/Knowledge/Automatickey-valuefieldextractionsatsearch-time

Вы также можете посмотреть на использование приложений Splunk для интеграции с AWS, таких как надстройка Splunk для AWS, https://splunkbase.splunk.com/app/1876/ и надстройка Splunk для Amazon Kinesis Firehose, https://splunkbase.splunk.com/app/3719/

...