mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-03 20:17:53 +00:00
[WIFI-3049] Write LOG when time for received statistics is greater than Threshold from the current System time.
Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
This commit is contained in:
@@ -5,6 +5,7 @@ import java.net.Inet4Address;
|
|||||||
import java.net.Inet6Address;
|
import java.net.Inet6Address;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -23,7 +24,6 @@ import org.springframework.scheduling.annotation.Async;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.google.protobuf.ByteString;
|
import com.google.protobuf.ByteString;
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
|
||||||
import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
|
import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
|
||||||
import com.telecominfraproject.wlan.alarm.models.Alarm;
|
import com.telecominfraproject.wlan.alarm.models.Alarm;
|
||||||
import com.telecominfraproject.wlan.alarm.models.AlarmCode;
|
import com.telecominfraproject.wlan.alarm.models.AlarmCode;
|
||||||
@@ -72,7 +72,6 @@ import com.telecominfraproject.wlan.servicemetric.channelinfo.models.ChannelInfo
|
|||||||
import com.telecominfraproject.wlan.servicemetric.channelinfo.models.ChannelInfoReports;
|
import com.telecominfraproject.wlan.servicemetric.channelinfo.models.ChannelInfoReports;
|
||||||
import com.telecominfraproject.wlan.servicemetric.client.models.ClientMetrics;
|
import com.telecominfraproject.wlan.servicemetric.client.models.ClientMetrics;
|
||||||
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetric;
|
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetric;
|
||||||
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType;
|
|
||||||
import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourReport;
|
import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourReport;
|
||||||
import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourScanReports;
|
import com.telecominfraproject.wlan.servicemetric.neighbourscan.models.NeighbourScanReports;
|
||||||
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
||||||
@@ -152,6 +151,9 @@ public class MqttStatsPublisher implements StatsPublisherInterface {
|
|||||||
@Value("${tip.wlan.mqttStatsPublisher.reportProcessingThresholdSec:30}")
|
@Value("${tip.wlan.mqttStatsPublisher.reportProcessingThresholdSec:30}")
|
||||||
public int reportProcessingThresholdSec;
|
public int reportProcessingThresholdSec;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.mqttStatsPublisher.statsTimeDriftThresholdSec:300}")
|
||||||
|
public int statsTimeDriftThresholdSec;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Async
|
@Async
|
||||||
public void processMqttMessage(String topic, Report report) {
|
public void processMqttMessage(String topic, Report report) {
|
||||||
@@ -204,8 +206,7 @@ public class MqttStatsPublisher implements StatsPublisherInterface {
|
|||||||
|
|
||||||
if (!metricRecordList.isEmpty()) {
|
if (!metricRecordList.isEmpty()) {
|
||||||
long serviceMetricTimestamp = System.currentTimeMillis();
|
long serviceMetricTimestamp = System.currentTimeMillis();
|
||||||
LOG.debug("Current timestamp for service metrics is {}", serviceMetricTimestamp);
|
metricRecordList.stream().forEach(smr -> {
|
||||||
metricRecordList.stream().forEach(smr -> {
|
|
||||||
smr.setCreatedTimestamp(serviceMetricTimestamp);
|
smr.setCreatedTimestamp(serviceMetricTimestamp);
|
||||||
if (smr.getLocationId() == 0)
|
if (smr.getLocationId() == 0)
|
||||||
smr.setLocationId(locationId);
|
smr.setLocationId(locationId);
|
||||||
@@ -213,6 +214,15 @@ public class MqttStatsPublisher implements StatsPublisherInterface {
|
|||||||
smr.setCustomerId(customerId);
|
smr.setCustomerId(customerId);
|
||||||
if (smr.getEquipmentId() == 0L)
|
if (smr.getEquipmentId() == 0L)
|
||||||
smr.setEquipmentId(equipmentId);
|
smr.setEquipmentId(equipmentId);
|
||||||
|
|
||||||
|
long sourceTimestamp = smr.getDetails().getSourceTimestampMs();
|
||||||
|
long diffMillis = serviceMetricTimestamp - sourceTimestamp;
|
||||||
|
long thresholdMillis = statsTimeDriftThresholdSec * 1000L;
|
||||||
|
if (diffMillis > thresholdMillis) {
|
||||||
|
double diffSec = diffMillis / 1000D;
|
||||||
|
LOG.warn("AP {} stats report is {} seconds behind cloud. ServiceMetric {} sourceTimestampMs {} createdTimestampMs {}.", apId,diffSec, smr.getDataType(), sourceTimestamp, serviceMetricTimestamp);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
long publishStart = System.nanoTime();
|
long publishStart = System.nanoTime();
|
||||||
cloudEventDispatcherInterface.publishMetrics(metricRecordList);
|
cloudEventDispatcherInterface.publishMetrics(metricRecordList);
|
||||||
@@ -1405,7 +1415,6 @@ public class MqttStatsPublisher implements StatsPublisherInterface {
|
|||||||
ClientMetrics cMetrics = new ClientMetrics();
|
ClientMetrics cMetrics = new ClientMetrics();
|
||||||
smr.setDetails(cMetrics);
|
smr.setDetails(cMetrics);
|
||||||
cMetrics.setSourceTimestampMs(clReport.getTimestampMs());
|
cMetrics.setSourceTimestampMs(clReport.getTimestampMs());
|
||||||
|
|
||||||
Integer periodLengthSec = 60; // matches what's configured by
|
Integer periodLengthSec = 60; // matches what's configured by
|
||||||
// OvsdbDao.configureStats(OvsdbClient)
|
// OvsdbDao.configureStats(OvsdbClient)
|
||||||
cMetrics.setPeriodLengthSec(periodLengthSec);
|
cMetrics.setPeriodLengthSec(periodLengthSec);
|
||||||
@@ -1542,7 +1551,6 @@ public class MqttStatsPublisher implements StatsPublisherInterface {
|
|||||||
ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
|
ServiceMetric smr = new ServiceMetric(customerId, equipmentId);
|
||||||
smr.setLocationId(locationId);
|
smr.setLocationId(locationId);
|
||||||
ApSsidMetrics apSsidMetrics = new ApSsidMetrics();
|
ApSsidMetrics apSsidMetrics = new ApSsidMetrics();
|
||||||
|
|
||||||
smr.setDetails(apSsidMetrics);
|
smr.setDetails(apSsidMetrics);
|
||||||
metricRecordList.add(smr);
|
metricRecordList.add(smr);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user