public Object afterMethod()

in apm-sniffer/apm-sdk-plugin/redisson-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/redisson/v3/ConnectionManagerInterceptor.java [47:99]


    public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes,
                              Object ret) throws Throwable {
        try {
            Config config = getConfig(objInst);
            Object singleServerConfig = null;
            Object sentinelServersConfig = null;
            Object masterSlaveServersConfig = null;
            Object clusterServersConfig = null;
            Object replicatedServersConfig = null;
            if (Objects.nonNull(config)) {
                singleServerConfig = ClassUtil.getObjectField(config, "singleServerConfig");
                sentinelServersConfig = ClassUtil.getObjectField(config, "sentinelServersConfig");
                masterSlaveServersConfig = ClassUtil.getObjectField(config, "masterSlaveServersConfig");
                clusterServersConfig = ClassUtil.getObjectField(config, "clusterServersConfig");
                replicatedServersConfig = ClassUtil.getObjectField(config, "replicatedServersConfig");
            }

            StringBuilder peer = new StringBuilder();
            EnhancedInstance retInst = (EnhancedInstance) ret;

            if (singleServerConfig != null) {
                Object singleAddress = ClassUtil.getObjectField(singleServerConfig, "address");
                peer.append(getPeer(singleAddress));
                retInst.setSkyWalkingDynamicField(PeerFormat.shorten(peer.toString()));
                return ret;
            }
            if (sentinelServersConfig != null) {
                appendAddresses(peer, (Collection) ClassUtil.getObjectField(sentinelServersConfig, "sentinelAddresses"));
                retInst.setSkyWalkingDynamicField(PeerFormat.shorten(peer.toString()));
                return ret;
            }
            if (masterSlaveServersConfig != null) {
                Object masterAddress = ClassUtil.getObjectField(masterSlaveServersConfig, "masterAddress");
                peer.append(getPeer(masterAddress)).append(";");
                appendAddresses(peer, (Collection) ClassUtil.getObjectField(masterSlaveServersConfig, "slaveAddresses"));
                retInst.setSkyWalkingDynamicField(PeerFormat.shorten(peer.toString()));
                return ret;
            }
            if (clusterServersConfig != null) {
                appendAddresses(peer, (Collection) ClassUtil.getObjectField(clusterServersConfig, "nodeAddresses"));
                retInst.setSkyWalkingDynamicField(PeerFormat.shorten(peer.toString()));
                return ret;
            }
            if (replicatedServersConfig != null) {
                appendAddresses(peer, (Collection) ClassUtil.getObjectField(replicatedServersConfig, "nodeAddresses"));
                retInst.setSkyWalkingDynamicField(PeerFormat.shorten(peer.toString()));
                return ret;
            }
        } catch (Exception e) {
            LOGGER.warn("redisClient set peer error: ", e);
        }
        return ret;
    }