Како користити увиде у АВС евиденције за упите о метрикама контролне табле из евиденције АВС услуга

Свака АВС услуга бележи своју обраду у датотеке организоване у ЦлоудВатцх групама евиденције. Групе дневника се обично називају по самом сервису ради лакше идентификације. Системске поруке услуге или информације о заједничком стању се подразумевано уписују у те датотеке евиденције.

Међутим, можете додати прилагођене информације о порукама дневника поврх подразумеваних. Ако се такви дневники праве мудро, они могу послужити за креирање корисних ЦлоудВатцх контролних табли.

Са метрикама и структурираним информацијама које дају додатне детаље о обради посла. Не само да могу да садрже стандардне виџете са системским информацијама о услузи. Ово можете проширити сопственим садржајем, агрегираним у ваш прилагођени виџет или метрику.

Упитајте датотеке евиденције

Извор: авс.амазон.цом

АВС ЦлоудВатцх Лог Инсигхтс вам омогућава да претражујете и анализирате податке евиденције из ваших АВС ресурса у реалном времену. Можете га посматрати као приказ базе података. Упит дефинишете на контролној табли, а контролна табла ће га изабрати када га посетите или у одређеном временском прозору у прошлости, како га дефинишете у приказу контролне табле.

Користи језик упита који се зове ЦлоудВатцх Логс Инсигхтс за претрагу и анализу података евиденције. Језик упита је заснован на подскупу СКЛ језика. Омогућава вам да претражујете и филтрирате податке дневника. Можете претраживати одређене догађаје дневника, прилагођени текст дневника или кључне речи и филтрирати податке дневника на основу одређених поља. И што је најважније, агрегирајте податке дневника унутар једне или више датотека евиденције да бисте генерисали сажете метрике и визуелизације.

Када покренете упит, ЦлоудВатцх Лог Инсигхтс претражује податке евиденције у групи евиденција. Затим враћа текстове који су резултат датотека које одговарају критеријумима вашег упита.

Пример упита за датотеку евиденције

Хајде да погледамо неке основне упите да бисмо разумели концепт.

Свака услуга подразумевано бележи неке кључне сервисне грешке. Чак и ако не креирате наменски прилагођени дневник за такве догађаје грешака. Затим помоћу једноставног упита можете пребројати број грешака у евиденцији апликације током последњег сата:

fields @timestamp, @message
| filter @message like /ERROR/
| stats count() by bin(1h)

Или ево како да пратите просечно време одговора вашег АПИ-ја током последњег дана:

fields @timestamp, @message
| filter @message like /API response time/
| stats avg(response_time) by bin(1d)

Пошто је, подразумевано, коришћење ЦПУ-а информација коју услуга бележи у ЦлоудВатцх, можете прикупити и ову врсту метрике:

fields @timestamp, @message
| filter @message like /CPUUtilization/
| stats avg(value) by bin(1h)

Ови упити се могу прилагодити тако да одговарају вашем специфичном случају употребе и могу се користити за креирање прилагођених метрика и визуелизација на ЦлоудВатцх контролним таблама. Начин на који то можете да урадите је да поставите виџет на контролну таблу и поставите код унутар виџета да дефинишете шта да изаберете.

  Како уклонити налог из Минт-а

Ево неких од виџета који се могу користити у ЦлоудВатцх контролним таблама и попунити садржајем из Лог Инсигхтс-а:

  • Текстуални виџети – Приказ информација заснованих на тексту, као што је излаз ЦлоудВатцх Инсигхтс упита.
  • Виџети за упите евиденције – Прикажите резултате ЦлоудВатцх Инсигхтс упита евиденције, као што је број грешака у евиденцији ваше апликације.

Како креирати корисне информације дневника за контролну таблу

Извор: авс.амазон.цом

Да бисте ефикасно користили ЦлоудВатцх Инсигхтс упите у ЦлоудВатцх контролним таблама, добро је да пратите неке најбоље праксе приликом креирања ЦлоудВатцх евиденција за сваку од услуга које користите у свом систему. Ево неколико савета:

#1. Користите структурирано евидентирање

Држаћете се формата евидентирања који користи унапред дефинисану шему за евидентирање података у структурираном формату. Ово олакшава претрагу и филтрирање података евиденције помоћу ЦлоудВатцх Инсигхтс упита.

