Как использовать задержку запроса в качестве статистики в автоматическом анализе канареек Spinnaker? - PullRequest
0 голосов
/ 12 сентября 2018

Я использую Spinnaker в Google Kubernetes Engine со Stackdriver в качестве источника журналов и статистики. У меня проблемы с получением метрик времени / распределения при работе с настройкой автоматического анализа канареек Spinnaker.

Мое приложение регистрирует информацию о запросах для каждого входящего запроса API. Они включают в себя все детали запроса, поэтому я могу создавать статистику на основе журнала.

Довольно усеченная запись в журнале выглядит так:

{
  "jsonPayload": {
    "format_parameters": {
      "ElapsedMilliseconds": "4.9541",
      "Method": "POST",
      "NormalizedPath": "api/add",
      "StatusCode": "200"
    }
  },
  "labels": {
    "kubernetes/labels/app.kubernetes.io/name": "calculator",
    "kubernetes/labels/track": "production",
    "kubernetes/namespace": "calculator"
  }
}

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

resource.type="container" AND
jsonPayload.format_parameters.NormalizedPath != ""

И указать, что это метрика «Распределение» на основе jsonPayload.format_parameters.ElapsedMilliseconds. Я назвал это api/request_latency, и я могу видеть графики данных, разбивать их по пути и методу запроса и т. Д.

Я хочу настроить Spinnaker (Kayenta), чтобы он не прошел анализ канареек, если задержка увеличится. Эта статья от Netflix показывает, что они делают это , но я также вижу, что они оценивают это по 5-му, 50-му и 99-му процентилям.

Я настроил свою канареечную конфигурацию, чтобы посмотреть на logging.googleapis.com/user/api/request_latency, и у меня есть такой фильтр:

metric.label.name="${location}" AND
metric.label.track="${scope}"

Метка track переключается между canary и production, а location устанавливается в качестве имени приложения.

При выполнении анализа канареек я получаю эту ошибку:

Field aggregation.perSeriesAligner had an invalid value of "ALIGN_MEAN": The aligner cannot be applied to metrics with kind DELTA and value type DISTRIBUTION."

Я обнаружил, что это исходит от Stackdriver, и запрос Kayenta, работающий со статистикой , имеет ALIGN_MEAN, жестко закодированный как выравниватель для каждой серии .

Я не специалист по статистике, и я, честно говоря, несколько ошеломлен необходимостью выяснить, что вообще означает слово "на каждую серию".

Как получить задержку запроса из моих журналов и использовать ее в анализе канареек?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...