Page tree
Skip to end of metadata
Go to start of metadata

Работает в «Подсказках» 18.10+

«Подсказки» рассчитывают метрики производительности:

  • Количество запросов и ошибок
  • Среднее время ответа
  • 90, 95 и 99 процентили времени ответа

Собирают метрики раздельно по каждому справочнику, за всё время с начала суток и за последний час (скользящая).

API

Запрос

GET /metrics/performance/[dictionary]?[period=day|hour][&detailed=true][&histogram=true]


  • dictionary – может принимать значения address, bank, fio, ip, party, а также любые внешние справочники, если они есть. Если не указан, метод возвращает статистику по всем справочникам;
  • period– может принимать значения DAY (с начала суток) и HOUR (за последний час). Если не указан, считается period = DAY;
  • detailed – при включении добавляются поля metrics.search_time и metrics.enrich_time (начиная с версии 19.6);
  • histogram – при включении добавляется поле metrics.response_time.histogram (начиная с версии 19.6);

Ответ

ПолеОписание
hostnameИмя хоста, при необходимости возвращаемое значение можно переопределить через JVM-свойство statistic.performance.hostname (начиная с версии 19.1)
version

Версия подсказок

revisionРевизия подсказок

period

└ type

└ from

└ to

Период метрик

HOUR / DAY

начало периода

конец периода

metrics

Метрики

metrics.nameНаименование справочника
metrics.methodМетод SUGGEST / FIND_BY_ID

metrics.request

└ count

└ client_errors

└ server_errors

└ timeouts

Статистика запросов

общее количество

ошибки клиента

ошибки сервера

таймауты (начиная с версии 19.1)

metrics.response_time

└ average

└ percentile_90

└ percentile_95

└ percentile_99

└ histogram

Время ответа в миллисекундах

среднее

90 перцентиль

95 перцентиль

95 перцентиль

гистограмма распределения времени ответа при указании histogram=true и периоде period = DAY (начиная с версии 19.6)

metrics.search_time

Время поиска в миллисекундах при указании detailed=true, формат аналогичен metrics.response_time (начиная с версии 19.6)

metrics.enrich_timeВремя обогащения в миллисекундах при указании detailed=true, формат аналогичен metrics.response_time (начиная с версии 19.6)

Пример:

GET /metrics/performance/address?period=hour&detailed=true&histogram=true

{
    "hostname": "suggestions.mydomain.ru",
    "version": "19.7",
    "revision": "cad9cab2d4b0",
    "period": {
        "type": "DAY",
        "from": "2019-07-23 15:04:11",
        "to": "2019-07-23 16:17:41"
    },
    "metrics": [
        {
            "name": "address",
            "method": "SUGGEST",
            "request": {
                "count": 54,
                "client_errors": 0,
                "server_errors": 0,
                "timeouts": 0
            },
            "response_time": {
                "average": 495,
                "percentile_90": 1239,
                "percentile_95": 1535,
                "percentile_99": 3135,
                "histogram": [
                    {
                        "value": 2,
                        "count": 1
                    },
                    {
                        "value": 6,
                        "count": 5
                    },
                    ...


                    ...
                    {
                        "value": 997,
                        "count": 1
                    }
                ]
            },
            "search_time": {
                "average": 498,
                "percentile_90": 1239,
                "percentile_95": 1535,
                "percentile_99": 3135,
                "histogram": [
                    {
                        "value": 1,
                        "count": 1
                    },
                    {
                        "value": 5,
                        "count": 1
                    },
                    ...


                    ...
                    {
                        "value": 996,
                        "count": 1
                    }
                ]
            }
        }
    ]
}
 Пример ответа до версии 19.6 (раскрыть)
GET /metrics/performance/bank?period=hour

[
    {
        "hostname": "suggestions.mydomain.ru",
        "name": "bank",
        "period": {
            "type": "HOUR",
            "from": "2018-12-07 11:35:12",
            "to": "2018-12-07 12:35:12",
        },
        "request": {
            "count": 5000,
            "client_errors": 0,
            "server_errors": 0,
            "timeouts": 0
        },
        "response_time": {
            "average": 50,
            "percentile_90": 80,
            "percentile_95": 85,
            "percentile_99": 100
        }
    }
]
  • No labels