Для того чтобы рассчитать среднее время ответа бэкенда с использованием логов Nginx Ingress в Grafana с помощью Loki, нужно правильно извлечь временные метрики из логов. В вашем случае, вы уже используете правильный начальный шаблон для фильтрации.
Давайте я помогу вам улучшить ваш запрос чтобы вы могли получить среднее время ответа.
### Шаги для получения среднего времени ответа:
1. **Извлечение времени ответа от бэкенда**: Ваша строка `line_format` выглядит корректно, однако чтобы получить не только значения временных метрик, но и провести с ними дальнейшие вычисления, довольно эффективно будет использовать `rate`, `avg` или другие функции агрегации.
2. **Используйте агрегацию**: Подсчитаем среднее время ответа от бэкенда с помощью функции `avg()`, примененной к `upstream_response_time`.
Вот пример запроса, который вы можете использовать:
```prometheus
sum(rate({job="default/ingress-nginx"}
|= `default-backend-dev-80`
!= `Blackbox Exporter`
| pattern `<remote_addr> <_> <_> [<time_local>] "<metod> <url> <protocol>" <status> <body_bytes_sent> "<http_referer>" "<http_user_agent>" <request_length> <request_time> [<proxy_upstream_name>] [<proxy_alternative_upstream_name>] <upstream_addr> <upstream_response_length> <upstream_response_time> <upstream_status> <req_id>`
| line_format `time={{.upstream_response_time}}` | logfmt)[5m])
/
count(rate({job="default/ingress-nginx"}
|= `default-backend-dev-80`
!= `Blackbox Exporter`
| pattern `<remote_addr> <_> <_> [<time_local>] "<metod> <url> <protocol>" <status> <body_bytes_sent> "<http_referer>" "<http_user_agent>" <request_length> <request_time> [<proxy_upstream_name>] [<proxy_alternative_upstream_name>] <upstream_addr> <upstream_response_length> <upstream_response_time> <upstream_status> <req_id>`
| line_format `time={{.upstream_response_time}}` | logfmt)[5m])
```
### Объяснение:
- `sum(rate(...))`: Вычисляет общее время ответа за указанный период (5 минут) с помощью функции `rate()`.
- `count(rate(...))`: Подсчитывает общее количество запросов за тот же период, для того чтобы потом можно было разделить сумму времени ответа на количество запросов.
Если вы хотите получить значения за другой временной интервал, просто замените `5m` на желаемый период, например `1m` или `10m`.
### Результат:
В результате вы получите среднее время ответа от бэкенда. Если какую-то часть запроса нужно доработать или изменить основываясь на ваших специфических логах, просто подгоните соответствующее регулярное выражение или фильтры.