Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
intr3p1d committed Apr 17, 2024
1 parent b493a24 commit fa32488
Show file tree
Hide file tree
Showing 28 changed files with 291 additions and 352 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
/**
* @author intr3p1d
*/
public interface MapStatisticsInboundDao extends CachedStatisticsDao {
public interface InboundDao extends CachedStatisticsDao {
// src -> dest
// inbound (rowKey dest <- columnName src)
// outbound (rowKey src -> columnName dest)
void update(
String srcServiceGroupName, String srcApplicationName, ServiceType srcServiceType,
String destServiceGroupName, String destApplicationName, ServiceType destServiceType,
String srcServiceName, String srcApplicationName, ServiceType srcApplicationType,
String destServiceName, String destApplicationName, ServiceType destApplicationType,
String srcHost, int elapsed, boolean isError
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
/**
* @author intr3p1d
*/
public interface MapStatisticsOutboundDao extends CachedStatisticsDao {
public interface OutboundDao extends CachedStatisticsDao {
// src -> dest
// inbound (rowKey dest <- columnName src)
// outbound (rowKey src -> columnName dest)
void update(
String srcServiceGroupName, String srcApplicationName, ServiceType srcServiceType,
String destServiceGroupName, ServiceType destServiceType, String destApplicationName,
String srcServiceName, String srcApplicationName, ServiceType srcApplicationType,
String destServiceName, String destApplicationName, ServiceType destApplicationType,
String srcHost, int elapsed, boolean isError
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@
/**
* @author intr3p1d
*/
public interface MapStatisticsSelfDao extends CachedStatisticsDao {
void received(String serviceGroup, String applicationName, ServiceType serviceType, int elapsed, boolean isError);

void updatePing(String serviceGroup, String applicationName, ServiceType serviceType, int elapsed, boolean isError);
public interface SelfDao extends CachedStatisticsDao {
void received(String serviceName, String applicationName, ServiceType applicationType, int elapsed, boolean isError);
void updatePing(String serviceName, String applicationName, ServiceType applicationType, int elapsed, boolean isError);
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
*/
package com.navercorp.pinpoint.collector.applicationmap.dao.hbase;

import com.navercorp.pinpoint.collector.applicationmap.dao.MapStatisticsInboundDao;
import com.navercorp.pinpoint.collector.applicationmap.dao.InboundDao;
import com.navercorp.pinpoint.collector.dao.hbase.IgnoreStatFilter;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.BulkWriter;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.ColumnName;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.MapLinkConfiguration;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.RowKey;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ServiceGroupColumnName;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ServiceGroupRowKey;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ApplicationMapColumnName;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ApplicationMapRowKey;
import com.navercorp.pinpoint.common.server.util.AcceptedTimeService;
import com.navercorp.pinpoint.common.server.util.ApplicationMapStatisticsUtils;
import com.navercorp.pinpoint.common.server.util.TimeSlot;
Expand All @@ -39,7 +39,7 @@
* @author intr3p1d
*/
@Repository
public class HbaseMapStatisticsInboundDao implements MapStatisticsInboundDao {
public class HbaseInboundDao implements InboundDao {

private final Logger logger = LogManager.getLogger(this.getClass());

Expand All @@ -50,7 +50,7 @@ public class HbaseMapStatisticsInboundDao implements MapStatisticsInboundDao {
private final BulkWriter bulkWriter;
private final MapLinkConfiguration mapLinkConfiguration;

public HbaseMapStatisticsInboundDao(
public HbaseInboundDao(
MapLinkConfiguration mapLinkConfiguration,
IgnoreStatFilter ignoreStatFilter,
AcceptedTimeService acceptedTimeService,
Expand All @@ -68,28 +68,28 @@ public HbaseMapStatisticsInboundDao(

@Override
public void update(
String srcServiceGroupName, String srcApplicationName, ServiceType srcServiceType,
String destServiceGroupName, String destApplicationName, ServiceType destServiceType,
String srcServiceName, String srcApplicationName, ServiceType srcApplicationType,
String destServiceName, String destApplicationName, ServiceType destApplicationType,
String srcHost, int elapsed, boolean isError
) {
Objects.requireNonNull(srcServiceGroupName, "srcServiceGroupName");
Objects.requireNonNull(destServiceGroupName, "destServiceGroupName");
Objects.requireNonNull(srcServiceName, "srcServiceName");
Objects.requireNonNull(destServiceName, "destServiceName");
Objects.requireNonNull(srcApplicationName, "srcApplicationName");
Objects.requireNonNull(destServiceGroupName, "destApplicationName");
Objects.requireNonNull(destServiceName, "destApplicationName");

if (logger.isDebugEnabled()) {
logger.debug("[Inbound] {} {}({})[{}] <- {} {}({})",
destServiceGroupName, destApplicationName, destServiceType, srcHost,
srcServiceGroupName, srcApplicationName, srcServiceType
logger.debug("[Inbound] {} {}({}) <- {} {}({})[{}]",
destServiceName, destApplicationName, destApplicationType,
srcServiceName, srcApplicationName, srcApplicationType, srcHost
);
}


// TODO dest, src parameter normalization
if (ignoreStatFilter.filter(srcServiceType, srcHost)) {
logger.debug("[Ignore-Inbound] {} {}({})[{}] <- {} {}({})",
destServiceGroupName, destApplicationName, destServiceType, srcHost,
srcServiceGroupName, srcApplicationName, srcServiceType
if (ignoreStatFilter.filter(srcApplicationType, srcHost)) {
logger.debug("[Ignore-Inbound] {} {}({}) <- {} {}({})[{}]",
destServiceName, destApplicationName, destApplicationType,
srcServiceName, srcApplicationName, srcApplicationType, srcHost
);
return;
}
Expand All @@ -98,21 +98,21 @@ public void update(
final long rowTimeSlot = timeSlot.getTimeSlot(acceptedTime);

// rowKey is dest in inbound
final RowKey destRowKey = new ServiceGroupRowKey(destServiceGroupName, destServiceType.getCode(), destApplicationName, rowTimeSlot);
final RowKey destRowKey = new ApplicationMapRowKey(destServiceName, destApplicationType.getCode(), destApplicationName, rowTimeSlot);

// columnName is src in outbound
final short srcSlotNumber = ApplicationMapStatisticsUtils.getSlotNumber(srcServiceType, elapsed, isError);
HistogramSchema histogramSchema = srcServiceType.getHistogramSchema();
final short srcSlotNumber = ApplicationMapStatisticsUtils.getSlotNumber(srcApplicationType, elapsed, isError);
HistogramSchema histogramSchema = srcApplicationType.getHistogramSchema();

final ColumnName srcColumnName = new ServiceGroupColumnName(srcServiceGroupName, srcServiceType.getCode(), srcApplicationName, srcSlotNumber);
final ColumnName srcColumnName = new ApplicationMapColumnName(srcServiceName, srcApplicationType.getCode(), srcApplicationName, srcSlotNumber);
this.bulkWriter.increment(destRowKey, srcColumnName);

if (mapLinkConfiguration.isEnableAvg()) {
final ColumnName sumColumnName = new ServiceGroupColumnName(srcServiceGroupName, srcServiceType.getCode(), srcApplicationName, histogramSchema.getSumStatSlot().getSlotTime());
final ColumnName sumColumnName = new ApplicationMapColumnName(srcServiceName, srcApplicationType.getCode(), srcApplicationName, histogramSchema.getSumStatSlot().getSlotTime());
this.bulkWriter.increment(destRowKey, sumColumnName, elapsed);
}
if (mapLinkConfiguration.isEnableMax()) {
final ColumnName maxColumnName = new ServiceGroupColumnName(srcServiceGroupName, srcServiceType.getCode(), srcApplicationName, histogramSchema.getMaxStatSlot().getSlotTime());
final ColumnName maxColumnName = new ApplicationMapColumnName(srcServiceName, srcApplicationType.getCode(), srcApplicationName, histogramSchema.getMaxStatSlot().getSlotTime());
this.bulkWriter.updateMax(destRowKey, maxColumnName, elapsed);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,19 @@
*/
package com.navercorp.pinpoint.collector.applicationmap.dao.hbase;

import com.navercorp.pinpoint.collector.applicationmap.dao.MapStatisticsOutboundDao;
import com.navercorp.pinpoint.collector.applicationmap.dao.OutboundDao;
import com.navercorp.pinpoint.collector.dao.hbase.IgnoreStatFilter;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.BulkWriter;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.ColumnName;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.MapLinkConfiguration;
import com.navercorp.pinpoint.collector.dao.hbase.statistics.RowKey;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ServiceGroupColumnName;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ServiceGroupRowKey;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ApplicationMapColumnName;
import com.navercorp.pinpoint.collector.applicationmap.dao.hbase.statistics.ApplicationMapRowKey;
import com.navercorp.pinpoint.common.server.util.AcceptedTimeService;
import com.navercorp.pinpoint.common.server.util.ApplicationMapStatisticsUtils;
import com.navercorp.pinpoint.common.server.util.TimeSlot;
import com.navercorp.pinpoint.common.trace.HistogramSchema;
import com.navercorp.pinpoint.common.trace.ServiceType;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Qualifier;
Expand All @@ -40,7 +39,7 @@
* @author intr3p1d
*/
@Repository
public class HbaseMapStatisticsOutboundDao implements MapStatisticsOutboundDao {
public class HbaseOutboundDao implements OutboundDao {

private final Logger logger = LogManager.getLogger(this.getClass());

Expand All @@ -51,7 +50,7 @@ public class HbaseMapStatisticsOutboundDao implements MapStatisticsOutboundDao {
private final BulkWriter bulkWriter;
private final MapLinkConfiguration mapLinkConfiguration;

public HbaseMapStatisticsOutboundDao(
public HbaseOutboundDao(
MapLinkConfiguration mapLinkConfiguration,
IgnoreStatFilter ignoreStatFilter,
AcceptedTimeService acceptedTimeService, TimeSlot timeSlot,
Expand All @@ -67,45 +66,42 @@ public HbaseMapStatisticsOutboundDao(

@Override
public void update(
String srcServiceGroupName, String srcApplicationName, ServiceType srcServiceType,
String destServiceGroupName, ServiceType destServiceType, String destApplicationName,
String srcServiceName, String srcApplicationName, ServiceType srcApplicationType,
String destServiceName, String destApplicationName, ServiceType destApplicationType,
String srcHost, int elapsed, boolean isError
) {
// outbound (rowKey src -> columnName dest)
Objects.requireNonNull(destServiceGroupName, "destServiceGroupName");
Objects.requireNonNull(srcServiceGroupName, "srcServiceGroupName");
Objects.requireNonNull(destServiceName, "destServiceName");
Objects.requireNonNull(srcServiceName, "srcServiceName");
Objects.requireNonNull(destApplicationName, "destApplicationName");
Objects.requireNonNull(srcServiceGroupName, "srcApplicationName");
Objects.requireNonNull(srcServiceName, "srcApplicationName");

if (logger.isDebugEnabled()) {
logger.debug("[Outbound] {} {}({})[{}] -> {} {}({})",
srcServiceGroupName, srcApplicationName, srcServiceType, srcHost,
destServiceGroupName, destApplicationName, destServiceType
srcServiceName, srcApplicationName, srcApplicationType, srcHost,
destServiceName, destApplicationName, destApplicationType
);
}

// there may be no endpoint in case of httpclient
srcHost = StringUtils.defaultString(srcHost);

final long acceptedTime = acceptedTimeService.getAcceptedTime();
final long rowTimeSlot = timeSlot.getTimeSlot(acceptedTime);

// rowKey is src in outbound
final RowKey srcRowKey = new ServiceGroupRowKey(srcServiceGroupName, srcServiceType.getCode(), srcApplicationName, rowTimeSlot);
final RowKey srcRowKey = new ApplicationMapRowKey(srcServiceName, srcApplicationType.getCode(), srcApplicationName, rowTimeSlot);

// columnName is dest in outbound
final short destSlotNumber = ApplicationMapStatisticsUtils.getSlotNumber(destServiceType, elapsed, isError);
HistogramSchema histogramSchema = destServiceType.getHistogramSchema();
final short destSlotNumber = ApplicationMapStatisticsUtils.getSlotNumber(destApplicationType, elapsed, isError);
HistogramSchema histogramSchema = destApplicationType.getHistogramSchema();

final ColumnName destColumnName = new ServiceGroupColumnName(destServiceGroupName, destServiceType.getCode(), destApplicationName, destSlotNumber);
final ColumnName destColumnName = new ApplicationMapColumnName(destServiceName, destApplicationType.getCode(), destApplicationName, destSlotNumber);
this.bulkWriter.increment(srcRowKey, destColumnName);

if (mapLinkConfiguration.isEnableAvg()) {
final ColumnName sumColumnName = new ServiceGroupColumnName(destServiceGroupName, destServiceType.getCode(), destApplicationName, histogramSchema.getSumStatSlot().getSlotTime());
final ColumnName sumColumnName = new ApplicationMapColumnName(destServiceName, destApplicationType.getCode(), destApplicationName, histogramSchema.getSumStatSlot().getSlotTime());
this.bulkWriter.increment(srcRowKey, sumColumnName, elapsed);
}
if (mapLinkConfiguration.isEnableMax()) {
final ColumnName maxColumnName = new ServiceGroupColumnName(destServiceGroupName, destServiceType.getCode(), destApplicationName, histogramSchema.getMaxStatSlot().getSlotTime());
final ColumnName maxColumnName = new ApplicationMapColumnName(destServiceName, destApplicationType.getCode(), destApplicationName, histogramSchema.getMaxStatSlot().getSlotTime());
this.bulkWriter.updateMax(srcRowKey, maxColumnName, elapsed);
}
}
Expand Down

0 comments on commit fa32488

Please sign in to comment.