Как использовать задержку запроса в качестве статистики в автоматическом анализе канареек 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
жестко закодирован как выравниватель для каждой серии.
Я не специалист по статистике, и я, честно говоря, несколько ошеломлен необходимостью выяснить, что вообще означает понятие "на каждую серию".
Как я могу получить задержку запроса из моих журналов и использовать это в канарном анализе?