Commit eb59a917 authored by 吴晟's avatar 吴晟
Browse files

Do some rename works. :) And I think 7 ttl days is more common.

parent f7700d50
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -37,4 +37,4 @@ storage:
    cluster_nodes: {ES_ADDRESSES}
    index_shards_number: 2
    index_replicas_number: 0
    history_delete_before_days: 3
    ttl: 7
+1 −1
Original line number Diff line number Diff line
@@ -37,4 +37,4 @@ ui:
#    cluster_nodes: localhost:9300
#    index_shards_number: 2
#    index_replicas_number: 0
#    history_delete_before_days: 3
 No newline at end of file
#    ttl: 7
 No newline at end of file
+6 −16
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import java.util.Calendar;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.skywalking.apm.collector.core.module.ModuleManager;
import org.skywalking.apm.collector.core.util.CollectionUtils;
import org.skywalking.apm.collector.storage.StorageModule;
import org.skywalking.apm.collector.storage.dao.ICpuMetricPersistenceDAO;
import org.skywalking.apm.collector.storage.dao.IGCMetricPersistenceDAO;
@@ -40,14 +39,14 @@ import org.skywalking.apm.collector.storage.dao.IServiceReferencePersistenceDAO;
/**
 * @author peng-yongsheng
 */
public class HistoryDataDeleteTimer {
public class DataTTLKeeperTimer {

    private final ModuleManager moduleManager;
    private final StorageModuleEsNamingListener namingListener;
    private final String selfAddress;
    private final int daysBefore;

    public HistoryDataDeleteTimer(ModuleManager moduleManager,
    public DataTTLKeeperTimer(ModuleManager moduleManager,
        StorageModuleEsNamingListener namingListener, String selfAddress, int daysBefore) {
        this.moduleManager = moduleManager;
        this.namingListener = namingListener;
@@ -59,15 +58,6 @@ public class HistoryDataDeleteTimer {
        Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(this::delete, 1, 8, TimeUnit.HOURS);
    }

    private void tryDelete() {
        if (CollectionUtils.isNotEmpty(namingListener.getAddresses())) {
            String firstAddress = namingListener.getAddresses().iterator().next();
            if (firstAddress.equals(selfAddress)) {
                delete();
            }
        }
    }

    private void delete() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
@@ -82,11 +72,11 @@ public class HistoryDataDeleteTimer {
        calendar.set(Calendar.SECOND, 59);
        long endTimestamp = calendar.getTimeInMillis();

        deleteJVMMetricData(startTimestamp, endTimestamp);
        deleteTraceMetricData(startTimestamp, endTimestamp);
        deleteJVMRelatedData(startTimestamp, endTimestamp);
        deleteTraceRelatedData(startTimestamp, endTimestamp);
    }

    private void deleteJVMMetricData(long startTimestamp, long endTimestamp) {
    private void deleteJVMRelatedData(long startTimestamp, long endTimestamp) {
        ICpuMetricPersistenceDAO cpuMetricPersistenceDAO = moduleManager.find(StorageModule.NAME).getService(ICpuMetricPersistenceDAO.class);
        cpuMetricPersistenceDAO.deleteHistory(startTimestamp, endTimestamp);

@@ -100,7 +90,7 @@ public class HistoryDataDeleteTimer {
        memoryPoolMetricPersistenceDAO.deleteHistory(startTimestamp, endTimestamp);
    }

    private void deleteTraceMetricData(long startTimestamp, long endTimestamp) {
    private void deleteTraceRelatedData(long startTimestamp, long endTimestamp) {
        IGlobalTracePersistenceDAO globalTracePersistenceDAO = moduleManager.find(StorageModule.NAME).getService(IGlobalTracePersistenceDAO.class);
        globalTracePersistenceDAO.deleteHistory(startTimestamp, endTimestamp);

+4 −4
Original line number Diff line number Diff line
@@ -117,10 +117,10 @@ public class StorageModuleEsProvider extends ModuleProvider {
    private static final String CLUSTER_NODES = "cluster_nodes";
    private static final String INDEX_SHARDS_NUMBER = "index_shards_number";
    private static final String INDEX_REPLICAS_NUMBER = "index_replicas_number";
    private static final String HISTORY_DELETE_BEFORE_DAYS = "history_delete_before_days";
    private static final String TIME_TO_LIVE_OF_DATA = "ttl";

    private ElasticSearchClient elasticSearchClient;
    private HistoryDataDeleteTimer deleteTimer;
    private DataTTLKeeperTimer deleteTimer;

    @Override public String name() {
        return NAME;
@@ -163,8 +163,8 @@ public class StorageModuleEsProvider extends ModuleProvider {
        ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class);
        moduleListenerService.addListener(namingListener);

        Integer beforeDay = (Integer)config.getOrDefault(HISTORY_DELETE_BEFORE_DAYS, 3);
        deleteTimer = new HistoryDataDeleteTimer(getManager(), namingListener, uuId + 0, beforeDay);
        Integer beforeDay = (Integer)config.getOrDefault(TIME_TO_LIVE_OF_DATA, 3);
        deleteTimer = new DataTTLKeeperTimer(getManager(), namingListener, uuId + 0, beforeDay);
    }

    @Override public void notifyAfterCompleted() throws ServiceNotProvidedException {