@Override
    public void channelRead0(ChannelHandlerContext ctx, ZabbixRequest msg) {
        if (msg.getType() == ZabbixProtocolType.ACTIVE_CHECKS) {
            ZabbixResponse response = new ZabbixResponse();
            response.setType(msg.getType());
            String hostName = msg.getActiveChecks().getHostName();

            // Get all active tasks
            response.setActiveChecks(Optional.of(metrics.getAllMonitorMetricNames(hostName))
                .map(s -> s.stream().map(key ->
                    ZabbixResponse.ActiveChecks.builder().delay(60).lastlogsize(0).key(key).mtime(0).build()
                ).collect(Collectors.toList())).orElse(Collections.emptyList()));

            ctx.writeAndFlush(response);
        } else {
            ZabbixResponse response = new ZabbixResponse();
            response.setType(msg.getType());

            // Convert metrics to the meter system
            ZabbixMetrics.ConvertStatics convertStatics;
            try {
                convertStatics = metrics.convertMetrics(msg.getAgentDataList());
            } catch (Exception e) {
                log.warn("Convert the Zabbix metrics error", e);
                convertStatics = ZabbixMetrics.ConvertStatics.builder().total(1).failed(1).build();
            }

            response.setAgentData(ZabbixResponse.AgentData.builder()
                .info(String.format("processed: %d; failed: %d; total: %d; seconds spent: %f",
                    convertStatics.getSuccess(),
                    convertStatics.getFailed(),
                    convertStatics.getTotal(),
                    convertStatics.getUseTime()))
                .build());

            ctx.writeAndFlush(response);
        }
    }
Handle request on received the Zabbix data
oap-server/server-receiver-plugin/skywalking-zabbix-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zabbix/provider/protocol/ZabbixProtocolHandler.java