Compare commits

...
Author SHA1 Message Date
tomsun28 696432b59c Merge branch 'master' into fix-memory 2025-03-10 00:34:40 +08:00
tomsun28 299f41b769 Merge branch 'master' into fix-memory 2025-03-09 16:10:49 +08:00
tomsun28 0776480256 [improve] fix potential memory leakage and content length issues.
Signed-off-by: tomsun28 <tomsun28@outlook.com>
2025-03-06 00:46:44 +08:00
5 changed files with 14 additions and 6 deletions
@@ -63,6 +63,7 @@ public class GroupAlert {
private Long id;
@Schema(title = "Group Key", example = "HighCPUUsage{alertname=\"HighCPUUsage\", instance=\"server1\"}")
@Column(length = 2048)
private String groupKey;
@Schema(title = "Status", example = "resolved")
@@ -59,8 +59,9 @@ public class SingleAlert {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Schema(title = "Threshold Id", example = "87584674384", accessMode = READ_ONLY)
private Long id;
@Schema(title = "Fingerprint", example = "dxsdfdsf")
@Schema(title = "Fingerprint", example = "alertname:demo")
@Column(length = 2048)
private String fingerprint;
@Schema(title = "Labels", example = "{\"alertname\": \"HighCPUUsage\", \"priority\": \"critical\", \"instance\": \"343483943\"}")
@@ -74,6 +75,7 @@ public class SingleAlert {
private Map<String, String> annotations;
@Schema(title = "Content", example = "CPU usage is above 80% for the last 5 minutes on instance server1.example.com.")
@Column(length = 4096)
private String content;
@Schema(title = "Status", example = "firing|resolved")
@@ -73,10 +73,13 @@ public class DataStorageDispatch {
if (metricsData == null) {
continue;
}
calculateMonitorStatus(metricsData);
historyDataWriter.ifPresent(dataWriter -> dataWriter.saveData(metricsData));
pluginRunner.pluginExecute(PostCollectPlugin.class, ((postCollectPlugin, pluginContext) -> postCollectPlugin.execute(metricsData, pluginContext)));
realTimeDataWriter.saveData(metricsData);
try {
calculateMonitorStatus(metricsData);
historyDataWriter.ifPresent(dataWriter -> dataWriter.saveData(metricsData));
pluginRunner.pluginExecute(PostCollectPlugin.class, ((postCollectPlugin, pluginContext) -> postCollectPlugin.execute(metricsData, pluginContext)));
} finally {
realTimeDataWriter.saveData(metricsData);
}
} catch (InterruptedException interruptedException) {
Thread.currentThread().interrupt();
} catch (Exception e) {
@@ -70,6 +70,7 @@ public class MemoryDataStorage extends AbstractRealTimeDataStorage {
Long monitorId = metricsData.getId();
String metrics = metricsData.getMetrics();
if (metricsData.getCode() != CollectRep.Code.SUCCESS) {
metricsData.close();
return;
}
Map<String, CollectRep.MetricsData> metricsDataMap =
@@ -63,6 +63,7 @@ public class RedisDataStorage extends AbstractRealTimeDataStorage {
String hashKey = metricsData.getMetrics();
if (metricsData.getCode() == CollectRep.Code.SUCCESS) {
redisCommandDelegate.operate().hset(key, hashKey, metricsData, future -> future.thenAccept(response -> {
metricsData.close();
if (response) {
log.debug("[warehouse] redis add new data {}:{}.", key, hashKey);
} else {