Ово у основи значи стандардизацију ваших дневника у различитим услугама на вашој архитектонској платформи. Дефинисање у развојним стандардима изузетно помаже.

На пример, можете дефинисати да ће сваки проблем који се односи на одређену табелу базе података бити евидентиран са почетном поруком као што је: „[TABLE_NAME] Упозорење/Грешка: <порука>”.

Или можете да одвојите пуне послове података од послова делта података помоћу префикса попут „[FULL/DELTA]” да изаберете само поруке које се односе на конкретне процесе података.

Можете дефинисати да ће током обраде података из одређеног изворног система, име система бити префикс сваког повезаног уноса дневника. Касније је много лакше филтрирати такве поруке из датотека евиденције и изградити метрику преко њих.

Извор: авс.амазон.цом

#2. Користите доследне формате дневника

Користите доследне формате евиденције у свим својим АВС ресурсима да бисте олакшали претрагу и филтрирање података евиденције помоћу ЦлоудВатцх Инсигхтс упита.

Ово је прилично повезано са претходном тачком, али чињеница је да што је формат дневника стандардизованији, лакше је користити податке дневника. Програмери се тада могу ослонити на тај формат и користити га чак интуитивно.

  Како да креирате и продате своје Лигхтроом унапред постављене поставке: Ултимативни водич

Сурова чињеница је да се већина пројеката не замара никаквим стандардима око сече. Штавише, многи пројекти уопште не креирају никакве прилагођене евиденције. То је шокантно, али и тако често у исто време.

Не могу чак ни да кажем колико пута сам се запитао како људи могу да живе овде без икаквог приступа руковању грешкама. И ако се неко потрудио да уради неку врсту обраде грешака као изузетак, урадио је то погрешно.

Дакле, доследан формат дневника је јака предност. Нема их много.

#3. Укључите релевантне метаподатке

Укључите метаподатке у своје податке евиденције, као што су временске ознаке, ИД-ови ресурса и кодови грешака, да бисте олакшали претрагу и филтрирање података евиденције помоћу ЦлоудВатцх Инсигхтс упита.

#4. Омогући ротацију дневника

Омогућите ротацију евиденције да бисте спречили да ваши подаци евиденције постану превелики и да бисте олакшали претрагу и филтрирање података евиденције помоћу ЦлоудВатцх Инсигхтс упита.

Без података дневника је једна ствар, али имати превише њих без структуре је исто тако очајно. Ако не можете да користите своје податке, то је као да уопште немате податке.

#5. Користите агенте ЦлоудВатцх дневника

Ако не можете себи помоћи и једноставно одбијете да направите свој прилагођени систем евиденције, онда барем користите ЦлоудВатцх Логс агенте. Они аутоматски шаљу податке евиденције из ваших АВС ресурса у ЦлоудВатцх дневнике. Ово олакшава претрагу и филтрирање података евиденције помоћу ЦлоудВатцх Инсигхтс упита.

Сложенији примери упита увида

Упит ЦлоудВатцх Инсигхтс-а може бити компликованији од само два реда исказа.

fields @timestamp, @message
| filter @message like /ERROR/
| filter @message not like /404/
| parse @message /.*[(?<timestamp>[^]]+)].*"(?<method>[^s]+)s+(?<path>[^s]+).*" (?<status>d+) (?<response_time>d+)/
| stats avg(response_time) as avg_response_time, count() as count by bin(1h), method, path, status
| sort count desc
| limit 20

