Skip to content

Commit

Permalink
[AMORO-2293] Using MetricsManager in a singleton manner (#2294)
Browse files Browse the repository at this point in the history
* create a singleton MetricsManager

* create a singleton MetricsManager
  • Loading branch information
hameizi authored Nov 13, 2023
1 parent 320ef4a commit d088cac
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import com.netease.arctic.server.dashboard.utils.AmsUtil;
import com.netease.arctic.server.dashboard.utils.CommonUtil;
import com.netease.arctic.server.exception.ArcticRuntimeException;
import com.netease.arctic.server.manager.MetricsManager;
import com.netease.arctic.server.persistence.SqlSessionFactoryProvider;
import com.netease.arctic.server.resource.ContainerMetadata;
import com.netease.arctic.server.resource.OptimizerManager;
Expand Down Expand Up @@ -93,7 +92,6 @@ public class ArcticServiceContainer {
private TServer tableManagementServer;
private TServer optimizingServiceServer;
private Javalin httpServer;
private MetricsManager metricsManager;

public ArcticServiceContainer() throws Exception {
initConfig();
Expand Down Expand Up @@ -147,9 +145,6 @@ public void startService() throws Exception {
LOG.info("AMS table service have been initialized");
terminalManager = new TerminalManager(serviceConfig, tableService);

metricsManager = new MetricsManager();
metricsManager.initialize();

initThriftService();
startThriftService();

Expand Down Expand Up @@ -204,8 +199,7 @@ private void startThriftServer(TServer server, String threadName) {
private void initHttpService() {
DashboardServer dashboardServer =
new DashboardServer(serviceConfig, tableService, optimizingService, terminalManager);
IcebergRestCatalogService restCatalogService =
new IcebergRestCatalogService(tableService, metricsManager);
IcebergRestCatalogService restCatalogService = new IcebergRestCatalogService(tableService);

httpServer =
Javalin.create(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,11 @@ public class IcebergRestCatalogService extends PersistentBase {
private final TableService tableService;
private final MetricsManager metricsManager;

public IcebergRestCatalogService(TableService tableService, MetricsManager metricsManager) {
public IcebergRestCatalogService(TableService tableService) {
this.tableService = tableService;
this.objectMapper = jsonMapper();
this.jsonMapper = new JavalinJackson(objectMapper);
this.metricsManager = metricsManager;
this.metricsManager = MetricsManager.instance();
}

public EndpointGroup endpoints() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public class MetricsManager extends ActivePluginManager<MetricsEmitter> {

private static final Logger LOG = LoggerFactory.getLogger(MetricsManager.class);
private static final String METRICS_CONFIG_DIRECTORY = "metrics";
private static volatile MetricsManager INSTANCE;

private final String configPath;

Expand All @@ -47,6 +48,18 @@ public MetricsManager(String configPath) {
this.configPath = configPath;
}

public static MetricsManager instance() {
if (INSTANCE == null) {
synchronized (MetricsManager.class) {
if (INSTANCE == null) {
INSTANCE = new MetricsManager();
INSTANCE.initialize();
}
}
}
return INSTANCE;
}

public void initialize() {
File dir = new File(configPath);
File[] yamlFiles = dir.listFiles((dir1, name) -> name.endsWith(".yaml"));
Expand Down

0 comments on commit d088cac

Please sign in to comment.