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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Работает в «Подсказках» 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

{
    "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