Настройка Grafana для отображения метрик на графике в определенное времяJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Настройка Grafana для отображения метрик на графике в определенное время

Сообщение Anonymous »

Я пытаюсь создать метрики в приложении Java/Spring Boot. Я использую Микрометр + Прометей + Графана. Логика проста: есть задание, которое периодически запускается, и это задание скачивает файл со списком клиентов. И я создал 2 метрики: общее количество клиентов в файле (total_clients) и количество загруженных файлов (uploaded_clients).
Файл prometheus.yml:

Код: Выделить всё

global:
scrape_interval: 10s

scrape_configs:
-   job_name: 'test_spring_micrometer'
metrics_path: '/actuator/prometheus'
static_configs:
-   targets: [ '172.19.0.1:8080' ]
Сервис для сбора 2 метрик:

Код: Выделить всё

@Service
@Slf4j
public class FileUploadService {

private AtomicInteger totalClients;
private AtomicInteger uploadedClients;

@Autowired
private MeterRegistry meterRegistry;

@PostConstruct
public void init() {
totalClients = new AtomicInteger();
uploadedClients = new AtomicInteger();

meterRegistry.gauge("total_clients", totalClients);
meterRegistry.gauge("uploaded_clients", uploadedClients);
}

public void upload() {
int total = getAllClients();
totalClients.set(total);

int uploaded = getUploadClients();
uploadedClients.set(uploaded);
}
}
Задание, вызывающее службу:

Код: Выделить всё

    @Scheduled(fixedDelay = 120_000) // 2 minutes
public void execute() {
log.info("Start job");
fileUploadService.upload();
log.info("Finish job");
}
У меня вопрос: это задание выполняется каждые 2 минуты (120 000 миллисекунд). И я ожидаю увидеть столбцы с метриками на графике в Grafana раз в 2 минуты, в тот момент, когда приложение читает новый файл со списком клиентов. Но на самом деле я вижу, что новые столбцы в Grafana появляются каждые 15 секунд:
[img]https:/ /i.sstatic.net/oTwqR6ZA.png[/img]

Насколько я понимаю, это происходит потому, что Прометей получает метрики каждые 15 секунд. И это хорошо, потому что у меня есть второй дашборд с метриками JVM. Поэтому раз в 15 секунд это нормально.
Поскольку я получаю одни и те же значения в течение 2 минут, так как новый файл будет загружен только через 2 минуты, то очевидно, что столбцы будут одинаковыми.
В этом примере задание выполняется один раз каждые 2 минуты. И я бы хотел, чтобы столбцы рисовались один раз в 2 минуты, вот так:
[img]https://i.sstatic .net/HD3tgmOy.png[/img]
  • это не настоящая графика, я рисую ее сам :-))
Скажите, как мне правильно создать эти 2 показателя?
Может быть, я следует писать в Grafana, в поле «Метрика», а не просто название метрики (

Код: Выделить всё

total_clients
и uploaded_clients), но некоторые выражения на языке PromQL. Или, возможно, я выбрал неправильный тип метрики в Java-коде.
Надеюсь, я ясно описал свою проблему. Я только начинаю понимать Прометея и Графану :-))

Подробнее здесь: https://stackoverflow.com/questions/789 ... rtain-time
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»