Овај упит ради следеће:

  • Бира догађаје дневника који садрже стринг „ЕРРОР“, али не и „404“.
  • Рашчлањује поруку дневника да би издвојио временску ознаку, ХТТП метод, путању, статусни код и време одговора.
  • Израчунава просечно време одговора и број догађаја евиденције за сваку комбинацију ХТТП метода, путање, статусног кода и сата.
  • Сортира резултате бројањем у опадајућем редоследу.
  • Ограничава излаз на првих 20 резултата.
  • Овај упит идентификује најчешће грешке у вашој апликацији и прати просечно време одговора за сваку комбинацију ХТТП метода, путање и статусног кода. Можете да користите резултате да бисте креирали прилагођене метрике и визуелизације у ЦлоудВатцх контролним таблама да бисте надгледали перформансе ваше веб апликације и решавали проблеме.

    Још један пример упита за сервисне поруке Амазон С3:

    fields @timestamp, @message
    | filter @message like /REST.API.REQUEST/
    | parse @message /.*"(?<method>[^s]+)s+(?<path>[^s]+).*" (?<status>d+) (?<response_time>d+)/
    | stats avg(response_time) as avg_response_time, count() as count by bin(1h), method, path, status
    | sort count desc
    | limit 20
    • Упит бира догађаје дневника који садрже стринг „РЕСТ.АПИ.РЕКУЕСТ“.
    • Затим анализира поруку дневника да би издвојио ХТТП метод, путању, статусни код и време одговора.
    • Он израчунава просечно време одговора и број догађаја евиденције за сваку комбинацију ХТТП метода, путање и статусног кода и сортира резултате по броју у опадајућем редоследу.
    • Ограничава излаз на првих 20 резултата.
      Закажите објаве на Фацебоок-у и Твиттер-у и подесите их за поновно објављивање [Web]

    Можете да користите излаз овог упита да направите линијски графикон на ЦлоудВатцх контролној табли који приказује просечно време одговора за сваку комбинацију ХТТП метода, путање и статусног кода током времена.

    Изградња контролне табле

    Да бисте попунили метрике и визуелизације у ЦлоудВатцх контролне табле из излаза ЦлоудВатцх Инсигхтс упита евиденције, можете да се крећете до ЦлоудВатцх конзоле и пратите чаробњака Дасхбоард да бисте изградили свој садржај.

    Након тога, овако изгледа код ЦлоудВатцх контролне табле и садржи метрику испуњену подацима ЦлоудВатцх Инсигхтс Куери-а:

    {
        "widgets": [
            {
                "type": "metric",
                "x": 0,
                "y": 0,
                "width": 12,
                "height": 6,
                "properties": {
                    "metrics": [
                        [
                            "AWS/EC2",
                            "CPUUtilization",
                            "InstanceId",
                            "i-0123456789abcdef0",
                            {
                                "label": "CPU Utilization",
                                "stat": "Average",
                                "period": 300
                            }
                        ]
                    ],
                    "view": "timeSeries",
                    "stacked": false,
                    "region": "us-east-1",
                    "title": "EC2 CPU Utilization"
                }
            },
            {
                "type": "log",
                "x": 0,
                "y": 6,
                "width": 12,
                "height": 6,
                "properties": {
                    "query": "fields @timestamp, @message
    | filter @message like /ERROR/
    | stats count() by bin(1h)
    ",
                    "region": "us-east-1",
                    "title": "Application Errors"
                }
            }
        ]
    }

    Ова ЦлоудВатцх контролна табла садржи два виџета:

  • Метрички виџет који приказује просечну искоришћеност ЦПУ-а ЕЦ2 инстанце током времена. ЦлоудВатцх Инсигхтс упит попуњава виџет. Он бира податке о коришћењу ЦПУ-а за одређену ЕЦ2 инстанцу и агрегира их у интервалима од 5 минута.
  • Виџет дневника који приказује број грешака у апликацији током времена. Он бира догађаје дневника који садрже стринг „ЕРРОР“ и агрегира их по сату.
  • То је датотека ЈСОН формата са дефиницијом контролне табле и метрика унутра. Садржи (као својство) и сам упит за увид.

    Можете узети код и применити га на било који АВС налог који вам је потребан. Под претпоставком да су услуге и поруке дневника конзистентне у свим вашим АВС налозима и фазама, контролна табла ће радити на свим налозима без потребе за променом изворног кода контролне табле.

    Завршне речи

    Изградња чврсте структуре сече је увек била добра инвестиција у будућност поузданости система. Сада може послужити још већој сврси. Можете имати корисне контролне табле са метрикама и визуализацијама само као споредни ефекат тога.

    Пошто је потребно да се уради само једном, уз само мало додатног рада, развојни тим, тим за тестирање и корисници у производњи могу имати користи од истог решења.

    Затим погледајте најбоље АВС алате за праћење.