Как разделить поле Cloudwatch по его значению в запросе Insights - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь создать AWS визуализацию приборной панели, которая отображает количество попаданий в кеш по сравнению с пропусками за определенный период времени. Для этого я настраиваю панель мониторинга типа log с запросом аналитики в журнале. Чтобы быть максимально простым, мой журнал выглядит так:

{"cache.hit", true} или {"cache.hit", false}.

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

{"cache.hit.true", true} или {"cache.hit.false", true}, то я мог бы создать 2 отдельных графика для независимого отслеживания этих значений на панели инструментов, но это не так чисто.

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

fields @timestamp, @message, cache.hit as cache_hits
| filter cache_hits IN [0, 1]
| display cache_hits = 0 as in_cache_false
| display cache_hits = 1 as in_cache_true
| stat count (in_cache_true), count(in_cache_false) by bin(30s)
| sort @timestamp desc
| limit 20

1 Ответ

1 голос
/ 10 июля 2020

Этот запрос ниже извлекает попадания в кэш и промахи кеша, а затем вычисляет процент попаданий в кеш.

fields @timestamp, @message
| filter @message like /cache.hit/
| fields strcontains(@message, "true") as @CacheHit,
         strcontains(@message, "false") as @CacheMiss
| stats sum(@CacheHit) as CacheHits, sum(@CacheMiss) as CacheMisses, sum(@CacheHit) / (sum(@CacheMiss) + sum(@CacheHit)) * 100 as HitPercentage by bin(30s)
| sort @timestamp desc
...