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