class AlarmRecordMeasurementProvider extends StaticMeasurementProvider {

    MeterRegistry registry;

    public AlarmRecordMeasurementProvider(MeterRegistryManager registryManager,
                                          TimeSeriesManager timeSeriesManager) {
        super(AlarmDashboardDefinition.alarm, AlarmObjectDefinition.record);

        registry = registryManager.getMeterRegister(AlarmTimeSeriesMetric.alarmStreamMetrics().getId());
        addMeasurement(new AlarmRecordTrendMeasurement(timeSeriesManager));
        addMeasurement(new AlarmRecordRankMeasurement(timeSeriesManager));

    }

    @EventListener
    public void aggAlarmRecord(AlarmHistoryInfo info) {
        registry
            .counter("record-agg", getTags(info))
            .increment();
    }



    public String[] getTags(AlarmHistoryInfo info) {<FILL_FUNCTION_BODY>}
}

        Map<String, Object> tagMap = Maps.newLinkedHashMap();

        tagMap.put(AlarmConstants.ConfigKey.targetId, info.getTargetId());
        tagMap.put(AlarmConstants.ConfigKey.targetType, info.getTargetType());
        tagMap.put(AlarmConstants.ConfigKey.targetName, info.getTargetName());

        tagMap.put(AlarmConstants.ConfigKey.alarmConfigId, info.getAlarmConfigId());
        return ConverterUtils.convertMapToTags(tagMap);
    
<methods>public void <init>(org.jetlinks.community.dashboard.DashboardDefinition, org.jetlinks.community.dashboard.ObjectDefinition) ,public Mono<org.jetlinks.community.dashboard.Measurement> getMeasurement(java.lang.String) ,public Flux<org.jetlinks.community.dashboard.Measurement> getMeasurements() <variables>private org.jetlinks.community.dashboard.DashboardDefinition dashboardDefinition,private Map<java.lang.String,org.jetlinks.community.dashboard.Measurement> measurements,private org.jetlinks.community.dashboard.ObjectDefinition objectDefinition