Файл 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' ]
Код: Выделить всё
@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");
}
[img]https:/ /i.sstatic.net/oTwqR6ZA.png[/img]
Насколько я понимаю, это происходит потому, что Прометей получает метрики каждые 15 секунд. И это хорошо, потому что у меня есть второй дашборд с метриками JVM. Поэтому раз в 15 секунд это нормально.
Поскольку я получаю одни и те же значения в течение 2 минут, так как новый файл будет загружен только через 2 минуты, то очевидно, что столбцы будут одинаковыми.
В этом примере задание выполняется один раз каждые 2 минуты. И я бы хотел, чтобы столбцы рисовались один раз в 2 минуты, вот так:
[img]https://i.sstatic .net/HD3tgmOy.png[/img]
- это не настоящая графика, я рисую ее сам
)
Может быть, я следует писать в Grafana, в поле «Метрика», а не просто название метрики (
Код: Выделить всё
total_clientsНадеюсь, я ясно описал свою проблему. Я только начинаю понимать Прометея и Графану
Подробнее здесь: https://stackoverflow.com/questions/789 ... rtain-time
Мобильная версия