package com.cameleer.server.core.storage.model;

import java.time.Instant;
import java.util.Map;

/**
 * A single sample of the server's own Micrometer registry, captured by a
 * scheduled snapshot and destined for the ClickHouse {@code server_metrics}
 * table. One {@code ServerMetricSample} per Micrometer {@code Measurement},
 * so Timers and DistributionSummaries produce multiple samples per tick
 * (distinguished by {@link #statistic()}).
 */
public record ServerMetricSample(
        String tenantId,
        Instant collectedAt,
        String serverInstanceId,
        String metricName,
        String metricType,
        String statistic,
        double value,
        Map<String, String> tags
) {
}
