This is an automated email from the ASF dual-hosted git repository.
zhangxiaowei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozhera.git
The following commit(s) were added to refs/heads/master by this push:
new 8671ea4f feat: add machine information acquisition interface and
optimize related functions (#589)
8671ea4f is described below
commit 8671ea4feb058106751056f41494ed07f873110f
Author: wtt <[email protected]>
AuthorDate: Wed Jun 18 15:53:39 2025 +0800
feat: add machine information acquisition interface and optimize related
functions (#589)
---
ozhera-log/log-agent-server/pom.xml | 1 +
.../server/service/DefaultLogProcessCollector.java | 49 ++++++++++++++--
.../service/DefaultPublishConfigService.java | 2 +-
ozhera-log/log-agent/pom.xml | 1 +
.../log/agent/channel/AbstractChannelService.java | 7 +++
.../ozhera/log/agent/channel/ChannelEngine.java | 68 ++++++++++++++++++++--
.../log/agent/channel/ChannelServiceFactory.java | 16 +++++
.../ozhera/log/agent/channel/ChannelState.java | 2 +
.../listener/DefaultFileMonitorListener.java | 2 +-
.../ozhera/log/agent/extension/KafkaService.java | 15 ++---
.../log/agent/extension/RocketMQService.java | 9 +--
.../log/agent/rpc/processor/LogProcessor.java | 4 +-
.../agent/rpc/processor/NodeCollInfoProcessor.java | 67 +++++++++++++++++++++
.../ozhera/log/agent/service/OutPutService.java | 3 +-
.../{vo/LogCmd.java => meta/NodeCollInfo.java} | 38 +++++++++---
.../org/apache/ozhera/log/api/model/vo/LogCmd.java | 9 +--
.../log/api/service/LogProcessCollector.java | 6 ++
.../ozhera/log/api/service/LogProcessService.java | 7 +++
ozhera-log/log-manager/pom.xml | 2 +-
.../manager/controller/MilogConfigController.java | 30 ++++++++--
.../ozhera/log/manager/dao/MilogLogTailDao.java | 13 +++--
.../ozhera/log/manager/domain/LogProcess.java | 19 ++++--
.../ozhera/log/manager/service/LogTailService.java | 2 +-
.../service/impl/LogProcessServiceImpl.java | 17 +++++-
.../manager/service/impl/LogTailServiceImpl.java | 4 +-
.../nacos/impl/SpaceConfigNacosPublisher.java | 24 +++++---
26 files changed, 349 insertions(+), 68 deletions(-)
diff --git a/ozhera-log/log-agent-server/pom.xml
b/ozhera-log/log-agent-server/pom.xml
index 3df58d0e..a60334ba 100644
--- a/ozhera-log/log-agent-server/pom.xml
+++ b/ozhera-log/log-agent-server/pom.xml
@@ -26,6 +26,7 @@ http://www.apache.org/licenses/LICENSE-2.0
<version>2.2.6-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
+ <version>2.2.7-SNAPSHOT</version>
<artifactId>log-agent-server</artifactId>
diff --git
a/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultLogProcessCollector.java
b/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultLogProcessCollector.java
index 64803fda..7bc32451 100644
---
a/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultLogProcessCollector.java
+++
b/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultLogProcessCollector.java
@@ -19,17 +19,26 @@
package org.apache.ozhera.log.server.service;
import cn.hutool.core.util.NumberUtil;
+import cn.hutool.json.JSONUtil;
+import com.google.common.base.Stopwatch;
import com.google.common.collect.Lists;
-import org.apache.ozhera.log.api.model.vo.AgentLogProcessDTO;
-import org.apache.ozhera.log.api.model.vo.TailLogProcessDTO;
-import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
-import org.apache.ozhera.log.api.service.LogProcessCollector;
+import com.xiaomi.data.push.context.AgentContext;
+import com.xiaomi.data.push.rpc.RpcServer;
+import com.xiaomi.data.push.rpc.netty.AgentChannel;
+import com.xiaomi.data.push.rpc.protocol.RemotingCommand;
import com.xiaomi.youpin.docean.anno.Component;
import com.xiaomi.youpin.docean.plugin.dubbo.anno.Service;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
+import org.apache.ozhera.log.api.model.vo.AgentLogProcessDTO;
+import org.apache.ozhera.log.api.model.vo.LogCmd;
+import org.apache.ozhera.log.api.model.vo.TailLogProcessDTO;
+import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
+import org.apache.ozhera.log.api.service.LogProcessCollector;
+import javax.annotation.Resource;
import java.time.Instant;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -37,6 +46,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static org.apache.ozhera.log.common.Constant.GSON;
+import static org.apache.ozhera.log.common.Constant.SYMBOL_COLON;
/**
* @author wtt
@@ -57,6 +67,9 @@ public class DefaultLogProcessCollector implements
LogProcessCollector {
private static final String PROCESS_SEPARATOR = "%";
+ @Resource
+ private RpcServer rpcServer;
+
@Override
public void collectLogProcess(UpdateLogProcessCmd cmd) {
log.debug("[LogProcess.updateLogProcess] cmd:{} ", cmd);
@@ -181,6 +194,34 @@ public class DefaultLogProcessCollector implements
LogProcessCollector {
return tailProgressMap.get(ip);
}
+ @Override
+ public List<String> getAllAgentList() {
+ return new ArrayList<>(getAgentChannelMap().keySet());
+ }
+
+ @Override
+ public NodeCollInfo getNodeCollInfo(String ip) {
+ RemotingCommand req =
RemotingCommand.createRequestCommand(LogCmd.MACHINE_COLL_INFO);
+ req.setBody(ip.getBytes());
+ log.info("get NodeCollInfo,agent ip:{}", ip);
+ Map<String, AgentChannel> logAgentMap = getAgentChannelMap();
+ Stopwatch started = Stopwatch.createStarted();
+ RemotingCommand res = rpcServer.sendMessage(logAgentMap.get(ip), req,
20000);
+ started.stop();
+ String response = new String(res.getBody());
+ log.info("get NodeCollInfo
successfully---->{},duration:{}s,agentIp:{}", response,
started.elapsed().getSeconds(), ip);
+ if (JSONUtil.isTypeJSON(response)) {
+ return GSON.fromJson(response, NodeCollInfo.class);
+ }
+ return new NodeCollInfo();
+ }
+
+ private Map<String, AgentChannel> getAgentChannelMap() {
+ Map<String, AgentChannel> logAgentMap = new HashMap<>();
+ AgentContext.ins().map.forEach((k, v) ->
logAgentMap.put(StringUtils.substringBefore(k, SYMBOL_COLON), v));
+ return logAgentMap;
+ }
+
/**
* @param source 89%
* @param targetNum 0.98
diff --git
a/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultPublishConfigService.java
b/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultPublishConfigService.java
index 81850a79..e642988a 100644
---
a/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultPublishConfigService.java
+++
b/ozhera-log/log-agent-server/src/main/java/org/apache/ozhera/log/server/service/DefaultPublishConfigService.java
@@ -71,7 +71,7 @@ public class DefaultPublishConfigService implements
PublishConfigService {
if (logAgentMap.containsKey(agentCurrentIp)) {
String sendStr = GSON.toJson(logCollectMeta);
if
(CollectionUtils.isNotEmpty(logCollectMeta.getAppLogMetaList())) {
- RemotingCommand req =
RemotingCommand.createRequestCommand(LogCmd.logReq);
+ RemotingCommand req =
RemotingCommand.createRequestCommand(LogCmd.LOG_REQ);
req.setBody(sendStr.getBytes());
log.info("Send the configuration,agent ip:{},Configuration
information:{}", agentCurrentIp, sendStr);
Stopwatch started = Stopwatch.createStarted();
diff --git a/ozhera-log/log-agent/pom.xml b/ozhera-log/log-agent/pom.xml
index ef1e4484..69031a1f 100644
--- a/ozhera-log/log-agent/pom.xml
+++ b/ozhera-log/log-agent/pom.xml
@@ -28,6 +28,7 @@ http://www.apache.org/licenses/LICENSE-2.0
<modelVersion>4.0.0</modelVersion>
<artifactId>log-agent</artifactId>
+ <version>2.2.7-SNAPSHOT</version>
<properties>
<maven.compiler.source>21</maven.compiler.source>
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/AbstractChannelService.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/AbstractChannelService.java
index 5fbf3fa3..009df07f 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/AbstractChannelService.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/AbstractChannelService.java
@@ -21,6 +21,7 @@ package org.apache.ozhera.log.agent.channel;
import cn.hutool.core.io.FileUtil;
import com.xiaomi.mone.file.ReadResult;
import com.xiaomi.mone.file.common.FileInfoCache;
+import com.xiaomi.mone.file.common.FileUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.ozhera.log.agent.channel.memory.ChannelMemory;
import org.apache.ozhera.log.agent.common.ChannelUtil;
@@ -30,6 +31,7 @@ import org.apache.ozhera.log.api.model.meta.LogPattern;
import org.apache.ozhera.log.api.model.msg.LineMessage;
import org.apache.ozhera.log.utils.NetUtil;
+import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -90,6 +92,11 @@ public abstract class AbstractChannelService implements
ChannelService {
}
ChannelState.StateProgress stateProgress = new
ChannelState.StateProgress();
stateProgress.setCurrentFile(pattern);
+ File file = new File(pattern);
+ if (file.exists()) {
+ stateProgress.setFileInode(FileUtils.fileKey(file).toString());
+ }
+ file = null;
stateProgress.setIp(getTailPodIp(pattern));
stateProgress.setCurrentRowNum(fileProcess.getCurrentRowNum());
stateProgress.setPointer(fileProcess.getPointer());
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelEngine.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelEngine.java
index e40c9ac1..9a023b54 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelEngine.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelEngine.java
@@ -50,10 +50,13 @@ import org.apache.ozhera.log.agent.input.Input;
import org.apache.ozhera.log.agent.output.Output;
import org.apache.ozhera.log.api.enums.LogTypeEnum;
import org.apache.ozhera.log.api.enums.OperateEnum;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
import org.apache.ozhera.log.common.Constant;
import org.apache.ozhera.log.utils.NetUtil;
+import java.io.IOException;
+import java.io.InputStream;
import java.text.NumberFormat;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@@ -258,7 +261,7 @@ public class ChannelEngine {
try {
preCheckChannelDefine(channelDefine);
Output output = channelDefine.getOutput();
- MsgExporter exporter = exporterTrans(output);
+ MsgExporter exporter = exporterTrans(output,
channelDefine.getInput());
if (null == exporter) {
throw new IllegalArgumentException("cant not trans to
MsgExporter, output:" + gson.toJson(output));
}
@@ -293,11 +296,11 @@ public class ChannelEngine {
OutPutServiceFactory.getOutPutService(output.getServiceName()).preCheckOutput(output);
}
- private MsgExporter exporterTrans(Output output) throws Exception {
+ private MsgExporter exporterTrans(Output output, Input input) throws
Exception {
if (null == output) {
return null;
}
- return
OutPutServiceFactory.getOutPutService(output.getServiceName()).exporterTrans(output);
+ return
OutPutServiceFactory.getOutPutService(output.getServiceName()).exporterTrans(output,
input);
}
@@ -345,6 +348,63 @@ public class ChannelEngine {
}
}
+ private String getHostName() {
+ try {
+ Process process = Runtime.getRuntime().exec("hostname");
+ try (InputStream in = process.getInputStream()) {
+ return new String(in.readAllBytes()).trim();
+ }
+ } catch (Exception e) {
+ log.error("get hostname error", e);
+ }
+ return "unknown";
+ }
+
+ public NodeCollInfo getNodeCollInfo() {
+ NodeCollInfo machineCollInfo = new NodeCollInfo();
+ machineCollInfo.setHostIp(NetUtil.getLocalIp());
+
+ machineCollInfo.setHostName(getHostName());
+
+ List<NodeCollInfo.TailCollInfo> tailCollInfos =
channelServiceList.stream()
+ .map(this::buildTailCollInfo)
+ .collect(Collectors.toList());
+
+ machineCollInfo.setTailCollInfos(tailCollInfos);
+ return machineCollInfo;
+ }
+
+ private NodeCollInfo.TailCollInfo buildTailCollInfo(ChannelService
channelService) {
+ ChannelState channelState = channelService.state();
+
+ NodeCollInfo.TailCollInfo tailCollInfo = new
NodeCollInfo.TailCollInfo();
+ tailCollInfo.setTailId(channelState.getTailId());
+ tailCollInfo.setTailName(channelState.getTailName());
+
+ List<NodeCollInfo.CollInfo> collInfos =
channelState.getStateProgressMap().entrySet().stream()
+ .map(this::buildCollInfo)
+ .collect(Collectors.toList());
+
+ tailCollInfo.setCollInfos(collInfos);
+ return tailCollInfo;
+ }
+
+ private NodeCollInfo.CollInfo buildCollInfo(Map.Entry<String,
ChannelState.StateProgress> entry) {
+ String fileName = entry.getKey();
+ ChannelState.StateProgress stateProgress = entry.getValue();
+
+ NodeCollInfo.CollInfo collInfo = new NodeCollInfo.CollInfo();
+ collInfo.setFileName(fileName);
+ collInfo.setFileNode(stateProgress.getFileInode());
+ collInfo.setCollProgress(getPercent(stateProgress.getPointer(),
stateProgress.getFileMaxPointer()));
+ collInfo.setMaxPointer(stateProgress.getFileMaxPointer());
+ collInfo.setCurrentPointer(stateProgress.getPointer());
+ collInfo.setCurrentNumber(stateProgress.getCurrentRowNum());
+ collInfo.setCollTime(stateProgress.getCtTime());
+
+ return collInfo;
+ }
+
/**
* New configuration
*
@@ -393,7 +453,7 @@ public class ChannelEngine {
SimilarComparator outputSimilarComparator = new
OutputSimilarComparator(oldChannelDefine.getOutput());
FilterSimilarComparator filterSimilarComparator = new
FilterSimilarComparator(oldChannelDefine.getFilters());
SimilarComparator logLevelSimilarComparator = new
LogLevelSimilarComparator(oldChannelDefine.getFilterLogLevelList());
- if
(appSimilarComparator.compare(newChannelDefine.getAppId()) &&
inputSimilarComparator.compare(newChannelDefine.getInput()) &&
outputSimilarComparator.compare(newChannelDefine.getOutput()) &&
logLevelSimilarComparator.compare(newChannelDefine.getFilterLogLevelList()) ) {
+ if
(appSimilarComparator.compare(newChannelDefine.getAppId()) &&
inputSimilarComparator.compare(newChannelDefine.getInput()) &&
outputSimilarComparator.compare(newChannelDefine.getOutput()) &&
logLevelSimilarComparator.compare(newChannelDefine.getFilterLogLevelList())) {
if
(!filterSimilarComparator.compare(newChannelDefine.getFilters())) {
channelServiceList.stream().filter(channelService
-> ((AbstractChannelService)
channelService).getChannelDefine().getChannelId().equals(channelId)).findFirst().ifPresent(channelService
-> channelService.filterRefresh(newChannelDefine.getFilters()));
}
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelServiceFactory.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelServiceFactory.java
index 6801aa6b..a3feea86 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelServiceFactory.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelServiceFactory.java
@@ -19,6 +19,8 @@
package org.apache.ozhera.log.agent.channel;
import cn.hutool.core.io.FileUtil;
+import com.google.common.collect.Lists;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.ozhera.log.agent.channel.memory.AgentMemoryService;
import org.apache.ozhera.log.agent.export.MsgExporter;
@@ -27,11 +29,13 @@ import org.apache.ozhera.log.agent.input.Input;
import org.apache.ozhera.log.api.enums.LogTypeEnum;
import java.util.Arrays;
+import java.util.List;
import java.util.regex.Pattern;
import static org.apache.ozhera.log.common.Constant.SYMBOL_COMMA;
import static org.apache.ozhera.log.common.PathUtils.PATH_WILDCARD;
import static org.apache.ozhera.log.common.PathUtils.SEPARATOR;
+import static org.apache.ozhera.log.utils.ConfigUtils.getConfigValue;
/**
* @author wtt
@@ -41,13 +45,21 @@ import static
org.apache.ozhera.log.common.PathUtils.SEPARATOR;
*/
public class ChannelServiceFactory {
+ private static final String DEFAULT_SPECIAL_FILE_SUFFIX_KEY =
"special.file.suffix";
+
private final AgentMemoryService agentMemoryService;
private final String memoryBasePath;
private static final Pattern regexCharsPattern =
Pattern.compile("[*+?^${}()\\[\\]\\\\]");
+ private List<String> multiSpecialFileSuffix;
+
public ChannelServiceFactory(AgentMemoryService agentMemoryService, String
memoryBasePath) {
this.agentMemoryService = agentMemoryService;
this.memoryBasePath = memoryBasePath;
+ String specialFileSuffix =
getConfigValue(DEFAULT_SPECIAL_FILE_SUFFIX_KEY);
+ if (StringUtils.isNotBlank(specialFileSuffix)) {
+ multiSpecialFileSuffix =
Lists.newArrayList(specialFileSuffix.split(SYMBOL_COMMA));
+ }
}
public ChannelService createChannelService(ChannelDefine channelDefine,
@@ -60,6 +72,10 @@ public class ChannelServiceFactory {
String logType = input.getType();
String logPattern = input.getLogPattern();
+ if (CollectionUtils.isNotEmpty(multiSpecialFileSuffix) &&
multiSpecialFileSuffix.stream().anyMatch(logPattern::endsWith)) {
+ return createStandardChannelService(exporter, channelDefine,
filterChain);
+ }
+
if (LogTypeEnum.OPENTELEMETRY == LogTypeEnum.name2enum(logType) ||
FileUtil.exist(logPattern)) {
return createStandardChannelService(exporter, channelDefine,
filterChain);
}
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelState.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelState.java
index bd4c40d9..9aa79825 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelState.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/ChannelState.java
@@ -65,6 +65,8 @@ public class ChannelState implements Serializable {
* Current collection file
*/
private String currentFile;
+
+ private String fileInode;
/**
* The latest line number currently being collected.
*/
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/listener/DefaultFileMonitorListener.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/listener/DefaultFileMonitorListener.java
index 5cc6ece7..0b9c6986 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/listener/DefaultFileMonitorListener.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/channel/listener/DefaultFileMonitorListener.java
@@ -62,7 +62,7 @@ public class DefaultFileMonitorListener implements
FileMonitorListener {
/**
* List of folders actually monitored
*/
- List<String> pathList = new CopyOnWriteArrayList<>();
+ private List<String> pathList = new CopyOnWriteArrayList<>();
/**
* Actual listener map
*/
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/KafkaService.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/KafkaService.java
index 07ddd33f..bfb976d1 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/KafkaService.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/KafkaService.java
@@ -19,12 +19,6 @@
package org.apache.ozhera.log.agent.extension;
import com.google.common.base.Preconditions;
-import org.apache.ozhera.log.agent.export.MsgExporter;
-import org.apache.ozhera.log.agent.output.Output;
-import org.apache.ozhera.log.agent.service.OutPutService;
-import org.apache.ozhera.log.api.model.meta.LogPattern;
-import org.apache.ozhera.log.api.model.meta.MQConfig;
-import org.apache.ozhera.log.utils.KafkaUtils;
import com.xiaomi.youpin.docean.anno.Service;
import com.xiaomi.youpin.docean.plugin.config.anno.Value;
import lombok.extern.slf4j.Slf4j;
@@ -32,6 +26,13 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerConfig;
+import org.apache.ozhera.log.agent.export.MsgExporter;
+import org.apache.ozhera.log.agent.input.Input;
+import org.apache.ozhera.log.agent.output.Output;
+import org.apache.ozhera.log.agent.service.OutPutService;
+import org.apache.ozhera.log.api.model.meta.LogPattern;
+import org.apache.ozhera.log.api.model.meta.MQConfig;
+import org.apache.ozhera.log.utils.KafkaUtils;
import java.util.Objects;
import java.util.Properties;
@@ -81,7 +82,7 @@ public class KafkaService implements OutPutService {
}
@Override
- public MsgExporter exporterTrans(Output output) throws Exception {
+ public MsgExporter exporterTrans(Output output, Input input) throws
Exception {
KafkaOutput kafkaOutput = (KafkaOutput) output;
String nameSrvAddr = kafkaOutput.getClusterInfo();
String key = getKey(nameSrvAddr, kafkaOutput.getTopic(),
kafkaOutput.getTag());
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/RocketMQService.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/RocketMQService.java
index 45f4b246..eb9cbc68 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/RocketMQService.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/extension/RocketMQService.java
@@ -19,15 +19,16 @@
package org.apache.ozhera.log.agent.extension;
import com.google.common.base.Preconditions;
+import com.xiaomi.youpin.docean.anno.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.apache.ozhera.log.agent.exception.AgentException;
import org.apache.ozhera.log.agent.export.MsgExporter;
+import org.apache.ozhera.log.agent.input.Input;
import org.apache.ozhera.log.agent.output.Output;
import org.apache.ozhera.log.agent.service.OutPutService;
import org.apache.ozhera.log.api.model.meta.LogPattern;
import org.apache.ozhera.log.api.model.meta.MQConfig;
-import com.xiaomi.youpin.docean.anno.Service;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.acl.common.AclClientRPCHook;
import org.apache.rocketmq.acl.common.SessionCredentials;
import org.apache.rocketmq.client.exception.MQClientException;
@@ -83,7 +84,7 @@ public class RocketMQService implements OutPutService {
}
@Override
- public MsgExporter exporterTrans(Output output) {
+ public MsgExporter exporterTrans(Output output, Input input) {
RmqOutput rmqOutput = (RmqOutput) output;
String nameSrvAddr = rmqOutput.getClusterInfo();
DefaultMQProducer mqProducer = producerMap.get(nameSrvAddr);
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/rpc/processor/LogProcessor.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/rpc/processor/LogProcessor.java
index 3e54c277..37714d80 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/rpc/processor/LogProcessor.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/rpc/processor/LogProcessor.java
@@ -52,7 +52,7 @@ public class LogProcessor implements NettyRequestProcessor {
log.info("logCollect config req:{}", GSON.toJson(req));
- RemotingCommand response =
RemotingCommand.createResponseCommand(LogCmd.logRes);
+ RemotingCommand response =
RemotingCommand.createResponseCommand(LogCmd.LOG_REQ);
response.setBody("ok".getBytes());
log.info("【config change】receive data:{}", GSON.toJson(req));
metaConfigEffect(req);
@@ -100,6 +100,6 @@ public class LogProcessor implements NettyRequestProcessor {
@Override
public int cmdId() {
- return LogCmd.logReq;
+ return LogCmd.LOG_REQ;
}
}
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/rpc/processor/NodeCollInfoProcessor.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/rpc/processor/NodeCollInfoProcessor.java
new file mode 100644
index 00000000..a8e01d85
--- /dev/null
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/rpc/processor/NodeCollInfoProcessor.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ozhera.log.agent.rpc.processor;
+
+import com.xiaomi.data.push.rpc.netty.NettyRequestProcessor;
+import com.xiaomi.data.push.rpc.protocol.RemotingCommand;
+import com.xiaomi.youpin.docean.Ioc;
+import com.xiaomi.youpin.docean.anno.Component;
+import io.netty.channel.ChannelHandlerContext;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ozhera.log.agent.channel.ChannelEngine;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
+import org.apache.ozhera.log.api.model.vo.LogCmd;
+
+import static org.apache.ozhera.log.common.Constant.GSON;
+
+/**
+ * @author wtt
+ * @version 1.0
+ * @description
+ * @date 2025/6/17 15:36
+ */
+@Slf4j
+@Component
+public class NodeCollInfoProcessor implements NettyRequestProcessor {
+ @Override
+ public RemotingCommand processRequest(ChannelHandlerContext ctx,
RemotingCommand remotingCommand) throws Exception {
+
+ ChannelEngine channelEngine = Ioc.ins().getBean(ChannelEngine.class);
+ RemotingCommand response =
RemotingCommand.createResponseCommand(LogCmd.MACHINE_COLL_INFO);
+ if (null != channelEngine) {
+ NodeCollInfo nodeCollInfo = channelEngine.getNodeCollInfo();
+ String collInfo = GSON.toJson(nodeCollInfo);
+ response.setBody(collInfo.getBytes());
+ log.info(" NodeCollInfo data:{}", collInfo);
+ } else {
+ response.setBody(GSON.toJson(new NodeCollInfo()).getBytes());
+ }
+ return response;
+ }
+
+ @Override
+ public boolean rejectRequest() {
+ return false;
+ }
+
+ @Override
+ public int cmdId() {
+ return LogCmd.MACHINE_COLL_INFO;
+ }
+}
diff --git
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/service/OutPutService.java
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/service/OutPutService.java
index 2ac15908..1206d219 100644
---
a/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/service/OutPutService.java
+++
b/ozhera-log/log-agent/src/main/java/org/apache/ozhera/log/agent/service/OutPutService.java
@@ -19,6 +19,7 @@
package org.apache.ozhera.log.agent.service;
import org.apache.ozhera.log.agent.export.MsgExporter;
+import org.apache.ozhera.log.agent.input.Input;
import org.apache.ozhera.log.agent.output.Output;
import org.apache.ozhera.log.api.model.meta.LogPattern;
@@ -46,7 +47,7 @@ public interface OutPutService {
* @return
* @throws Exception
*/
- MsgExporter exporterTrans(Output output) throws Exception;
+ MsgExporter exporterTrans(Output output, Input input) throws Exception;
/**
* remove message producer based on configuration
diff --git
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/vo/LogCmd.java
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/meta/NodeCollInfo.java
similarity index 50%
copy from
ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/vo/LogCmd.java
copy to
ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/meta/NodeCollInfo.java
index df4cb30c..4de6ff31 100644
---
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/vo/LogCmd.java
+++
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/meta/NodeCollInfo.java
@@ -16,18 +16,40 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.ozhera.log.api.model.vo;
+package org.apache.ozhera.log.api.model.meta;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
/**
- * @author [email protected]
+ * @author wtt
+ * @version 1.0
+ * @description
+ * @date 2025/6/17 14:20
*/
-public class LogCmd {
-
-
- public static final int logReq = 3000;
- public static final int logRes = 3001;
-
+@Data
+public class NodeCollInfo implements Serializable {
+ private String hostIp;
+ private String hostName;
+ private List<TailCollInfo> tailCollInfos;
+ @Data
+ public static class TailCollInfo implements Serializable {
+ private Long tailId;
+ private String tailName;
+ private List<CollInfo> collInfos;
+ }
+ @Data
+ public static class CollInfo implements Serializable {
+ private String fileName;
+ private String fileNode;
+ private String collProgress;
+ private Long maxPointer;
+ private Long currentPointer;
+ private Long currentNumber;
+ private Long collTime;
+ }
}
diff --git
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/vo/LogCmd.java
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/vo/LogCmd.java
index df4cb30c..e2302302 100644
---
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/vo/LogCmd.java
+++
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/model/vo/LogCmd.java
@@ -25,9 +25,10 @@ package org.apache.ozhera.log.api.model.vo;
public class LogCmd {
- public static final int logReq = 3000;
- public static final int logRes = 3001;
-
-
+ public static final int LOG_REQ = 3000;
+ //send config
+ public static final int LOG_RES = 3001;
+ // machine info
+ public static final int MACHINE_COLL_INFO = 3002;
}
diff --git
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessCollector.java
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessCollector.java
index 72dfa2e9..482d5dca 100644
---
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessCollector.java
+++
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessCollector.java
@@ -18,6 +18,7 @@
*/
package org.apache.ozhera.log.api.service;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
import org.apache.ozhera.log.api.model.vo.AgentLogProcessDTO;
import org.apache.ozhera.log.api.model.vo.TailLogProcessDTO;
import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
@@ -79,4 +80,9 @@ public interface LogProcessCollector {
* @return
*/
List<UpdateLogProcessCmd.CollectDetail> getAllCollectDetail(String ip);
+
+ List<String> getAllAgentList();
+
+ NodeCollInfo getNodeCollInfo(String ip);
+
}
diff --git
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessService.java
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessService.java
index 75bdb55d..fe41af65 100644
---
a/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessService.java
+++
b/ozhera-log/log-api/src/main/java/org/apache/ozhera/log/api/service/LogProcessService.java
@@ -18,8 +18,11 @@
*/
package org.apache.ozhera.log.api.service;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
+import java.util.List;
+
public interface LogProcessService {
/**
@@ -27,4 +30,8 @@ public interface LogProcessService {
* @param cmd
*/
void updateLogProcess(UpdateLogProcessCmd cmd);
+
+ List<String> getAllIps();
+
+ NodeCollInfo getNodeCollInfo(String ip);
}
diff --git a/ozhera-log/log-manager/pom.xml b/ozhera-log/log-manager/pom.xml
index c6e3f3ea..2ae23f7b 100644
--- a/ozhera-log/log-manager/pom.xml
+++ b/ozhera-log/log-manager/pom.xml
@@ -28,7 +28,7 @@ http://www.apache.org/licenses/LICENSE-2.0
<modelVersion>4.0.0</modelVersion>
<artifactId>log-manager</artifactId>
- <version>2.2.6-SNAPSHOT</version>
+ <version>2.2.7-SNAPSHOT</version>
<properties>
<maven.compiler.source>21</maven.compiler.source>
diff --git
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/controller/MilogConfigController.java
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/controller/MilogConfigController.java
index 262a8f81..5280de41 100644
---
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/controller/MilogConfigController.java
+++
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/controller/MilogConfigController.java
@@ -18,6 +18,11 @@
*/
package org.apache.ozhera.log.manager.controller;
+import cn.hutool.core.lang.Assert;
+import com.xiaomi.youpin.docean.anno.Controller;
+import com.xiaomi.youpin.docean.anno.RequestMapping;
+import com.xiaomi.youpin.docean.anno.RequestParam;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
import org.apache.ozhera.log.api.model.vo.TailLogProcessDTO;
import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
import org.apache.ozhera.log.common.Result;
@@ -26,7 +31,6 @@ import org.apache.ozhera.log.manager.model.bo.BatchQueryParam;
import org.apache.ozhera.log.manager.model.bo.LogTailParam;
import org.apache.ozhera.log.manager.model.bo.MlogParseParam;
import org.apache.ozhera.log.manager.model.dto.*;
-import org.apache.ozhera.log.manager.model.dto.*;
import org.apache.ozhera.log.manager.model.page.PageInfo;
import org.apache.ozhera.log.manager.model.pojo.MilogLogStoreDO;
import org.apache.ozhera.log.manager.model.vo.LogStoreParam;
@@ -36,9 +40,6 @@ import
org.apache.ozhera.log.manager.service.impl.LogProcessServiceImpl;
import org.apache.ozhera.log.manager.service.impl.LogSpaceServiceImpl;
import org.apache.ozhera.log.manager.service.impl.LogStoreServiceImpl;
import org.apache.ozhera.log.manager.service.impl.LogTailServiceImpl;
-import com.xiaomi.youpin.docean.anno.Controller;
-import com.xiaomi.youpin.docean.anno.RequestMapping;
-import com.xiaomi.youpin.docean.anno.RequestParam;
import javax.annotation.Resource;
import java.io.IOException;
@@ -188,9 +189,10 @@ public class MilogConfigController {
@RequestMapping(path = "/milog/tail/getbypage", method = "get")
public Result<Map<String, Object>>
getLogTailByPage(@RequestParam("storeId") Long storeId,
+
@RequestParam("tailName") String tailName,
@RequestParam("page")
int page,
@RequestParam("pageSize") int pageSize) throws IOException {
- return logTailService.getMilogLogBypage(storeId, page, pageSize);
+ return logTailService.getMilogLogBypage(storeId, tailName, page,
pageSize);
}
@RequestMapping(path = "/milog/tail/getcntbystoreid", method = "get")
@@ -256,7 +258,7 @@ public class MilogConfigController {
public Result<List<MilogAppEnvDTO>> getEnInfosByAppId(@RequestParam(value
= "milogAppId") Long milogAppId,
@RequestParam(value
= "deployWay") Integer deployWay,
@RequestParam(value
= "machineRoom") String machineRoom) {
- return logTailService.getEnInfosByAppId(milogAppId,
deployWay,machineRoom);
+ return logTailService.getEnInfosByAppId(milogAppId, deployWay,
machineRoom);
}
/**
@@ -370,4 +372,20 @@ public class MilogConfigController {
public Result<String> redistributeStoreConfig(@RequestParam(value =
"storeId") Long storeId) {
return logStoreService.redistributeStoreConfig(storeId);
}
+
+ /**
+ * agent机器配置相关
+ */
+ @RequestMapping(path = "/log/agent/ips", method = "get")
+ public Result<List<String>> getAllIps() {
+ List<String> ips = logProcessService.getAllIps();
+ return Result.success(ips);
+ }
+
+ @RequestMapping(path = "/log/agent/coll/info", method = "get")
+ public Result<NodeCollInfo> getNodeCollInfo(@RequestParam(value = "ip")
String ip) {
+ Assert.notBlank("ip not blank");
+ NodeCollInfo nodeCollInfo = logProcessService.getNodeCollInfo(ip);
+ return Result.success(nodeCollInfo);
+ }
}
diff --git
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/dao/MilogLogTailDao.java
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/dao/MilogLogTailDao.java
index d74b3c32..4008f223 100644
---
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/dao/MilogLogTailDao.java
+++
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/dao/MilogLogTailDao.java
@@ -19,15 +19,15 @@
package org.apache.ozhera.log.manager.dao;
import com.google.common.collect.Lists;
+import com.xiaomi.youpin.docean.anno.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.ozhera.log.api.enums.MachineTypeEnum;
import org.apache.ozhera.log.api.enums.ProjectTypeEnum;
import org.apache.ozhera.log.api.model.meta.FilterDefine;
import org.apache.ozhera.log.manager.common.context.MoneUserContext;
import org.apache.ozhera.log.manager.model.pojo.MilogLogTailDo;
-import com.xiaomi.youpin.docean.anno.Service;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.FieldFilter;
@@ -118,8 +118,11 @@ public class MilogLogTailDao {
return dao.query(MilogLogTailDo.class, Cnd.where("store_id", "in",
ids).orderBy("ctime", "desc"));
}
- public List<MilogLogTailDo> getMilogLogtailByPage(Long storeId, int page,
int pagesize) {
+ public List<MilogLogTailDo> getMilogLogtailByPage(Long storeId, String
tailName, int page, int pagesize) {
Cnd cnd = Cnd.where("store_id", EQUAL_OPERATE, storeId);
+ if (StringUtils.isNotBlank(tailName)) {
+ cnd = cnd.and("tail", "like", "%" + tailName + "%");
+ }
return dao.query(MilogLogTailDo.class, cnd.orderBy("ctime", "desc"),
new Pager(page, pagesize));
}
diff --git
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/domain/LogProcess.java
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/domain/LogProcess.java
index d2a443d7..a39e887a 100644
---
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/domain/LogProcess.java
+++
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/domain/LogProcess.java
@@ -19,17 +19,18 @@
package org.apache.ozhera.log.manager.domain;
import com.google.common.collect.Lists;
+import com.xiaomi.youpin.docean.anno.Service;
+import com.xiaomi.youpin.docean.common.StringUtils;
+import com.xiaomi.youpin.docean.plugin.dubbo.anno.Reference;
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
import org.apache.ozhera.log.api.model.vo.AgentLogProcessDTO;
import org.apache.ozhera.log.api.model.vo.TailLogProcessDTO;
import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
import org.apache.ozhera.log.api.service.LogProcessCollector;
import org.apache.ozhera.log.manager.dao.MilogLogTailDao;
import org.apache.ozhera.log.manager.model.pojo.MilogLogTailDo;
-import com.xiaomi.youpin.docean.anno.Service;
-import com.xiaomi.youpin.docean.common.StringUtils;
-import com.xiaomi.youpin.docean.plugin.dubbo.anno.Reference;
-import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import java.util.ArrayList;
@@ -115,4 +116,12 @@ public class LogProcess {
public List<UpdateLogProcessCmd.CollectDetail>
getColProcessImperfect(Double progressRation) {
return logProcessCollector.getColProcessImperfect(progressRation);
}
+
+ public List<String> getAllAgentList() {
+ return logProcessCollector.getAllAgentList();
+ }
+
+ public NodeCollInfo getNodeCollInfo(String ip) {
+ return logProcessCollector.getNodeCollInfo(ip);
+ }
}
diff --git
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/LogTailService.java
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/LogTailService.java
index f9d2f60a..4d6d78d1 100644
---
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/LogTailService.java
+++
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/LogTailService.java
@@ -59,7 +59,7 @@ public interface LogTailService {
Result<LogTailDTO> getMilogLogtailById(Long id);
- Result<Map<String, Object>> getMilogLogBypage(Long storeId, int page, int
pagesize);
+ Result<Map<String, Object>> getMilogLogBypage(Long storeId, String
tailName, int page, int pagesize);
Result<Map<String, Object>> getLogTailCountByStoreId(Long storeId);
diff --git
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogProcessServiceImpl.java
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogProcessServiceImpl.java
index c07cd646..36fca47c 100644
---
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogProcessServiceImpl.java
+++
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogProcessServiceImpl.java
@@ -18,6 +18,10 @@
*/
package org.apache.ozhera.log.manager.service.impl;
+import com.xiaomi.youpin.docean.anno.Service;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ozhera.log.api.model.meta.NodeCollInfo;
import org.apache.ozhera.log.api.model.vo.TailLogProcessDTO;
import org.apache.ozhera.log.api.model.vo.UpdateLogProcessCmd;
import org.apache.ozhera.log.api.service.LogProcessService;
@@ -27,9 +31,6 @@ import org.apache.ozhera.log.manager.domain.LogProcess;
import org.apache.ozhera.log.manager.mapper.MilogLogProcessMapper;
import org.apache.ozhera.log.manager.model.pojo.MilogLogProcessDOMybatis;
import org.apache.ozhera.log.manager.model.pojo.MilogLogTailDo;
-import com.xiaomi.youpin.docean.anno.Service;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import javax.annotation.Resource;
@@ -64,6 +65,16 @@ public class LogProcessServiceImpl implements
LogProcessService {
}
}
+ @Override
+ public List<String> getAllIps() {
+ return logProcess.getAllAgentList();
+ }
+
+ @Override
+ public NodeCollInfo getNodeCollInfo(String ip) {
+ return logProcess.getNodeCollInfo(ip);
+ }
+
public MilogLogProcessDOMybatis getByIdFramework(Long id) {
return processMapper.selectById(id);
}
diff --git
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogTailServiceImpl.java
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogTailServiceImpl.java
index 0ac1c429..a597683b 100644
---
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogTailServiceImpl.java
+++
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/impl/LogTailServiceImpl.java
@@ -357,8 +357,8 @@ public class LogTailServiceImpl extends BaseService
implements LogTailService {
}
@Override
- public Result<Map<String, Object>> getMilogLogBypage(Long storeId, int
page, int pagesize) {
- List<MilogLogTailDo> ret =
milogLogtailDao.getMilogLogtailByPage(storeId, page, pagesize);
+ public Result<Map<String, Object>> getMilogLogBypage(Long storeId, String
tailName, int page, int pagesize) {
+ List<MilogLogTailDo> ret =
milogLogtailDao.getMilogLogtailByPage(storeId, tailName, page, pagesize);
ArrayList<LogTailDTO> res = Lists.newArrayList();
ret.forEach(v -> {
res.add(milogLogtailDO2DTO(v));
diff --git
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/nacos/impl/SpaceConfigNacosPublisher.java
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/nacos/impl/SpaceConfigNacosPublisher.java
index 4298c02d..f2aa07b0 100644
---
a/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/nacos/impl/SpaceConfigNacosPublisher.java
+++
b/ozhera-log/log-manager/src/main/java/org/apache/ozhera/log/manager/service/nacos/impl/SpaceConfigNacosPublisher.java
@@ -19,12 +19,11 @@
package org.apache.ozhera.log.manager.service.nacos.impl;
import com.alibaba.nacos.api.config.ConfigService;
-import com.alibaba.nacos.api.exception.NacosException;
+import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
import
org.apache.ozhera.log.manager.service.extension.common.CommonExtensionServiceFactory;
import org.apache.ozhera.log.manager.service.nacos.DynamicConfigPublisher;
import org.apache.ozhera.log.model.MilogSpaceData;
-import lombok.Setter;
-import lombok.extern.slf4j.Slf4j;
import static org.apache.ozhera.log.common.Constant.DEFAULT_GROUP_ID;
import static org.apache.ozhera.log.common.Constant.TAIL_CONFIG_DATA_ID;
@@ -43,12 +42,17 @@ public class SpaceConfigNacosPublisher implements
DynamicConfigPublisher<MilogSp
@Override
public void publish(Long uniqueSpace, MilogSpaceData config) {
- log.info("write the creation namespace configuration:{}",
gson.toJson(config));
+ String configJson = gson.toJson(config);
+ log.info("write the creation namespace configuration:{}", configJson);
String dataId =
CommonExtensionServiceFactory.getCommonExtensionService().getLogManagePrefix()
+ TAIL_CONFIG_DATA_ID + uniqueSpace;
try {
- configService.publishConfig(dataId, DEFAULT_GROUP_ID,
gson.toJson(config));
- } catch (NacosException e) {
- log.error(String.format("Write the creation namespace
configuration...,dataId:{},data:%s", dataId, gson.toJson(config)), e);
+ if (null != configService) {
+ configService.publishConfig(dataId, DEFAULT_GROUP_ID,
gson.toJson(config));
+ } else {
+ log.warn("configService is null,uniqueSpace:{},config:{}",
uniqueSpace, configJson);
+ }
+ } catch (Exception e) {
+ log.error(String.format("Write the creation namespace
configuration...,dataId:%s,data:%s", dataId, configJson), e);
}
}
@@ -56,8 +60,10 @@ public class SpaceConfigNacosPublisher implements
DynamicConfigPublisher<MilogSp
public void remove(String spaceId) {
String dataId =
CommonExtensionServiceFactory.getCommonExtensionService().getLogManagePrefix()
+ TAIL_CONFIG_DATA_ID + spaceId;
try {
- configService.removeConfig(dataId, DEFAULT_GROUP_ID);
- } catch (NacosException e) {
+ if (null != configService) {
+ configService.removeConfig(dataId, DEFAULT_GROUP_ID);
+ }
+ } catch (Exception e) {
log.error(String.format("Delete log configuration data data
exceptions,param:%s", dataId), e);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]