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

Я использую 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 жестко закодирован как выравниватель для каждой серии.

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

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

0 ответов

Другие вопросы по тегам